|
2m
楼主 |
发表于 2010-11-8 12:06:18
|
只看该作者
本帖最后由 attention412 于 2010-11-9 08:53 编辑
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
看到一个实例,居然正是我要找的,_SelID 选择物体 ID |
|