劉 滕, 郝 博, 魏禮勇
(1.沈陽理工大學(xué) 機(jī)械工程學(xué)院, 遼寧 沈陽 110159;2.遼寧機(jī)電職業(yè)技術(shù)學(xué)院, 遼寧 丹東 118009)
基于CAA的CATIA典型模型庫的創(chuàng)建
劉 滕1, 郝 博2, 魏禮勇1
(1.沈陽理工大學(xué) 機(jī)械工程學(xué)院, 遼寧 沈陽 110159;2.遼寧機(jī)電職業(yè)技術(shù)學(xué)院, 遼寧 丹東 118009)
為提高產(chǎn)品設(shè)計(jì)質(zhì)量,研究了利用組件框架技術(shù),通過創(chuàng)建典型模型庫系統(tǒng),實(shí)現(xiàn)對(duì)典型產(chǎn)品模型的存儲(chǔ)、可視化預(yù)覽以及特征信息的提取。在已有產(chǎn)品模型的基礎(chǔ)上實(shí)現(xiàn)快速智能化操作?;贑AA的CATIA二次開發(fā)的基本原理和方法,以面向?qū)ο蟮某绦蛘Z言來驅(qū)動(dòng)模型庫中產(chǎn)品的特征信息實(shí)現(xiàn)重用,可使產(chǎn)品設(shè)計(jì)效率有很大的提高。
CAA; 二次開發(fā); 典型模型庫; 特征信息
CATIA是由法國達(dá)索(Dassault Systemes)公司開發(fā)的一款具有界面友好、功能強(qiáng)大、易于操作等特點(diǎn)的三維CAD/CAM軟件,多用于大型復(fù)雜的產(chǎn)品設(shè)計(jì)[1]。因其具有強(qiáng)大的輔助設(shè)計(jì)、實(shí)體建模和工程分析等功能,尤其在曲面造型、鈑金設(shè)計(jì)等方面相比于同類型的CAD軟件,有著明顯的優(yōu)勢(shì)。隨著行業(yè)需求度的加深,CATIA已逐步成為數(shù)字化設(shè)計(jì)的主流軟件。為適應(yīng)工程領(lǐng)域?qū)Ξa(chǎn)品開發(fā)周期縮短以及設(shè)計(jì)質(zhì)量提高的要求,CATIA系統(tǒng)通過開放部分接口,提供了很好的二次開發(fā)平臺(tái)[2],這一技術(shù)是在CATIA通用化基礎(chǔ)上進(jìn)行專業(yè)化開發(fā)的有效手段,對(duì)提高產(chǎn)品設(shè)計(jì)效率和節(jié)約研發(fā)成本有著重要作用。創(chuàng)建的典型庫原理的目標(biāo)是:依據(jù)用戶需求,利用新產(chǎn)品設(shè)計(jì)的特征信息提取已存放在模型庫中的典型產(chǎn)品,對(duì)調(diào)出的原有產(chǎn)品進(jìn)行特征信息的提取,可視化地修改,重復(fù)使用庫存,簡化設(shè)計(jì)流程。
1.1 CATIA二次開發(fā)的方法
CATIA二次開發(fā)接口主要通過進(jìn)程內(nèi)應(yīng)用程序(In-Process Application)方式和進(jìn)程外應(yīng)用程序(Out-Process Application)方式與外部程序進(jìn)行通信。在進(jìn)程內(nèi)應(yīng)用程序方式下,CATIA與腳本在同一進(jìn)程空間內(nèi)運(yùn)行,通過在CATIA環(huán)境下記錄宏的方式生成VB腳本序列。利用自動(dòng)化應(yīng)用接口技術(shù),可通過錄制宏或Visual Basic平臺(tái)等方式實(shí)現(xiàn)用戶所需功能[3],該方法允許用戶獲取CATIA的數(shù)據(jù)模型。當(dāng)宏開始運(yùn)行,CATIA就處于非激活狀態(tài),因此不能在宏調(diào)用時(shí)存儲(chǔ)或改變特征信息的值,只能對(duì)基礎(chǔ)功能進(jìn)行重復(fù)應(yīng)用。而在進(jìn)程外應(yīng)用程序方式下,用戶通過安裝快速應(yīng)用開發(fā)模塊(RADE),以組件應(yīng)用框架(CAA)技術(shù)為開發(fā)平臺(tái),利用面向?qū)ο蟮某绦蛘Z言(VC++)與CATIA進(jìn)行通信,根據(jù)用戶行業(yè)需求,從而實(shí)現(xiàn)對(duì)CATIA的所開放接口的二次開發(fā)。
根據(jù)用戶對(duì)兩種方法的使用情況,其中,第一種方法的入門程度較低,適用于初學(xué)者,只需對(duì)CATIA中錄制宏功能有了解即可,但因?yàn)檫@種方法開發(fā)水平有限,如對(duì)鈑金件等產(chǎn)品的超級(jí)副本這一功能就不可利用,所以不能應(yīng)用在復(fù)雜產(chǎn)品的設(shè)計(jì)中。第二種方法的開發(fā)程度較高,功能靈活,可以參照CAA中不同模塊的功能實(shí)現(xiàn)對(duì)軟件整體性能的深層次開發(fā),但是,因其用到面向?qū)ο蟮某绦蛘Z言技術(shù),所以需要設(shè)計(jì)人員具備軟件開發(fā)的知識(shí)和能力[4],適用于專業(yè)設(shè)計(jì)人員。
1.2 組件應(yīng)用框架技術(shù)
圖1 CAA組件應(yīng)用框架結(jié)構(gòu)圖
目前,對(duì)CATIA系統(tǒng)進(jìn)行二次開發(fā)常采用的方法是CAA技術(shù),這種方法采用了標(biāo)準(zhǔn)接口技術(shù),具備了更好的模塊獨(dú)立性和可擴(kuò)展性,使CAA的程序設(shè)計(jì)更加容易且趨于標(biāo)準(zhǔn)化[5],其核心思想是面向?qū)ο蟮某绦蛟O(shè)計(jì)。同時(shí),對(duì)象的嵌入和連接以及組件對(duì)象模型技術(shù)的應(yīng)用,使得開發(fā)的過程能夠輕松地實(shí)現(xiàn)標(biāo)準(zhǔn)化、系列化,較大程度地提高了程序的易用性和可擴(kuò)展性。快速應(yīng)用開發(fā)環(huán)境(RADE)是以VC++為載體,通過提供完整的編程工具組,將開發(fā)工具集成在VC++環(huán)境中,并且提供了一個(gè)CAA框架程序編譯器,通過接口函數(shù)調(diào)用CAA的功能模塊,可以實(shí)現(xiàn)用戶程序和原系統(tǒng)的緊密集成[6]。圖1所示為CAA組件應(yīng)用框架結(jié)構(gòu)圖。
圖2 典型模型庫開發(fā)流程圖
典型模型庫技術(shù)即為在CATIA系統(tǒng)中,當(dāng)?shù)湫彤a(chǎn)品設(shè)計(jì)建模完成后,根據(jù)用戶需求,將典型產(chǎn)品按照結(jié)構(gòu)功能進(jìn)行分類整合,將其存放在模型庫中。傳統(tǒng)CATIA系統(tǒng)的這一功能只有在產(chǎn)品選擇操作時(shí)才會(huì)使用,而在典型的產(chǎn)品設(shè)計(jì)過程中,因其在外部幾何特征信息方面的相似度較大,因此為縮短建模步驟,可以直接在模型庫中依照檢索程序調(diào)用產(chǎn)品模型,然后利用CATIA的相關(guān)命令在原有模型的基礎(chǔ)上進(jìn)行操作,從而實(shí)現(xiàn)特征信息的產(chǎn)品變型設(shè)計(jì)。利用CAA技術(shù)對(duì)CATIA的模型庫功能模塊進(jìn)行二次開發(fā),可以將這一功能直接應(yīng)用在產(chǎn)品建模過程中,提高效率。具體開發(fā)流程如圖2所示。
2.1 典型模型庫功能界面
對(duì)于典型產(chǎn)品而言,采用參數(shù)化設(shè)計(jì)方法是建模的最佳手段[7],CATIA典型模型庫這一功能在參數(shù)化建模中體現(xiàn)較為明顯,參數(shù)化建模的核心即為對(duì)常用典型零件特征信息的提取以及重用。典型模型庫主要有兩大功能,一是可把上一級(jí)模塊“參數(shù)化建模”中的典型產(chǎn)品按照產(chǎn)品特性進(jìn)行分類存放,二是可以進(jìn)行特征信息的提取,以便在“變型設(shè)計(jì)”模塊中進(jìn)行信息的重用。利用CAA技術(shù),首先創(chuàng)建一個(gè)典型模型庫的工作空間(FrameWork),然后在這一工作空間中插入相應(yīng)的模塊(Module)以及組件(Component),創(chuàng)建工具條,最后利用Part Design函數(shù)來創(chuàng)建人機(jī)交互界面并實(shí)現(xiàn)對(duì)用戶界面功能的命令響應(yīng),具體的界面顯示如圖3所示。
圖3 典型模型庫啟動(dòng)界面
在典型模型庫界面的創(chuàng)建過程中,所用到的函數(shù)有CreateCommands()和Create Tool Bars(),主要流程為,在Addin接口函數(shù)中創(chuàng)建工具條和命令按鈕,可以通過點(diǎn)擊參“數(shù)化建模技術(shù)”菜單命令,進(jìn)入典型模型庫功能模塊,具體程序命令如下:
void CATIAAddin::CreateCommands()
NewAccess(CATCmdContainer,pCATIA Mbr,CATIAMbr);
CATCmdContainer* CATIAAddin::CreateToolbars()
//創(chuàng)建工具條的命令
NewAccess(CATCmdContainer,pMnu1,典型模型庫);
SetAccessChild(pCATIAMbr,pMnu1);//將典型模型庫界面顯示在二次開發(fā)的框架下。
2.2 典型產(chǎn)品特征信息的提取
當(dāng)?shù)湫彤a(chǎn)品建模完成后,需要將典型產(chǎn)品存放在相應(yīng)的模型庫中,此外,還需提取產(chǎn)品的特征信息,以Excel表格的形式保存,以便利用程序調(diào)用模型時(shí)可以提供參考。這一功能主要是利用CreateDesignTable()函數(shù),創(chuàng)建模型庫,以常見的鈑金件為例,具體命令如下:
if(str=="翻邊鈑金肋")
{_pi->_MulList007()->ClearLine();
CATIDesignTable_var spDesign=NULL_var;
spDesign=spCkeFact->CreateDesignTable("Table.1",
"Directory",strFB,1,0);//存放產(chǎn)品模型
spSheet=spDesign->Sheet();
int Column=spSheet->Columns();//確定表格行數(shù)
int Row=spSheet->Rows();//確定表格列數(shù)
int a=0;//標(biāo)題賦值
CATUnicodeString strC[99];
for(int i=1;i<=numColumn;i++)
{strC[a]=spSheet->Cell(1,i);a++;}
_pi->_MulList007()->SetColumnTitles(numColumn,strC);
int b=0;//讀取表格中相應(yīng)行列的內(nèi)容
2.3 典型模型庫的完善
當(dāng)?shù)湫彤a(chǎn)品的模型按照相應(yīng)的分類存放在模型庫中后,需要通過以面向?qū)ο蟮恼Z言形式來驅(qū)動(dòng)函數(shù)命令進(jìn)行模型庫功能的完善,提取將產(chǎn)品的特征信息并按照級(jí)別進(jìn)行劃分,將特征信息如建模構(gòu)件要素、尺寸要素等信息顯示在人工交互界面中??梢暬A(yù)覽框共有兩種表達(dá)形式:
一是以表格的形式顯示。具體函數(shù)程序如下:
CATIPrtContainer*spPartConatiner=(CATIPrtContainer*)//設(shè)置程序編輯器
spInitOnDoc->GetRootContainer("CATIPrtContainer)
CATIDesignTable_var//利用此函數(shù)讀取Excel表格
spCkeFact->CreateDesignTable("CoordTable.1","Coord and Directory",//創(chuàng)建表格并命名
"E:InputDataBJFBBJLFBLCSH.xls",1,0);//設(shè)置表格存放地址
二是顯示典型模型三維視圖的三維預(yù)覽,當(dāng)選擇模型時(shí),可以將產(chǎn)品的直觀外部特征顯示在預(yù)覽框中,以供設(shè)計(jì)人員參考。具體程序如下:
if(strM=="FBL-2Po"){CATUnicodeString
pFile="E:InputDataBJFBBJLFBL-2Po.CATPart"http://設(shè)置模型所存放地址
_pi->ModelPreview(pFile);//進(jìn)行模型預(yù)覽
int numColumn=spSheet->Columns();//將模型特征信息顯示在對(duì)話框中
通過以上兩種方式,可以較為直觀第把典型產(chǎn)品的三維圖以及特征信息顯示在典型模型庫的交互界面中。當(dāng)?shù)湫湍P蛶靹?chuàng)建完成后,還需要將建模完成的產(chǎn)品的特征信息表達(dá)清楚,用戶可以方便快捷地將模型與所要設(shè)計(jì)的產(chǎn)品進(jìn)行特征匹配,體現(xiàn)出典型模型庫的優(yōu)點(diǎn)。
以常見拉桿為例,其典型模型庫效果圖如圖4,共分為三大模塊:模板分類、模板庫信息及模板信息。模板分類主要是按照產(chǎn)品特征進(jìn)行分類存放,方便查找。模板庫信息主要是對(duì)產(chǎn)品進(jìn)行多級(jí)分配,模板信息主要是體現(xiàn)產(chǎn)品的具體特征信息。當(dāng)在左側(cè)的模板分類中選擇“拉桿”時(shí),后臺(tái)程序就會(huì)將存放在Excel表格中的信息提取并顯示在“模板庫信息”對(duì)話框中,而“模板信息”對(duì)話框中就會(huì)將模型的幾何信息顯示出來,并且在下方的可視化預(yù)覽框中會(huì)顯示三維圖。同理,若選擇不同的產(chǎn)品設(shè)計(jì)模塊,相對(duì)應(yīng)的程序則會(huì)根據(jù)用戶需求來驅(qū)動(dòng)不同的模型庫,從而顯示不同的特征信息。典型模型庫的優(yōu)點(diǎn)之一是為可以對(duì)原有的產(chǎn)品模型進(jìn)行操作,在典型產(chǎn)品基礎(chǔ)特征的基礎(chǔ)上按照設(shè)計(jì)要求修改完善,可以通過“變型設(shè)計(jì)”命令,將這一功能與知識(shí)工程相結(jié)合,從而提高設(shè)計(jì)效率[8]。
圖4 典型模型庫工作界面
利用CAA技術(shù)對(duì)CATIA所開放的功能接口進(jìn)行二次開發(fā)是行業(yè)發(fā)展的必然趨勢(shì),通過面向?qū)ο蟮某绦蛘Z言將用戶的設(shè)計(jì)思想與軟件相融合創(chuàng)建典型模型庫,實(shí)現(xiàn)典型產(chǎn)品模型的調(diào)用與特征信息的重用相結(jié)合的目的,使用戶在產(chǎn)品設(shè)計(jì)時(shí)更具有行業(yè)的目的性與專業(yè)性。在CATIA系統(tǒng)中,這一功能的操作簡單,實(shí)際應(yīng)用范圍較廣,可使產(chǎn)品設(shè)計(jì)效率提高,提高了產(chǎn)品設(shè)計(jì)質(zhì)量。
[1] 蘇洪軍,王永金.基于CAA的CATIA V5二次開發(fā)方法的研究[J].機(jī)械,2008,35(s1):41-43.
[2] 龍峰,樊留群.CATIAV5二次開發(fā)技術(shù)探討[J].淮陰工學(xué)院學(xué)報(bào),2005,14(5):21-23.
[3] 吳立軍.CATIA二次開發(fā)技術(shù)基礎(chǔ)[M].北京:電子工業(yè)出版社,2006:12-13.
[4] 周仙娥,魯墨武,趙海星.基于CAA的CATIA二次開發(fā)的研究[J].科技信息,2008(36):73-75.
[5] 梁岱春,張為民,隋立江.淺析基于CAA的CATIA二次開發(fā)[J].航空制造技術(shù),2012(10):65-68.
[6] 韓志仁,劉曉波,胡燁.基于CATIA/CAA的快速標(biāo)注方法研究[J].沈陽航空航天大學(xué)學(xué)報(bào),2012,29(4):1-4.
[7] 張學(xué)忱,陳錦昌,范汝祥,等.知識(shí)工程在機(jī)械產(chǎn)品參數(shù)化設(shè)計(jì)中的應(yīng)用研究[J].工程圖學(xué)學(xué)報(bào),2009(6):191-195.
[8] 顧曉華,仲梁維.基于知識(shí)工程的參數(shù)化設(shè)計(jì)[J].機(jī)械設(shè)計(jì)與制造工程,2001,30(4):17-18.
[責(zé)任編輯:張存鳳]
Creation of CATIA typical model library based on CAA
LIU Teng1, HAO Bo2, WEI Li-yong1
(1.School of Mechanical Engineering, Shenyang University of Technology, Shenyang 110159, China;2.Liaoning Mehatronics Polytechnic College, Dandong 118009, China)
To improve the quality of product design, the research uses component framework technology to achieve the storage, visual preview and retrieval of characteristic information of typical product model by creating the typical model base system, thus realizing the purpose of rapid smart operation based on the in-use product model. The technology research of CATIA secondary development based on CAA basic principle and method of object oriented programming language to drive the feature information of the products in the reuse can greatly improve the efficiency of product design.
CAA; secondary development; typical model library; feature information
1673-2944(2015)02-0037-04
2014-11-17
國家自然科學(xué)基金資助項(xiàng)目(61170146)
劉滕(1991—),男,山東省泰安市人,沈陽理工大學(xué)碩士研究生,主要研究方向?yàn)閿?shù)字化設(shè)計(jì)與制造。
TP391
A