首页/技术分享

Dynamo中如何绘制螺旋箍筋状的螺旋线

发布于:2019-02-25 14:51:11
7406人 分享

1、首先创建一个空列表“listPoints”,用于储存各个点。

2、创建四个参数。

        “n”表示螺旋箍筋的圈数,从点A到点B表示一圈,第二圈从点B开始再向上;

        “r” 表示第一个点开始的半径,即从点A到中心点的距离;

        “h”表示每一圈的高度,即点A至点B的垂直距离;

        “angle”表示螺旋线在立面里展开的角度。

        例如,想要得到点A上方的点,就得考虑该点并不是在点A正上方,而是往外偏移一定的距离,该距离通过展开的角度来控制。

3、定义第一个循环,该循环定义螺旋的圈数。判断元素是否介于区间[0,n],n是之前设置的圈数参数,即表示每一圈执行一次该循环。

4、定义第二个循环,该循环定义点坐标的三个分量。需要注意的是,从第一个点到第八个点在高度上是渐变的,但是在平面上对应的半径是一致的。

        要确定X和Y分量,首先要确定平面的半径“r”,得到半径以后通过余弦函数即得到X分量,通过正弦函数即得到Y分量。

        确定半径的过程中,公式“h*tan(angle)”求得往外扩展一圈在平面的投影距离,公式“(j + i*8)”表示“i”每次往外扩展一圈,“j”都要从0到8为其扩展取九次值,其中“i*8”表示每一圈共八段。

        “pi”表示180度,“2*pi”即360度。

        拿出一个点作为计算。例如,第二圈的起点。“i = 1”表示第二圈,“j = 0”表示第一点,立面扩展角度“angle”取“pi / 6”即30度。因此,X分量会等于“(1000 + (0 + 1*8)*500*tan(30)/8)*cos(0*2*pi/8) = 1288.675”。

        确定Z分量时,先将每一圈的高度方向等分为八段,再通过乘法将等分的每一小段进行累积。

        在第二个循环内部将结果填入列表“listPoints”,点将会依据顺序填入空列表中。最后将列表“listPoints”输出。

附图:

5、将Python Script的输出端OUT连入节点ReferencePoint.ByPoint,该节点可将输入的点转换为参照点。

6、最后通过节点CurveByPoints.ByReferencePoints连接上一步生成的参照点生成Revit中的模型线。

转载请注明来源本文地址:https://www.tuituisoft/blog/2139.html

上一篇:

Revit楼梯案例分析下-楼梯绘制方法解析

下一篇:

Navisworks怎么在整体模型中设置显示阴影?