下載app免費領取會員
在技術文章Dynamo將三維曲線轉換為公制體量 http://photo.tuituisoft.com/blog/2747.html 中的方法只能夠輸出全部的三維曲線,但是有時我們需要輸出指定里程區間內的三維曲線。
1、獲取樣條曲線
1.1 節點Select Model Element拾取Revit中導入的圖紙。
1.2 節點Element.Geometry將獲取的圖元轉換為Dynamo中的幾何圖形。
1.3 將PolyCurve轉換為NurbsCurve http://photo.tuituisoft.com/blog/2101.html 。
2、獲取投影的曲線
2.1 由于里程的計算是根據平曲線的弧長,因此需要將三維曲線轉換為平曲線。
2.2 通過節點Curve.Project將樣條曲線投影至平面XY,投影的方向是向量(0,0,-1)。
2.3 投影的結果存放在列表中,因此將其用x[0][0]提取出來。
3、輸出指定里程區間的起點與終點
3.1 節點CodeBlock中需要三個參數,cur表示投影后的平曲線,len1表示里程區間的起點,len2表示里程區間的終點。
3.2 節點Curve.PlaneAtSegmentLength可以獲取指定弧長位置的平面,得到兩個平面以后將它們存放在列表中。
3.3 節點Geometry.IntersectAll可以求幾何圖形的交集,我們求的交集是三維曲線與兩個平面的交集。
3.4 線與平面的交集是點,因此我們就得到了指定里程區間中三維曲線對應的起點與終點。
4、獲取里程區間內的曲線
4.1 節點Curve.ParameterAtPoint可以獲取里程的起點與終點在三維曲線上的參數值。
4.2 通過x[0][0]和x[1][0]獲取這兩個參數值。
4.3 節點Curve.TrimByParameter可以保留指定參數區間的曲線,保留的結果就是指定里程區間的三維曲線。
5、導出三維曲線
5.1 通過節點Curve.PointAtParameter獲取里程區間內三維曲線的點,點的數量與CodeBlock有關,圖中是101個點。
5.2 通過節點ReferencePoint.ByPoint將點轉換為公制體量中的參照點。
5.3 通過節點CurveByPoints.ByReferencePoints連接參照點生成模型線,輸入端isReferenceLine控制是否為參照線。
6、應用程序
本文版權歸腿腿教學網及原創作者所有,未經授權,謝絕轉載。
推薦專題