完善主體資料,免費(fèi)贈(zèng)送VIP會(huì)員!
* 主體類(lèi)型
* 企業(yè)名稱(chēng)
* 信用代碼
* 所在行業(yè)
* 企業(yè)規(guī)模
* 所在職位
* 姓名
* 所在行業(yè)
* 學(xué)歷
* 工作性質(zhì)
請(qǐng)先選擇行業(yè)
您還可以選擇以下福利:
行業(yè)福利,領(lǐng)完即止!

下載app免費(fèi)領(lǐng)取會(huì)員

NULL

ad.jpg

Dynamo如何將PolyCurve轉(zhuǎn)換為NurbsCurve

發(fā)布于:2020-06-08 17:58:30

來(lái)福

更多

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。

0201_拾取曲線.png

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)。

0301_獲取曲線上的均分點(diǎn).png

4、第 4 步的分段點(diǎn)不包含起點(diǎn)和終點(diǎn),因此需要通過(guò)節(jié)點(diǎn) Curve.StartPoint 獲取起點(diǎn),通過(guò)節(jié)點(diǎn) Curve.EndPoint 獲取終點(diǎn)。

0401_獲取起點(diǎn)和終點(diǎn).png

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)的樣條曲線。

0501_生成樣條曲線.png

本文版權(quán)歸腿腿教學(xué)網(wǎng)及原創(chuàng)作者所有,未經(jīng)授權(quán),謝絕轉(zhuǎn)載。

未標(biāo)題-1.jpg

上一篇:Dynamo的節(jié)點(diǎn)是如何進(jìn)行分類(lèi)的?

下一篇:Dynamo如何旋轉(zhuǎn)放置的族文件