NCF参数化建筑论坛

标题: 调用RHINO.COMMAND如果在执行中选择物体如何操作 [打印本页]

作者: attention412    时间: 2010-11-7 22:43
标题: 调用RHINO.COMMAND如果在执行中选择物体如何操作
例如call rhino.command("_split")其后要选择一个物体使用什么代码?
作者: attention412    时间: 2010-11-8 12:06
本帖最后由 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




欢迎光临 NCF参数化建筑论坛 (http://www.ncf-china.com/) Powered by Discuz! X3.2