黃 勇
(華東交通大學機電學院,江西南昌330013)
隨著網(wǎng)絡(luò)技術(shù)和COM技術(shù)的發(fā)展,以組件技術(shù)作為程序的開發(fā)方法已經(jīng)成為趨勢。基于COM的應用程序可對用戶的需求作出快速的響應,應用程序開發(fā)人員可以快速從某個COM組件庫中取出所需的COM組件,就如同搭積木一樣,快速地組裝到一塊,以構(gòu)造所需要的應用程序。因此,將COM組件技術(shù)引入到UG二次開發(fā)中,實現(xiàn)UG/Open、VC和COM三者相結(jié)合的開發(fā)就顯得非常有意義。當用戶的要求發(fā)生改變時,就只需改變COM組件中接口的內(nèi)容,客戶端不需要作任何變化,可以更高效地滿足用戶的要求。
目前,VC中的MFC是實現(xiàn)COM組件的工具之一,即可以通過MFC創(chuàng)建COM組件,訪問COM組件中的接口。但是,UG/Open一直沒有提供直接訪問MFC的方法,在UG/Open應用開發(fā)中不能直接調(diào)用MFC類庫,同時,與MFC界面相比,UG/Open UIStyler提供的界面種類少,應用不方便,有些界面很難實現(xiàn),從一定程度上限制了應用程序的開發(fā)。為了開發(fā)出用戶需求的應用系統(tǒng),實現(xiàn)COM組件在UG/Open開發(fā)中的應用,必須解決UG/Open與MFC的混合開發(fā)問題。因此,為了使UG/Open開發(fā)中支持MFC,必須對應用程序的結(jié)構(gòu)做出如下改變:
(1)利用應用程序向?qū)е械腗FC AppWizard(dll)創(chuàng)建應用程序;
(2)確定Regular DLL using shared MFC DLL程序類型;
(3)在theApp類下面添加自定義函數(shù),編寫程序。
(4)編譯、連接。
注意:將UG/Open API函數(shù)庫加入到Tools/Options菜單Directaries選項卡Include files和Library files欄中;同時,在 Project/Settings菜單 Link選項卡Object/library modules欄中加入庫文件 libugopenint.lib 和 libufun.lib。
(5)將產(chǎn)生的動態(tài)連接庫復制到startup文件夾中。
以下就以花鍵軸參數(shù)化設(shè)計為例,闡述COM組件在UG/Open參數(shù)化設(shè)計中的應用方法。
本實例采用COM組件技術(shù),主要由2個層次組成:組件服務(wù)器和客戶端。客戶端主要完成菜單、用戶界面等,組件服務(wù)器主要完成花鍵軸參數(shù)化設(shè)計??蛻舳送ㄟ^訪問COM組件的接口實現(xiàn)花鍵軸參數(shù)化設(shè)計,系統(tǒng)的組成如圖1所示。
(1)新建文件夾,并在該文件夾下建立startup、application、prt三個子文件夾,startup文件夾用來放置菜單及DLL文件,application文件夾用來放置對話框文件* .dlg,prt文件夾用來放置花鍵軸三維模型模板文件。本實例新建文件夾的路徑是D:COM_PARA_DESIGNPART_PARA_DESIGN_COM,并在該文件夾下建立startup、application和prt三個子文件夾。
(2)注冊環(huán)境變量,在【我的電腦】上單擊右鍵選擇【屬性】,在彈出的對話框里選擇【高級】選項卡,在該選項卡里選擇【環(huán)境變量】,出現(xiàn)環(huán)境變量窗口,在此窗口中選擇【新建】,彈出新建用戶變量窗口,如圖2所示,在此窗口中完成環(huán)境變量的注冊。
在本實例中,新建變量名“UGII_USER_DIR”,變量值“D:COM_PARA_DESIGNPART_PARA_DESIGN_COM”。
在UG平臺上,通過草繪、拉伸、圓形陣列、孔特征及凸臺特征等參數(shù)化建模方法,建立花鍵軸的三維模型,名稱為:COM_PART,存放在D:COM_PARA_DESIGNPART_PARA_DESIGN_COMprt目錄下,并建立、生成相應的表達式,如圖3和4所示。
(1)菜單的建立
在startup文件夾下,新建菜單文件(.men)。具體內(nèi)容如下所示:
啟動UG,如圖5所示。
(2)對話框的建立
該實例采用UG/Open UIStyler定制對話框的方式,如圖6所示,對話框另存為Client_DIA.dlg,存放在 application文件夾中。
(1)使用VC向?qū)е械腁TL COM AppWizard創(chuàng)建COM服務(wù)器框架工程,如圖7所示,單擊【OK】,在彈出的對話框中,建立單擊【Finish】,完成COM框架。
(2)啟動ATL COM AppWizard來加入對COM對象的支持,并添加IParaDesign接口,在IParaDesign接口中添加讀模板和參數(shù)化設(shè)計的方法。
(3)編譯、鏈接,生成參數(shù)化設(shè)計COM組件。
(1)建立環(huán)境變量,啟動UG,如圖8所示。
(2)選擇菜單,出現(xiàn)系統(tǒng)主界面,并獲取當前模型的數(shù)據(jù)信息到對話框中,如圖9所示。
(3)可以在對話框中輸入數(shù)據(jù),如圖10所示。
(4)選擇【確定】按鈕,調(diào)用花鍵軸參數(shù)化COM組件,進行參數(shù)化設(shè)計,如圖11所示。
基于COM組件的參數(shù)化設(shè)計方法成功地將UG/Open、MFC、COM三者相結(jié)合,并已經(jīng)成功應用到了企業(yè)UG應用開發(fā)中,解決了特定產(chǎn)品設(shè)計必須采用二次開發(fā)參數(shù)化設(shè)計的難題。當企業(yè)需求發(fā)生變化時,只需要改變相應的COM組件,程序接口不需要發(fā)生任何變化,快速響應了企業(yè)的多變。
本文在UG平臺上引入了利用COM組件進行參數(shù)化設(shè)計的開發(fā)思想,總結(jié)出了COM組件在UG/Open參數(shù)化設(shè)計開發(fā)中的應用方法,并以花鍵軸參數(shù)化設(shè)計為例,實現(xiàn)了COM組件參數(shù)化設(shè)計的開發(fā)。該方法已經(jīng)成功應用到了企業(yè)產(chǎn)品設(shè)計中,同時,可為其他CAD的開發(fā)提供參考和借鑒。
[1]任哲.MFC Windows應用程序設(shè)計[M].北京:清華大學出版社,2004.
[2]董正衛(wèi),田立中,付宜利.UG/Open API編程基礎(chǔ)[M].北京:清華大學出版社,2002.
[3]王慶林.UG/Open GRIP實用編程基礎(chǔ)[M].北京:清華大學出版社,2002.
[4]孫鑫,余安萍.VC++深入詳解[M].北京:電子工業(yè)出版社,2006.