参数化设计越来越时髦的当下,rhino的使用已经越来越受重视。而grasshopper对于rhino的使用来说,又有着十分重要的作用。grasshopper自带的原生电池以及rhino4food网站中各种插件所提供的电池已经包罗万象,但是对于一些特定的功能,或者还没有相关的电池,或者有这个功能的电池收费,或者寻找这样的功能的电池过于耗费时间。因此自己编写相应的电池就显得特别的有意义。本篇文章中,我们就来介绍一下如何制作一个gh电池并将其封装至gha文件。
在没有尝试制作gh电池时,小编一度以为制作gha文件引入gh电池仅仅是在gh界面内将已有的电池封装即可。但是当尝试了一圈以后发现自己还是太天真。GH里面除了一个cluster命令可以将一组电池打包以外,并不能生成gha文件。还是找到了原厂的说明,小编才有豁然开朗的感觉。
一配置gh制作环境
制作grasshopper的gha文件,第一步是要配置grasshopper的api环境。与之前想的不同,gha文件的制作需要用到visualstudio。由于framenetwork版本的问题,建议rhino6以上版本用vs2015以上的版本。小编使用的vs2017及rhino6.
打开vs界面,点击工具》扩展和更新,点击更新,在搜索框内输入rhino,安装grasshopper和rhino相关的扩展程序。
二关联VS与Rhino
安装完成后,点击新建》项目,左侧在C#的目录下选中rhinoceros,中间选择grasshopper相关选项。弹出newgrasshopperassembly选项卡。
选项卡中的各项内容为gh电池的相关信息。其中:
1)name表示电池的名称
2)nickname表示电池名称的缩写
3)category表示电池所在的面板
4)subcatagory表示电池所在的子面板
5)description表示电池的备注信息
6)Provide Samplecode表示是否需要提供样本代码。
当然这部分内容在正式的代码中也是可以修改的。
单击finish,vs主窗口中就出现了相关的gh电池代码。
在调试主程序之前,需要关联rhino/grasshopper和vs。打开rhino,键入
grasshopperdevelopersetting调出关联界面,在addfolder选项框中添加程序所在路径。
三调试程序
在关联完成后,关闭rhino,在vs中无需任何操作,调试主程序,rhino自动打开。键入grasshopper,可以发现curve选项板的Primitive子选项板下出现了一个新的图标。这就是vs内的代码所生成的图标。
在画布上加入该电池,并加入其所需要的命令,得到如下所示的螺旋线,说明程序运行时成功的。
四代码说明
生成GH电池的代码主要由以下几部分组成:
其中
1)protected override void
RegisterInputParams(GH_Component.GH_InputParamManager pManager)
函数的主要功能是定义各个输入参数,输入参数可以是几何图形,也可以是文本数字。可以按照列别的形式输入,也可按照单个文件的形式输入。
2)protected override void
RegisterOutputParams(GH_Component.GH_OutputParamManager pManager)
函数主要功能是定义各个输出的参数。
3)protected override void
SolveInstance(IGH_DataAccess DA)
函数主要功能是运算功能,电池的主要运算的内容都在这个函数内。
4)public override Guid ComponentGuid
{
get { return new Guid
(“a2a485e0-ca5b-4bee-a16a-22007c095df7”); }
}
函数的主要功能是给电池指定一个编码
除了以上四个函数必须有外,还有以下几个函数需要注意:
5)public
HelloGrasshopperComponent()
: base(“HelloGrasshopper”, “ASpi”,
“Construct an Archimedean, or arithmetic, spiral given its radii and number of turns.”,
“Curve”, “Primitive”)
{
}
这个函数中,base所附属的信息就是之前newgrasshopperassembly选项卡中所需要的信息。
6)protected override System.Drawing.Bitmap Icon
函数的主要作用是为电池指定图标。
五生成gha文件
在代码编写调试完成后,右键资源管理器中的项目名称,点击生成,gha文件就可以生成。
生成后,将gha文件放入grasshopper存放gha文件的文件夹即可。