Site Tools


Differences

This shows you the differences between two versions of the page.

Link to this comparison view

developer:scriptsamples:selcrvdegree [2015/09/14] (current)
Line 1: Line 1:
 +====== Select Curves of a Specified Degree ======
 +> **Developer:​** //​[[developer:​rhinoscript|RhinoScript]]//​
 +> **Summary:​** //​Demonstrates how to use RhinoScript to select all curves that are of a specified degree.//
 +
 +===== Example =====
 +The following example RhinoScript code demonstrates how to select all curves that are of a specified degree.
 +
 +<code vb>
 +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''​
 +' 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)"​
 +</​code>​
 +
 +\\
 +
 +{{tag>​Developer RhinoScript}}
  
developer/scriptsamples/selcrvdegree.txt ยท Last modified: 2015/09/14 (external edit)