本篇教学的重点来了,就是将GH应用在这种使用Rhino做很困难的造型中。
通过以上的分析过程,我们已经有了制作思路,下面就是将这些思路套用在GH中。
1.将蓝色的正圆曲线拾取到GH中,使用Divide Curve运算器,将曲线等分为27份
后面你可以改变这个数值,所以严谨点,把数值类型设置为 奇数
箭头所指的点即为圆的闭合点,也是这组等分点中的第一个点(序号为0)
2.获取定位点
下图中的黄色虚线是假想出来的椭圆,因此红色的点是我们需要的定位点。
挑选这些点的方法很多,下面我将使用Dispatch运算器将这些点间隔的分为两组,具体做法如下:
先解释下Dispatch运算器
P输入端 默认情况下的判断方式是True False,会把一组列表中的值按照重复 真 假 真 假 真 假...的判断方法做分类,判断结果为真的值从A端输出,判断结果为假的值从B端输出。
将其他运算器的计算结果做隐藏,只显示A端输出的点
得到的结果正好和椭圆错开,这是因为正圆的方向反了,只要做反转方向操作即可
如果你的结果本身没有错误,那么恭喜你,无视接下来的操作,直接往第3步看>>>>
不建议直接反转Rhino场景中的曲线方向,可以在GH中接入Flip Curve运算器
这一部分的完整程序图:
这样,定位点就得到了,如下图所示:
3.创建工作平面
通过简单的分析,需要以每个定位点为坐标原点,创建一组垂直于曲面法线方向的工作平面
我们可以先将曲面拾取到GH中,接着搭配使用Surface Closest Point 与Evaluate Surface运算器来创建工作平面。
得到的结果有个明显的错误,由于第一个点的位置正好处在曲面的两个边缘的交点处,因此在这种临界位置,程序在放置第一个工作平面的时候可能会判断失误
如果你的结果是正确的,那么继续无视,请往第5步看>>>>
4.修改有问题的工作平面
接入List Item 运算器,将第一个工作平面(序号为0)挑出来. i 输入端默认就是 0,不用更改,将其他运算器的计算结果隐藏起来,如下图所示:
我们只需要将第一个工作平面绕着它的Y坐标轴(绿色)旋转 90度 即可(为什么为90度,不用解释了吧)
先用Deconstruct Plane运算器 获取工作平面的坐标原点和Y轴向量,再用Rotate 3D运算器将工作平面绕着Y轴向量转90度,输入端A默认以弧度制计算。
最后使用Replace Items 运算器用新得到的工作平面替换之前的工作平面,这个运算器的输入输出端的解释请看其Help
这部分的完整程序图:
5.创建椭圆
直接贴图,不解释了
6.挤出曲面
因为得到的椭圆并不在曲面上,直接裁剪得到的结果并不是很好,需要将它们沿着Cplane的Z方向做挤出曲面
先用Deconstruct Plane运算器获取工作平面的Z轴向量,将单位向量与数字相乘得到挤出向量,如下图所示:
如果希望其在Z轴方向往两侧挤出,可以先将椭圆沿着Z轴移动一定的距离
再将新得到的椭圆反向挤出一定距离,可以在D输入端通过一个表达式 -2*X 来实现类似Rhino中的朝两侧挤出曲线的功能
这一步完成了切孔用的曲面的制作,完整的程序图如下:
你可以把挤出的曲面Bake在Rhino中完成剩下的事情,也可以继续在GH中做>>>>
过程不做细致解释,大概思路是:先计算相交线,再做分割,最后挑出面积最大的那块曲面,如下图所示:
同样的方法处理好另一块曲面的开孔,制作厚度,孔洞边缘倒圆角的过程略。
你还可以将整个制作过程在GH中完成,做出一些更加复杂的形态出来。
谢谢! |