王科銀,羅言,趙楊
CATIA工程圖環(huán)境客戶化開發(fā)
王科銀1,羅言1,趙楊2
(1.湖北汽車工業(yè)學(xué)院 汽車工程學(xué)院,湖北 十堰 442002;2.吉利汽車研究院(寧波)有限公司,浙江 寧波 315000)
基于CATIA二次開發(fā)技術(shù),以VB語言做基礎(chǔ)編程語言,對CATIA工程圖環(huán)境進(jìn)行客戶化開發(fā)而達(dá)到如下目的:(1)建立標(biāo)準(zhǔn)圖框模板,模板中二維圖紙信息(包括圖號、零件名稱、零件材料等)對應(yīng)三維數(shù)模屬性,實(shí)現(xiàn)圖紙屬性信息的自動(dòng)生成;(2)通過CATIA的二次開發(fā),可以直接根據(jù)三維模型屬性自動(dòng)生成明細(xì)表信息,并且當(dāng)總成或零部件屬性信息發(fā)生更改時(shí),明細(xì)表能自動(dòng)更新。
CATIA;工程圖;客戶化開發(fā)
隨著CATIA軟件的廣泛應(yīng)用,工程圖的繪制已經(jīng)從以往的手工繪制逐漸演變?yōu)楝F(xiàn)在的計(jì)算機(jī)輔助繪制,制圖效率有了顯著的提高。但是針對不同的領(lǐng)域CATIA仍然存在著一定的局限性。例如,在機(jī)械產(chǎn)品圖樣的輸出過程中,零部件的信息、明細(xì)表的匯總輸出仍然需要手動(dòng)輸入,并且不易修改。因此針對具體的應(yīng)用對CATIA軟件的二次開發(fā)顯得尤為重要。CATIA的二次開發(fā)能有效的提高用戶的工作效率以及對工作質(zhì)量有著明顯提高。
任何軟件,其功能不可能滿足所有領(lǐng)域、所有用戶的應(yīng)用習(xí)慣和應(yīng)用需求。為此,CATIA V5為用戶提供了二次開發(fā)接口和開放式的內(nèi)部命令集合,給用戶的二次開發(fā)帶來了方便。
CATIA的二次開發(fā)遵循面向?qū)ο蟮脑O(shè)計(jì)思想,創(chuàng)建了基于COM組件對象建模的PPR架構(gòu)(產(chǎn)品,流程,資源),有效地解決和分散了維護(hù),管理和擴(kuò)展的難度?;诮M件架構(gòu)思想的最新計(jì)算機(jī)技術(shù),標(biāo)準(zhǔn)和軟件技術(shù),包括JAVA BEAN,COM / OLE,CORBA技術(shù)和Web技術(shù),C ++語言,STEP-SDAI,XM L,OpenGL等這使得CATIA VS獨(dú)具特點(diǎn):數(shù)據(jù)結(jié)構(gòu)簡單,模塊全部互連,部分模塊雙向互連,集成系統(tǒng)具有強(qiáng)大的專業(yè)應(yīng)用擴(kuò)展功能[1]。Software-in-a-Box(SCI)有三個(gè)基本概念:框架,組件和產(chǎn)品總線。
該框架提供了對所有應(yīng)用程序都有用的功能(如接口,內(nèi)存),并提供了一致的整體設(shè)計(jì)??蚣苁穷愃茟?yīng)用程序集合的一部分(一致但不詳盡)解決方法。開發(fā)人員的任務(wù)是使用這個(gè)不完整的解決方案和代碼創(chuàng)建一個(gè)完整的應(yīng)用程序。域中的應(yīng)用程序,包括不變和可變部分。固定部分由框架覆蓋并且通常為80%,并且可變部分由開發(fā)者決定并且通常占20%。開發(fā)人員通過將已更改部件的代碼添加到框架并獲取其操作來創(chuàng)建新的特定應(yīng)用程序??蚣芨鶕?jù)是否針對特殊領(lǐng)域還是若干領(lǐng)域,可分為水平框架、垂直框架、復(fù)合文檔框架等。
組件是軟件的基本量子(單元)。組件既應(yīng)當(dāng)足夠小,以便于維護(hù);又應(yīng)足夠大,可具備相當(dāng)?shù)墓δ?,可以被打包和插用。組件的特征提供了將一個(gè)應(yīng)用程序分成若干個(gè)組件的機(jī)制。每個(gè)組件提供了一個(gè)相當(dāng)專門的功能,并向框架的其余部分描述自己,以便別的組件能夠訪問它的功能。描述是通過說明性語言如IDL實(shí)現(xiàn)的,其實(shí)質(zhì)是將組件的接口與實(shí)現(xiàn)分開。由于組件可以單獨(dú)進(jìn)行維護(hù)和更新,因此,組件不能直接與其他組件通信非常重要。組件之間的交互必須使用框架或?qū)ο罂偩€來實(shí)現(xiàn)。
雖然CATIA軟件模塊很多,功能很強(qiáng)大。但畢竟各行業(yè)、企業(yè)標(biāo)準(zhǔn)和要求不同。為了解決這一問題,CATIA為用戶開發(fā)了利用宏進(jìn)行二次開發(fā)的接口。這樣,用戶無需理解程序的內(nèi)部原理和專業(yè)的編程基礎(chǔ),通過簡單的學(xué)習(xí),利用提供的對象和方法,就可以開發(fā)出符合自己需求的工具或批處理功能。
VB語言對CATIA進(jìn)行二次開發(fā),其開發(fā)出來的工具主要有以下三種形式:
(1)單個(gè)的腳本文件,如catvbs文件,catscript文件。雙擊即可運(yùn)行,但只能通過簡單的inputbox和msgbox實(shí)現(xiàn)人機(jī)交互。
(2)VBA宏庫。VBA文件中可包含窗體,因此可以繪制按鈕、文本框等常規(guī)的VB控件,可以做復(fù)雜的交互界面。
(3)利用VB6或者VB.net制作生成exe格式的可執(zhí)行文件。此類開發(fā)需要在程序運(yùn)行時(shí)先通過COM接口連接CATIA程序再進(jìn)行后續(xù)的操作。
本課題中利用VBA工具進(jìn)行開發(fā)。
CATIA二次開發(fā)具體流程如下:
在VB響應(yīng)按鈕下添加如下語句從而實(shí)現(xiàn)零件相應(yīng)屬性的添加
Set strParam1 = parameters1.CreateString ("零件代號", "")
Set strParam2 = parameters2.CreateString ("名稱", "")
Set strParam3 = parameters3.CreateString ("零部件類型", "")
“材料”、“規(guī)格”、“零件特性”、“備注”等屬性的添加與此類似,在此不一一贅述。
定制如圖1所示的交互界面,設(shè)計(jì)者只需點(diǎn)擊定制號的屬性添加按鈕,在彈出的“零件屬性填寫”對話框中輸入所需零件屬性即可。
圖2 圖框標(biāo)題欄添加界面
圖3 圖框和標(biāo)題欄
在工程圖環(huán)境中點(diǎn)擊創(chuàng)建圖框按鈕,出現(xiàn)圖框標(biāo)題欄添加界面(如圖2),選擇需要的功能,為工程圖添加圖框(如圖3),具體語句不作贅述。
同樣在工程環(huán)境圖中,點(diǎn)擊創(chuàng)建明細(xì)表按鈕在設(shè)定位置自動(dòng)添加如圖4所示明細(xì)表,明細(xì)表中的信息與三維零件中的零件屬性信息保持一致。以零件“材料”為例說明具體實(shí)現(xiàn)方法。
具體代碼如下:
oDrawingTable.SetCellAlignment oDrawingTable.NumberOfRows-1-n,3,CatTableMiddleCenter
oDrawingTable.GetCellObject(oDrawingTable.NumberOfRows-1-n,3).SetFontSize 0,0,3.5
SetoParameters=ProductList(n).Parameters
Set oParaMaterial=oParameters.item("材料")
Material=oParaMaterial.ValueAsString
前兩句語句實(shí)現(xiàn)了“材料”屬性填寫的具體位置以及字體樣式,后兩句語句實(shí)現(xiàn)了三維零件中相應(yīng)屬性的讀取。
圖4 明細(xì)表
本研究運(yùn)用CATIA二次開發(fā)工具VB,開發(fā)了通過VB6.0編程,開發(fā)了自動(dòng)生成圖框標(biāo)題欄以及標(biāo)題欄信息修改界面。這種數(shù)字化開發(fā)技術(shù),使得在繪制工程圖時(shí)大大提高了技術(shù)人員的工作效率,能讓用戶有更多的時(shí)間用于工程圖細(xì)節(jié)的研究。該程序具有方便靈活的人機(jī)交互界面,用戶只需要點(diǎn)擊按鈕,即可獲取文件的屬性且自動(dòng)生成圖框標(biāo)題欄,或根據(jù)需要自動(dòng)修改文件屬性和標(biāo)題欄信息,使用戶能夠快速準(zhǔn)確的生成標(biāo)題欄信息。
[1] 陸菲菲,朱桂明,陶志榮,等. MDCent:一種高可擴(kuò)展、高吞吐量的模塊間互連結(jié)構(gòu)[J].計(jì)算機(jī)研究與發(fā)展, 2015, 52(5):1127-1136.
[2] 胡挺,吳立軍.CATIA二次開發(fā)技術(shù)基礎(chǔ)[M].北京:電子工業(yè)出版社,2004.
[3]基于CATIA V5環(huán)境下的車身懸置系統(tǒng)開發(fā)功能集成及應(yīng)用[D]. 電子科技大學(xué), 2014.
[4] 董伊鑫,席平.基于CATIA的界面二次開發(fā)[J].航空制造技術(shù),2006 (12):83-86.
[5]張敏,蘇蘭海,王君英.基于CAA的CATIA用戶自定義特征創(chuàng)建[J].機(jī)械設(shè)計(jì)與制造, 2008(9):87-89.
[6] 張虎志.基于Catia Automation API工程圖模板定制方法[J].數(shù)字技術(shù)與應(yīng)用, 2015(3):57-58.
[7] 邵曉明.CATIA工程圖國標(biāo)化與輔助精度設(shè)計(jì)技術(shù)研究[D].南京航空航天大學(xué), 2010.
CATIA Drawing environment customization development
Wang Keyin1, Luo Yan1, Zhao Yang2
( 1.School of Automotive Engineering, Hubei Automotive Industries Institute, Hubei Shiyan 442002; 2.Geely Automobile Research Institute(Ningbo)Co., Ltd, Zhejiang Ningbo 315000 )
Based on CATIA secondary development technology and using VB language as the basic programming langu -age, CATIA drawing environment is customized to achieve the following objectives: (1) Standard drawing frame template is established, and two-dimensional drawing information (including drawing number, part name, part material, etc.) in the template corresponds to three-dimensional digital and analog attributes, so as to realize automatic generation of drawing attribute information; (2) Secondary development of CATIA,the detailed list information can be generated automatically according to the three-dimensional model tree, and it can be updated automatically when the attribute information of assembly or parts is changed.
CATIA; drawing; customized development
U467.4+9
A
1671-7988(2019)13-168-03
U467.4+9
A
1671-7988(2019)13-168-03
王科銀(1990-),男,畢業(yè)于湖北汽車工業(yè)學(xué)院及德國應(yīng)用科技大學(xué)本科雙學(xué)士學(xué)位,就職于湖北汽車工業(yè)學(xué)院汽車工程學(xué)院。
10.16638/j.cnki.1671-7988.2019.13.055