Rhino3D犀牛中文网

标题: [GH基础教学]交错的椭圆开孔 [打印本页]

作者: admin    时间: 2017-4-26 20:55
标题: [GH基础教学]交错的椭圆开孔
本次教学跟大家分享下图中这种造型的制作方法,比较适合Grasshopper初学者参考学习

本教学的重点在于如何使用Grasshopper(下文简称GH)工具,通过几何的方式解决原本在Rhino中很难处理的问题

(, 下载次数: 321)

这个造型有点类似于莫比乌斯环,一开始分析这个造型的时候,忽略其表面的开孔与厚度,看起来像是一张曲面发生自相交,简化后的模型如下图所示:

(, 下载次数: 285)

既然与莫比乌斯环类似,那么我们不妨从莫比乌斯环的做法入手,做点尝试。
考虑到一些朋友是第一次绘制这样的造型,因此你可以跟随下面的步骤绘制一个莫比乌斯环。

1.在Rhino场景中绘制好一条直线与一个正圆曲线,并以直线为轴线绘制一个截面形状为正方形的方管。如下图所示:

(, 下载次数: 315)

2.使用Rhino的扭转工具(指令:Twist将方管绕着红色的轴线扭转180度,如下图所示:

(, 下载次数: 281)

3.使用Rhino的沿着曲线流动工具(指令:Flow将扭过的方管由直线对变到正圆曲线上

(, 下载次数: 278)

要注意这个工具中的延展选项要设置为 如果不太清楚这几个选项的用法可以查看Rhino 5帮助文档,里面有较详细的解释。结果如下图所示:

(, 下载次数: 261)

4.在第三步中得到的造型有可能比例不合适,你可以借助Rhino 5的 记录建构历史功能 通过缩放圆的大小来调整造型的比例,得到一个满意的效果即可,如下图所示:

(, 下载次数: 272)

下面我们来做点尝试,假设在刚刚的步骤1中我们绘制的不是方管,而是其内部的两条相互交叉且垂直的平面,结果又会是怎样呢?

方法和之前的完全一样,这里不再赘述,大家一试便知。

(, 下载次数: 258)

(, 下载次数: 295)

结果与我们最早分析的那个造型接近了,细心的你一定会发现得到的结果其实是两个单独的曲面“摆放”在一起了,而我们需要的是“一张”曲面的造型。

(, 下载次数: 324)


作者: admin    时间: 2017-4-26 21:11
其实,我们在扭转的时候让它们扭转90度,再做流动得到的结果就是正确的,(为什么要扭转90度,不扭转45度,30度... ...想想看咯) 过程如下图所示:

(, 下载次数: 301)

得到的结果是由两张面拼起来的。

(, 下载次数: 267)

大型出来了,接下来就是如何在曲面上开孔。

(, 下载次数: 282)


(, 下载次数: 261)

既然是两张曲面,我们就可以把这些椭圆曲线做分组,又考虑到椭圆图形的对称性,可以将其中一个椭圆位置放在两张曲面拼接处,这样就可以拆开来做了,如下图所示:

(, 下载次数: 281)

我以其中的一部分为例做讲解

(, 下载次数: 311)

在Rhino中直接在曲面上绘制图形很困难,因此我们可以先将图案在平面上绘制好,然后再对变到曲面上

我以上图中椭圆数目为例,13个完整椭圆+半个椭圆 ,效果如下图所示:

(, 下载次数: 310)

1.首先要对椭圆的位置做精确的定位


TOP视图中绘制一个平面,使用Rhino中的等分曲线工具(指令:Divide)确定一组定位点,分段的数量设置为27(为什么是27?设想下,最终要将两个曲面拼接起来,而相邻的椭圆之间间距是相同的,那么可以以半个椭圆为单位,总共就应该是13.5*2个),你可以和我设置的不同,但这个数字一定为奇数

(, 下载次数: 305)

(, 下载次数: 280)

2.绘制椭圆,中心捕捉放置在曲面边缘中点处,短轴端点与竖直直线有一定距离即可

(, 下载次数: 256)

3.直线阵列14份,最后将多出去的半个椭圆修剪掉

(, 下载次数: 301)

4.使用沿着曲面流动工具(指令:FlowAlongSrf)将这组椭圆曲线由平面对变到曲面上

(, 下载次数: 283)

(, 下载次数: 270)

很明显,椭圆发生了形变,靠近外圈的部分被拉伸,靠近内圈的部分被挤压,这个结果好比是一张长条状铁皮上开了这样的孔,然后做扭转和弯曲变形,孔的轮廓形状一定也会变形

(, 下载次数: 267)

即使在流动时将硬性(不变形)设置为 ,也会有问题,如下图所示:

(, 下载次数: 260)

(, 下载次数: 272)

如何保证曲面上的曲线形状为椭圆且位置正确,我想在Rhino中需要花费一些时间来解决。

作者: admin    时间: 2017-4-26 21:12
本篇教学的重点来了,就是将GH应用在这种使用Rhino做很困难的造型中。

通过以上的分析过程,我们已经有了制作思路,下面就是将这些思路套用在GH中。

(, 下载次数: 285)

1.将蓝色的正圆曲线拾取到GH中,使用Divide Curve运算器,将曲线等分为27份

(, 下载次数: 307)

后面你可以改变这个数值,所以严谨点,把数值类型设置为
奇数

(, 下载次数: 304)

箭头所指的点即为圆的闭合点,也是这组等分点中的第一个点(序号为0)

(, 下载次数: 256)

2.获取定位点

下图中的黄色虚线是假想出来的椭圆,因此红色的点是我们需要的定位点。

(, 下载次数: 284)

挑选这些点的方法很多,下面我将使用Dispatch运算器将这些点间隔的分为两组,具体做法如下:

先解释下Dispatch运算器

P输入端 默认情况下的判断方式是True False,会把一组列表中的值按照重复 真 假 真 假 真 假...的判断方法做分类,判断结果为真的值从A端输出,判断结果为假的值从B端输出。

将其他运算器的计算结果做隐藏,只显示A端输出的点

(, 下载次数: 269)

得到的结果正好和椭圆错开,这是因为正圆的方向反了,只要做反转方向操作即可

如果你的结果本身没有错误,那么恭喜你,无视接下来的操作,直接往第3步看>>>>

不建议直接反转Rhino场景中的曲线方向,可以在GH中接入Flip Curve运算器

(, 下载次数: 283)

这一部分的完整程序图:

(, 下载次数: 287)

这样,定位点就得到了,如下图所示:

(, 下载次数: 283)

3.创建工作平面

通过简单的分析,需要以每个定位点为坐标原点,创建一组垂直于曲面法线方向的工作平面

(, 下载次数: 282)

我们可以先将曲面拾取到GH中,接着搭配使用Surface Closest Point Evaluate Surface运算器来创建工作平面。

(, 下载次数: 282)

得到的结果有个明显的错误,由于第一个点的位置正好处在曲面的两个边缘的交点处,因此在这种临界位置,程序在放置第一个工作平面的时候可能会判断失误


如果你的结果是正确的,那么继续无视,请往第5步看>>>>

(, 下载次数: 279)

4.修改有问题的工作平面

接入List Item 运算器,将第一个工作平面(序号为0)挑出来. i 输入端默认就是 0,不用更改,将其他运算器的计算结果隐藏起来,如下图所示:

(, 下载次数: 295)

我们只需要将第一个工作平面绕着它的Y坐标轴(绿色)旋转 90度 即可(为什么为90度,不用解释了吧)

先用Deconstruct Plane运算器 获取工作平面的坐标原点Y轴向量,再用Rotate 3D运算器将工作平面绕着Y轴向量转90度,输入端A默认以弧度制计算。

(, 下载次数: 296)

(, 下载次数: 266)

最后使用Replace Items 运算器用新得到的工作平面替换之前的工作平面,这个运算器的输入输出端的解释请看其Help

(, 下载次数: 279)

(, 下载次数: 270)

这部分的完整程序图:

(, 下载次数: 279)

5.创建椭圆

直接贴图,不解释了

(, 下载次数: 283)

(, 下载次数: 287)

6.挤出曲面

因为得到的椭圆并不在曲面上,直接裁剪得到的结果并不是很好,需要将它们沿着Cplane的Z方向做挤出曲面

先用Deconstruct Plane运算器获取工作平面的Z轴向量,将单位向量与数字相乘得到挤出向量,如下图所示:

(, 下载次数: 299)

(, 下载次数: 276)

如果希望其在Z轴方向往两侧挤出,可以先将椭圆沿着Z轴移动一定的距离

(, 下载次数: 274)

(, 下载次数: 285)

再将新得到的椭圆反向挤出一定距离,可以在D输入端通过一个表达式 -2*X 来实现类似Rhino中的朝两侧挤出曲线的功能

(, 下载次数: 298)

(, 下载次数: 266)

这一步完成了切孔用的曲面的制作,完整的程序图如下:

(, 下载次数: 260)

你可以把挤出的曲面Bake在Rhino中完成剩下的事情,也可以继续在GH中做>>>>

过程不做细致解释,大概思路是:先计算相交线,再做分割,最后挑出面积最大的那块曲面,如下图所示:

(, 下载次数: 272)


(, 下载次数: 277)

同样的方法处理好另一块曲面的开孔,制作厚度,孔洞边缘倒圆角的过程略。

(, 下载次数: 300)

你还可以将整个制作过程在GH中完成,做出一些更加复杂的形态出来。

(, 下载次数: 271)

谢谢!





欢迎光临 Rhino3D犀牛中文网 (https://www.rhino3d.asia/) Powered by Discuz! X3.3