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