Developer: RhinoScript
Summary: Demonstrates how to script the CutPlane command using RhinoScript.
Can someone tell me how to execute the CutPlane command from RhinoScript?
Consider the following example function:
Function CreateCutPlane(objs, p0, p1) ' Declare local variables Dim saved, s0, s1, cmd ' Set default return value CreateCutPlane = Null ' For speed, turn of screen redrawing Rhino.EnableRedraw False ' Save any selected objects saved = Rhino.SelectedObjects ' Unselect all objects Rhino.UnSelectAllObjects ' Select the objects to create the cut plane through Rhino.SelectObjects objs ' Script the cutplane command s0 = Rhino.Pt2Str(p0,,True) s1 = Rhino.Pt2Str(p1,,True) cmd = "_CutPlane " & s0 & s1 & "_Enter" Rhino.Command cmd, 0 ' Get the object created by CutPlane CreateCutPlane = Rhino.FirstObject ' Unselect all objects Rhino.UnSelectAllObjects ' If any objects were selected before calling ' this function, re-select them If IsArray(saved) Then Rhino.SelectObjects(saved) ' Don't forget to turn redrawing back on Rhino.EnableRedraw True End Function
The function above can be test using the following simple subroutine:
Sub TestCutPlane ' Declare local variables Dim objs, p0, p1, obj ' Pick the objects to cut objs = Rhino.getobjects("Select objects for cut plane") If Not IsArray(objs) Then Exit Sub ' Pick start of cut plane p0 = Rhino.GetPoint("Start of cut plane") If Not IsArray(p0) Then Exit Sub ' Pick end point of cut plane p1 = Rhino.GetPoint("End of cut plane", p0) If Not IsArray(p1) Then Exit Sub ' Call our function obj = CreateCutPlane(objs, p0, p1) If Not IsNull(obj) Then Rhino.Print obj End If End Sub