Dynamo應用秘籍:9:線與面的Parameter
Parameter的本意是參數,作為可以進行參數化設計的工具,Dynamo是通過參數來控制圖形類的元素,尤其是線和面。我們先來看線。
線是一維的(曲線因為所有點不能脫離線,也是一維的,相當於可以把曲線拉直),一條任意形狀的曲線,一般具有兩個基本的特徵,有起始點和結束點。在參數化控制的設計上,Dynamo將曲線的起始點設計為0,終點設計為1。使用0和1是為了將所有曲線的參數化率統一,這個就如同將任意的一個向量Vector進行Normalize一樣,這樣不同的向量就有統一的一個起點,及標準化的一個長度(<1),在將來做多個向量比較、運算時簡化。統一線的參數為0..1也是這個目的,可以使用一個標準化統一的標準來處理所有類型的線(包括直線、圓弧等一次曲線及雙曲線等更高階的二次及多次曲線),簡化操作過程。
基本曲線(直線、圓弧)是具有可延長性的,對於可以延長的曲線,Dynamo允許程序使用越界的參數,也就是說,可以使用大於1或者小於0的參數,這時候,Dynamo內部會自動延長曲線。直接獲取對應位置的點或者Normal而不需要真實的曲線延長,也就是說,Curve.PointAtParameter是可以獲取不在基本曲線上,而在基本曲線延長線上的點的。
面肯定是二維的(因為所有點不能脫離面,相當於可以將三維空間曲面展開拉平),因此需要兩個維度來控制其參數,這就是UV。UV相當於坐標系統的XY,因此一般情況下,UV是相互垂直的。因為這個原因,UV實際上會組成一個矩形的範圍,相當於面的包圍盒(BoundingBox),在這個矩形範圍內,UV的參數化數據也是由0到1之間變化。
在面基本為矩形是,從0到1的UV所取得的點一般都會位於面上,面的形狀非矩形時,會有一些點(甚至是大部分點)位於面的延展面上,在下圖可以清楚的看到:
因此對於比較異形的面,使用Surface.PointAtParameter獲取點位後,還需要判斷一下點到Surface的距離是否為零來確定獲取的參數點是否在Surface上。
以上是平面的情況,對於弧形或者球形的表面,這些點將沿著弧形面或者球形面展開,具體可以參照下圖:
連載鏈接:上一篇 << ooo >> 下一篇
推薦閱讀:
※Dynamo應用秘籍:3:理解關聯式語法
※BIM一波流第十彈——利用dynamo自動放樁
※BIM一波流第五彈——Civil3D導出橋樑數據到dynamo結合revit建模(一)
TAG:Dynamo | AutoDeskRevit | 参数化设计 |