牛逼! 感谢。
感谢大佬的回答,很抱歉在老帖下回复。我不太了解SDK Mode和Grasshopper API,想请教一下原理。
- 基于我仅有的认知,这种方法是通过把
Grasshopper.Kernel.IGH_PreviewObject Interface
中自带的DrawViewportWires Method
给override成自定义的版本来实现的吗? - 使用这个Interface可以和Rhino API中的
Rhino.Display.DisplayPipeline
相连? - 而override后的method在每次运行SDK Mode的电池时会自动执行?
所以想实现这个效果只能在SDK Mode下写?无法主动在Script Mode中实现吗?
以及想请教一下有没有了解SDK Mode的比较全面的讲解,谢谢。
都是用的DisplayPipeline。IGH_PreviewObject 的Display属性就是返回了一个DisplayPipeline对象。
不是只能在SDK Mode下写,也可以直接调用DisplayPipeLine,只是用SDK Mode要简单一点。
感谢大佬的回复,Display.CustomDisplay
的方法我找到了,具体使用中发现在globals()
中检查已有的CustomDisplay
时会在写完代码点Try或OK的时候残留一个图形,其他时候可以正常把前一个图形删掉。如果把Customdisplay
创建在sticky
中似乎不会有这个问题。
(图一)
当然也可以额外写一个清空程序
(图二)
接下来的话题有点跑题,我原本的需求是生成Brep的预览,但在CustomDisplay
的API底下没找到直接生成Brep的方式,通过大佬的SDK的格式成功实现了,非常感谢。
(图三)
但还是斗胆问一下,不用SDK有办法直接生成Brep的预览吗。
很抱歉新人只能传一张图,我把图合了一下
不用SDK有办法直接生成Brep 的预览是啥意思?像gh那样显示?还是你要自己调用opengl写渲染类的东西?