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