基于UG的接口技術(shù)研究
2 接口實(shí)現過(guò)程
二次開(kāi)發(fā)前首先要設置環(huán)境變量,設置環(huán)境變量的目的是使UG能找到開(kāi)發(fā)的可執行程序的入口,并在啟動(dòng)UG的時(shí)候加載必要的信息。UG提供了兩種設置環(huán)境變量的方法,一種是注冊工程路徑法,即將用戶(hù)工程路徑注冊到文件customs—dIRs.dat(該文件位于${UGII—BASE—DIR}\UG\menus文件夾下)。
另一種比較簡(jiǎn)單并且適合一般開(kāi)發(fā)用戶(hù)的設置方法如下:右鍵點(diǎn)擊我的電腦一屬性一高級一環(huán)境變量,新建一個(gè)UG_USER—DIR環(huán)境變量,并將環(huán)境變量的值設置為建立Application和Startup兩個(gè)目錄所在的文件夾的路徑,這兩個(gè)文件夾分別用來(lái)存放dll和菜單文件%.men 。具體實(shí)現過(guò)程如下:
(1)在Visual C++6.0的應用程序創(chuàng )建向導中選擇MFC AppWizard(dl1),并選擇應用程序類(lèi)型為Regular DLL using shared MFC DLL。
(2)設置UG應用開(kāi)發(fā)環(huán)境。在Project—Setting---~Link中,Object/library modules文本框中加入UG庫文件libufun.1ib和libugopenint.1ib。
(3)配置路徑選項,選擇Tools--~Options,選擇Directoris選項卡,分別在Library Files和Include Files中添加UG根目錄下UGOPEN文件夾所在的路徑。
(4)編制程序,在應用程序中添加UG的人口函數ufsta(),即將前面的代碼加入即可。
(5)建立MFC對話(huà)框并添加調用MFC函數。選擇菜單命令I(lǐng)nsert---~Resource,在Resource對話(huà)框中選擇Dialog,就可以創(chuàng )建Windows風(fēng)格對話(huà)框。
(6)在VC++中添加實(shí)現代碼編譯連接后生成動(dòng)態(tài)連接庫文件(:一c.dl1),打開(kāi)UG,選擇File—Ex—ecute UG/Open--*User Function,在Execute User Func—tion對話(huà)框中選擇該DLL文件;或者通過(guò)MenuScript編輯的菜單和工具條調用。
3 實(shí)例分析
二維參數化程序設計可以采用程序自動(dòng)生成工程圖的方式實(shí)現,但在零件的三維設計中,由于三維模型的創(chuàng )建涉及到基準實(shí)體等特征,直接利用程序生成三維模型非常困難。實(shí)例采用三維模型與程序控制相結合的方式,先利用交互的方式生成零件的三維模型,再根據設計要求建立一組完全控制三維模型的關(guān)鍵設計參數,通過(guò)程序設計對設計參數進(jìn)行編程,實(shí)現設計參數的檢索、修改和根據新的參數值生成新的三維模型的功能。
圖3所示為用戶(hù)定制的MenuSeript菜單界面。布線(xiàn)系統菜單下“連接器庫”和“自動(dòng)布線(xiàn)” 按鈕的回調函數均為已編譯好的application文件夾下下的DLL文件,后面的3個(gè)點(diǎn)表示單擊后會(huì )彈出一個(gè)對話(huà)框,而Ctrl+1或Ctrl+2表示此菜單的快捷鍵。如在UG的主菜單上點(diǎn)擊“布線(xiàn)系統” 按鈕再按下Ctrl+1快捷鍵就會(huì )運行相應的DLL程序。
實(shí)例實(shí)現了整機布線(xiàn)模型中線(xiàn)夾的參數化設計。
如圖4所示為由MFC生成Windows風(fēng)格的線(xiàn)夾模型對話(huà)框,輸入相應尺寸,單擊“生成”按鈕,就可以生成線(xiàn)夾的三維參數化實(shí)體模型,“修改”按鈕將按照用戶(hù)輸入的參數值更新并保存模型的參數。實(shí)例解決了UG二次開(kāi)發(fā)應用程序向導不能調用MFC的接口問(wèn)題,實(shí)現DLL程序與UG的集成,并通過(guò)參數化驅動(dòng)的方式實(shí)現了線(xiàn)夾的三維參數化建模。
4 結束語(yǔ)
在研究UG二次開(kāi)發(fā)接口技術(shù)的基礎上,給出了二次開(kāi)發(fā)接口實(shí)現方案。解決了利用MenuScript菜單和UIStyler的回調函數無(wú)法直接調用MFC函數的問(wèn)題,實(shí)現了DLL程序與UG的集成。開(kāi)發(fā)人員可以充分發(fā)揮VC++及MFC庫類(lèi)函數的強大的功能,借助VC++中面向對象的思想,開(kāi)發(fā)功能強大的應用程序,例如可以利用Windows消息機制編寫(xiě)更復雜的界面,利用ADO訪(fǎng)問(wèn)數據庫,還可以調用VC++中ActiveX控件、Intemet控件等。使用該方法進(jìn)行二次開(kāi)發(fā)具有速度快、方便簡(jiǎn)單、界面統一、良好的人機交互能力、功能強大和編程容易等特點(diǎn)。有效地提高UG軟件的二次開(kāi)發(fā)效率,使UG二次開(kāi)發(fā)的應用領(lǐng)域更加廣闊。
評論