下载app免费领取会员
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中的模型线。
本文版权归腿腿教学网及原创作者所有,未经授权,谢绝转载。