在线试读

get_product_contenthtml

第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  圆圈被挤压出高度