寄托天下
查看: 3589|回复: 0
打印 上一主题 下一主题

[学术讨论] 【By DanielJin】由浅入深学Grasshopper 中级01 [复制链接]

Rank: 2

声望
87
寄托币
281
注册时间
2013-8-17
精华
0
帖子
19
跳转到指定楼层
楼主
发表于 2014-7-25 00:22:38 |只看该作者 |倒序浏览
本帖最后由 矮丑穷矬黑宅土 于 2014-7-25 00:31 编辑

【By DanielJin】由浅入深学Grasshopper 中级 01 任意曲面生桁架
欢迎加入我们的参数化群,群号312673316。该贴是4月中旬写的,帖子中涉及时间问题请自行脑补。
图片很多,有的大小超过了寄托的限制重新用qq截了图可能看不清,望海涵。
图片超过了20个,编辑时部分图片不出现在图片列表,导致生墙的图片无法插入,放在了帖子最后。

前言:4.04-4.18由于学校同时给安排了两个设计,所以接连14天设计“周”另我苦不堪言。由于电脑比较多,在分开渲图的时候闲置了一台。
由于闲置一台电脑,把昨天做的一个结构GH作为教程讲解(主要是各位亲在支持的同时不停地呼唤下一期的更新T.T)。下一期应该就是过了18号才会发了。这一期我直接写上了中级,是希望告诉各位,这一篇与上一篇难度明显加大,数据处理的能力明显提高。还在纠结于上一篇教程的朋友这一篇看一看图个乐呵即可!

本帖最早的思路来自于NCF的曲面桁架的生成,但是在教程中是由一根曲线做出的规则曲面桁架。本人的建筑屋顶部分是一个不规则的曲面(异性建筑害死人,这就是条尼玛不归路啊!!!T.T)在具体曲线建桁架的时候有些地方数据会出问题导致无法生成桁架,楼主也没能解决,因此钻研五十余年用了很笨的方法做了此贴。望各位轻喷。

这里有一个问题,如图,当set one surface时候运算器出错。(我其实一直想知道是不是新版本运算器用法有区别了?)


教程:
本人的思路概况可以分为以下步骤,首先拾取曲面,然后分割,offset,得出分割面中点和角点,利用角点和中点连线生斜向杆,两层面各角点uv方向连线生横杆,节点加球(可选),面出厚度生玻璃(薄膜,板)迂回千百次,只为佳人心。

首先我们要做的就是拾取surface。我的surface由于长得很不帅,所以随手画了个符合大众审美的。这里有一个小的知识点,在实际运用中由于你的屋顶(比如我体育馆)动辄跨度百十米,可以先scale缩放减少运算量,等全部做完bake好了再等比放大回来。


我的机器配置还不错,因此我接下来会疯狂的为您演示很多错误的做法(事实证明很多我能想到的故意连错的错误都导致我的程序在死循环,虽然我vb当年42我也依稀记得vb里有个end loop的命令,不知道gh里有没有类似的命令能不让gh再傻呵呵的计算下去。目前为止已经卡死八次),因为我发现很多帖子都告诉你怎么做,很少提到为什么不能这么干。通过这样比对我认为您可以更容易理解很多视频教程,论坛教程上为何高手要绕一圈这样处理而非最简单的走直线(因为走不通比如会卡死)。还有新手一定要注意保存不然就会我这样一但傻叉连错了就完了。


拾取曲面以后,我们要进行的工作就是将平面分割。然后将平面offset一下。再将上头的面中点找出来。

这时候按照原来的教程,要用item list分别导出四个角进行连线。我看了看数据,四个角已经自动分好组了,按照理论来说直接和中点连线即可。如下图,一个颜色是一簇数据。


直接连线。


接下来我用panel比对了一下,发现上边一百个点,下边四百个点,对应应该有四百条线对吧?对于下边一百个分割后的小面来说,同一个位置点(不算边上)一定是有四个的,因为有四个surface。但是根据display的颜色来看树形数据自动分组,连接以后未觉有何不妥。Panel也都显示是四百条线。



接下来我们说一下生成横向杆件,很多新手会这样做,因为下边已经有了四百个点,直接用polyline链接。

看,貌似结果还不错。可是这样真的好吗...真的对吗...你真的比我还帅吗...
我们在做任何操作之前,一定要记住,保存加看数据结构。参数化设计和参数是离不开的,参数的数据类型也是很重要的。我们先来看一下正确的(理智)做法:



我们再来对比一下我们的。用一个曲线上点的控制器,连上拖拽一下,你会看到曲面上的所有点。这个点会转一圈。BOOM!重叠了发现了吗?


这样直接连接的结果是我们生成的不是横向的线(尽管看起来是,如同我剧照上的女演员永远是那么美)可实际呢?实际是一百个小方块。那么按照正确的做法,分别将所有点生成线,只需要横竖11+11=22条线。这样你的模型会更节省资源。



我们换种说法,刚才那样的方法就相当于给平面生墙,前者是每一个平面生墙以后在堆叠在一起,墙和墙会重叠尽管最后也是长得一样。后者是直接用轴线生成了片墙,除了横竖交接的地方永远都只是一面墙。当然这个方法也适用于快速生墙,如下图。



接下来我们在上边的面寻找边角点,也做出来横向的杆件。但是我出现了错误。



仔细检查发现是surface的输入端出现了问题。这里有一个知识点,当面(brep)被炸开了以后,F对应的是面,这个面是face,和surface不一样,是一个没有边的面,请自行理解。对于一个没有边线的face来说,是无法进行point to surface的。我们改变一下输入端。让边线edge的元素进来。

接下来我们用中心点生成上边的面。由中点生成的上边的面要比下边的面uv方向各少一个单位。需要说明的是,由于gh升级了,重新定义了表达的方法。我们必须输入x-1.这一点可以在详细的说明中看到接入端名称。




生成了上边的面,数据类型完全一样。


需要说明的是 如果这时候你发现在之前的点和面不吻合,记得吧布尔值设置一下。

按理说我们就可以直接像下头的面一样生杆件了,但是我也出现了点和中点不对应的情况。



因此我们用ncf的小技巧,直接把点投影到中点上。

用一个向量display可以清楚地看出来点的位移。


这时候有人会问,哎呀中点生面面生点在挪到中点你烦不烦啊干嘛不直接用中点polyline生个横杆?
各位可以试一下。该死的寄托总是提醒我图片过大,哎,截图都发不上来。
看到了吗?因为所有点的顺序是连着的,所以点会出现首尾相连的情况。
接下来我们要进行链接了,好习惯,先看一下数据结构是否正确。

(他奶奶的连错了又卡死了,重新来过吧。提醒各位,在C 用户 你的名字 appdata roaming mcneel rhino 5.0 autosave和grasshopper autosave有自动保存的文件,大家可以应对卡死,或者经常清理一下免得占用太多地方。我一个带环境的模型五百多M你敢信?... )

接下来的工作就很简单了我就不截图了(主要是因为刚卡死,现在重新进去拾取surface太卡)。找到中点的控制器,生个节点球玩儿,再把面相应加个厚度,再把线pipe生成管,你就可以做属于你自己的任意曲面的桁架了。相比较来说这个运算器命令少点,算是个简化版?

最后一点要说明的是,由于生成pipe,光滑的曲面太耗资源,大家可以按照需求生成方形的管。方法如下。




把extrude以后的东西给补上来

附件: 你需要登录才可以下载或查看附件。没有帐号?立即注册
出国的同仁们,加油啦!
回应
3

使用道具 举报

RE: 【By DanielJin】由浅入深学Grasshopper 中级01 [修改]
您需要登录后才可以回帖 登录 | 立即注册

问答
Offer
投票
面经
最新
精华
转发
转发该帖子
【By DanielJin】由浅入深学Grasshopper 中级01
https://bbs.gter.net/thread-1754802-1-1.html
复制链接
发送
报offer 祈福 爆照
回顶部