劉爽 孫佳慧
摘 要:本文介紹CATIA二次開(kāi)發(fā)方式,用C++語(yǔ)言編寫(xiě)程序代碼,調(diào)用CATIA API內(nèi)部函數(shù)庫(kù),在CATIA界面上生成創(chuàng)建圓柱體的自定義工具條,用戶(hù)直接輸入?yún)?shù)生成圓柱體模型。避免了CATIA中建模的重復(fù)操作,縮短研發(fā)時(shí)間,提高工程效率。
關(guān)鍵詞:二次開(kāi)發(fā);CAA;CATIA
Secondary development of cylinder based on technology of CATIA\CAA
LIU Shuang LI Lijuan LIN Xuezhu XU Liang SUN Jiahui
(College of Opto-Electronic Engineering,Changchun University of
Science and Technology,ChangChun,130022)
Abstract:This paper describes the secondary development way of CATIA,written program in C++ code,called CATIA API internal function library,created a custom toolbar which generates the cylinder on the CATIA interface, user inputted parameter and then directely generated cylinder model.This method avoided repetitive operations in CATIA modeling,shorten development time,improved engineering efficiency.
Key words:Secondary development;CAA;CATIA
1.引言
CATIA V5 是法國(guó)達(dá)索公司與IBM公司開(kāi)發(fā)的新一代CAD/CAM產(chǎn)品。不同于老一代CAD/CAM產(chǎn)品,它采用了全新的、基于組件的開(kāi)放式體系結(jié)構(gòu)。應(yīng)用現(xiàn)代軟件工程思想,有著相當(dāng)優(yōu)良的擴(kuò)展性能。它開(kāi)放的組件應(yīng)用架構(gòu)允許更多的第三方供應(yīng)商針對(duì)用戶(hù)的需要,定制特別的應(yīng)用解決方案。
本文通過(guò)CATIA的一種二次開(kāi)發(fā)方式——CAA方法,調(diào)用CATIA的內(nèi)部函數(shù)庫(kù),以Visual Studio NET 2005為平臺(tái)進(jìn)行編程,實(shí)現(xiàn)圓柱體的二次開(kāi)發(fā),完成后對(duì)新程序進(jìn)行發(fā)布,達(dá)到二次開(kāi)發(fā)的目的。
2. CATIA二次開(kāi)發(fā)方式
CATIA的二次開(kāi)發(fā)方式主要有兩種,一種是采用Automation技術(shù),另一種是CAA V5技術(shù),兩種技術(shù)各有其優(yōu)缺點(diǎn)。
Automation API使用自動(dòng)化應(yīng)用接口的宏,通過(guò)VB Script 或Java Script來(lái)錄制宏,從而自動(dòng)生成代碼。雖然操作方式簡(jiǎn)單,但有很大的局限性,不適合CATIA的深層次開(kāi)發(fā)。
CAA(Component Application Architecture)全稱(chēng)組件應(yīng)用架構(gòu)(組件架構(gòu)圖如下圖1所示),是一種面向組件的編程模式,組件架構(gòu)的編程重點(diǎn)是在彼此獨(dú)立的基礎(chǔ)上,實(shí)現(xiàn)模塊之間的交互性,這種交互性使我們不需要熟悉它們的內(nèi)部工作原理,方便程序設(shè)計(jì)者把不同的組件提供的功能粘合在一起,像搭積木一樣,根據(jù)不同的用途,搭建成不同的形狀,以滿(mǎn)足客戶(hù)的需求。利用CAA可以實(shí)現(xiàn)CATIA幾乎所有功能的開(kāi)發(fā)工作。但是,由于CATIA應(yīng)用本身的復(fù)雜性和CAA所涉及的深層次內(nèi)容,利用CAA進(jìn)行二次開(kāi)發(fā)也具有一定的復(fù)雜性和難度。
3. CAA的開(kāi)發(fā)環(huán)境
本文的CAA開(kāi)發(fā)系統(tǒng)是構(gòu)建在Visual Studio NET 2005平臺(tái)上,通過(guò)API調(diào)用CATIA的函數(shù)庫(kù),進(jìn)行所需的程序開(kāi)發(fā),從而實(shí)現(xiàn)客戶(hù)需求和原系統(tǒng)的緊密集成。在成功安裝CATIA、CAA、RADE(Rapid Application Development Environment)后,RADE的菜單被添加到Microsoft VisualStudio2005的界面中,我們將在這里進(jìn)行所有的編程開(kāi)發(fā)操作。開(kāi)發(fā)界面如下圖2所示。
4.圓柱體開(kāi)發(fā)實(shí)例
4.1開(kāi)發(fā)流程
4.2實(shí)現(xiàn)的步驟
4.2.1新建工程
首先,在文件菜單下,單擊 ,新建一個(gè)CAA工程,命名為“Mycreate- CylinderFramework”,每個(gè)CAA工程都至少包含一個(gè)Framework(體系結(jié)構(gòu)如下圖4所示),之后在Framework中添加Module。Module為組織程序代碼的一個(gè)基本容器,以后所有的編程將在這里進(jìn)行??梢愿鶕?jù)需要?jiǎng)?chuàng)建多個(gè)Module,本文只創(chuàng)建一個(gè)Framework和Module。
4.2.2建立接口連接
建立Workspace后,必須建立Workspace與CATIA系統(tǒng)接口的連接,以搜索開(kāi)發(fā)所需要的API資源。
4.2.3工具條的設(shè)置
4.2.4窗口的實(shí)現(xiàn)
根據(jù)圖3的開(kāi)發(fā)流程,首先應(yīng)得到零件文檔,指向裝載零件的容器,在草圖工廠中,約束圓形的圓心與坐標(biāo)軸同心,根據(jù)得到的圓柱半徑參數(shù),在XY平面上創(chuàng)建圓形,這樣就得到創(chuàng)建完約束的草圖,在二維圖形工廠中創(chuàng)建圓形,結(jié)合在零件工廠中的凸臺(tái)指令,導(dǎo)入圓柱體的高度參數(shù),創(chuàng)建完整的圓柱體,之后運(yùn)行更新即可。部分代碼如下所示,創(chuàng)建圓柱體的對(duì)話框界面如下圖7所示。
CATDocument * pDoc= NULL;
CATFrmEditor * _pEditor=CATFrmEditor::GetCurrentEditor();
pDoc=_pEditor->GetDocument();//這里得到Part文檔下的環(huán)境指針
CATInit_var spInitOnDoc(pDoc);//這里得到零件根容器
CATISketchFactory_var spSketchFactOnPrtCont(piPrtCont);//初始化草圖工廠
CATISketch_var spSketch = spSketchFactOnPrtCont->CreateSketch(spSketchPlane);//在XY面上創(chuàng)建草圖
double iPoint[2] = {0.,0.};//約束圓心點(diǎn)
CATISpecObject_var spLine1 = spWF2DFactOnSke- tch->CreateCircle(iPoint,_Editor003->GetFloatValu e ());//獲得圓柱半徑參數(shù),創(chuàng)建圓形
double firstLimit = _Editor004->GetFloatValue();//獲得自定義圓柱高度
CATISpecObject_var spSpecObj = spPrtFactOnP- rtCont->CreatePad(spSketch);//創(chuàng)建凸臺(tái)
圖7 創(chuàng)建圓柱體界面
Fig.7 Create cylinder interface
4.3程序界面運(yùn)行展示
將全部程序編譯運(yùn)行更新,在CATIA主窗口中顯示圓柱體生成的工具條,單擊工具條,彈出創(chuàng)建圓柱的對(duì)話框,用戶(hù)只需輸入圓柱體半徑和高度參數(shù),系統(tǒng)會(huì)自動(dòng)生成圓柱體,效果圖如下圖8所示。
4.4程序的發(fā)布
為了使開(kāi)發(fā)的程序讓更多的人用到,要對(duì)程序進(jìn)行發(fā)布。利用CATIA Tools工具中的“Environment Editor V5R18”環(huán)境編輯器,開(kāi)發(fā)者可以對(duì)編好的程序進(jìn)行發(fā)布,在桌面上生成CATIA類(lèi)型快捷圖標(biāo)(如下圖9),雙擊該圖標(biāo),會(huì)啟動(dòng)CATIA,用戶(hù)便可使用CATIA原來(lái)所有的功能和新發(fā)布的功能。
5.結(jié)束語(yǔ)
本文介紹了CATIA二次開(kāi)發(fā)方式,利用CAA組件架構(gòu)方法實(shí)現(xiàn)了圓柱體在CATIA界面中的直接生成和程序發(fā)布。從文中可以看出,基于CAA組件架構(gòu)模式的CATIA二次開(kāi)發(fā)方法,可以方便快捷的實(shí)現(xiàn)第三方客戶(hù)和CATIA軟件的通信,根據(jù)客戶(hù)需求,對(duì)CATIA軟件進(jìn)行專(zhuān)門(mén)的開(kāi)發(fā),大大縮短了系統(tǒng)的開(kāi)發(fā)周期,提高工程效率,具有很大的工程實(shí)用價(jià)值。
參考文獻(xiàn):
[1] 董伊鑫,席平.基于CATIA的界面二次開(kāi)發(fā)[J].航空制造技術(shù),2006(12):83-86,104.
[2] 周仙娥,魯墨武,趙海星.基于CAA的CATIA二次開(kāi)發(fā)的研究[J].科技信息,2008(36):73-74,317.
[3]徐太花.基于CATIA/CAA的文字輸入的二次開(kāi)發(fā)[J].計(jì)算機(jī)與現(xiàn)代化,2013(1):102-105.
[4]胡適,吳立軍.CATIA二次開(kāi)發(fā)技術(shù)基礎(chǔ)[M].北京:電子工業(yè)出版社,2006
[5]何朝良,杜廷娜,張超.基于CAA的CATIA二次開(kāi)發(fā)初探,自動(dòng)化技術(shù)與應(yīng)用,2006年第25卷第9期.
作者簡(jiǎn)介:劉爽(1987-),女,碩士研究生,主要從事精密測(cè)控技術(shù)與儀器的研究.