WARNING: You're viewing the Rhino WIP version of this page! View the current version instead.

Select Text by Height

Demonstrates how to select text objects by their text height using RhinoScript.

VBScript

'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' SelTextHeight.rvb -- July 2009
' If this code works, it was written by Dale Fugier.
' If not, I don't know who wrote it.
' Works with Rhino 4.0 and 5.0
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

Option Explicit

' Global variables
Public g_min_height
Public g_max_height

'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' Selects text objects based on their text height
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Sub SelTextHeight()

  ' Local variables
  Dim min_height, max_height
  Dim objects, obj, height, sel_count

  ' Initialize global variables, if necessary
  If IsEmpty(g_min_height) Or IsNull(g_min_height) Then g_min_height = 1.0
  If IsEmpty(g_max_height) Or IsNull(g_max_height) Then g_max_height = 1.0

  ' Prompt for minimum height
  min_height = Rhino.GetReal("Minimum text height", g_min_height, 0.0)
  If IsNull(min_height) Then Exit Sub

  ' Prompt for maximum height
  max_height = Rhino.GetReal("Maximum text height", g_max_height, min_height)
  If IsNull(min_height) Then Exit Sub
  If (min_height > max_height) Then Exit Sub

  ' More initialization
  g_min_height = min_height
  g_max_height = max_height
  sel_count = 0

  Rhino.EnableRedraw False

  ' Find text objects that meet our criteria      
  objects = Rhino.ObjectsByType(512) 'annotations
  For Each obj In objects
    If Rhino.IsText(obj) Then
      height = Rhino.TextObjectHeight(obj)
      If (g_min_height <= height) And (height <= g_max_height) Then
        If Rhino.SelectObject(obj) Then sel_count = sel_count + 1
      End If    
    End If
  Next

  Rhino.EnableRedraw True

  Rhino.Print CStr(sel_count) & " text added to selection."

End Sub

'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Rhino.AddStartupScript Rhino.LastLoadedScriptFile
Rhino.AddAlias "SelTextHeight", "_NoEcho _-RunScript (SelTextHeight)"