![Autodesk Revit参数化设计之道:Dynamo实战剖析](https://wfqqreader-1252317822.image.myqcloud.com/cover/758/43806758/b_43806758.jpg)
1.7 例题6:应用Dynamo绘制螺旋线
1.解题思路
如图1-57所示,控制螺旋线的主要参数有半径r、圈数n、螺距h;区别于例题5中圆形的绘制,螺旋线旋转的角度为360°×n,圆形中n=1,在螺旋线中n不一定为整数。螺旋线为三维空间曲线,其起点z坐标为零,终点z坐标为h×n,而例题5中圆形的z坐标均为零。
![](https://epubservercos.yuewen.com/8A2F8F/23083818501903406/epubprivate/OEBPS/Images/38_01.jpg?sign=1739600674-UYZBYQbN6IAlLEjDGGpZfUb0VeHk5F0R-0-7ac11a30c99bb737ec8502fa626e1112)
![](https://epubservercos.yuewen.com/8A2F8F/23083818501903406/epubprivate/OEBPS/Images/38_02.jpg?sign=1739600674-OUyv4ZDf2SX9UwCY0PY1i40EB5BSDZJ1-0-2bcfbc717e231bb239f332c08962a69e)
图1-57
2.知识点
● List. Count
● Code Block
● 创建自定义节点
3.例题详解
(1)绘制一圈螺旋线。利用例题5完成的节点进行修改。
首先需要三个Number Slider(数字滑块)节点来分别控制半径r、圈数n和螺距h。先从特殊情况开始讨论:暂定n=1,即旋转一圈的螺旋线。螺旋线旋转一圈为360°,在一圈中每间隔10的距离取点,总共取了37个点,如图1-58所示。
![](https://epubservercos.yuewen.com/8A2F8F/23083818501903406/epubprivate/OEBPS/Images/38_03.jpg?sign=1739600674-iIi8Gldm58Vd3qDleDlDKIpiPxTicZin-0-2add5b4e1458bebde68c89d9a9a89421)
图1-58
共计37个点,即列表37项。
在List(列表)→Inspect(查询)中选择Count(列表项数),List.Count(列表项数)节点用来统计列表的个数,如图1-59所示。
![](https://epubservercos.yuewen.com/8A2F8F/23083818501903406/epubprivate/OEBPS/Images/38_04.jpg?sign=1739600674-SndSfXKqKOPJ3GJBblxWy5V982l4inYS-0-af915d84639a03e208f61039c7639a51)
图1-59
(2)获取已知点对应的z坐标值。螺旋线旋转一圈的总高度为一个螺距h,旋转n圈的总高度即为n×h。接下来找到这条螺旋线上平分的37个点的z坐标即可。
利用例题5中所讲的Code Block节点“起始值.. 终值.. #一共被平分的个数”即“0.. n∗h.. #a”便可解决问题,如图1-60所示。
![](https://epubservercos.yuewen.com/8A2F8F/23083818501903406/epubprivate/OEBPS/Images/39_01.jpg?sign=1739600674-XPOaOSk3XM4UUmytLyrtTl6P7x835P3W-0-2529f3186669761fcab509b6299d3b51)
图1-60
当然在Dynamo中也有创建螺旋线的节点ByAxis(Geometry→Helix→ByAxis),如图1-61所示,读者可以自行尝试绘制。
![](https://epubservercos.yuewen.com/8A2F8F/23083818501903406/epubprivate/OEBPS/Images/39_02.jpg?sign=1739600674-xrk80952v2RDuDi7FJ1iYbXvnJjB5EDn-0-3a37f0c58ef98f41f75673cc4b0941a8)
图1-61
(3)自定义节点。为了在后续的项目中方便调用,可以将上述完成的螺旋线节点打包成一个节点,类似于Helix(螺旋线)→ByAxis,这就是所谓的自定义节点。
框选除输入端口(3个数字滑块)的其余所有节点,在空白处单击鼠标右键,选择创建自定义节点,如图1-62所示。
![](https://epubservercos.yuewen.com/8A2F8F/23083818501903406/epubprivate/OEBPS/Images/39_03.jpg?sign=1739600674-JX0ILSFf2bUmODQEv6tbbmJCcoWOLK9H-0-d8d28d65b49a7c11001d54e6607c569c)
图1-62
对自定义的节点进行命名,并做简单的使用说明。需要注意的是,在附加模块类别中可以创建节点层级,以“.”隔开,如图1-63所示。
![](https://epubservercos.yuewen.com/8A2F8F/23083818501903406/epubprivate/OEBPS/Images/40_01.jpg?sign=1739600674-eeU44LQaiWUCgkbnOSGBfZyUeuzOI9T8-0-28da35a481af046280968846dbbde953)
图1-63
单击“确定”后,会出现一个新的窗口文件,如图1-64所示,保存此文件在默认位置。
![](https://epubservercos.yuewen.com/8A2F8F/23083818501903406/epubprivate/OEBPS/Images/40_02.jpg?sign=1739600674-uqMKUDsaaoBfUFgsKbQ8XGtZCerDhdJP-0-5f35f98b308ca85c82fab7a78c987b93)
图1-64
提示1
自定义节点文件格式为“∗. dyf”,Dynamo文件格式为“∗. dyn”。
提示2
自定义节点一般保存在默认位置,便于直接调用;默认位置可以根据需要自行修改(设置)。如图1-65所示,利用“设置”→“管理节点和软件包路径”,可以增加默认存储路径。需要注意的是,如果删除该路径,那么存储在该路径下的自定义节点将随之被删除。
自定义节点“螺旋线”在工作空间会变为一个节点,如图1-66所示;双击该节点可以进入自定义节点文件编辑界面即图1-64所示界面。为了方便节点的使用,可以在自定义节点文件编辑界面中,将三个Input节点的n,R,h分别改为中文,这样图1-66所示的三个输入接口就是汉字表示了。
![](https://epubservercos.yuewen.com/8A2F8F/23083818501903406/epubprivate/OEBPS/Images/41_01.jpg?sign=1739600674-qDFUua7r2W4SEhciqobR0wAVc9F5uO9u-0-d3a442e307d226f2c52b206e836203b9)
图1-65
![](https://epubservercos.yuewen.com/8A2F8F/23083818501903406/epubprivate/OEBPS/Images/41_02.jpg?sign=1739600674-q7YRO1h6VflhKsLKI3x4HUhXBvL0alIq-0-35028cb39ed7d488acb7a8f0e3c06844)
图1-66
同时,在节点库的附加板块中,可以找到自定义的“螺旋线”节点,如图1-67所示,且按图1-63中自定义的层级关系展开。
![](https://epubservercos.yuewen.com/8A2F8F/23083818501903406/epubprivate/OEBPS/Images/41_03.jpg?sign=1739600674-M7xzBWuf4gwWbpma38oKphRHYQ6TxzZl-0-b5d7ac525bb2b99fa46ca19a0cedc4e8)
图1-67
提示
也可以直接创建自定义节点,如图1-68所示,利用“文件”→“新建”→“自定义节点”。
![](https://epubservercos.yuewen.com/8A2F8F/23083818501903406/epubprivate/OEBPS/Images/41_04.jpg?sign=1739600674-19qeY1s4SLdt6lvpjciwsuwKqFj1at2k-0-b16bec4e36c5bbf0ab13fe2c90856e03)
图1-68
保存文件为“螺旋线.dyn”。
练习题:应用Dynamo绘制逐渐放大的三维螺旋线(图1-69)。(提示:半径r为变量)
![](https://epubservercos.yuewen.com/8A2F8F/23083818501903406/epubprivate/OEBPS/Images/42_01.jpg?sign=1739600674-vXDBF9eWEaE6HEtSPyX9rYbHlprq9Gn4-0-b9e68262f181e289eb69ae8eede51340)
图1-69