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