王科銀,羅言,趙楊
CATIA工程圖環境客戶化開發
王科銀1,羅言1,趙楊2
(1.湖北汽車工業學院 汽車工程學院,湖北 十堰 442002;2.吉利汽車研究院(寧波)有限公司,浙江 寧波 315000)
基于CATIA二次開發技術,以VB語言做基礎編程語言,對CATIA工程圖環境進行客戶化開發而達到如下目的:(1)建立標準圖框模板,模板中二維圖紙信息(包括圖號、零件名稱、零件材料等)對應三維數模屬性,實現圖紙屬性信息的自動生成;(2)通過CATIA的二次開發,可以直接根據三維模型屬性自動生成明細表信息,并且當總成或零部件屬性信息發生更改時,明細表能自動更新。
CATIA;工程圖;客戶化開發
隨著CATIA軟件的廣泛應用,工程圖的繪制已經從以往的手工繪制逐漸演變為現在的計算機輔助繪制,制圖效率有了顯著的提高。但是針對不同的領域CATIA仍然存在著一定的局限性。例如,在機械產品圖樣的輸出過程中,零部件的信息、明細表的匯總輸出仍然需要手動輸入,并且不易修改。因此針對具體的應用對CATIA軟件的二次開發顯得尤為重要。CATIA的二次開發能有效的提高用戶的工作效率以及對工作質量有著明顯提高。
任何軟件,其功能不可能滿足所有領域、所有用戶的應用習慣和應用需求。為此,CATIA V5為用戶提供了二次開發接口和開放式的內部命令集合,給用戶的二次開發帶來了方便。
CATIA的二次開發遵循面向對象的設計思想,創建了基于COM組件對象建模的PPR架構(產品,流程,資源),有效地解決和分散了維護,管理和擴展的難度?;诮M件架構思想的最新計算機技術,標準和軟件技術,包括JAVA BEAN,COM / OLE,CORBA技術和Web技術,C ++語言,STEP-SDAI,XM L,OpenGL等這使得CATIA VS獨具特點:數據結構簡單,模塊全部互連,部分模塊雙向互連,集成系統具有強大的專業應用擴展功能[1]。Software-in-a-Box(SCI)有三個基本概念:框架,組件和產品總線。
該框架提供了對所有應用程序都有用的功能(如接口,內存),并提供了一致的整體設計。框架是類似應用程序集合的一部分(一致但不詳盡)解決方法。開發人員的任務是使用這個不完整的解決方案和代碼創建一個完整的應用程序。域中的應用程序,包括不變和可變部分。固定部分由框架覆蓋并且通常為80%,并且可變部分由開發者決定并且通常占20%。開發人員通過將已更改部件的代碼添加到框架并獲取其操作來創建新的特定應用程序??蚣芨鶕欠襻槍μ厥忸I域還是若干領域,可分為水平框架、垂直框架、復合文檔框架等。
組件是軟件的基本量子(單元)。組件既應當足夠小,以便于維護;又應足夠大,可具備相當的功能,可以被打包和插用。組件的特征提供了將一個應用程序分成若干個組件的機制。每個組件提供了一個相當專門的功能,并向框架的其余部分描述自己,以便別的組件能夠訪問它的功能。描述是通過說明性語言如IDL實現的,其實質是將組件的接口與實現分開。由于組件可以單獨進行維護和更新,因此,組件不能直接與其他組件通信非常重要。組件之間的交互必須使用框架或對象總線來實現。
雖然CATIA軟件模塊很多,功能很強大。但畢竟各行業、企業標準和要求不同。為了解決這一問題,CATIA為用戶開發了利用宏進行二次開發的接口。這樣,用戶無需理解程序的內部原理和專業的編程基礎,通過簡單的學習,利用提供的對象和方法,就可以開發出符合自己需求的工具或批處理功能。
VB語言對CATIA進行二次開發,其開發出來的工具主要有以下三種形式:
(1)單個的腳本文件,如catvbs文件,catscript文件。雙擊即可運行,但只能通過簡單的inputbox和msgbox實現人機交互。
(2)VBA宏庫。VBA文件中可包含窗體,因此可以繪制按鈕、文本框等常規的VB控件,可以做復雜的交互界面。
(3)利用VB6或者VB.net制作生成exe格式的可執行文件。此類開發需要在程序運行時先通過COM接口連接CATIA程序再進行后續的操作。
本課題中利用VBA工具進行開發。
CATIA二次開發具體流程如下:
在VB響應按鈕下添加如下語句從而實現零件相應屬性的添加
Set strParam1 = parameters1.CreateString ("零件代號", "")
Set strParam2 = parameters2.CreateString ("名稱", "")
Set strParam3 = parameters3.CreateString ("零部件類型", "")
“材料”、“規格”、“零件特性”、“備注”等屬性的添加與此類似,在此不一一贅述。
定制如圖1所示的交互界面,設計者只需點擊定制號的屬性添加按鈕,在彈出的“零件屬性填寫”對話框中輸入所需零件屬性即可。

圖2 圖框標題欄添加界面

圖3 圖框和標題欄
在工程圖環境中點擊創建圖框按鈕,出現圖框標題欄添加界面(如圖2),選擇需要的功能,為工程圖添加圖框(如圖3),具體語句不作贅述。
同樣在工程環境圖中,點擊創建明細表按鈕在設定位置自動添加如圖4所示明細表,明細表中的信息與三維零件中的零件屬性信息保持一致。以零件“材料”為例說明具體實現方法。
具體代碼如下:
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
前兩句語句實現了“材料”屬性填寫的具體位置以及字體樣式,后兩句語句實現了三維零件中相應屬性的讀取。

圖4 明細表
本研究運用CATIA二次開發工具VB,開發了通過VB6.0編程,開發了自動生成圖框標題欄以及標題欄信息修改界面。這種數字化開發技術,使得在繪制工程圖時大大提高了技術人員的工作效率,能讓用戶有更多的時間用于工程圖細節的研究。該程序具有方便靈活的人機交互界面,用戶只需要點擊按鈕,即可獲取文件的屬性且自動生成圖框標題欄,或根據需要自動修改文件屬性和標題欄信息,使用戶能夠快速準確的生成標題欄信息。
[1] 陸菲菲,朱桂明,陶志榮,等. MDCent:一種高可擴展、高吞吐量的模塊間互連結構[J].計算機研究與發展, 2015, 52(5):1127-1136.
[2] 胡挺,吳立軍.CATIA二次開發技術基礎[M].北京:電子工業出版社,2004.
[3]基于CATIA V5環境下的車身懸置系統開發功能集成及應用[D]. 電子科技大學, 2014.
[4] 董伊鑫,席平.基于CATIA的界面二次開發[J].航空制造技術,2006 (12):83-86.
[5]張敏,蘇蘭海,王君英.基于CAA的CATIA用戶自定義特征創建[J].機械設計與制造, 2008(9):87-89.
[6] 張虎志.基于Catia Automation API工程圖模板定制方法[J].數字技術與應用, 2015(3):57-58.
[7] 邵曉明.CATIA工程圖國標化與輔助精度設計技術研究[D].南京航空航天大學, 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-),男,畢業于湖北汽車工業學院及德國應用科技大學本科雙學士學位,就職于湖北汽車工業學院汽車工程學院。
10.16638/j.cnki.1671-7988.2019.13.055