基于AutoCAD ARX的船閘閘首三維設計
針對國內船閘三維設計可視化效果不足的問題,嘗試對船閘閘首三維設計技術進行可視化結構設計的研究。采用C++的面向對象特性與AutoCAD提供的ObjectARX開發工具相結合,研究閘首三維模型算法、閘首穩定性驗算程序算法,實現結構穩定性計算結果輸出,開發閘首三維模型設計系統。通過工程實例進行驗證分析,成果直觀,能夠很好地輔助閘首結構設計,是對水工建筑物三維可視化設計技術的一種有益探討。
當前我國水運經濟快速發展,但是內河航道開發里程偏少,而且等級偏低,這與經濟的發展趨勢極不相稱,嚴重制約內河運輸的發展。為解決內河水運的發展瓶頸,國家將大力發展內河航道建設,勢必要改擴建一批舊船閘和興建一批新船閘。
已有的船閘設計系統的結構模型較多采用二維幾何模型,模型表達信息詳細,但是設計過程抽象不直觀,給閘首這種帶有復雜廊道的結構設計表達、修改和后續計算帶來許多困難,系統的通用性和普遍性較差。而三維CAD技術的發展和應用為設計結構的表達、修改和后續計算提供了很多方便,但是現有的船閘設計三維模型多是出自商用有限元軟件,只考慮與力學相關的結構,為簡化模型,對細部結構的表達能力不足,同時因模型信息不全,造成模型數據可被其他軟件重復利用性差,常常導致相同數據的多次重建。
本文探討在船閘閘首設計中使用三維技術。由于閘首的類型多,以人字門船閘閘首研究為例,介紹通過AutoCAD 二次開發程序建立閘首三維模型的方法,程序建立的模型形象、修改容易、可表達的細節程度高、模型數據易于被用作其它用途。本文的算例利用模型數據進行閘首穩定計算,以提高閘首設計的形象性和效率。
1、AutoCAD二次開發技術應用
1.1、AutoCAD二次開發工具選擇
AutoCAD 提供了4種常用的API開發工具,Visual Lisp、VBA(VB)、ObjectARX和.NET,開發工具的特點如下:LISP技術產生較早,但是其語法不常見不直觀,特別是對于復雜對象,其開發功能不強;VB(A)采用ActiveX接口,具有開發簡單直觀的特點,但是開發功能很有限,數據圖形創建速度慢;ObjectARX采用面向對象方法開發,直接調用AutoCAD底層函數,其開發靈活,程序運行速度快;.NET通過封裝ObjectARX函數實現,開發方式使用較晚,未完全封裝ObjectARX函數,開發能力具有不確定性。
由于閘首三維結構復雜,結構對象的關聯因素較多,再加上三維模型數據量大,對程序運行速度要求高,因此采用ObjectARX作為閘首三維設計程序的開發工具。
1.2、ObjectARX程序三維模型創建
通過使用AcDb3dSolid類,創建三維模型主要有3種方法:
1)直接通過提供三維實體所需的參數創建,主要是生成基本的三維實體。此類函數創建的實體的形心為坐標原點,這類實體是指長方體、平截頭體、球體和楔形體等。
2)通過基本的二維對象生成三維實體。主要的方法是對二維對象的拉伸、掃掠、旋轉和通過一系列二維對象放樣。二維對象在此主要指面域。
3)通過對已有實體的變換、剖切和布爾運算等操作實現新實體的創建。
1.3、三維模型數據共享與模型信息提取
模型創建的參數保存于文件數據庫中,可被除建模之外的用途共享,建立的模型的信息可通過程序提取,也保存于數據庫可供多用途共享。利用模型數據進行閘首穩定計算時,程序中提取可供共享的三維模型信息主要有實體的質量、質心、斷面的慣性距等。實體的質量、質心等參數通過使用實體對象的特性查詢函數getMassProp( )實現。
實體的斷面慣性距信息,通過剖切體實體獲得剖切斷面,通過使用剖切斷面特性信息查詢函數getMassProp()實現。斷面的創建與獲取主要用到以下3個函數:
1)實體切割函數:輸入參數為切割平面,輸出參數為切割獲得的兩個新實體。getSlice(const AcGePlane& plane, boolAdesk::Boolean getNegHalfToo, AcDb3dSolid*&negHalfSolid);
2)獲取實體斷面函數:輸入參數為切割平面,輸出平面切割實體形成的斷面。getSection(const AcGePlane& plane,AcDbRegion*& sectionRegion);
3)平面創建函數:在實體切割和取實體斷面時常用,此函數提供參數為面上點、X和Y向量。AcGePlane(const AcGePoint3d& or, constAcGeVector3d& uAxis, const AcGeVector3d& vAxis);
4、結語
本文使用AutoCAD軟件的ObjectARX開發工具,采用面向對象方法開發了相應的閘首三維可視化結構設計程序。本系統使用簡單,可進行批量優化設計,可使用同一個數據模型自動完成多種設計任務,設計過程及其成果直觀形象,設計修改容易,可大大降低設計工作量,提高設計效率,有較高的實用價值。
本文開發的閘首三維設計程序的后續工作將進一步完善和細化閘首三維模型的構建,并把三維模型信息共享用于閘首結構二維施工圖出圖、閘首四維施工模擬和閘首結構有限元分析等功能。