Select Curves by Degree
Windows only
Demonstrates how to use RhinoScript to select all curves that are of a specified degree.
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' SelCrvDegree.rvb -- September 2011
' If this code works, it was written by Dale Fugier.
' If not, I don't know who wrote it.
' Works with Rhino 4.0.
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Option Explicit
' Declare global variable
Public g__nDegree
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' Selects curves of a user-specified degree
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Sub SelCrvDegree
' Declare local constants
Const RH_CURVE = 4
Const RH_MAX_DEGREE = 11
Const RH_DEF_DEGREE = 3
' Declare local variables
Dim nDegree, arrCurves, strCurve, nCount
' Make sure global variable is initialized
If IsEmpty(g__nDegree) Or IsNull(g__nDegree) Then g__nDegree = RH_DEF_DEGREE
nDegree = g__nDegree
' Get all curve objects
Call Rhino.EnableRedraw(False)
arrCurves = Rhino.ObjectsByType(RH_CURVE)
If IsNull(arrCurves) Then
Call Rhino.Print("No curves to select.")
Exit Sub
End If
' Prompt for curve degree
nDegree = Rhino.GetInteger("Degree of curves to select", nDegree, 1, RH_MAX_DEGREE)
If IsNull(nDegree) Then Exit Sub
' Select curves of specified degree
Call Rhino.EnableRedraw(False)
nCount = 0
For Each strCurve In arrCurves
If nDegree = Rhino.CurveDegree(strCurve) Then
If Not Rhino.IsObjectSelected(strCurve) Then
Call Rhino.SelectObject(strCurve)
nCount = nCount + 1
End If
End If
Next
Call Rhino.EnableRedraw(True)
' Print results
If 0 = nCount Then
Call Rhino.Print("No degree=" & CStr(nDegree) & " curves added to selection.")
ElseIf 1 = nCount Then
Call Rhino.Print("1 degree=" & CStr(nDegree) & " curve added to selection.")
Else
Call Rhino.Print(CStr(nCount) & " degree=" & CStr(nDegree) & " curves added to selection.")
End If
' Remember curve degree
g__nDegree = nDegree
End Sub
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' Drag & drop support
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Rhino.AddStartUpScript Rhino.LastLoadedScriptFile
Rhino.AddAlias "SelCrvDegree", "_-RunScript (SelCrvDegree)"