劉 明,郝 博,劉 滕
(1.沈陽理工大學(xué) 機(jī)械工程學(xué)院,遼寧 沈陽 110159; 2.遼寧機(jī)電職業(yè)技術(shù)學(xué)院,遼寧 丹東 118009)
?
基于CATIA二次開發(fā)的發(fā)動機(jī)活塞參數(shù)化設(shè)計(jì)
劉明1,郝博2,劉滕1
(1.沈陽理工大學(xué) 機(jī)械工程學(xué)院,遼寧 沈陽 110159; 2.遼寧機(jī)電職業(yè)技術(shù)學(xué)院,遼寧 丹東 118009)
摘要:介紹了CATIA二次開發(fā)技術(shù)和參數(shù)化技術(shù).為提高產(chǎn)品設(shè)計(jì)效率,以發(fā)動機(jī)活塞作為研究對象、三維軟件CATIA為平臺、CAA為開發(fā)工具,研究了發(fā)動機(jī)活塞的參數(shù)化建模方法.簡要分析發(fā)動機(jī)活塞的主要結(jié)構(gòu)參數(shù).用CAA和面向?qū)ο蟮某绦蛘Z言來設(shè)計(jì)參數(shù)化程序,實(shí)現(xiàn)活塞的快速建模,使產(chǎn)品設(shè)計(jì)效率有很大提高.
關(guān)鍵詞:CATIA;活塞;二次開發(fā);參數(shù)化;建模
發(fā)動機(jī)活塞是發(fā)動機(jī)設(shè)計(jì)中的一個重要組成部分.由于發(fā)動機(jī)活塞的結(jié)構(gòu)比較復(fù)雜,設(shè)計(jì)步驟比較繁瑣,而且在各個設(shè)計(jì)階段經(jīng)常需要修改,因此如何快速地生成發(fā)動機(jī)活塞三維模型是一個需要解決的關(guān)鍵問題.參數(shù)化設(shè)計(jì)方法是計(jì)算機(jī)輔助設(shè)計(jì)的一項(xiàng)重要技術(shù),通常也是設(shè)計(jì)人員優(yōu)先考慮的有效方法.從減少設(shè)計(jì)步驟的重復(fù)性、修改性上考慮,參數(shù)化建模技術(shù)作為一種先進(jìn)的設(shè)計(jì)方法,可以很好地解決活塞結(jié)構(gòu)建模中遇到的難題[1].以本研究發(fā)動機(jī)活塞作為研究對象,以Visual Studio2005為開發(fā)工具,研究應(yīng)用CAA編程和CATIA二次開發(fā)技術(shù)實(shí)現(xiàn)發(fā)動機(jī)活塞的參數(shù)化設(shè)計(jì)問題.
1CATIA二次開發(fā)技術(shù)及參數(shù)化設(shè)計(jì)方法
1.1CATIA開發(fā)工具
Visual Studio2005和CAA-RADE是CATIA的二次開發(fā)工具,Visual Studio2005提供了一個可以嵌入的平臺,CAA-RADE包括應(yīng)用架構(gòu)(Component Application Architecture,CAA)和快速應(yīng)用研發(fā)環(huán)境(Rapid Application Development Environment,RADE).CAA是法國達(dá)索產(chǎn)品進(jìn)行擴(kuò)展和用戶進(jìn)行二次開發(fā)的強(qiáng)有力的工具[2],它開發(fā)的范圍非常廣泛,是三維軟件開發(fā)的常用工具,而RADE提供了比較完善的編程工具組[3].CAA的編程實(shí)現(xiàn)是通過達(dá)索公司提供的RADE和不同的API接口程序來完成的.
CAA是CATIA V5的一整套C++編程函數(shù)庫,用戶研發(fā)所用大量信息都在C++編程函數(shù)庫中.運(yùn)行CATIA時,C++函數(shù)庫加載,與用戶安裝的RADE共同作用,在VC++環(huán)境下編程與CATIA軟件進(jìn)行二次開發(fā)[4].
1.2CATIA二次開發(fā)
CATIA二次開發(fā)有很多種方法[5],CATIA功能定制工具主要有四種:用戶定義特征、知識工程、自動化應(yīng)用接口(Automation API)和組件應(yīng)用架構(gòu)(CAA C++).用戶定義特征和知識工程為 CATIA系統(tǒng)自帶的定制工具,應(yīng)用過程存在很多局限;Automation API和CAA C++是CATIA二次開發(fā)的主要應(yīng)用工具,Automation API內(nèi)容比較簡單,但能實(shí)現(xiàn)的功能有限,CAA C++語言理解較困難,但能實(shí)現(xiàn)的功能很強(qiáng)大,開發(fā)的程序效率較高,因?yàn)樗峁┝吮容^全面的接口,并且能夠滿足用戶更深更專業(yè)的要求[6].CAA C++是以組建為基礎(chǔ)的定制開發(fā),應(yīng)用標(biāo)準(zhǔn)接口(COM)技術(shù)和對象連接與嵌入(OLE)技術(shù),可重新排列以及深層次擴(kuò)展組件對象.標(biāo)準(zhǔn)接口技術(shù)具有更好的模塊獨(dú)立性和可擴(kuò)展性,使得CAA的程序設(shè)計(jì)更加容易操作且趨于標(biāo)準(zhǔn)化[7].因此,在三維軟件開發(fā)過程中,標(biāo)準(zhǔn)接口技術(shù)是最佳選擇.
1.3CATIA參數(shù)化技術(shù)
參數(shù)化設(shè)計(jì)是CAD技術(shù)經(jīng)常用到的方法,即建立圖形幾何關(guān)系與尺寸參數(shù)的對應(yīng)關(guān)系,通過修改尺寸,或者修改已經(jīng)存在的零件參數(shù),圖中相關(guān)尺寸就隨之改變,從而完成對二維圖形的改變[8].參數(shù)化設(shè)計(jì)技術(shù)實(shí)質(zhì)上是利用模板參數(shù)來驅(qū)動文件完成對零件的設(shè)計(jì).目前,參數(shù)化建模技術(shù)可以實(shí)現(xiàn)特征提取、知識庫重用以及變形設(shè)計(jì)等操作,在計(jì)算機(jī)輔助設(shè)計(jì)領(lǐng)域應(yīng)用非常廣泛.很多CAD軟件都在增加參數(shù)化建模模塊,如CATIA、UG、Pro/Engineer等都提供了很強(qiáng)的參數(shù)化建模能力[9].在CATIA環(huán)境下實(shí)現(xiàn)參數(shù)化建模的過程中,參數(shù)化驅(qū)動是參數(shù)化技術(shù)中的核心.在初次建立模型前,首先分析零件的結(jié)構(gòu)特點(diǎn),提取需要更改的參數(shù),然后將這些參數(shù)預(yù)定義,通過設(shè)計(jì)程序按照標(biāo)準(zhǔn)建模順序生成特征模板,最后手動設(shè)置界面,用實(shí)際參數(shù)對預(yù)定義參數(shù)進(jìn)行替換或更改實(shí)例化模型,生成需要的新零件(如圖1).
圖1 參數(shù)化驅(qū)動建模流程
2發(fā)動機(jī)活塞主要結(jié)構(gòu)參數(shù)
發(fā)動機(jī)活塞的結(jié)構(gòu)尺寸如圖2所示.查閱機(jī)械設(shè)計(jì)手冊以用有關(guān)資料,可得出發(fā)動機(jī)活塞的主要參數(shù)(表1).
圖2 活塞結(jié)構(gòu)尺寸
(1)活塞高度.活塞高度取決于頂岸高度、環(huán)帶高度及各部高度.應(yīng)盡可能選擇較小的活塞高度值,這樣可以減小活塞的質(zhì)量并降低內(nèi)燃機(jī)的高度.
(2)壓縮高度.活塞銷中心到活塞頂?shù)母叨仁菈嚎s高度,它決定了活塞銷的位置.
(3)頂岸高度.頂岸高度確定了第一環(huán)的位置.
(4)環(huán)岸高度.環(huán)岸高度取決于活塞環(huán)數(shù)、環(huán)高及環(huán)岸的高度.
表1 發(fā)動機(jī)活塞的主要參數(shù)
3發(fā)動機(jī)活塞參數(shù)化建模過程
參數(shù)化建模的總體思想是指在CATIA的零件設(shè)計(jì)中建立新的按鈕和工具條,并設(shè)計(jì)出典型零件的參數(shù)和構(gòu)件要素所需要的對話框;通過點(diǎn)擊按鈕,調(diào)用程序,實(shí)現(xiàn)按鈕對CATIA用戶界面功能的響應(yīng);通過選擇構(gòu)件要素,依靠后臺程序,最后生成所需要的零件模型.
3.1發(fā)動機(jī)活塞按鈕和工具條的嵌入
實(shí)際上,按鈕嵌入是在CATIA原有功能的基礎(chǔ)上增加新的功能,也就是CAA的Addin.添加工具條菜單的主要程序代碼如下:
在CreateCommands函數(shù)添加如下代碼生成命令的響應(yīng):
newPartCmdHeader(“活塞參數(shù)化”,“MainCylinderModule”,“MainCylinder”,(void*)NULL);
創(chuàng)建工具條和命令按鈕,需要在Addin接口的函數(shù)CreateToolbars中添加如下代碼:
NewAccess(CATCmdContainer,pPartBenchTIb,三維參數(shù)化);
NewAccess(CATCmdStarter,pTest,Test);
SetAccessCommand(pTest,“活塞參數(shù)化設(shè)計(jì)”);
SetAccessChild(pPartBenchTIb,pTest);
在CATIA界面中生成的工具條如圖3所示.
圖3 工具條界面
3.2發(fā)動機(jī)活塞對話框的建立
添加對話框的方法有兩種.第一種方法是通過菜單命令CATIA Resources-dialog添加,根據(jù)用戶的需求,將控件添加在CATDlg對話框中,點(diǎn)擊全部保存按鈕保存文件后,程序會自動在 Build 函數(shù)中生成:
_Frame001 = new CATDlgFrame(this, “Frame001”, CATDlgFraNoTitle|CATDlgGridLayout);
_Frame001 -> SetGridConstraints(0, 0, 1, 1, CATGRID_4SIDES);
……
所建立的對話框如圖4所示.
第二種方法是直接編寫程序,根據(jù)用戶需要的對話框,用程序語句一一編寫出來,最后生成的對話框與第一種方法是相同的.
3.3發(fā)動機(jī)活塞參數(shù)的建立
發(fā)動機(jī)活塞參數(shù)的建立只需要在對話框中對應(yīng)的編輯框輸入數(shù)值,使用CAA中的函數(shù)GetValue()獲取即可,程序代碼如下:
R=_pi->_Edit017()->GetValue()*1000;
發(fā)動機(jī)活塞模型的建立過程如圖5所示.
3.4發(fā)動機(jī)活塞模型程序的建立
程序設(shè)計(jì)的主要部分是參數(shù)化建模,主要是通過程序的編寫來實(shí)現(xiàn)所需要的模型特征.首先通過CAA提供的接口獲取容器,拾取構(gòu)件要素作為建模基準(zhǔn),然后通過不同的接口函數(shù)創(chuàng)建幾何要素,創(chuàng)建幾何約束,形成需要的草圖,最后通過程序形成三維實(shí)體模型.在這個過程中,需要訪問CAA的不同接口和函數(shù)進(jìn)行操作,給變量參數(shù)賦予不同數(shù)值,可以重新得到不同尺寸和形狀的零件特征[10].
3.4.1獲取工作中的文檔
為了獲取建模容器,首先要獲得特征樹下面的document,然后訪問CAA提供的CATIContainerOfDocument接口下的GetSpecContainer()函數(shù)來實(shí)現(xiàn).其程序執(zhí)行語句如下:CATIContainer*pSpecContainer = NULL;
HRESULT hr = spConODocs -> GetSpecContainer (pSpecContainer);
3.4.2拾取建模基準(zhǔn)
建立三維模型必須先確定建?;鶞?zhǔn),只有拾取建?;鶞?zhǔn),才能繪制出目標(biāo)草圖,最終生成三維模型.基準(zhǔn)的拾取需要訪問CATISpecObject接口,程序執(zhí)行語句如下:
CATBaseUnknown * pObject = _pFeatureAgent -> GetElementValue();
CATISpecObject _varbjlzx(_pObjects[0];
3.4.3獲取草圖建模環(huán)境
建立二維圖之前,必須獲取草圖建模的CATIA環(huán)境,通過查詢百科全書可知,用CAA中的CATISketch接口來獲取繪制草圖環(huán)境,程序執(zhí)行語句如下:
CATISketch_varpSketch =spSketchFactOnPrtCont->CreateSketch(spSketchPlane);
3.4.4繪制草圖
在草圖環(huán)境下,通過創(chuàng)建點(diǎn)、直線、曲線、圓等元素,生成所需草圖.直線的程序執(zhí)行語句如下:
CATISpecObject_varspLine01=spWF2DFact OnSketch->CreateLine(pt01,pt02);
3.4.5創(chuàng)建約束
創(chuàng)建約束可以固定草圖中尺寸,使參數(shù)與模型相互匹配聯(lián)系.修改參數(shù)就可以重新生成用戶所需要的新模型.其程序執(zhí)行語句如下:
圖4 參數(shù)化設(shè)計(jì)對話框
圖5 模型建立流程圖
spConstraint2DFactory->CreateConstraint(spLine1, NULL, spSpecdtpm1, NULL, NULL, NULL, NULL,Cst2DType_Distance,0,0);
3.4.6對創(chuàng)建好的草圖進(jìn)行倒角等操作
創(chuàng)建好草圖之后,為了滿足設(shè)計(jì)的基本要求,大部分圖形需要進(jìn)行倒圓角等操作.創(chuàng)建倒角的程序執(zhí)行語句如下:
double radius=10;
double pt_center[2]={60,30};
spConstraint2Dfactory->CreateConstraint(); //創(chuàng)建約束
3.4.7生成模型并更新
二維草圖生成之后,經(jīng)過旋轉(zhuǎn)、拉伸、凹槽等操作,就可以生成三維實(shí)體模型.其程序執(zhí)行語句如下:
CATISpecObject_varspSpecObj=spPrtFactOnPrtCont->CreateShaft(spSketch);
CATISpecObject_varSpecObj=spPrtFactOnPrtCont->CreateGroove(spSketch2);
更新生成模型的程序執(zhí)行語句如下:
spSpecObj->Update(); //更新特征
通過這些步驟并拾取構(gòu)件要素,三維實(shí)體模型活塞就可以生成了(如圖6).
圖6 平頂、凹頂和凸頂活塞
4結(jié)束語
針對發(fā)動機(jī)活塞設(shè)計(jì)的繁瑣性,通過分析與討論,采用參數(shù)化建模技術(shù)的基本原理和方法,以CATIA為平臺,利用Visual Studio2005和CAA-RADE對三維軟件CATIA進(jìn)行二次開發(fā),設(shè)計(jì)出了簡單實(shí)用的發(fā)動機(jī)活塞模型的參數(shù)化程序.在建模的過程中,只需拾取構(gòu)件要素,就可以快速實(shí)現(xiàn)三維建模,避免了大量的重復(fù)性工作,提高了設(shè)計(jì)效率,加快了產(chǎn)品的研發(fā)速度,為生產(chǎn)效率的提高提供了技術(shù)支持.
參考文獻(xiàn):
[1]孟令濤,劉莉,龍騰,等.基于CATIA的參數(shù)化機(jī)翼模型在CFD中的應(yīng)用[J].彈箭與制導(dǎo)學(xué)報,2008,28(5):161-164.
[2]衛(wèi)斌.鈑金件特征設(shè)計(jì)及其關(guān)鍵技術(shù)研究[D].長沙:中南大學(xué),2008.
[3]董伊鑫,席平.基于CATIA的界面二次開發(fā)[J].航空制造技術(shù),2006(12):83-86.
[4]高運(yùn)奎,李召華,呂勤云.基于CATIA二次開發(fā)的發(fā)動機(jī)噴管外形參數(shù)化設(shè)計(jì)[J].機(jī)電產(chǎn)品開發(fā)與創(chuàng)新,2012,4(25):106-107.
[5]蘇紅軍,王永金.基于CAA的CATIA二次開發(fā)的研究[J].機(jī)械,2008,35(S1):41-43.
[6]劉滕,郝博.基于CAA的CATIA典型模型庫的創(chuàng)建[J].成組技術(shù)與生產(chǎn)現(xiàn)代化,2015,32(2):37-40.
[7]梁岱春,張為民,隋立江.淺析基于CAA的CATIA二次開發(fā)[J].航空制造技術(shù),2012(10):65-68.
[8]姚亮亮.大功率拖拉機(jī)驅(qū)動橋自動建模系統(tǒng)的設(shè)計(jì)與開發(fā)[D].安徽:合肥工業(yè)大學(xué),2010.
[9]祁加強(qiáng),谷良賢,高原.基于CATIA的導(dǎo)彈參數(shù)化模型驅(qū)動技術(shù)研究[J].科學(xué)技術(shù)與工程,2007,7(10):2346-2348.
[10]張體廣, 郝博. 基于MBD的全三維參數(shù)化建模技術(shù)[J].成組技術(shù)與生產(chǎn)現(xiàn)代化,2012,29(4):56-60.
收稿日期:2015-10-15
基金項(xiàng)目:國家自然科學(xué)基金資助項(xiàng)目(61170146)
作者簡介:劉明(1988-),男,山東臨沂人,碩士研究生,主要研究方向?yàn)閿?shù)字化設(shè)計(jì)與制造.
文章編號:1006-3269(2016)02-0006-05
中圖分類號:TP39
文獻(xiàn)標(biāo)識碼:A
doi:10.3969/j.issn.1006-3269.2016.02.002
Parametric Design for Engine Piston Based on Secondary Development of CATIA
LIU Ming1, HAO Bo2, LIU Teng1
(1.School of Mechanical Engineering,Shenyang Ligong University,Shenyang,110159,China; 2. Liaoning Mechatronics College,Dandong 118009,China)
Abstract:CATIA secondary development technology and parameterized technology are introduced in this paper. To improve the efficiency of product design, the research taking piston as research object and uses parameterized method to establish the engine piston model by using 3d software CATIA as platform and CAA as development tool. The main structure parameters of piston engine are analyzed briefly, and the rapid modeling of piston based on CAA and object-oriented programming language, it can greatly improve the efficiency of product design.
Key words:CATIA; piston; secondary development; parametric; modeling