Site Tools

Scale Text by Dimension Scale

Developer: RhinoScript
Summary: How to properly scale text objects by the document's dimension scale.


The following sample RhinoScript code demonstrates how to property scale text objects by the document's dimension scale.

 Option Explicit
 ' Scales all text objects by the document's dimension scale
 Sub DimScaleText
   ' Dim local variables
   Dim arrObjects, strObject, arrPlane, dblScale
   ' Get document's dimension scale  
   dblScale = Rhino.DimScale
   If dblScale = 1.0 Then 
     Rhino.Print "Dimension scale set to 1.0."
     Exit Sub
   End If
   ' Get ids of all annotation objects    
   arrObjects = Rhino.ObjectsByType(512)
   If Not IsArray(arrObjects) Then 
     Rhino.Print "No text objects to scale."
     Exit Sub
   End If
   ' Turn off viewport redrawing (faster)    
   Rhino.EnableRedraw False
   ' Save current view's construction plane
   arrPlane = Rhino.ViewCPlane(Rhino.CurrentView)
   ' Process each object
   For Each strObject In arrObjects
     ' Verify object is a text object
     If Rhino.IsText(strObject) And Rhino.IsObjectSelectable(strObject) Then
       ' Set the current view's construction plane to plane
       ' that defines the position and orientatio of the text
       Rhino.ViewCPlane Rhino.CurrentView, Rhino.TextObjectPlane(strObject)
       ' Select the object
       Rhino.SelectObject strObject
       ' Scale the object by the dimension scale
       Rhino.Command "_-Scale 0,0,0 " & CStr(dblScale), False
       ' Unselect the object
       Rhino.UnselectObject strObject
     End If
   ' Restore current view's construction plane
   Rhino.ViewCPlane Rhino.CurrentView, arrPlane
   ' Turn on viewport drawing
   Rhino.EnableRedraw True
 End Sub

developer/scriptsamples/dimscaletext.txt ยท Last modified: 2020/08/14 (external edit)