下載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中的模型線。
本文版權歸腿腿教學網及原創作者所有,未經授權,謝絕轉載。
推薦專題