Can someone tell me how to execute the Split command from RhinoScript? My problem is that I do not know how to pass the object and the cutting plane to the Split command.
Consider the following example function:
Function DoBrepSplit(brep, cutter) ' Declare local variables Dim saved, cmd ' Set default return value DoBrepSplit = Null ' For speed, turn of screen redrawing Rhino.EnableRedraw False ' Save any selected objects saved = Rhino.SelectedObjects ' Unselect all objects Rhino.UnSelectAllObjects ' Select the brep Rhino.SelectObject brep ' Script the split command cmd = "_Split _SelID " & cutter & " _Enter" Rhino.Command cmd, 0 ' By preselecting the brep, the results of ' Split will be selected. So, get the selected ' objects and return them to the caller. DoBrepSplit = Rhino.SelectedObjects ' 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 TestSplitBrep ' Declare local variables Dim brep, cutter, pieces, i ' Pick the brep to split brep = Rhino.GetObject("Select surface or polysurface to split", 8 + 16) If IsNull(brep) Then Exit Sub ' Pick the cutting brep cutter = Rhino.GetObject("Select cutting or polysurface to split", 8 + 16) If IsNull(cutter) Then Exit Sub ' Call our special splitter pieces = DoBrepSplit(brep, cutter) If IsArray(pieces) Then For i = 0 To UBound(pieces) Rhino.Print pieces(i) Next End If End Sub