可編輯NURBS曲線在AutoCAD與CATIA間的相互轉換

2014-11-09 張宗科 中國船舶及海洋工程設計研究院

  分析了AutoCAD中NURBS曲線的特點、相關的函數及參數,以及CATIA中NURBS曲線的手工交互繪制與VBA程序自動繪制方法。通過ACIS到IGES格式轉換,將AutoCAD中的NURBS曲線轉換成CATIA中的NURBS曲線,不再能編輯節點。提出通過提取AutoCAD中NURBS曲線的有關信息,在CATIA中進行二次開發編程,由指定NURBS曲線的切線、曲率參數來顯示約束繪制的方法,直接生成NURBS,從而保證可編輯性。CATIA中的NURBS輸出成IGES格式,經Gambit轉換成ACIS格式,在AutoCAD中打開,經參數提取后反算出NURBS曲線的擬合點來,使其重具過擬合點的可編輯性,并對AutoCAD中用NURBS曲線擬合Polyline進行了探討。

1、引言

  NURBS曲線是AutoCAD中的一種常用曲線,在船舶設計中描述復雜船體曲面時尤為方便。有時需要將AutoCAD中含NURBS曲線在內的二維圖形轉換成CATIA中的三維模型,以查看效果。不過AutoCAD中的NURBS曲線包含原始擬合點、控制點及權重等有關信息,而CATIA中SplineCurve通過擬合點、各擬合點處的切線方向、強度、曲率方向、曲率半徑等有關參數來表達。雖然可以將AutoCAD中的NURBSCurve先Export成ACIS格式文件(*.sat),再經Gambit轉換成IGES格式文件(*.igs),在CATIA中直接打開,但其節點不再可以編輯。同樣CATIA中的樣條曲線轉換到AutoCAD中時,擬合點不再可編輯。實現NURBS曲線在AutoCAD與CATIA間的相互轉換后仍能保持可編輯性,是要解決的問題。

2、AutoCAD中NURBS曲線分析

  B樣條曲線按節點矢量特點可分為5種,即:均勻B樣條曲線、準均勻B樣條曲線、分段貝齊爾曲線、一般非均勻B樣條曲線、非均勻有理B樣條曲線。AutoCAD中通過Spline命令產生的即為NURBS曲線,它是一種具有描述與設計自由型曲線的數學方法,ISO在1991年頒布的STEP標準將NURBS作為定義幾何形狀的唯一數學方法。NRBS曲線以B樣條函數為基,樣條函數具有局部性,NURBS曲線上某個僅受到臨近幾個擬合點的影響,這與人的認知活動由遠及近相類似,而與“蝴蝶效應”、量子萬里感應當然是不同的。AutoCAD中由系統變量“SplineType”來確定NURBS曲線的階數,若為6,則生成3次(4階)NURBS曲線;若為5,則生成2次(3階)NURBS曲線。用Spline命令繪制NURBS曲線時,先給出曲線經過的一系列擬合點(FitPoint),再給定起點、終點切矢邊界條件來完成。AutoCAD中NURBS曲線的權值默認為-1,采用起始擬合點的累加弦長作為節點參數。通過將系統變量“SplFrame”的置設為1,同時顯示NURBS曲線與其控制多邊形,則可通過直接操控控制點來調整曲線的局部凹凸程度。可用SplinEdit命令修改生成的NURBS曲線,如擬合數據、閉合、移動頂點、精度(添加控制點/提高階數/權值)、反轉等。但用SplinEdit命令編輯修改NURBS曲線后,用Entget方法可以發DXF(DrawingExchangeFile)代碼中無擬合點坐標的相關消息。雖然可以用SplinEdit\Refine\ElevateOrder方法來提升NURBS曲線的階次(最高到26階),但實踐中發現,升階后曲線自身形狀沒有改變,而且相應的DXF代碼中只是增加了原擬合點對應得累加弦長參數的重復次數,并未增加新的擬合點,僅增加控制點的數目,同時控制點形成的控制多邊形更加貼近NURBS曲線。圖1中,在控制點處帶空心小矩形框的虛線為3次(4階)NURBS曲線的控制多邊形,在控制點處帶圓形框的虛線為4次(5階)的控制多邊形,在控制點處帶實心小矩形框的虛線為5次(6階)NURBS曲線的控制多邊形。不同階次下的NURBS曲線相應的DXF部分代碼參表1所示。

可編輯NURBS曲線在AutoCAD與CATIA間的相互轉換

圖1 AutoCAD中NURBS曲線控制多邊形隨階次的變化

表1 AutoCAD中NURBS曲線編輯升階后DXF代碼變化

可編輯NURBS曲線在AutoCAD與CATIA間的相互轉換

  AutoCAD中的NURBS曲線不具備重節點的功能。此外,AUTOCAD中科利用vlax-curve函數(-getParamAtPoint、-get-FirstDeriv、-getSecondDeriv)、vla-get函數(-Knots、-Fit-Points、-ControlPoints、-StartTangent、-EndTangent)等提取NURBS曲線的有關參數信息。

7、結語

  介紹了AutoCAD中NURBS曲線的表述方式,以及其一階切向、二階切向等參數的提取,利用這些信息可轉換成曲率方向、曲率半徑等,籍此通過二次開發在CATIA中直接繪制NURBS曲線,相對于ACIS至IGES格式文件轉換方式,該NURBS曲線仍具有可編輯功能。CATIA中NURBS曲線可由IGES方式輸出,經Gambit轉換為ACIS格式在AutoCAD中打開,反算出NURBS的擬合點等,在AutoCAD中以直接繪制方式生成NURBS曲線,或者利用Subst與Entmod命令直接修改原曲線的DXF代碼,使其擬合點可自由編輯。此外,討論了用分段NURBS曲線擬合帶許多控制點的Polyline的可行性,并編制了相應的LISP程序實現該功能。