当前课程知识点:Grasshopper参数化设计与建模 >  第六章 Grasshopper数据结构(二) >  6.2 案例:2016年BIG事务所蛇形画廊 >  6.2.2

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

6.2.2在线视频

6.2.2

下一节:6.3.1

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

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

这样分出来的两组点

它们就可以分别在两个曲面上

去形成我们所需要的方管子

下面我们让这些点

让它去变成一个可以去跟

前后曲面做相交的一根直线

我们可以用射线line

但是这是SDL这种线

这个就是射线

那么它有一个起点

那么这个起点应该是这个线的起点

我们在这里稍微调整一下战略

在这里我们是将点做了一个

分成两组的操作

我们现在是希望能够先生成交线

生成一些射线让它去跟曲面相交

然后再把它们分成前后的两组点

在这里我们得到了一个小的线段

实际上它应该是沿着y的方向

同时我们给它一个比较长的长度

比如说100

100有点大了

给它一个50的长度

长度应该在底下

所以在这里我们就不需要它了

不需要这个连接了

我们有一个50这么长的一个

一系列的射线

然后我们把这些线再往回

就是往回再move一点距离

还是沿y的方向

输入-25 这不行

我们输入25

然后在这里输入公式-x

然后把这里的预览关掉

我们就会得到很多的线

这些线是可以分两个曲面相交的

我们现在把这些线

用dispatch做一个划分

这边划分完了后

就变成了两组线而不是两组点

所以我们又要用curve

我们看一下这是其中一组线

这是其中的另外一组线

现在看起来虽然不是很清晰但是

我们现在可以用这些曲线

分别跟前面生成的两个曲面做交点

我们在这里intersect 里面

去找曲线跟面的交点

那么当然在这里

我们可以把两个曲面同时输入到

这里的surface底下去

然后我们把这边的curve输入过来

这里看起来有点问题

我们处理一下

这里输出的是两个brep

就是由多个曲面组合成的曲面

所以我们先把前面这些预览都关了

然后我们再看一下这个曲面

它确实由两个曲面组合而成的

因为rhino建模精度的原因

它认为用两个曲面组合而成

这样一个面

这样一个brep是更合理的

所以我们这要改变一下

我们使用的相交的计算器

就是用brep和curve去做相交

那么这样这个运算器就可以不要了

我们看到这样得到的结果

就是比较好的一个结果

同样我们也可以让Brep

去和另外一组线去相交

当然现在这两组线

都交到同一个面上了

我们看到这里

又出现了数据结构的问题

好 那么我们怎么来做这个转换呢

在这里的数据结构我们思考一下

其实在这里应该是

有很多条线去跟两个曲面相交

那么我们可以说是一个多对二的关系

我们要把它梳理到

我们熟悉的多对一的关系

才是比较合理的状态

在这里我们可以先把

这两个运算器先把它给禁用了

为什么要禁用呢

因为有可能我们在组合数据关系的时候

会变成很复杂的一个数据组合的关系

有可能运算量会非常之大

会导致Grasshopper

很长时间没有响应好像死机一样

所以在这里把它们先禁用

然后我们把数据结构整理清楚后

再把它们恢复

这里这么多线呢

其实我们并不介意

它的数据结构是什么

所以我们可以在这里先做一个Flatten

经过Flatten以后

这里输入的Curve呢

就是一共1365条Curve

那么我们现在希望这1365条Curve

去跟这里的两根线做一个相交

因为这两根线现在分配在不同路径上

所以这些线会分别跟这两个Brep相交

我们试一下把它启用

启用以后会得到这样的点阵

我们最后得到的点是这样一个关系

那么我们也可以换一个思路

这个思路是说我们可以还是把它禁用

我们也可以在这里

对这些Curve进行一个Graft

当然要先对它做一个Flatten

然后再做Graft

我们得到的数据结构看一下它是

每一根线都分配在一个独立的

list里面有独立的路径

每条线都有一个独立的路径

那么让它去跟这边的

Surface去做相交的时候

可以把Surface本身进行Flatten

让这两个Surface

放在同一个路径底下

这样的话就是

每个路径底下的一条Curve

都会去跟两个曲面做相交

从而得到两个交点

我们启用它

然后看一下这里得到的结果

我接错了 应该看的是这个P

就是这些点

所以我们看到在这边得到的

我们说得到的交点呢会分布在

其实还是每个路径上只有一个交点

但是在数据路径的最后一维

又增加了一个数就是0和1

这个0和1实际上是分别针对

两个曲面得到的交点

我们在这儿看到

Grasshopper在做一些运算的时候

会主动给我们增加数据路径的维度

或者说使数据路径区分更加清晰

那么这也是

在编写Grasshopper的时候

开发人员考虑到大家使用的方便

给大家增加多一个维度的信息

当然这个信息在我们这儿是没有用的

所以我们用一个Path Mapper

然后我们Create NullMapping

把最后一维删掉

我们这里希望得到的是

两个点在同一个路径上

所以得到的是这样一个结果

两个点在同一个路径上

有了这样一个结果以后我们可以说

相当于我们在

这个方向上作了一千多条线

那么这些线跟两个曲面都有交点

这些交点有的在前有的在后

那么它们现在是分布在不同的路径上

就相当于每根直线是一个路径

两个交点分布在这个

路径底下的list里面

下面我们只要对这两个交点

把它的xyz分解开

然后去按照y坐标做一个排序

SORT LIST

我们按照Y坐标去做排序

那么排序的时候呢我们前面讲

排序没有讲到

在排序的这个SORT运算器底下

还有一个A的输入

这个A的输入是说

当我按照K

这里输入的数据去做排序的时候

A这里我还可以输入一组数据

那么这组数据呢

就会被动地按照K

在排序时调整顺序的这种规则

去对A的顺序也做调整

所以

如果我们在这里把点接上去

那么也就是说起到的作用是

把这里A的输入的这些点

按照它的Y坐标

因为它的Y坐标是从这些点来的

按照它的Y坐标进行排序

那么我们得到的结果

我们取LIST ITEM

我们把这里排序得到的点

取它的第0项

就会得到只跟这个面相交的

或者说Y值相对较小的这些交点

同样道理

我们可以对另外一组交点

或者说另外一组穿插的线

做同样的操作

我们在这里做FLATTEN

然后再做GRAFT

把它启用

然后把这些复制一遍

然后注意在这里

我们希望得到的另一组点是在

这边这侧的曲面上

我们在这里把ITEM的

编号从0改成1

这个就是我们想要的一前一后两组点

这两组点是分开的

它是有一个位置上的错动关系

我们把这些不需要看的

运算器的预览关掉

我们看一下

我们再局部看一下

它的关系是错动开的

实际上在这里编程的时候

我们可以其实可以把这里的曲面

把它分成用LIST ITEM

取到它的第0个和第1个

这里改成1

取到第0个和第1 个

那么让这两个曲面

分别去跟这里的两组曲线做交点

那么就不需要用到这些复杂的

数据结构的运算了

当然在这里我们是想用这个案例

来给大家讲解一下

关于数据结构的一些应用

所以也算给大家一个练习

我们有了这些点以后

就可以用它们去画钢管的方形截面

这个截面呢

我们需要先

CONSTRUCT 一个FRAME

一个局部坐标系

CONSTRUCT PLAIN

那么它的原点呢

我们现在可以把这两组数据列

把这两组数据MERGE在一起

这个时候已经不需要考虑它们的区别了

现在我可以去基于它的原点

然后根据它的X和Y

这个X现在我们就用X方向

Y呢用Z方向

就会得到这样一些方向的局部坐标系

然后我们在CURVE底下

使用RECTANGLE

就是在平面上生成一个

RECTANGLE的方式

给它这些点

然后呢去设定它的X坐标

我们说让它的X坐标

看一下这个空间关系

这个我们可以先不看

把它预览关掉

所以这个时候的X坐标可是说它是

SET DOMAIN

从-0.4到0

然后Y坐标也是一样

-0.4到0

然后把它的预览打开

就得到了很多方框

然后我们再对这些方框

做一个EXTRUDE

EXTRUDE CURVE

让它的DIRECTION沿Y方向

稍等一下 程序有点反应慢

这样就生成了很多方形截面的管子

我们可以把前面的一些预览都关掉

这时候曲面也不需要看了

我们就会看到得到了

这样一个交错关系的方管子

那最后我们呢需要给这个方管子

一个具体的长度

这个长度其实它是不同的

因为实际上它们距离中心线越远的

那么这个管子呢会越长

距离这个中心线比较近的呢

这个管子就会比较短

我们现在来对这样一个操作

对这样一个性质做一个编程

所以在这里对于每一个点来讲

都会有不同的长度

我们要从这里输入不同的长度

比如说

我们是不是可以

对于刚才得到的这些点的坐标

分解出它的XYZ的大小

然后根据Y的长度来生成一个

它的这个方管的长度呢

当然这里我们看到其实是有效果的

那么这个方管但是它太长了

那么我们的grasshopper在

当然大家看到

grasshopper在运行的时候

突然它的界面消失了

那么这个时候你可以

就像我刚才做的

在顶上的这个位置呢双击一下

那么就会找回grasshopper的界面

好 那么这个时候这个运算器变红了

它为什么会变红呢

是因为我们有些点实际上它就正好在

这个X轴上所以我们分解开

得到的Y的长度是0

那么就无法做这个extrude的操作

所以就出错了

那么实际上在蛇形画廊的设计里头

这样的每一个盒子都有最小长度

所以我们也给它一个最小的长度

比如说还是0.4

然后让它在这里跟Y的坐标相加

去替换一下

就会得到

这边的运算器就会正常运转了

不会出现红色

那么我们说最边缘的这些盒子

也有一个厚度

那么当然现在这个长度呢

这个方管的长度呢还是有点太长

所以我们可以在这里

给它一个multiplication 乘法

给它乘以一个系数

然后再去做相加

那么看起来就更合理一些了

当然大家也可以

这样我们还是

找回grasshopper的界面

然后把它调到0.2

也许是更像

这个BIG的一个设计的一种参数

好 那么这个案例我们就基本做完了

我们把前面不需要看的

这些预览都把它关掉

好 这里还是有点问题大家看到

这个问题是说

我们在做extrude的时候呢

那么在-Y的这个方向

Y小于零的这个方向呢

那么它的extrude的一个长度呢

是一个负值

这个负值如果跟

我们的0.4去相加的时候呢

它就有可能从负变正

所以有一些盒子的大小就

它的长度就会很奇怪

我们在这呢

做一个absolute value

在math底下有绝对值的操作

绝对值的运算

Absolute

看一下它在什么地方

在这里那么我们这个

把它的长度取一个绝对值

然后再输入过来

大家看这样就不会有问题了

这样的设计就是程序的运转结果

就是一个比较理想的状态

总结一下这个案例的步骤,首先

输入轮廓线

并进行处理

形成曲面形态

第二点,使用Series、Dispatch

生成两组点阵

作为生成矩形形体的基础

第三点

使用点阵生成直线

与轮廓曲面相交

第四点

使用PathMapper、Sort

处理点阵的数据结构

最后一点

以分布在曲面上的点阵为基础

生成矩形,挤出形体,并进一步调整

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物理模拟--第九章习题

期末作业

-期末作业: 综合运用

--期末大作业

6.2.2笔记与讨论

也许你还感兴趣的课程:

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