第3章 功能和控制
内容提要:
* 在表格中创建多重物体
* 使用数学功能绘制曲线
* 控制和表格
* 变换操作
* 形状图表
在Grasshopper中,对模型的编辑和控制是至关重要的一个环节,通过各种控制运算器,可以使模型产生极为丰富的变化。本章将讲解各种控制编辑模型的技法,包括对多重对象的控制、对曲线的控制、对列表的控制等。
3.1 在表格中创建多重物体
采用Panel列表同时控制多个对象的属性,高效率地编辑模型,这也是参数化建模相对于手工建模的优势所在。
3.1.1 创建系列圆
打开GH,在工作区创建3个运算器,分别是Curve(曲线)标签面板中的Circle(圆),Params(参数)标签面板的Panel(面板)和Sets(设置)标签面板的Series(系列),如图3-1所示。
图3-1 创建3个运算器
工作区中将出现3个运算器的图标,移动3个图标,将它们从左至右排列,视图中的原点位置将出现一个半径为默认值1的圆,如图3-2所示。
在GH工作区,将Series运算器与Panel运算器相连接,将Panel运算器与Circle运算器的R(半径)端口相连接,视图中将生成10个圆,半径从0到9,如图3-3所示。
图3-2 视图中出现一个圆
图3-3 连接运算器产生系列圆
3.1.2 改变系列圆的起点
目前,系列圆的起点半径是0,这个圆是没有意义的,用户可以将其更改为从半径1开始。在Series运算器图标左侧右击,在弹出的快捷菜单中选择Set Multiple Numbers命令,在弹出的对话框中,将原来的0作为起点,更改为1,后单击对话框下方的Commit changes结束设置。Panel运算器中的系列圆半径从1.0开始,如图3-4所示。
图3-4 更改系列圆的起点半径
3.1.3 显示系列圆的信息
再创建一个Panel运算器,放置到Cir运算器的右侧。将Cir运算器的C端口与新建Panel相连接,Panel运算器上将显示系列圆的信息,如图3-5所示。
括弧中的“R: 1.00 mm”的含义为“圆的半径是1毫米”。其单位由系统设置决定。
图3-5 系列圆的半径
3.1.4 动态改变系列圆的半径
在工作区创建一个Panel运算器和Slider运算器。
将Panel运算器的数值设置为1,将其与Series运算器的S(Start)端口相连接。
将Slider运算器与Series运算器的N(Step N)端口相连接。连接完成后,前者的名称将变更为Step,如图3-6所示。
图3-6 再创建两个运算器
接下来用户可以拖动Step运算器中的滑块,动态改变系列圆的半径。
Panel运算器的参数将决定系列圆半径的起点,如果设置为2,则系列圆半径的起点将变更为2,如图3-7所示,其余以此类推即可。
图3-7 改变系列圆的起点半径
3.2 创建系列直线段
本节介绍采用参数化方法绘制系列直线以及编辑直线形态的方法。将讲解使用Range运算器改变系列直线排列方式,加法运算器Addition产生阶梯上升效果,和Reverse List运算器产生扭曲效果的方法。
3.2.1 直线的创建
新建GH,在工作区创建3个运算器,分别是Curve标签面板中的Line(线)运算器(如图3-8所示)和两个Pt(Construct Point)运算器。
图3-8 Line运算器
将两个Pt运算器分别与于Line运算器的A、B端口进行连接,结果如图3-9所示。
图3-9 Line运算器的连接
创建一个Series运算器,将它的S输出端口与两个Pt运算器的X轴端口连接起来,如图3-10所示。
图3-10 创建Series运算器
3.2.2 创建系列直线
创建两个Panel运算器,数字分别设置为1和10。分别连接到两个Pt运算器的Y轴输入端口,如图3-11所示。
图3-11 创建Y轴的输入
视图中将出现10条直线,每条线的Y轴向上的坐标为(1,10),每条线的X轴方向间距是1,如图3-12所示。
图3-12 创建10条直线
3.2.3 Range运算器的功用
在Sets标签面板的下拉菜单中,加载Range(范围)运算器到工作区。该运算器用于产生一个数字的变化范围,如图3-13所示。
图3-13 Range运算器的位置
如果将光标放置到Range运算器右侧的R(Range)字母上,将会出现一个Range(R) as list面板,显示其默认的参数范围,从0.0到1.0,如图3-14所示。
图3-14 显示运算器取值范围
将Range右侧的R端口与Pt运算器的Z轴端口相连接,如图3-15所示。
视图中的系列直线的Z轴坐标将呈现从低到高的坡状排列,Z轴坐标从0到1排列,如图3-16所示。
图3-15 Range运算器的连接
图3-16 直线的Z轴坐标
创建一个Panel运算器,将其与Range运算器的R端口建立连接,Panel面板中将显示Range运算器的取值范围,如图3-17所示。
图3-17 创建一个Panel运算器
3.2.4 动态系列线的设置
在工作区中Series运算器的左侧创建一个Slider运算器,双击左侧的运算器名称,打开Slider对话框,设置其N的取值范围为2~20,如图3-18所示。
图3-18 Slider运算器的设置
将Slider运算器分别与Range的N端口和Series的C端口连接起来,运算器的名称也变更为Count,如图3-19所示。
图3-19 Slider运算器的连接
拖动滑块可动态创建系列直线,如图3-20所示。
图3-20 动态创建系列直线
图3-20 动态创建系列直线(续)
3.2.5 Addition运算器
在Maths标签面板中拖动Addition(加法)运算器到工作区,创建A B图标。该运算器用于加法运算,如图3-21所示。
图3-21 创建Addition运算器
将Slider运算器与Addition的A端口相连接,再将Addition运算器的R端口与Series运算器的C端口相连接,原来的Slider与Series的连接将自动断开,如图3-22所示。
图3-22 Addition运算器的连接
在Maths标签面板中,将Construct Domain(构建数字域)按钮拖动到工作区,创建Dom运算器,将Dom右侧的I端口与Range的D端口相连接。再创建一个Panel运算器,参数设为1,将其与Addition运算器的B端口连接起来,如图3-23所示。
图3-23 创建两个运算器
再创建一个Slider运算器,将其取值范围设置为0~20,将其与Dom的B端口连接起来。该运算器的名称将变更为Domain end,如图3-24所示。
图3-24 创建新的滑块运算器
拖动滑块,系列直线将产生坡度大小的变化,如图3-25所示。
图3-25 Dom运算器控制坡度
图3-25 Dom运算器控制坡度(续)
3.2.6 设置扭曲效果
在Sets标签面板,将Reverse List运算器拖动到工作区,创建Rev运算器图标;该运算器用于翻转列表中的数据。
将Rev运算器的L端口与Range的R端口连接,将L端口与Pt的Z端口相连接,如图3-26所示。
图3-26 加载Reverse运算器
视图中的系列线将呈现相互翻转的扭曲效果,如图3-27所示。
图3-27 系列线的扭曲效果
3.3 使用数学功能绘制曲线
本节将讲解一个采用数学运算器创建正弦曲线的案例。
3.3.1 创建曲线分布顶点
在Maths标签面板,将Evaluate(评估)拖动到工作区,创建一个Eval运算器,如图3-28所示。该运算器用于评估表达式和变量。
图3-28 Evaluate运算器
再创建一个Range和两个Panel运算器。在一个Panel运算器中输入表达式sin(x),将这个Panel运算器与Eval的F端口相连接。另一个Panel运算器与Eval的r端口相连接。Range的R端口与Eval运算器的x端口相连接,结果如图3-29所示。
图3-29 创建Panel运算器
创建一个Domain运算器和两个Panel运算器,将Dom的I端口与Range的D端口相连接。将两个Panel运算器设置为10和-10,并分别于Dom的A和B端口相连接,如图3-30所示。
创建一个Pt运算器,将Range运算器的R端口与Pt的X端口连接起来。Eval的r端口与Pt运算器的Y端口连接起来。视图中将出现一组呈曲线排列的点,如图3-31所示。
图3-30 创建Dom运算器
图3-31 呈曲线排列的点
3.3.2 创建正弦曲线
在Curve标签面板,拖动Interpolate(t)到工作区,创建一个IntCrv(t)运算器图标。该运算器用于创建与系列点相切的插值曲线,如图3-32所示。
图3-32 Interpolate运算器
将Pt的右侧端口与IntCrv(t)运算器的V端口相连接,视图中将出现正弦曲线,如图3-33所示。
图3-33 形成正弦曲线
创建一个Slider运算器,将其取值范围设定为5~100。将其与Range的N端口相连接,如图3-34所示。
图3-34 创建Slider运算器
拖动滑块可动态改变正弦曲线上的顶点数量,点越多,曲线越光滑,如图3-35所示。
图3-35 动态控制顶点数量
3.4 控制和表格
3.4.1 创建系列圆
新建GH,在工作区创建3个运算器,分别是Cir、Pt和Series。
将Pt右侧端口与Cir的P端口相连接。
将Series右侧的S端口与Pt的X端口相连接,如图3-36所示。
图3-36 Pt运算器的连接
视图中出现了一串10个圆,如图3-37所示。
图3-37 创建10个圆
创建两个Panel运算器,分别设置为3和5;将取值为3的运算器与Series的N端口相连接;取值为5的运算器与Series的C端口相连接。视图中出现5个圆,间距为3,如图3-38所示。
图3-38 创建5个圆
3.4.2 圆圈的挤压
在Surface(表面)标签面板,将Extrude(挤出)运算器拖动到工作区,创建Extr图标。该运算器用于将平面线框挤压形成管状物体。
在Vector(矢量)标签面板,将Unit Z运算器拖动到工作区,创建Z图标,如图3-39所示。
图3-39 Unit Z运算器
将Cir运算器的C端口与Extr运算器的B端口相连接。Z运算器的V端口与Extr运算器的D端口相连接,如图3-40所示。
图3-40 Extr运算器的连接
视图中的5个圆产生了Z轴挤压效果,形成了5个圆管,圆管的高度为1,如图3-41所示。
图3-41 圆圈被挤压出高度