Site Tools


Scale Text by Dimension Scale

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

Example

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
   Next
 
   ' 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: 2015/09/14 (external edit)