我运用GHPY的框架进行制作插件,但是我需要在状态栏中的同一类电池,用切割线分离。
请教各位,在Python如何实现这个功能。
重写GH_Exposure Exposure函数。(我没有在python里试过,应该是可以的)
3 个赞
感谢月神 我试试
Brep 好比是几何体的生产图纸,它是没有生成编号 (Guid) 的,几何体生产出来放到文档里面了,才有 GUID。
如果输入的是 GUID,你可以直接再代码里使用这个编号从 Rhino 文档里找到对应的物件,从而把 Brep 数据提取出来。
如果输入的是 Brep,那相当输入端把 Brep 数据从文档里的这个物件上提取下来传到电池里给你用了。
所以如果你要的是输入到电池以前的 GUID,就不要选 Brep ,选成 Guid ,然后通过 GUID 再得到 Brep 才是正确的方式。
如果是从 GH 里直接输入的,那是没有 GUID 的,这种如果想有 GUID,就必须添加到文档里才能得到 guid,有两个文档可以用,一个是 ghdoc
,添加进去不会直接显示在界面上,还有一个是 Rhino.RhinoDoc.ActiveDoc
,添加完就直接添加到 Rhino 场景中了。
具体看下面的范例:
贴上代码,方便复制:
import Rhino
print("从 Rhino 中引用的物件才能以 Guid 输入:")
print in_guid
doc_object = Rhino.RhinoDoc.ActiveDoc.Objects.Find(in_guid)
print("找到的文档物件:")
print doc_object
true_brep = doc_object.Geometry
print("从文档物件身上找到的Brep:")
print true_brep
print("GH 中输入的Brep:")
print in_brep
print("添加到文档中才能得到!!!")
new_ghdoc_guid = ghdoc.Objects.AddBrep(in_brep)
print("添加到 ghdoc 以后得到的 guid:")
print(new_ghdoc_guid)
new_rhino_doc_guid = Rhino.RhinoDoc.ActiveDoc.Objects.AddBrep(in_brep)
print("注意:添加到 Rhino 文档以后,会直接在场景中生成物件。")
print("添加到 RhinoDoc 以后得到的 guid:")
print(new_rhino_doc_guid)
5 个赞