借助犀牛开发帮助文档,在grasshopper里面自定义运算器,可以达到事半功倍的效果。很多逻辑如果借用grasshopper原生运算器,一则效率低下,二则需要许多原生运算器的组合才能达到。而通过自定义运算器,可以大大提高效率。前提是在较为熟悉其底层逻辑的情况下。
下面是一个简单的关于偏移曲面的示例,通过两种方式(一种是借助grasshopper里面的C#或者Python运算器,另一种是借助VS IDE),介绍如何在grasshopper里面自定义运算器或者开发插件。
grasshopper里面有原生的偏移曲面运算器,其局限是功能比较基本,只能向一侧偏移曲面。
当然如果需要向两侧偏移也可以在输入端输入正负两个同样的数,但如果需要输出为封闭实体,如果不借助插件,则还需要提取偏移后两曲面的边进行放样组合等一连串操作,无疑效率会比较低下。
自定义运算器方式一:通过C#或者Python自定义。以下为grasshopper里面的代码编辑器。本文以C#为例。
双击打开C#编辑界面,下图为C#主要代码区域。
偏移曲面的代码如下:A = Brep.FromOffsetFace(Sur.Faces[0], Distance, 0.001, both, solid);
若不熟悉相关的代码,可以通过犀牛开发者帮助文档进行查阅相关代码。
里面有与各种编程语言相关的帮助文档可供查阅,这里主要查阅RhinoCommon 与Grasshopper (Rhino for Windows)
由于是对Surface进行操作,一般查阅Surface类,这里比较特殊,曲面偏移的方法并不能在Surface类里面找到。
可以查阅与Surface类比较相近的Brep类,这里需要一些经验,在RhinoCommon里面,我们认为的属于对Surface进行操作的一些方法在Brep类里面。Brep类的FromSurface 正好可以对其进行操作。
以下为其语法。其需要返回Brep值,所以前面需要有变量承接其值。
故A为承接值的变量,键入以下代码,FromSurface 后键入括号(后会弹出以下消息,其中1为输入Brepface,即为输入的曲面,2为偏移距离,3为偏移误差,4为是否两侧偏移,5为是否为实体。其中BrepFace,Double,Boolean为输入物体或者数值的类型。
根据括号内提示为运算器加上输入端。由于C#为强类型的编程语言,需要定义输入端的类型,根据括号内提示定义输入端类型。
之后自定义运算器完成,在Rhino里面画一个曲面进行测试。
使用Brep抓取曲面,距离输入20,both输入false,是否实体输入false ,得到向一侧偏移的曲面。与原生运算器功能一样。
both输入true,是否实体输入false ,得到向两侧偏移的曲面。与原生运算器功能一样。较原生运算器简单。
both输入true,是否实体输入true,得到向两侧偏移的曲面,曲面形成封闭实体。grasshopper原生的offsetsurface不能直接得到。
测试完毕后可以将自定义运算器储存以便之后方便调用。储存过程如下图所示。
1处键入运算器名字,2处键入笔名,3处键入其功能,4和5处键入其存放栏目。点击6处为其设置运算器图像。
以下为运用Python自定义此运算器示例。
自定义运算器方式二:通过VS Code进行定义,这也是grasshopper插件开发的主要方式。打开VS Code,选择grasshopper模板,对其进行编辑。以下为本段代码的全部。
其中:
1处输入运算器名称,昵称,功能描述,插件名称等。
2处定义运算器的输入端;
3处定义运算器的输出端;
4处为该运算器主要代码;5为该段代码中最主要的实现功能的代码。
6处设置运算器图标。
7处为该运算器ID。
该案例为较为基础的grasshopper代码案例,以此作为记录。如需深入研究,需深入了解犀牛开发帮助文档以及C#编程语言。
- BIM学习群
- 微信扫一扫
- 微信公众号
- 微信扫一扫