1.7 例题6:应用Dynamo绘制螺旋线

1.解题思路

如图1-57所示,控制螺旋线的主要参数有半径r、圈数n、螺距h;区别于例题5中圆形的绘制,螺旋线旋转的角度为360°×n,圆形中n=1,在螺旋线中n不一定为整数。螺旋线为三维空间曲线,其起点z坐标为零,终点z坐标为h×n,而例题5中圆形的z坐标均为零。

图1-57

2.知识点

● List. Count

● Code Block

● 创建自定义节点

3.例题详解

(1)绘制一圈螺旋线。利用例题5完成的节点进行修改。

首先需要三个Number Slider(数字滑块)节点来分别控制半径r、圈数n和螺距h。先从特殊情况开始讨论:暂定n=1,即旋转一圈的螺旋线。螺旋线旋转一圈为360°,在一圈中每间隔10的距离取点,总共取了37个点,如图1-58所示。

图1-58

共计37个点,即列表37项。

在List(列表)→Inspect(查询)中选择Count(列表项数),List.Count(列表项数)节点用来统计列表的个数,如图1-59所示。

图1-59

(2)获取已知点对应的z坐标值。螺旋线旋转一圈的总高度为一个螺距h,旋转n圈的总高度即为n×h。接下来找到这条螺旋线上平分的37个点的z坐标即可。

利用例题5中所讲的Code Block节点“起始值.. 终值.. #一共被平分的个数”即“0.. n∗h.. #a”便可解决问题,如图1-60所示。

图1-60

当然在Dynamo中也有创建螺旋线的节点ByAxis(Geometry→Helix→ByAxis),如图1-61所示,读者可以自行尝试绘制。

图1-61

(3)自定义节点。为了在后续的项目中方便调用,可以将上述完成的螺旋线节点打包成一个节点,类似于Helix(螺旋线)→ByAxis,这就是所谓的自定义节点。

框选除输入端口(3个数字滑块)的其余所有节点,在空白处单击鼠标右键,选择创建自定义节点,如图1-62所示。

图1-62

对自定义的节点进行命名,并做简单的使用说明。需要注意的是,在附加模块类别中可以创建节点层级,以“.”隔开,如图1-63所示。

图1-63

单击“确定”后,会出现一个新的窗口文件,如图1-64所示,保存此文件在默认位置。

图1-64

提示1

自定义节点文件格式为“∗. dyf”,Dynamo文件格式为“∗. dyn”。

提示2

自定义节点一般保存在默认位置,便于直接调用;默认位置可以根据需要自行修改(设置)。如图1-65所示,利用“设置”→“管理节点和软件包路径”,可以增加默认存储路径。需要注意的是,如果删除该路径,那么存储在该路径下的自定义节点将随之被删除。

自定义节点“螺旋线”在工作空间会变为一个节点,如图1-66所示;双击该节点可以进入自定义节点文件编辑界面即图1-64所示界面。为了方便节点的使用,可以在自定义节点文件编辑界面中,将三个Input节点的n,R,h分别改为中文,这样图1-66所示的三个输入接口就是汉字表示了。

图1-65

图1-66

同时,在节点库的附加板块中,可以找到自定义的“螺旋线”节点,如图1-67所示,且按图1-63中自定义的层级关系展开。

图1-67

提示

也可以直接创建自定义节点,如图1-68所示,利用“文件”→“新建”→“自定义节点”。

图1-68

保存文件为“螺旋线.dyn”。

练习题应用Dynamo绘制逐渐放大的三维螺旋线(图1-69)。(提示:半径r为变量)

图1-69