热门标签

[归档] [GH基础教学]交错的椭圆开孔

[复制链接]
查看: 12478|回复: 0

129

主题

311

帖子

862

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
862
发表于 2017-4-26 20:55:08 | 显示全部楼层 |阅读模式
本次教学跟大家分享下图中这种造型的制作方法,比较适合Grasshopper初学者参考学习

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

184210pddter8u8rxu0trz.png

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

1843255whijxfma9wkmanu.png

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

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

184426rgan0nn8468j0nrn.png

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

184933179jzc599j1d4ncv.png

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

1849429z1nl8xpxppp5x29.png

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

184458wf322le7e3l7y873.png

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

184446ndc6jp7jkjooj6l6.png

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

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

185150vusfyfft64nood84.png

185150g6gm6u2cr6vrvzob.png

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

185151h5gxxmrd74z9ria8.png

回复

使用道具 举报

129

主题

311

帖子

862

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
862
 楼主| 发表于 2017-4-26 21:11:17 | 显示全部楼层
其实,我们在扭转的时候让它们扭转90度,再做流动得到的结果就是正确的,(为什么要扭转90度,不扭转45度,30度... ...想想看咯) 过程如下图所示:

185404zjpthmlh2yp2dlpr.png

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

185405bn25fuup9kfwnbz2.png

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

18551788wt086n8xz8ey8x.png


185518i3aoqoopf3oyuopp.png

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

185520zqq4jkxqn4bkjbxo.png

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

185519vmvuwwnpu15xvlr5.png

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

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

185809ucox686o8tco9i91.png

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


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

1859567xs151bixes1s0f5.png

1858108z98bb4fvt3bt60i.png

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

185810za8szay4a9e4339a.png

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

18581131fa063z4ahb6mis.png

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

190159cezeehenvxw8hlvx.png

185811w919bpt3uk7urhx2.png

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

190209y8n88a8nfaooauvn.png

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

190301p9sm9pexxnknmns3.png

190312m79hs9ii7mgi7nm7.png

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

使用道具 举报

129

主题

311

帖子

862

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
862
 楼主| 发表于 2017-4-26 21:12:34 | 显示全部楼层
本篇教学的重点来了,就是将GH应用在这种使用Rhino做很困难的造型中。

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

190429p6fjjqwh4ototue6.png

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

190503v0vfefve3e0wwaff.png

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

190642b6oi22x0obk1mbaq.png

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

190809csx1cwcvgxaaxgxa.png

2.获取定位点

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

190900gbyo3uxalzxv3zdl.png

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

先解释下Dispatch运算器

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

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

191000ju2vg32gfr0x7d70.png

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

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

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

191039sytawemubiiqstzs.png

这一部分的完整程序图:

19115060f263jy2522pxt4.png

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

1912113c8jckr85zl4cczr.png

3.创建工作平面

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

191527diciu3xu33ky3nbd.png

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

191832r2ccjoc3ujej5i2s.png

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


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

191936s61ophk3l66dpd63.png

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

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

192100xi6xjb6rxaxxaqp1.png

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

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

192100t3d8393zc3dpd3am.png

1921002ok687zpdi2ifo67.png

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

192101wuqlsqe8exwquwiz.png

192101b8w6846jyw65oj66.png

这部分的完整程序图:

1921016fgc2vjfyy7gfz30.png

5.创建椭圆

直接贴图,不解释了

192459isi42psza79vxxzr.png

1925002ltbgz6zcua2cl6c.png

6.挤出曲面

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

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

192500duv3d3i9zulel7jf.png

192501ya5om5j4vj94a9o0.png

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

192501lvilr38z3hnjbfng.png

19250178gtfc7zs7s7282g.png

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

192502uffu40u6u1zu1z6v.png

1925022az6yzz171z1ycb6.png

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

192503inlbhla43ahmtjas.png

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

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

192503pfqeylvxplvo3fqv.png


19250356o46t559y6mz4yy.png

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

1925046y36a0ga0rx0dgx9.png

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

1929317deozkecd7c1n1df.png

谢谢!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

精彩推荐

Rhino 6 的授权管理模式的调整与转换

2020-08-20 图文教学

2020冬季 Rhino 建筑造型系统面授课程

2020-03-21 面授课程

课程介绍|Rhino工业/艺术设计曲面造型高级

2020-03-20 面授课程

2020暑期 Grasshopper参数化系统面授课程

2020-03-20 面授课程

VisualARQ 2.7 发布更新

2020-02-17 新闻

VisualARQ 2.6 发布更新

2019-12-12 新闻

ShapeMap–复杂形体的表面纹理贴合参数化插

2019-11-04 新闻

图文教学 | Rhino 6 细分建模 BARCELONA 椅

2019-06-30 图文教学

Rhino3D(犀牛)中文网

  • 深圳:0755-29642189
  • 上海:021-56496412
  • 成都:028-61592400
  • support@shaper3d.com

关注我们

Copyright   ©2007-2017  Rhino3D犀牛中文网  Powered by©Discuz!     ( 粤ICP备12051517号-5