王康,余雷模,牛越
(中南大學(xué) 能源科學(xué)與工程學(xué)院,湖南 長沙 410083)
在起重機設(shè)計過程中,由于小車架尺寸變化較多且結(jié)構(gòu)變化多樣,致使設(shè)計人員在設(shè)計過程中不得不重復(fù)繪制生產(chǎn)用圖,使得工作效率低下。基于這種原因,中南大學(xué)能源科學(xué)與工程學(xué)院開發(fā)了小車架快速設(shè)計平臺,完成了小車架三維參數(shù)化建模并保存相關(guān)數(shù)據(jù)信息供ANSYS軟件進行有限元分析。參數(shù)化建模是利用一些參數(shù)來約束表達對象的尺寸關(guān)系,參數(shù)與幾何尺寸有著對應(yīng)的關(guān)系,可通過修改尺寸來更改三維模型。
以AutoCAD 2004軟件為二次開發(fā)平臺,對小車架三維參數(shù)化建模系統(tǒng)進行了開發(fā)。AutoCAD軟件在國內(nèi)擁有大量用戶,它具有良好的操作界面,通過交互菜單命令方式進行各種操作,還可采用多種方式對其進行二次開發(fā)。選用與AutoCAD 2004軟件匹配的開發(fā)軟件包ObjectARX 2005和ObjectARX是Autodesk公司針對AutoCAD軟件二次開發(fā)推出的軟件包,它支持面向?qū)ο缶幊?,采用C/C++語言編寫,開發(fā)時可與微軟基礎(chǔ)類MFC(Microsoft Foundation Classes)結(jié)合,因而可以利用MFC龐大類庫,極大地提高了編程效率。ARX程序?qū)嵸|(zhì)上是一個動態(tài)鏈接庫,它與AutoCAD共享地址空間,能真正快速訪問AutoCAD軟件圖形數(shù)據(jù)庫,其創(chuàng)建實體與AutoCAD軟件內(nèi)的實體幾乎是等同的。由于ObjectARX軟件功能強大,速度快,安全性好,是Auto-CAD軟件的重要開發(fā)工具,但是ObjectARX 2005軟件只是一個軟件包,因此,需要使用Microsoft Visual Studio 2003開發(fā)平臺中的Visual C++編寫程序。
在Visual Studio 2003里添加ObjectARX 2005工具,解壓文件到指定目錄,本文解壓放在C:ObjectARX 2005目錄中,找到 C:ObjectARX 2005utilsObjARXWiz文件夾,雙擊 ArxWizards.msi即可安裝,安裝完成后,在打開VS 2003之后需要更新,完成即可。
編程人員新建一個Visual C++項目,選擇類型為ObjectARX/DBX/OMF,可以更改項目名稱和文件存放目錄,如圖1所示,確定之后,會出現(xiàn)配置,選擇MFC Support并選中Extension DLL using MFC Shared DLL選項,如圖2所示。單擊確定新建項目完成,此時需進行環(huán)境配置,單擊tools-options,必須通過此操作包含ObjectARX軟件相關(guān)庫文件,如圖3所示。完成這些設(shè)置之后便可進行ObjectARX軟件程序開發(fā)。
圖1 新建項目
ObjectARX軟件提供了基于MFC的用戶界面類,可以在AutoCAD軟件里添加對話框界面,這樣的設(shè)計可視化程度高,使得平臺適用方便。添加一個對話框資源必須對其添加一個對話框類,然后在對話框里添加相關(guān)控件并根據(jù)實際需要修改其屬性,完成界面設(shè)計。例如,小車架邊梁的對話框設(shè)計,設(shè)計人員可方便地修改指定參數(shù)生成模型,如圖4所示。
圖4 對話框設(shè)計
采用ObjectARX軟件開發(fā)包完成三維建模,簡單的三維實體創(chuàng)建主要是利用實體類AcDb3dSolid中的create Box(創(chuàng)建箱體)、create Frustum(創(chuàng)建圓柱體)、extrude(拉伸)以及revolve(選裝)函數(shù)等,然后在通過布爾運算操作boolean Oper對這些簡單實體進行相加或相減。
2.3.1 create Box 函數(shù)
create Box函數(shù)可以直接創(chuàng)建長方體,其參數(shù)長、寬、高3個變量,該函數(shù)格式如下:
2.3.2 create Frustum 函數(shù)
create Frustum函數(shù)可以直接創(chuàng)建柱體、錐體,其參數(shù)包括高度、x半徑、y半徑、頂端半徑,該函數(shù)格式如下:
AcDb3dSolid*p3dObj=new AcDb3dSolid;
p3dObj- >createFrustum(高度,x半徑,y半徑,頂端半徑);
2.3.3 拉伸生成三維實體
extrude函數(shù)可以進行三維實體的拉伸生成,其使用方法如下:
2.3.4 旋轉(zhuǎn)生成三維實體
revolve函數(shù)可以進行三維實體的旋轉(zhuǎn)生成,其格式為:
revolve(pRegion1,axisPoint,axisDir,double angleOfRevolution));
其中:pRegion1為定義的封閉多段線,axis Point表示旋轉(zhuǎn)軸的原點,axis Dir表示旋轉(zhuǎn)軸的方向,angle of Revolution表示旋轉(zhuǎn)一定的角度,如2.0*3.1415926表示旋轉(zhuǎn)360°,這樣便可以形成一個三維旋轉(zhuǎn)體。具體代碼如下:
2.3.5 布爾運算
ObjectARX中布爾運算函數(shù)為:AcDb3dSolid::booleanOper(),包括加(kBoolUnite)、減(kBoolSubtract)以及交(kBoolIntersect);如以下代碼表示從實體3dObj1中減去實體3dObj2。
程序編譯成功以后,可根據(jù)項目的實際需求開發(fā)出合適的AutoCAD軟件菜單文件,如圖5所示。啟動AutoCAD 2004軟件,在命令欄輸入arx,回車再輸入l加載生成的arx文件。
系統(tǒng)運行時,設(shè)計人員可通過對話框和程序進行數(shù)據(jù)交互,用戶可以根據(jù)實際情況對默認(rèn)的參數(shù)調(diào)整,修改完成單擊確定,即可生成所需的三維模型,如圖6所示。
在建模的同時,程序已經(jīng)將三維模型的關(guān)鍵參數(shù)傳遞到后臺Access數(shù)據(jù)庫中保存,如圖7所示,供ANSYS軟件分析使用。
本文采用AutoCAD軟件二次開發(fā)工具成功開發(fā)出起重機變結(jié)構(gòu)小車架快速設(shè)計系統(tǒng)。該系統(tǒng)具有如下特點:
(1)利用ObjectARX軟件開發(fā)出了AutoCAD 2004軟件實現(xiàn)了參數(shù)化建模功能。
(2)運用數(shù)據(jù)庫技術(shù)和編程語言Visual C++,集成AutoCAD和ANSYS軟件,達到了模型設(shè)計和結(jié)構(gòu)分析之目的。
限于篇幅,本文沒有介紹有限元分析技術(shù)。該系統(tǒng)可縮短起重機小車架設(shè)計周期,提高了設(shè)計人員工作效率,具有推廣應(yīng)用價值。
[1]李世國.AutoCAD高級開發(fā)技術(shù):ARX編程及其應(yīng)用[M].北京:機械工業(yè)出版社,1999:150-207.
[2]李長隕.AutoCAD ObjectARX程序開發(fā)技術(shù)[M].北京:國防工業(yè)出版社,2005:1-150.
[3]周超,顧泉佩,林國榮.基于ObjectARX的閥體鑄件三維參數(shù)化建模系統(tǒng)[J].福州大學(xué)學(xué)報,2008(4):547-550.
[4]劉成峰,權(quán)龍.基于AutoCAD 2000及ObjectARX的液壓缸參數(shù)化設(shè)計系統(tǒng)[J].太原理工大學(xué)學(xué)報,2003(3):255-257.
[5]駱順心.空間鋼結(jié)構(gòu)設(shè)計軟件研究與開發(fā)[D].武漢:武漢大學(xué),2004.