黃 勇
(華東交通大學機電學院,江西南昌330013)
隨著網絡技術和COM技術的發展,以組件技術作為程序的開發方法已經成為趨勢。基于COM的應用程序可對用戶的需求作出快速的響應,應用程序開發人員可以快速從某個COM組件庫中取出所需的COM組件,就如同搭積木一樣,快速地組裝到一塊,以構造所需要的應用程序。因此,將COM組件技術引入到UG二次開發中,實現UG/Open、VC和COM三者相結合的開發就顯得非常有意義。當用戶的要求發生改變時,就只需改變COM組件中接口的內容,客戶端不需要作任何變化,可以更高效地滿足用戶的要求。
目前,VC中的MFC是實現COM組件的工具之一,即可以通過MFC創建COM組件,訪問COM組件中的接口。但是,UG/Open一直沒有提供直接訪問MFC的方法,在UG/Open應用開發中不能直接調用MFC類庫,同時,與MFC界面相比,UG/Open UIStyler提供的界面種類少,應用不方便,有些界面很難實現,從一定程度上限制了應用程序的開發。為了開發出用戶需求的應用系統,實現COM組件在UG/Open開發中的應用,必須解決UG/Open與MFC的混合開發問題。因此,為了使UG/Open開發中支持MFC,必須對應用程序的結構做出如下改變:
(1)利用應用程序向導中的MFC AppWizard(dll)創建應用程序;
(2)確定Regular DLL using shared MFC DLL程序類型;
(3)在theApp類下面添加自定義函數,編寫程序。
(4)編譯、連接。
注意:將UG/Open API函數庫加入到Tools/Options菜單Directaries選項卡Include files和Library files欄中;同時,在 Project/Settings菜單 Link選項卡Object/library modules欄中加入庫文件 libugopenint.lib 和 libufun.lib。
(5)將產生的動態連接庫復制到startup文件夾中。
以下就以花鍵軸參數化設計為例,闡述COM組件在UG/Open參數化設計中的應用方法。
本實例采用COM組件技術,主要由2個層次組成:組件服務器和客戶端。客戶端主要完成菜單、用戶界面等,組件服務器主要完成花鍵軸參數化設計。客戶端通過訪問COM組件的接口實現花鍵軸參數化設計,系統的組成如圖1所示。

(1)新建文件夾,并在該文件夾下建立startup、application、prt三個子文件夾,startup文件夾用來放置菜單及DLL文件,application文件夾用來放置對話框文件* .dlg,prt文件夾用來放置花鍵軸三維模型模板文件。本實例新建文件夾的路徑是D:COM_PARA_DESIGNPART_PARA_DESIGN_COM,并在該文件夾下建立startup、application和prt三個子文件夾。
(2)注冊環境變量,在【我的電腦】上單擊右鍵選擇【屬性】,在彈出的對話框里選擇【高級】選項卡,在該選項卡里選擇【環境變量】,出現環境變量窗口,在此窗口中選擇【新建】,彈出新建用戶變量窗口,如圖2所示,在此窗口中完成環境變量的注冊。

在本實例中,新建變量名“UGII_USER_DIR”,變量值“D:COM_PARA_DESIGNPART_PARA_DESIGN_COM”。

在UG平臺上,通過草繪、拉伸、圓形陣列、孔特征及凸臺特征等參數化建模方法,建立花鍵軸的三維模型,名稱為:COM_PART,存放在D:COM_PARA_DESIGNPART_PARA_DESIGN_COMprt目錄下,并建立、生成相應的表達式,如圖3和4所示。
(1)菜單的建立
在startup文件夾下,新建菜單文件(.men)。具體內容如下所示:


啟動UG,如圖5所示。

(2)對話框的建立
該實例采用UG/Open UIStyler定制對話框的方式,如圖6所示,對話框另存為Client_DIA.dlg,存放在 application文件夾中。

(1)使用VC向導中的ATL COM AppWizard創建COM服務器框架工程,如圖7所示,單擊【OK】,在彈出的對話框中,建立單擊【Finish】,完成COM框架。

(2)啟動ATL COM AppWizard來加入對COM對象的支持,并添加IParaDesign接口,在IParaDesign接口中添加讀模板和參數化設計的方法。

(3)編譯、鏈接,生成參數化設計COM組件。


(1)建立環境變量,啟動UG,如圖8所示。

(2)選擇菜單,出現系統主界面,并獲取當前模型的數據信息到對話框中,如圖9所示。

(3)可以在對話框中輸入數據,如圖10所示。
(4)選擇【確定】按鈕,調用花鍵軸參數化COM組件,進行參數化設計,如圖11所示。

基于COM組件的參數化設計方法成功地將UG/Open、MFC、COM三者相結合,并已經成功應用到了企業UG應用開發中,解決了特定產品設計必須采用二次開發參數化設計的難題。當企業需求發生變化時,只需要改變相應的COM組件,程序接口不需要發生任何變化,快速響應了企業的多變。

本文在UG平臺上引入了利用COM組件進行參數化設計的開發思想,總結出了COM組件在UG/Open參數化設計開發中的應用方法,并以花鍵軸參數化設計為例,實現了COM組件參數化設計的開發。該方法已經成功應用到了企業產品設計中,同時,可為其他CAD的開發提供參考和借鑒。
[1]任哲.MFC Windows應用程序設計[M].北京:清華大學出版社,2004.
[2]董正衛,田立中,付宜利.UG/Open API編程基礎[M].北京:清華大學出版社,2002.
[3]王慶林.UG/Open GRIP實用編程基礎[M].北京:清華大學出版社,2002.
[4]孫鑫,余安萍.VC++深入詳解[M].北京:電子工業出版社,2006.