下載app免費領取會員
1、首先明確 PolyCurve 和 NurbsCurve 的概念。PolyCurve 一般是指多段線或者多重曲線,是由多條曲線拼接而成的。NurbsCurve 一般是指非均勻有理B樣條,是一整段連續(xù)的。
2、本篇技術文章主要介紹如何處理從 Civil 3D 導入 Revit 后的多重曲線。
2.1 首先通過節(jié)點 Select Model Element 將導入 Revit 的后綴為 dwg 的圖形拾取進Dynamo中。然后通過節(jié)點 Element.Geometry 獲取圖元的幾何圖形。
2.2 從獲取的結(jié)果發(fā)現(xiàn),這條 PolyCurve 一共由 637 條小曲線組成,如果直接使用這條曲線執(zhí)行放樣等操作將會生成大量圖形。轉(zhuǎn)換的思路很簡單,就是先獲取 PolyCurve 上的點,然后用這些點重新生成 NurbsCurve。
3、獲取 PolyCurve 上的點。
3.1 通過 Civil 3D 生成的三維曲線有一個特點,這些三維曲線是由多段長度大致相同的小曲線組合而成。
3.2 因此通過節(jié)點 Curve.PointsAtEqualChordLength 獲取曲線上均分之后的各個點,具體點的數(shù)量由輸入端 int 控制,一共由 637 個分段,因此輸入 637 - 1 = 636 個點。
4、第 4 步的分段點不包含起點和終點,因此需要通過節(jié)點 Curve.StartPoint 獲取起點,通過節(jié)點 Curve.EndPoint 獲取終點。
5、重新生成 NurbsCurve。
5.1 將起點放進列表的第一項,將分段點放進列表的第二項,將終點放進列表的第三項。
5.2 通過節(jié)點 Flatten 將列表鋪平,鋪平之后就是一個列表存放著所有的定位點。
5.3 通過節(jié)點 NurbsCurve.ByPoints 生成經(jīng)過這些定位點的樣條曲線。
本文版權(quán)歸腿腿教學網(wǎng)及原創(chuàng)作者所有,未經(jīng)授權(quán),謝絕轉(zhuǎn)載。
推薦專題