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