張虎志
摘要:在CATIA三維模型生成的工程圖中,當(dāng)圖紙出現(xiàn)變動,如需要加長、縮小時,或者使用其他工程圖模板,工程圖圖框與標(biāo)題欄均需要重復(fù)繪制,效率十分低下,為了解決這一問題,提出了用CATIA Automation API實現(xiàn)工程圖框圖框與標(biāo)題欄自動生成的技術(shù)?;贑ATIA Automation API的宏程序使用VB語言好學(xué)易用,適合用來對CATIA做簡單的自動化定制開發(fā)。本文詳細(xì)闡述了工程圖模板定制技術(shù)的方法和過程,詳解了定制方法所涉及到的CATIA對象以及相關(guān)的函數(shù)方法,并根據(jù)企業(yè)需求給出了工程圖模板定制的程序設(shè)計的流程圖,并依據(jù)該流程圖定制出符合企業(yè)自身的工程圖模板自動生成宏程序,解決了工程圖圖框與標(biāo)題欄均需要重復(fù)繪制的問題,為其他類似的工程圖模板定制提供了參考。
關(guān)鍵詞:CATIA 二次開發(fā) 工程圖
中圖分類號:TP391.72 文獻(xiàn)標(biāo)識碼:A 文章編號:1007-9416(2015)03-0000-00
1前言
CATIA V5是CATIA是法國達(dá)索系統(tǒng)公司的優(yōu)秀的CAD/CAE/CAM一體化軟件,是目前航空業(yè)使用最廣、影響最大的三維設(shè)計類軟件。目前,國內(nèi)航空企業(yè)尚無法徹底擺脫二維圖,大多處于三維設(shè)計與二維制造局面,因此三維數(shù)模與二維圖紙相關(guān)聯(lián)的要求越來越明顯,使用CATIA生成二維圖成了必然手段。
雖然CATIA中允許自動生成工程圖模板,但其格式并不滿足企業(yè)的相關(guān)標(biāo)準(zhǔn)規(guī)定。為使圖紙規(guī)范化,以提高工作效率,我們需重新定制工程圖模板。
常規(guī)的CATIA工程圖模板定制方法有兩種:定制模板文件和定制宏程序。
1.1定制模板文件
該方法通過在Sheet BackGround模式下用草圖工具繪制圖幅、圖框和標(biāo)題欄然后另存為CATDrawing格式模板文件,然后直接用Insert BackGround命令直接調(diào)用即可。該法簡單易行,但由于實際工作中圖紙允許加寬,導(dǎo)致模板數(shù)量繁多,工作量巨大,且不一定滿足不同時期的需求;更換模板極為不便,需要重新調(diào)整視圖位置,自動化程度不高。
1.2定制基于Catia Automation API的宏程序
該方法是通過定制宏程序,調(diào)用CATIA繪圖命令,進(jìn)行圖幅、圖框和標(biāo)題欄的繪制。由于程序中使用變量代替圖紙寬度,并自動讀取當(dāng)前圖幅參數(shù),因此,圖框的大小和標(biāo)題欄的位置可根據(jù)圖幅大小不同自動調(diào)節(jié)。只要定制一套程序,使用所有圖幅,用戶操作簡單,自動化程度高。
本文將采用定制宏語言的方法定制工程圖模板,以實現(xiàn)工程圖模板的自動化。
2定制宏程序方法
2.1 Automation API簡介
Automation API主要基于CATIA預(yù)先編制好的開放函數(shù),通過其豐富的API函數(shù)即可完成絕大多數(shù)CATIA的自帶功能,不需要開發(fā)人員具有高深的編程技巧,也不需要開發(fā)人員對CATIA軟件驅(qū)動層和內(nèi)核編碼規(guī)則有深入的了解,而且基于VB的開發(fā)語言好學(xué)易用,使得CATIA的初級二次開發(fā)簡單且較為實用。在CATIA Automation中,所有的API都已經(jīng)被封裝成了對象驅(qū)動模式,其主根位于Application之中,并逐層分解為3種形式的對象,即Documents、Cameras、Windows[1],其中工程圖宏程序定制所用的對象在Documents中。
2.2相關(guān)對象、方法及屬性介紹
CATIA提供了用于Workbench的對象,這些對象提供屬性和方法與外部進(jìn)程交互。工程圖中主要使用以下對象:
(1)Drawingsheet 圖紙對象;
(2)DrawingView 視圖對象;
(3)DrawingText 文本對象;
(4)Factory2D 繪圖對象;
(5)Selection 選擇對象。
各對象之間有層次之分,調(diào)用子對象必須先調(diào)用父對象。例如調(diào)用Factory2D對象的CreateLine方法,必須先獲取Drawingsheets對象(假設(shè)已經(jīng)進(jìn)入Drafting模塊),然后依次獲取Drawingsheet、DrawingViews、DrawingView對象[2],才能調(diào)用它。對象層次關(guān)系如圖1所示
定制模板主要用到以下方法:
(1)Factory2D.CreateLine() 繪制直線;
(2)DrawingTexts.Add() 添加文本。
2.3宏程序結(jié)構(gòu)介紹
在CATIA Drafting模塊中提供了一個名為Frame and Title Block命令,用于管理背景視圖的宏程序[3]。該類宏主要包括以下幾類子程序:
(1)Sub CATMain()。主程序,程序由此開始執(zhí)行。
(2)以Sub CATDrw_開頭。顯示在Manage Frame and Title Block界面下,供用戶調(diào)用,
(3)以Sub開頭,但沒有CATDrw_前綴。僅供其他程序調(diào)用,無返回值。
(4)以Function開頭。賦值函數(shù),有返回值。
3定制工程圖宏程序具體實現(xiàn)
3.1需求分析
根據(jù)企業(yè)工程圖定制的需要,我們需要實現(xiàn)以下功能;
(1)自動根據(jù)圖幅大小生成相應(yīng)的模板;
(2)在圖面大小更改時自動更換模板大小,并保留原有的明細(xì)信息;
(3)刪除整個模板的的操作,插入其他類型的模板。
因此對應(yīng)三個功能,需要三個功能函數(shù),即以Sub CATDrw_開頭的函數(shù):
Sub CATDrw_Creation( targetSheet as CATIABase )
Sub CATDrw_Resizing( targetSheet as CATIABase )
Sub CATDrw_Deletion( targetSheet as CATIABase )
3.3完成效果圖
完成開發(fā)完成后,通過CATIA調(diào)用寫好的CATStript,選擇Creation方法能自動根據(jù)選擇的圖紙的
圖框創(chuàng)建完成后,由于種種原因,需要對工程圖圖紙大小進(jìn)行變動時,使用Resizing方法可以保證所有輸入的數(shù)據(jù)自動移到新模板中,如圖5
使用Deletion函數(shù)則能刪除創(chuàng)建工程圖模板,讓圖紙能插入其他的模板。
4 結(jié)語
本文詳細(xì)闡述了基于CATIA Automation API的工程圖模板定制方法和步驟,并且結(jié)合企業(yè)工程圖的特點(diǎn),編制基于CATIA Automation API的工程圖輔助設(shè)計程序,CATIA工程圖中調(diào)用該宏程序來自動生成工程圖模板。使工程圖設(shè)計工作簡單化、程序化,減輕設(shè)計者的重復(fù)性勞動強(qiáng)度。
參考文獻(xiàn)
[1] 胡挺,周立軍.CATIA二次開發(fā)技術(shù)基礎(chǔ).電子工業(yè)出版社,2006年.
[2] V5Automation. 法國達(dá)索公司,2006年.
[3] 詹友剛.CATIA V5工程圖教程.機(jī)械工業(yè)出版社,2013年.
數(shù)字技術(shù)與應(yīng)用2015年3期