当前课程知识点:Grasshopper参数化设计与建模 >  第五章 Nurbs曲线与曲面建模 >  5.7 案例:鸟巢表皮钢结构 >  5.7.2

返回《Grasshopper参数化设计与建模》慕课在线视频课程列表

5.7.2在线视频

5.7.2

下一节:6.1.1

返回《Grasshopper参数化设计与建模》慕课在线视频列表

5.7.2课程教案、知识点、字幕

那么现在我们用

面和面相交的这种方式呢

是比较适合我们这个案例的

下面我们首先要对

要生成这个相交曲面的话

我们首先要对我们得到的这些

在平面上的这些线呢要做一个延伸

因为大家注意到鸟巢它是

它是这种下面小上面大的这种曲面

所以我们如果要跟整个曲面要相交的话

那么这条线要做一个延伸才可以

我们用scale去延伸每一条曲线

这条曲线

然后它要有一个延伸的一个基准点

这个基准点在实际上就在这个它的A点

或者说它的起点

然后给它一个factor

1.2 1.2应该够

我们看到经过延伸以后

我们从顶视图上来看一下

这些线就跟整个曲面都会

在各个方向都会有相交

同样我们对这样一组曲线也做一个延伸

因为它的起点也是一样的

所以就直接得到了这样的结果

下面我们要做的事情是

把这些曲线在z方向做一个挤出

surface底下我们有extrude 挤出

那么基本的曲线以及它的deraction

沿Z方向

我们给它一个一百的高度

这样就挤出了很多的曲面

这些曲面呢会去跟鸟巢的

基本曲面去做相交

那么这里我们从输入

这是我们输入的基本曲面

在输入这边的截面

所以我们就得到了很多的这个截面线

现在有很多的东西我们都可以不看了

把它们都关掉

这就是我们得到的鸟巢的一个基本的曲线

在得到这些基本的钢结构的曲线以后

下一步要做的事情就是

怎么给这些曲线加上一些方的管子

我们试一下直接加的方式行不行

比如说这里得到的曲线

我们先找到curve fram

然后在这个frame上我们去做curve

做截面线

用这个rectangle

然后得到这些截面

方向是不对的

如果我们对这个截面

对frame的基本方向做一个拆解

然后重新组合成另外的frame

原点还是一样的

看一下它的

X方向还是一样的

Y方向用Z

或者这样换一下 看起来比较好

那么就得到了跟线垂直的frame

我们把这个frame接到基本曲面上去

我们就得到了很多的截面的方框

这个方框我们可以定义一下它的大小

就是XY 的大小

根据鸟巢的尺度呢都是1.2

或者说是0.6的尺度

这个0.6是怎么来的呢

我们要组合成一个domain

实际上鸟巢的钢柱都是一米二乘一米二

所以我们用组合domain的方法

这里设一个-X 得到从-6到+6

然后给X给Y

然后我们把这样一些方形截面

把它用sweep1组合在一起

这个地方需要一个rail

这条rail就是我们的曲线

这边的这个截面线就是section line

大家看一下这时候我们就得到了

一个钢结构的形态

但是看起来并不太好

首先这个钢结构会出现扭转的问题

其次在很多的地方

按理说钢结构表面的方向应该跟

最原始的曲面的方向是一致的是平行的

但是现在它有些扭转

说明我们直接用曲线的一些参数去做

钢结构的时候

会出现一些问题

需要想别的办法

那这个别的办法是什么呢

就是我们要考虑到这个曲面

主曲面对钢结构方向的

方管子方向的影响

因此我们在这里要把这个曲面的信息

也拿过来来确定这个钢管的方向

我们在这里输入一个surface

把这个数据做一个接力

这样的话我们在做计算的时候

grasshopper程序会看起来会清晰一点

它本质上不会有一个大的差别

我们把它其实这个地方也可以替换掉

因为是同样的

我们用了这个surface以后

大家注意到

其实我们可以在这把这部分删掉

我们有了这些曲线以后

我们把它暂时先断开连接

有这些曲线以后我们可以evaluate

通过evaluate curve的方式

输入一系列的参数

那么在这可以对所有的参数做一个

reparametrize

在这边根据我们的需要输入

比如20个点

点密一些

得到了一系列的点和在这些点上的切线方向

那么为了要在这个线上

生成一系列的截面

而这个截面呢是刚才我们说

既考虑了这个线的延展方向

也要考虑曲面的方向

我们在这里需要用到曲面的法线方向

这里就会用到一个叫做closest point的

叫CP closest point

closest point在

grasshopper里面

是一个非常非常重要的概念

这个呢是跟rhino这样一种

曲线曲面建模的数学模型相关的

当然我们现在先不要把这个事情

考虑那么细

我们看到在grasshopper里面

我们有非常非常多的closest point

这些在我们后面的建模当中都会非常常用

现在我们用一个叫做

surface closest point

它会求一个最近点 什么样的最近点呢

我们给它一个点 任意的给一个点

然后再给一个surface

那么这个时候呢就会求出来

在这个surface这个曲面上

那么这个点在曲面上离它最近的那个点

或者说也可以理解为这个点

在这个曲面上的垂足点

垂足点也就是它的最近点

那么大家说

唉 这个我们为什么要用这种方式呢

因为实际上我们知道这些线

它是用曲面相交的方式得到的

所以这个线肯定在这个曲面上

而我们又把这

在这个曲线上求得了这一系列的点

所以我们能够保证这些点

都在这个曲面上

这时候我为什么还要去求它的最近点

这个点不就是它自己吗

确实是这样

但是closest point给我们

输出的除了这个点以外

还输出了它的UV坐标

这个点在这个曲面上的UV坐标

那么有了这个UV坐标以后

下面我们就可以去做一个

evaluate evaluate surface

我们前面用过一点

但是没有仔细去看它的内容

evaluate surface

当我们把surface给它

把这边新的点

新得到的这些点都给了UV坐标

那么我们就会得到个normal

就是说它的在这些点位上的法线方向

在这些点位上的曲面的法线方向

我们可以display一下这些法线方向

那么现在看起来是这个不太清晰

我们可以把一些预览把它们关掉

再看看

这是在每一个点位上都会有一个曲面的

法线方向

好 我们把这些法线方向现在就可以

重新组合出一个给它用的一个Frame

那么这个fRAMe

这个O呢就是我们的原始的这个点

这个点我们可以从这来从这来从这都可以

我们还是用最初的这个信息

那么它的X是什么呢

我们知道它的X是

这里还不能直接用

不能直接用就是因为

我们需要的是一个垂直于

这条线的一个frame

那么这个时候呢这个frame呢要求它的

一个方向是我们得到的法线方向 没错

另外一个方向呢应该是

一个这条曲线的切线和曲面的法线方向

作叉积以后得到的侧向的

这个方向的一个向量

我们用cross product

那么这里我们输入

一个是它的切线方向

曲线的切线方向

一个是曲面的法线方向

然后就得到了输出的这个V

这个V呢是它的

我们可以看一下这个V是什么

那么它就是一个沿着曲面

或者我们说

是跟曲线的切线方向相垂直

的这样一个向量

我们把这个向量呢接到X上面去

那这样呢我们就得到了

一系列的Frame或者说局部坐标系

同时前面这个信息也接着用上

那么我们在这里得到了一系列的方框

然后把这些方框呢用一个rail

用这些curve做rail

然后做13:23

就会得到我们想要的这个钢结构的

钢管的这个模型

我们在这儿呢可以选中它我们看一下

它跟这个曲面的关系呢就是平行的

这个表面跟曲面的关系就是平行的

然后也不会有扭转的问题

那么做到这样的效果

是因为我们既使用了曲线的方向的信息

也使用了曲面的方向的信息

所以才能够得到这样的效果

那么我们对这个程序再做一个简单的整理

注意到实际上在鸟巢里头我们说

内圈的这个曲线它也应该是有一根

钢结构把所有的构件连接在一起

所以我们在这里把程序整理一下

也就是说我们应该有一个curve的运算器

把这边的曲线以及这边得到的我们说

内圈的这条线能够把它们俩结合在一起

然后要做一个reparametenize

把它准备好

跟这边的结构是一样的

这儿还要做一个

这里的数据结构稍微有点复杂

还是这样说我们会在后面的

关于数据结构的介绍里头做更深入的说明

大家在这只要跟着我来做就好

我们在这做了flatten

把所有数据flatten以后

在右边再做一个graft

这两不能同时做的话

我们就在这做一个flatten

然后后面加入一个graft的运算器

然后有了这个结果以后

把从这里输出的

这些数据的连接都把它替换掉

这变红了

注意到其实我们在这里输入的那个曲线

它看起来不是在这个曲面的边缘

而是在底下投影的这条曲线

所以我们找一下

我们接过来的这个数据

它是从哪里来经过投影的数据

所以实际上应该是在投影之前的这个数据

所以我们用一个list item

但是我们从这里找到

能得到的就应该是一个看一下预览

那么它就应该是

这个曲面边缘的这条曲线

好 我们把它在这里接进去

然后再把底下的数

按住shift把它们一起都接进来

现在看起来这个程序还是有问题

好 那么检查了一下

这个问题是什么呢

是因为我们在这里最后加进去的这条curve

就是这个曲面边缘的这条curve

最顶上开洞这个地方的这条curve

它是一个periodic curve

是一个周期性的封闭的曲线

所以我们在这边做的一系列的操作

那么实际上会导致

因为我们这里用的是range的方式

那么就会导致在这个曲线在转了一圈以后

在最后这个点上

那么或者说它的起点和终点都在这里的话

那么这里会有两个矩形

两个矩形都重叠在一起

那么这个时候呢

它就不知道该如何做操作了

但实际上对于如果不是封闭的曲线的话

那么它两端是必须得有

这个section curve

这样才能够很好地得到这个结果

那么所以呢看起来我们不得不对

这种封闭的曲线和开放的曲线

用不同的编程策略来实现

那么这呢我们就需要做的事情是

把这里的程序

把这边的这个程序整个都复制一份

把它挪到上面去

或者挪到下面来吧

然后对程序进行调整

这里的我们说在组合之前的这个curve呢

我们就可以直接的给上面这部分的程序

然后让它正常的运转

然后对于我们说这里输入过来的

另外一个curve

我们用一个curve运算器把它接过来

然后在下面

它需要能够输入到这里的curve

以及这里的rail

那么这里的curve看起来它还有一点问题

那么是因为在这儿呢我们是需要

对它做一个reparameterize

那看到这边的结果它变红了

是因为我们需要对它做一个特别的操作

就是删掉其中重叠的那一个截面的矩形

我们用原来我们用过的方法

就是用cull index

那么在这里把我们的

所有的section curve全都从这里输入

然后去掉它的第零个

设定它的第零个

然后接到section line上面去

那么最后得到的结果

就是我们需要的这样一个结果

那么我们对这个程序的layout

稍微做一个整理

好 那么这个程序经过整理以后

我们看到它的这个逻辑关系会清晰一些

在这里我们把

我们输入的这个curve分成了两个分支

一个是在上面走的这些个截面线

另外一个是这个边缘的这条封闭的曲线

那么让它们经过了不同的过程

其实这个过程最重要的区别就是在这里

对于这种封闭曲线我们要把它

其中的第一个或者最后一个截面

要把它去掉

这样才能顺利地做出sweep的结果

那么当然在这儿

我们也可以另外一个思路

我们是可以把这些curve

先把它们都拿到一起来

比如说这边的这条curve

就是这条边缘的curve

和我们这边求得的这些交线

先把它们都组合在一起

做一个flatten

然后再做graft

在做graft以后

得到这边的49条曲线

但这49条曲线我们可以测试一下

有一个叫做closed

这是一个判断的用来做判断的一个运算器

把curve给它

它会来判断说到底哪些曲线它是封闭的

哪些曲线不是封闭的

也就是说我们这里正好要在上下两边要去

有不同的这个处理

你看到第零条曲线它是true

也就是实际上就是我们这个

这个环形的这个钢梁

那么有了这个以后呢

我们就可以用到前面的dispatch

用dispatch的运算器

把这个curve

在这边经过graft以后

得到的这个curve拿过来

然后把这边的pattern给它

那么对于这种closed curve

那么我们就让它接到下面去

然后对于这种不是closed curve

我们就把它接到上面去

这个是我们用到的这个曲面的信息

可以把它摆在一边

把这个程序也是对它进行一个整理

那么这样的话呢我们就不必担心说

我们在这个做这个表皮的时候

如果遇到了比如说是封闭曲线

但是我们没有意识到它是一条封闭曲线

导致程序出错的这种可能性

但是大家在去看这个鸟巢的时候呢

看真实的鸟巢的时候会发现

其实鸟巢里头的钢结构

比我们现在做的这个模型要复杂很多

那么其实我们在这里建模的逻辑

是希望能够实现鸟巢里面

主要受力的钢结构的建模

但是鸟巢为了实现它这种

杂乱的或者说看不出规律的这种立面的效果

表皮的效果呢

它增加了很多其他方向的这个钢结构

而这些钢结构呢不一定起很重要的结构作用

但是它在视觉上是为了要跟

这样的主要的钢结构混在一起

产生这种混乱的自由的

或者说没有规律的效果

那么为了实现这样的效果呢

我们是可以再去做一些

我在这里已经做了几个

做一些平面

这个可以说是比较乱的这些平面

然后让这些平面呢

去跟我们的这个基本的这个

鸟巢的形态的主曲面去做相交

所以我们可以在这里surface

set multiple surface

我们把这些surface是把它选中

在这里模型里我们就可以不去看它了

那么把这些surface呢

然后我们用intersect

两个surface去相交的办法

得到这些交线

来看到这些交线

然后我们把这些交线呢

现在就比较简单

我们可以把它一起都汇聚到

这个运算器上去

现在把它们都关了 预览都关掉

那么在这儿我们还缺一步

就是对这个交线做reparametenize

那么就会得到一些个

其他的线钢结构的这个线

当然现在还不够

所以呢我们把这个作为一个练习

大家可以基于我们这个程序

然后再增加更多这种交线

就是或者说这种截面这种平面

然后去生成更多的交线

得到一个更加混乱和没有规律的

更像鸟巢的一个结果

这个作为我们的一个练习

总结一下本节案例的步骤

首先输入曲面轮廓

通过Divide Curve

Shift List、Extrude

面相交等一系列 操作

获取表面钢结构基本形态

第二步

通过曲面法向量

曲线切向量的积

获得钢结构方管的截面

并生成方形截面钢结构形体

第三步

使用Dispatch运算器

区分闭合曲线与非闭合曲线

并分别进行钢结构的生成

最后,我们还有一个课下的练习

就是在课上演示的基础上

添加新的斜向钢结构

Grasshopper参数化设计与建模课程列表:

第一章 参数化设计简介

-1.1 参数化设计简介

--1.1

--模型文件

第二章 Grasshopper简介

-2.1 Grasshopper简介

--2.1

-2.2 Grasshopper界面与基本操作

--2.2

-2.3 Bake与Internalize Data操作

--2.3

-第二章习题--作业

第三章 Grasshopper基本数据类型

-3.1 Math运算器

--3.1.1

-3.2 点与向量

--3.2.1

--3.2.2

-3.3 Grasshopper曲线运算器

--3.3.1

--3.3.2

-3.4 Grasshopper曲面运算器

--3.4.1

--3.4.2

-3.5 案例:水波

--3.5

-3.6 案例:螺旋曲面

--3.6

-第三章习题--作业

第四章 Grasshopper数据结构(一)

-4.1 Grasshopper数据结构基础

--4.1

-4.2 数据流匹配

--4.2

-4.3 Dispatch运算器

--4.3.1

--4.3.2

-4.4 案例:项链

--4.4.1

--4.4.2

--4.4.3

-第四章 Grasshopper数据结构(一)--第四章习题

第五章 Nurbs曲线与曲面建模

-5.1 Nurbs原理简介

--5.1

-5.2 Nurbs建模演示

--5.2

-5.3 Evaluate操作

--5.3

-5.4 由点建立曲线

--5.4

-5.5 Nurbs与向量

--5.5.1

--5.5.2

-5.6 案例:凤凰中心曲线环廊

--5.6.1

--5.6.2

-5.7 案例:鸟巢表皮钢结构

--5.7.1

--5.7.2

-第五章习题(一)--作业

-第五章 Nurbs曲线与曲面建模-- 第五章习题(二)

期中大作业

-期中作业:工艺品设计

--期中作业

第六章 Grasshopper数据结构(二)

-6.1 Grasshopper树状数据结构(1)

--6.1.1

--6.1.2

--6.1.3

-6.2 案例:2016年BIG事务所蛇形画廊

--6.2.1

--6.2.2

-6.3 Grasshopper参数化表皮

--6.3.1

--6.3.2

-6.4 案例:凤凰中心表皮结构

--6.4.1

--6.4.2

-第六章 Grasshopper数据结构(二)--第六章习题

第七章 Grasshopper建模技巧

-7.1 Image Sampler

--7.1.1

--7.1.2

-7.2 案例:望京soho表皮

--7.2

-7.3 Vironoi运算器

--7.3

-7.4 Metaball运算器

--7.4

-7.5 参数化设计在大型项目中的应用案例-“红飘带”景观装置

--7.5

--第七章 Grasshopper建模技巧--第七章习题

第八章 Mesh建模基础

-8.1 Mesh原理

--8.1

-8.2 SubDivision与银河Soho案例

--8.2

-8.3 地形建模

--8.3

-8.4 面板划分:以银河soho为例

--8.4.1

--8.4.2

-第八章 Mesh建模基础--第八章习题

第九章 Kangaroo物理模拟

-9.1 Kangaroo插件简介

--9.1

-9.2 悬链线

--9.2.1

--9.2.2

--9.2.3

--9.2.4

-9.3 张拉膜,充气膜与可受弯面

--9.3.1

--9.3.2

-9.4 CirclePacking

--9.4

-结语

--9.5

-第九章 Kangaroo物理模拟--第九章习题

期末作业

-期末作业: 综合运用

--期末大作业

5.7.2笔记与讨论

也许你还感兴趣的课程:

© 柠檬大学-慕课导航 课程版权归原始院校所有,
本网站仅通过互联网进行慕课课程索引,不提供在线课程学习和视频,请同学们点击报名到课程提供网站进行学习。