西安航空職業(yè)技術(shù)學(xué)院 孔 琳 宋育紅 龔小濤 武欣竹 謝賀年
Pro/ENGINEER是PTC公司設(shè)計(jì)開發(fā)的基于參數(shù)化、特征設(shè)計(jì)的三維實(shí)體造型設(shè)計(jì)軟件,其強(qiáng)大的功能一直受到業(yè)界用戶的好評(píng)。雖然Pro/ENGINEER的功能強(qiáng)大并且通用性良好,但是在具體使用過程中不可能滿足各種各樣的特定要求,為使軟件能夠滿足特定使用者的多樣化需求,則需在該軟件已有功能的基礎(chǔ)上進(jìn)行二次開發(fā)。本文是基于Pro/E Wildfire 4.0版本的設(shè)計(jì),PTC公司推薦使用Visual Studio.NET 2005平臺(tái)進(jìn)行開發(fā)。
Pro/ENGINEER軟件在提供強(qiáng)大的設(shè)計(jì)分析與制造功能的同時(shí),也為用戶提供了多種二次開發(fā)工具,常用的方式有Pro/Program(內(nèi)置)、Pro/TOOLKIT、VB以及J-Link等。
在Pro/ENGINEER軟件中,對(duì)于每一個(gè)模型都有一個(gè)Pro/Program,用于記錄模型的主要涉及步驟和參數(shù)列表,其語言結(jié)構(gòu)類似于BASIC高級(jí)語言。用戶可以根據(jù)模型的設(shè)計(jì)要求來編輯該模型的程序,通過運(yùn)行程序,系統(tǒng)可以通過良好的人機(jī)交互的方法來控制系統(tǒng)參數(shù)、特征是否顯示、特征尺寸的大小等。該方式多用來開發(fā)齒輪、鏈輪、蝸輪蝸桿等復(fù)雜零件。
VB.NET是完全面向?qū)ο蟮木幊陶Z言,在它的完全模式下,實(shí)現(xiàn)了監(jiān)聽Pro/ENGINEER軟件本身發(fā)出的各種消息的接口,因此也支持調(diào)用Pro/E的函數(shù),向添加菜單、按鈕等。
J-Link是Pro/ENGINEER軟件自帶的基于JAVA語言的二次開發(fā)工具,是一種面向?qū)ο螵?dú)立于操作系統(tǒng)平臺(tái)的應(yīng)用程序接口,它封裝了許多針對(duì)Pro/E底層資源調(diào)動(dòng)的類庫和程序包,用戶可以使用來擴(kuò)展Pro/E功能。
Pro/TOOLKIT是PTC公司專門定制的開發(fā)工具包,它提供了應(yīng)用程序接口,使客戶具有擴(kuò)展Pro/E功能的能力。Pro/TOOLKIT使用面向?qū)ο箫L(fēng)格的C語言編程,并且提供了用于底層資源調(diào)用的函數(shù)庫和頭文件,外部應(yīng)用程序可以通過這些函數(shù)來訪問Pro/E。另外,還可以利用Pro/TOOLKIT提供的UI對(duì)話框、菜單以及VC的可視化界面技術(shù),設(shè)計(jì)出方便、實(shí)用、美觀的人機(jī)交互界面,從而大大地提高了系統(tǒng)發(fā)的使用效率。
Pro/TOOLKIT開發(fā)方式有兩種工作模式:異步模式(Asynchronous)是在不需要啟動(dòng)Pro/E的情況下,就可以單獨(dú)運(yùn)行Pro/TOOLKIT應(yīng)用程序的方式。但是相對(duì)來說該方式代碼較為復(fù)雜,開發(fā)難度大以main()函數(shù)作為Pro/TOOLKIT應(yīng)用程序的接口函數(shù);同步模式(Synchronous Mode)必須與Pro/E軟件同時(shí)運(yùn)行,能達(dá)到所見即所得的設(shè)計(jì)結(jié)果,相對(duì)開發(fā)比較容易;并且程序執(zhí)行速度較快。在本次開發(fā)過程中,鑒于設(shè)計(jì)者并非專業(yè)程序設(shè)計(jì)人員,所以最終采用同步模式進(jìn)行設(shè)計(jì)開發(fā),比較容易上手。
在同步設(shè)計(jì)開發(fā)模式中,又分為動(dòng)態(tài)鏈接模式(DLL模式)和多進(jìn)程模式(Multiprocess)兩種。多進(jìn)程模式主要用于程序開發(fā)階段以便程序的測試,但由于DLL模式運(yùn)行比較快,所以程序開發(fā)完成后,最后轉(zhuǎn)換為后者。
在本文的零件庫的開發(fā)設(shè)計(jì)過程中,不僅有菜單的使用,還涉及UI對(duì)話框的設(shè)計(jì)以及零件的可視化表達(dá)等內(nèi)容,因此,主要以Pro/Program和Pro/TOOLKIT作為主要對(duì)象加以對(duì)比分析。
用戶界面對(duì)話框(User Interface Dialog Boxes,簡稱UI對(duì)話框)是Pro/TOOLKIT提供的一種交互界面設(shè)計(jì)工具。它能夠按界面的布局編寫對(duì)話框資源文件;針對(duì)UI對(duì)話框的功能編寫相應(yīng)的控制程序。該方式設(shè)計(jì)的UI界面和Pro/E的資源、設(shè)計(jì)風(fēng)格相一致,人機(jī)交互界面風(fēng)格有連貫性。但是這種利用文本文件設(shè)計(jì)的方式不能直觀地反映界面的布局,設(shè)計(jì)、修改和調(diào)試比較困難。
另外采用Visual C++2005.NET與Pro/ENGINEER軟件相匹配,就可以直接使用VC的面向?qū)ο蟮目梢暬勺兂上到y(tǒng),它具有程序框架自動(dòng)生成、類別管理方便靈活,代碼編寫和界面設(shè)計(jì)的交互設(shè)計(jì),3D控制界面等多種開發(fā)程式。MFC是VC++程序的界面設(shè)計(jì)開發(fā)方式,實(shí)現(xiàn)界面的可視化設(shè)計(jì)。
本文以直齒圓柱齒輪的參數(shù)界面設(shè)計(jì)為例,來加以對(duì)比分析。采用Pro/Program方式,只是需要在【工具】菜單的模型【程序】的頭部,INPUT和END INPUT程序中間添加以下程序:Z NUMBER
“請(qǐng)輸入齒輪的齒數(shù)==”
… …
就可以通過INPUT SEL列表來選擇需要修改的參數(shù)名稱,并在消息區(qū)根據(jù)提示輸入新的尺寸,完成模型的修改。這種方式實(shí)現(xiàn)比較容易,但是人性化設(shè)計(jì)理念不強(qiáng)。
采用UI對(duì)話框方式進(jìn)行如圖所示的參數(shù)表設(shè)計(jì),仍以齒數(shù)為例,則需要的部分程序如下:
(Dialog spus
(Components … …)
可以看出雖然設(shè)計(jì)的界面更接近于Pro/E常用對(duì)話框的風(fēng)格,但是設(shè)計(jì)語句較為復(fù)雜,實(shí)現(xiàn)難度較大。
使用MFC設(shè)計(jì)的對(duì)話框界面則較為容易,只需要使用Dialog對(duì)話框編輯器中的Static Text進(jìn)行文字說明的編寫,使用Edit Control建立示例編輯框,即可完成上圖界面的設(shè)計(jì)工作。需要注意的是,示例編輯框要想進(jìn)行數(shù)值的傳遞,就必須通過【添加變量】來進(jìn)行屬性的編輯以及命名。其后的程序修改和調(diào)試工作也相對(duì)來說較為容易,為了實(shí)現(xiàn)齒數(shù)值得傳遞僅需要一下程序:
ProParameterInit(&item,L”Z”,¶m1);//初始化參數(shù)
x=GetDlgItemInt(IDC_EDIT1);//讀取對(duì)話框
ProParamvalueSet(&value1,&c_dZ,PRO_PARAM_INTEGER);//為變量賦值
ProParameterValueSet(¶m1,&value1);//設(shè)置參數(shù)的值
… …
通過以上三種方式的對(duì)比分析,可以看到利用MFC實(shí)現(xiàn)對(duì)話框的設(shè)計(jì)以及參數(shù)的傳遞過程,相對(duì)來說比較容易,而且可視化程度高。
本文通過市面上常用的Pro/ENGINEER開發(fā)方式入手,對(duì)比分析了Pro/Program和Pro/TOOLKIT界面設(shè)計(jì)方式的不同。從以上分析可以看出,雖然MFC的設(shè)計(jì)方式不是最簡單易行的設(shè)計(jì)模式,但是其優(yōu)秀的面向?qū)ο蟮脑O(shè)計(jì)方式,大大減少了開發(fā)的難度,也為更為復(fù)雜的人機(jī)交互方式提供了可能。
[1]王文波.Pro/E 4.0二次開發(fā)實(shí)例解析[M].清華大學(xué)出版社,2010.
[2]Ivor Horton.Visual C++ 2005入門經(jīng)典[M].清華大學(xué)出版社,2007.
[3]沈斌,麻連榮,宮大.基于Pro/E二次開發(fā)的零件參數(shù)化設(shè)計(jì)技術(shù)[J].機(jī)械設(shè)計(jì)與制造,2007(1):40-42.
[4]房麗娜,郭培全.Pro/E二次開發(fā)與應(yīng)用[J].濟(jì)南大學(xué)學(xué)報(bào)(自然科學(xué)版),2007,21(2):157-160.
[5]張繼春.Pro/E二次開發(fā)實(shí)用教程[M].北京大學(xué)出版社,2003.