[摘要]在深入研究UG二次開發(fā)技術(shù)的基礎(chǔ)上,綜合運用UG/Open MenuScript、UG/Open UIStyler、UG/Open API和Visual C++6.0等UG二次開發(fā)工具,開發(fā)建立了1套完整的汽車沖模三維參數(shù)化標(biāo)準(zhǔn)件庫。該標(biāo)準(zhǔn)件庫與UG的集成環(huán)境有機(jī)地結(jié)合在一起,界面友好,具有良好的可擴(kuò)充性和可移植性。
關(guān)鍵詞 沖模 標(biāo)準(zhǔn)件庫 CAD UG
1 引言
美國UGS公司的Unigraphics(UG)是一個優(yōu)秀的機(jī)械CAD/CAE/CAM一體化高端軟件,它基于完全的三維實體復(fù)合造型、特征建模、裝配建模技術(shù),能設(shè)汁出任意復(fù)雜的產(chǎn)品模型。再加上技術(shù)上處于領(lǐng)先地位的CAM模塊、內(nèi)嵌的CAE模塊,使CAD,CAE和CAM有機(jī)集成,可以使產(chǎn)品的設(shè)計、分析和制造一次完成,已經(jīng)廣泛應(yīng)用于航空航天、汽車、通用機(jī)械、家用電器等領(lǐng)域”,。作為通用CAD/CAE/CAM軟件,UG功能非常強(qiáng)大,但缺乏通用標(biāo)準(zhǔn)件庫以及行業(yè)標(biāo)準(zhǔn)件庫,而具體行業(yè)的產(chǎn)品設(shè)計總是會經(jīng)常用到通用標(biāo)準(zhǔn)件和本行業(yè)標(biāo)準(zhǔn)件。若每次設(shè)計對每一零件均從頭開始建模,則要做大量重復(fù)性工作,因此,有必要開發(fā)通用標(biāo)準(zhǔn)件庫以及行業(yè)標(biāo)準(zhǔn)件庫,以提高產(chǎn)品沒計效率,縮短沒計周期。
2 UG二次開發(fā)工具
UG軟件提供了CAD/CAE/CAM業(yè)界最先進(jìn)的編程工具集,以滿足用戶二次開發(fā)的需要,這組工具集稱之為UG/Open,是一系列UG開發(fā)了具的總稱,它們隨UG—起發(fā)布,以開放性架構(gòu)面向不同的軟件平臺提供靈活的開發(fā)支持,UG/Open套件主要由4個開發(fā)工具組成,如圖1所示。利用UG/Open提供的應(yīng)用程序和開發(fā)工具,用戶可以在其提供的平臺上開發(fā)出適合自己需要的CAD產(chǎn)品。
2.1 UG/Open CRIP語言
GRIP(Graphies Interactive Progrm'nming)是UG內(nèi)嵌的專用圖形交互編程語言,用戶通過GRIP語言編程能夠自動完成在UG下進(jìn)行的絕大部分操作,如實體建模、工程制圖、制造加工、系統(tǒng)參數(shù)控制、文件管理、圖形修改等”。GRIP語言與一般通用語言一樣,有完整的浯法規(guī)則,程序結(jié)構(gòu),內(nèi)部函數(shù)。GRIP程序同樣要經(jīng)過編譯、鏈接后,生成可執(zhí)行程序,才能運行。使用GRIP進(jìn)行編程的一般步驟為:
(1)編寫源代碼:利用文本編輯編寫源代碼,并以擴(kuò)展名.grx存盤。
(2)編澤源程序:將源程序進(jìn)行編譯生成擴(kuò)展名為.gri的編譯文件。如果主程序中含有子程序,則兩者要分別進(jìn)行編譯,鏈接時主程序自動對于程序進(jìn)行鏈接。
(3)鏈接程序:將擴(kuò)展名為.gri的文件鏈接生成可執(zhí)行的GRIP文件,擴(kuò)展名為.grx。
(4)運行程序:鏈接生成的.grx文件,可以通過用戶化的菜單或?qū)υ捒蛘{(diào)用,也可以通過UG的菜單項File-Execute UG/Open-Grip…直接運行。
2.2 UG/Open APl程序
UG/Open API(Application Programming Interface,應(yīng)用編程接口),是—個允許用戶訪問并影響UG對象模型(Object Model)的程序集,它提供了比GRIP更多的對UG及其模塊進(jìn)行操作的功能,包括建摸.裝配、有限元分析、機(jī)構(gòu)運動分析、制造等。它支持C/C++語言,可以充分發(fā)揮C語言編譯、運行效率高,功能強(qiáng)大的特點。并且,這些APl函數(shù)可以無縫地集成到C++程序中,并利用強(qiáng)大的Microsoft Visual C++集成環(huán)境進(jìn)行編譯。這樣,就可以充分地發(fā)揮出VC強(qiáng)大的功能和極其豐富的資源,包括MFC類庫,使用面向?qū)ο蟮能浖こ谭椒ǎ瑑?yōu)質(zhì)高效地進(jìn)行軟件的開發(fā)。根據(jù)程序運行環(huán)境的不同,UG/Open APl程序可分為兩種模式:
(1)外部(External)程序模式:UG/Open API外部程序可以脫離UG環(huán)境.在操作系統(tǒng)下單獨運行,運行的結(jié)果通常不能在UG圖形界面中顯示,也無用戶交互界面,所以應(yīng)用較少。通常用于不需要圖形界面的后臺應(yīng)用程序,如打印機(jī)或繪圖儀輸出。
(2)內(nèi)部(Internal)程序模式:UG/Open APl內(nèi)部程序只能在UG環(huán)境下運行,用VC將應(yīng)州程序編譯鏈接生成動態(tài)鏈接庫(*.dll)文件,UG啟動時會自動加載動態(tài)鏈接庫,供用戶萊單調(diào)用,用戶開發(fā)的應(yīng)用程序能與UG軟件無縫集成。并且這種模式下有較好的人機(jī)交互性,因此應(yīng)用較為廣泛。
2.3 UG/Open MenuSeript
UG/Open MenuSeript是UG/Open的一個重要組成部分,支持UG上菜單和彈出式下拉菜單的修改,通過它可以改變UG菜單的布局、添加新的菜單項和工具條,生成用戶化的菜單進(jìn)而集成用戶二次開發(fā)的特殊應(yīng)用,應(yīng)用MemiSeript進(jìn)行用戶菜單定制主要有兩種實現(xiàn)途徑:
(1)通過編輯純文本的菜單腳本文件(*.men)創(chuàng)建,修改UG的主莢單及下拉菜單,而不用開發(fā)C語言程序。
(2)利用C/C++語言編程調(diào)用UG/Open APl提供的MenuScript APl函數(shù)及于程序開發(fā)定制用戶菜單。
2.4 UG/Open UIStyler
UG/Open UIStyler是一個構(gòu)建UG風(fēng)格對話框的直觀可視化的編輯器。通過選擇和放置對話框控件,能實現(xiàn)所見即所得,可以避免復(fù)雜的圖形用戶接口(GUI)編程。而且,UIStyler創(chuàng)建的對話框可以在MenuSeripl中調(diào)用,因此可以實現(xiàn)在UG菜單項上調(diào)用UlStyler創(chuàng)建的對話框,從而將用戶應(yīng)用程序和UG完全融合。
對話框創(chuàng)建完成后,會在具存放的目錄下自動生成3個文件,分別是*.dig,*.template.C,和*.h文件。其中*.dlg是對話框資源文件,定義了對話框樣式及控件事件的響應(yīng)函數(shù)名稱,存放在用戶目錄下面的\applleation目錄內(nèi),供用戶菜單調(diào)用;*.template.c是C語言源文件模板,它包含了對話框所有回調(diào)函數(shù)的定又,提供了一個具有對話框應(yīng)用的程序框架,該程序框架通過調(diào)用UG/Open APl函數(shù)和訪問對話框資塬文件,實現(xiàn)最初的對話框界而功能,在程序標(biāo)明的位置添加用戶代碼,編寫問調(diào)函數(shù)即可以實現(xiàn)具體的應(yīng)用功能;*.h文件是對話框頭文件.它包含了對話框控件標(biāo)識的定義以及控件事件響應(yīng)函數(shù)原型的聲明,供Visual C++編寫應(yīng)用程序時使用。
3 汽車沖模標(biāo)準(zhǔn)件庫的建立及其實現(xiàn)技術(shù)
汽車沖模標(biāo)準(zhǔn)件作為模具行業(yè)的常用零部件,有其鮮明的特點,通常包括標(biāo)準(zhǔn)模架、導(dǎo)向裝置、安放裝置,起重裝置、限位裝置、沖切裝置,定位裝置等。以中國模具工業(yè)協(xié)會2002年版<<汽車沖模標(biāo)準(zhǔn)匯編>>,沒計開發(fā)了一套完整的汽車沖模三維參數(shù)化標(biāo)準(zhǔn)件庫、該標(biāo)準(zhǔn)件庫與UG的集成環(huán)境有機(jī)地結(jié)合在一起,界面簡捷直觀,操作方便,具有良好的人機(jī)交互、可擴(kuò)充性和可移植性。
標(biāo)準(zhǔn)件庫的建立綜合運用了上述UG/OpenMenuSript、UG/Open UG/Open UIStyler、UG/Open API他Visual C++6.0等UG二次開發(fā)關(guān)鍵技術(shù).其程序框如圖2所示。其中,利用UG/Open MenuSeript編寫用戶菜單,直接掛在UG系統(tǒng)的主菜單上,形成與UG融合統(tǒng)個的界面;利用UG/Opea UISlyler制作UG風(fēng)格的對話框,供用戶萊單調(diào)用;通過Visual C++和UG/Open APl編寫參數(shù)化設(shè)計應(yīng)用程序,并生成動態(tài)鏈接庫(Dynamic Link Library)文件,在UG啟動時自動加載,實現(xiàn)了對UG的底層開發(fā)。
3.1 用戶菜單設(shè)計
為了與uc交互界面風(fēng)格保持一致,沖模標(biāo)準(zhǔn)件庫采用了分級式下拉菜單,如圖3所示,下拉菜單通過UG/Open MenuScript模塊開發(fā)實現(xiàn)。即利用MenuScript提供的UG菜單腳本語言,編寫成擴(kuò)展名為*.men的文本文件,將其放在用戶目錄下的/startup目錄內(nèi),通過設(shè)定uC的環(huán)境變量,uC在啟動時會自動加載用戶菜單文件,通過成uC用戶菜單。
為了方便用戶調(diào)用時快速檢索到所要的標(biāo)準(zhǔn)件,將下拉萊單的最大深度設(shè)計為3級,且每一條下拉菜單最多不超過20個按鈕。末級菜單上每一個按鈕對應(yīng)—個“QMxxxx”標(biāo)準(zhǔn)件號,點擊末級菜單按鈕即調(diào)出創(chuàng)建相應(yīng)標(biāo)準(zhǔn)件的用戶對話框,如圖4所示。
3.2 用戶對話框設(shè)計
沖模標(biāo)準(zhǔn)件庫利用UIStyler制作UG風(fēng)格的對話框,生成包含數(shù)據(jù)輸入框、文本框、按鈕、圖片等控件的對話框,如圖4所示。在對話框上部顯示標(biāo)準(zhǔn)件圖片,在對話框左上角顯示對話框標(biāo)題,在uc系統(tǒng)窗口左下角顯示操作提示信息,這樣可以使用戶很方便地設(shè)計或選用標(biāo)準(zhǔn)件。
所有對話框都有6種基本同調(diào)函數(shù),分別是Apply按鈕的回調(diào)函數(shù),Back按鈕的回調(diào)函數(shù)、Cancel按鈕的回調(diào)函數(shù)、OK按忸的回調(diào)函數(shù)、對話框構(gòu)造函數(shù)和對話框析構(gòu)函數(shù)。其中對話框構(gòu)造函數(shù)在UG構(gòu)建對話框完成之后、用戶應(yīng)用程序執(zhí)行之前調(diào)用,在標(biāo)準(zhǔn)件庫開發(fā)過程中,利用它進(jìn)行對話框初始化操作,將標(biāo)準(zhǔn)件的常用規(guī)格及技術(shù)要求顯示到信息窗口,供用戶創(chuàng)建標(biāo)準(zhǔn)件時作參考,而不再需要查閱標(biāo)準(zhǔn)件設(shè)計手冊。對話框析構(gòu)函數(shù)在UC用戶劉話框關(guān)閉時調(diào)用,程序編寫時利用它進(jìn)行關(guān)閉、清除信息窗口以及釋放申請的內(nèi)存空間等操作。
3.3 應(yīng)用程序動態(tài)鏈接庫產(chǎn)(*.dll)創(chuàng)建
UG/Open API應(yīng)用程序是用C/C++語言編寫的,它除了能夠在UC的環(huán)境下對UG進(jìn)行功能凋用外.還能在程序中實現(xiàn)軟件的文件管理、流程控制、數(shù)據(jù)傳輸、窗口調(diào)用、數(shù)值計算等C/C++語言支持的全部功能,使用非常靈活。UG/Open APl應(yīng)用程序設(shè)計牽涉到UG提供的頭文件(*.h)、庫文件(*.lib)以及C/C++語言編程環(huán)境,需要劉Visual C++編譯環(huán)境進(jìn)行設(shè)置,下面給出了VisualC++6.0編譯環(huán)境設(shè)置方法及動態(tài)鏈接庫的創(chuàng)建過程:
(1)建立一個空的動態(tài)鏈接庫工程。
(2)配置程序頭文件(*.h)、庫文件(*.lib)的目錄路徑。其中頭文件包括UG頭文件,Visual C++6.O頭文件及UC/Open U1Styler對話框頭文件;庫文件包括UG庫文件,Visual C++6.O庫文件。
(3)將對話框生成的C語言源文件模板文件*.template.c添加到Project中。
(4)編制應(yīng)用程序。進(jìn)入對話框回調(diào)函數(shù)內(nèi)部進(jìn)行程序編制,定義變量及UG對象,運用C/C++語言和UG/Open APl函數(shù)進(jìn)行參數(shù)化建模設(shè)計。
(5)生成動態(tài)鏈接庫(*.dll)文件。生成的*.dll文件放在用戶目錄下的/startup日錄內(nèi),UG啟動時會自動加載動態(tài)鏈接庫文件,供用戶菜單調(diào)用。
4 結(jié)束語
在研究UG/Open二次開發(fā)技術(shù)的基礎(chǔ)上,綜合運用UG/Open MenuScript、UG/Open UIStyler、UG/Open API和Visual C++6.0等UG二次開發(fā)工具,深入到UG系統(tǒng)內(nèi)部,開發(fā)建立了1套完整的汽車沖模三維參數(shù)化標(biāo)準(zhǔn)件庫。沖模標(biāo)準(zhǔn)件庫在UG軟件啟動時自動加載到UG主菜單上,界面簡捷直觀,操作方便,與UG的集成環(huán)境有機(jī)地結(jié)合在一起,具有良好的人機(jī)交互、可擴(kuò)充性和可移植性。使用沖模標(biāo)準(zhǔn)件庫可以提高沖壓模具的設(shè)計效率,縮短設(shè)計周期,提高模具的設(shè)汁質(zhì)量和標(biāo)準(zhǔn)化水平,將模具設(shè)計工程師從繁瑣的建模造型工作中解放出來,把更多的精力投入到技術(shù)方案創(chuàng)新上。