日韩欧美自拍在线观看-欧美精品在线看片一区二区-高清性视频一区二区播放-欧美日韩女优制服另类-国产精品久久久久久av蜜臀-成人在线黄色av网站-肥臀熟妇一区二区三区-亚洲视频在线播放老色-在线成人激情自拍视频

基于UG的接口技術(shù)研究

出處:陳小勇,周德儉,吳兆華 發(fā)布于:2011-11-29 14:57:41

      摘要:探討了UG二次開發(fā)中的接口技術(shù),通過直接在MFC應(yīng)用向?qū)С绦蛑屑尤險G入口函數(shù)的方法,解決了利用MenuScript菜單和UIStyler的回調(diào)函數(shù)無法直接調(diào)用MFC函數(shù)的問題。給出了訪問數(shù)據(jù)庫的實(shí)現(xiàn)方案,實(shí)現(xiàn)了DLL接ISI與UG的集成。并通過實(shí)例說明利用MFC類庫實(shí)現(xiàn)UG參數(shù)化建模過程。

      關(guān)鍵詞:UG/Open API;MFC;接口技術(shù);二次開發(fā)

      隨著市場競爭愈來愈激烈,在現(xiàn)代制造業(yè)中,縮短產(chǎn)品設(shè)計(jì)開發(fā)周期,實(shí)現(xiàn)快速設(shè)計(jì)顯得越來越重要。UG (Unigraphics)軟件是大型CAD/CAM/cAE集成軟件之一,功能強(qiáng)大,具有開放的UG/Open二次開發(fā)工具。作者在Visual C++6.0的集成開發(fā)環(huán)境下,通過直接在MFC應(yīng)用向?qū)С绦蛑屑尤薝G的入口函數(shù)的方法,解決了利用MenuScript菜單或uI—Styler的回調(diào)函數(shù)無法直接調(diào)用MFC函數(shù)的問題。給出UG/Open API與用戶接口語言MFC (MicrosoftFoundament Class)編程相結(jié)合進(jìn)行開發(fā)的接口實(shí)現(xiàn)方案,采用MFC來設(shè)計(jì)對話框界面的編程技術(shù),為開發(fā)Windows應(yīng)用程序提供了強(qiáng)大的支持,使用MFC可以充分利用VC++開發(fā)環(huán)境提供的先進(jìn)技術(shù)工具,實(shí)現(xiàn)程序界面的可視化設(shè)計(jì)。通過修改界面上的關(guān)鍵參數(shù)或直接訪問數(shù)據(jù)庫便可以實(shí)現(xiàn)零件的參數(shù)化建模。極大地提高了開發(fā)效率,對提高產(chǎn)品的研發(fā)速度具有重要意義。

      1 UG二次開發(fā)接口技術(shù)

      1.1 UG應(yīng)用程序開發(fā)技術(shù)

      UG/Open是UG軟件為用戶提供的主要的開發(fā)工具。它主要由UG/Open API、GRIP、MenuScript和UIStyler 4個部分組成。UG/Open API(又稱UserFunction)是一個允許程序訪問和影響UG對象模型的一系列程序集,它封裝了近2000個UG操作的函數(shù),還提供了編譯和連接程序的工具?。API函數(shù)使用C/C++作為編程語言,幾乎能實(shí)現(xiàn)UG的所有功能。

      UG應(yīng)用開發(fā)程序采用了動態(tài)鏈接庫(DLL)技術(shù),其調(diào)用過程如圖1所示。在Visualc++6.0環(huán)境中為UG軟件進(jìn)行應(yīng)用程序的開發(fā)提供了3種工程向?qū)В篣G/Open App—W iz~d、W in32 Dynamic—}LinLibrary和MFC Wizard(DLL)。

      這些應(yīng)用向?qū)ЫK將創(chuàng)建一個動態(tài)鏈接庫文件供UG進(jìn)程使用。

DLL調(diào)用過程

      (1)UG/Open AppWizard

      該向?qū)荱G軟件本身提供的應(yīng)用向?qū)?,操作簡便,運(yùn)行穩(wěn)定,可以快速構(gòu)建開發(fā)框架,但通常不支持MFC類庫。

      (2)Win32 Dynamic-Link Library

      該向?qū)?chuàng)建Windows常規(guī)DLL,基本操作是打開VC++,選擇菜單命令File---~New,在彈出的New對話框中選擇Win32 Dynamic.Hnk Library選項(xiàng)便可完成創(chuàng)建過程。但此向?qū)е荒軐?dǎo)出c樣式函數(shù),不能導(dǎo)出c++類、成員函數(shù)和重載函數(shù),不支持MFC類庫。

      (3)MFC AppWizard(DLL)

      該向?qū)?chuàng)建的動態(tài)鏈接庫(dl1),可以方便地調(diào)用MFC類庫中豐富的資源。MFC封裝了WIN32 API函數(shù),并設(shè)計(jì)了一套方便的消息映射機(jī)制。MFC的界面靈活性和表達(dá)能力均優(yōu)于UISyler的功能,有效靈活的MFC框架結(jié)構(gòu)大大方便了開發(fā)者編程,可以實(shí)現(xiàn)與數(shù)據(jù)庫進(jìn)行通信,有效解決了UG/Open提供的工具及對話框所包含的控件較少、界面開發(fā)功能差及無法實(shí)現(xiàn)對數(shù)據(jù)庫的訪問的問題。

      1.2 接口技術(shù)方案

      在Visual C++6.0環(huán)境中為UG提供的3種工程應(yīng)用向?qū)е?,只有使用UG/Open AppWizard生成的DLL文件(又叫UFUN DLL)可以直接被UG調(diào)用。

      但使用UG/Open AppWizard向?qū)?chuàng)建的應(yīng)用程序本身不支持MFC,不能直接調(diào)用MFC的應(yīng)用程序,實(shí)現(xiàn)與MFC的通信,特別是與數(shù)據(jù)庫的連接。由于UG本身可以通過動態(tài)鏈接庫(DLL)實(shí)現(xiàn)UG系統(tǒng)內(nèi)的圖形界面與系統(tǒng)內(nèi)部的通信,而且通過動態(tài)鏈接庫(DLL)方式的執(zhí)行速度快 。

      接口實(shí)現(xiàn)方案如圖2所示。通過DLL嵌入的方式實(shí)現(xiàn)UG與MFC集成和運(yùn)行,利用MFC實(shí)現(xiàn)與數(shù)據(jù)庫通信,并可以直接使用MFC豐富的函數(shù)資源。

接口實(shí)現(xiàn)方案

      UG軟件為用戶提供的二次開發(fā)工具不但可以獨(dú)立使用,而且可以通過接口相互調(diào)用,這不但擴(kuò)展了工具本身所具有的功能,還方便用戶進(jìn)行二次開發(fā)。

      MenuScript用于菜單的開發(fā),UIStyler則主要用于開發(fā)實(shí)現(xiàn)用戶界面接口交互操作的對話框。

      MenuScript開發(fā)的菜單可以與UIStyler開發(fā)的對話框相互調(diào)用,UG/Open API程序可以被Menu.Script、UIStyler開發(fā)的對話框調(diào)用,但卻無法實(shí)現(xiàn)直接調(diào)用MFC函數(shù)及所生成的DLL程序 。因此,需要通過間接的方法來實(shí)現(xiàn)。通過描述的方法,將提供的App和Main文件修改后加入創(chuàng)建的工程,可以實(shí)現(xiàn)使用UG的MenuScript菜單調(diào)用MFC函數(shù)的方法,但此方法是通過加入響應(yīng)菜單響應(yīng)函數(shù)來實(shí)現(xiàn)對DLL的調(diào)用,不能調(diào)用多個DLL文件,而且操作煩瑣。因此,通過實(shí)踐研究探索出另外一種實(shí)現(xiàn)UG與MFC接口函數(shù)相互調(diào)用的方法,即通過在創(chuàng)建的MFC AppWizard(dU)工程序文件的$.CPP文件中加人以下代碼即可。這種方法生成的DLL可以利用MenuScript菜單腳本語言的ACTIONS或UIStyler的回調(diào)函數(shù)直接調(diào)用。

      其中,代碼中的IDD—NEWDLG為所創(chuàng)建的Win.dows風(fēng)格對話框的ID,CNewDlg為所創(chuàng)建的對話框類。與UIStyler對話框相比,使用MFC的對話框中布局更為容易,修改調(diào)試更為方便。通過MFC接口不但可以實(shí)現(xiàn)數(shù)據(jù)通信功能,還可以實(shí)現(xiàn)對數(shù)據(jù)庫訪問的功能。

      2 接口實(shí)現(xiàn)過程

      二次開發(fā)前首先要設(shè)置環(huán)境變量,設(shè)置環(huán)境變量的目的是使UG能找到開發(fā)的可執(zhí)行程序的入口,并在啟動UG的時候加載必要的信息。UG提供了兩種設(shè)置環(huán)境變量的方法,一種是注冊工程路徑法,即將用戶工程路徑注冊到文件customs—dIRs.dat(該文件位于${UGII—BASE—DIR}\UG\menus文件夾下)。

      另一種比較簡單并且適合一般開發(fā)用戶的設(shè)置方法如下:右鍵點(diǎn)擊我的電腦一屬性一一環(huán)境變量,新建一個UG_USER—DIR環(huán)境變量,并將環(huán)境變量的值設(shè)置為建立Application和Startup兩個目錄所在的文件夾的路徑,這兩個文件夾分別用來存放dll和菜單文件%.men 。具體實(shí)現(xiàn)過程如下:

      (1)在Visual C++6.0的應(yīng)用程序創(chuàng)建向?qū)е羞x擇MFC AppWizard(dl1),并選擇應(yīng)用程序類型為Regular DLL using shared MFC DLL。

      (2)設(shè)置UG應(yīng)用開發(fā)環(huán)境。在Project—Setting---~Link中,Object/library modules文本框中加入UG庫文件libufun.1ib和libugopenint.1ib。

      (3)配置路徑選項(xiàng),選擇Tools--~Options,選擇Directoris選項(xiàng)卡,分別在Library Files和Include Files中添加UG根目錄下UGOPEN文件夾所在的路徑。

      (4)編制程序,在應(yīng)用程序中添加UG的人口函數(shù)ufsta(),即將前面的代碼加入即可。

      (5)建立MFC對話框并添加調(diào)用MFC函數(shù)。選擇菜單命令I(lǐng)nsert---~Resource,在Resource對話框中選擇Dialog,就可以創(chuàng)建Windows風(fēng)格對話框。

      (6)在VC++中添加實(shí)現(xiàn)代碼編譯連接后生成動態(tài)連接庫文件(:一c.dl1),打開UG,選擇File—Ex—ecute UG/Open--*User Function,在Execute User Func—tion對話框中選擇該DLL文件;或者通過MenuScript編輯的菜單和工具條調(diào)用。

      3 實(shí)例分析

      二維參數(shù)化程序設(shè)計(jì)可以采用程序自動生成工程圖的方式實(shí)現(xiàn),但在零件的三維設(shè)計(jì)中,由于三維模型的創(chuàng)建涉及到基準(zhǔn)實(shí)體等特征,直接利用程序生成三維模型非常困難。實(shí)例采用三維模型與程序控制相結(jié)合的方式,先利用交互的方式生成零件的三維模型,再根據(jù)設(shè)計(jì)要求建立一組完全控制三維模型的關(guān)鍵設(shè)計(jì)參數(shù),通過程序設(shè)計(jì)對設(shè)計(jì)參數(shù)進(jìn)行編程,實(shí)現(xiàn)設(shè)計(jì)參數(shù)的檢索、修改和根據(jù)新的參數(shù)值生成新的三維模型的功能。

      圖3所示為用戶定制的MenuSeript菜單界面。布線系統(tǒng)菜單下“連接器庫”和“自動布線” 按鈕的回調(diào)函數(shù)均為已編譯好的application文件夾下下的DLL文件,后面的3個點(diǎn)表示單擊后會彈出一個對話框,而Ctrl+1或Ctrl+2表示此菜單的快捷鍵。如在UG的主菜單上點(diǎn)擊“布線系統(tǒng)” 按鈕再按下Ctrl+1快捷鍵就會運(yùn)行相應(yīng)的DLL程序。

MenuScript菜單界面

      實(shí)例實(shí)現(xiàn)了整機(jī)布線模型中線夾的參數(shù)化設(shè)計(jì)。

      如圖4所示為由MFC生成Windows風(fēng)格的線夾模型對話框,輸入相應(yīng)尺寸,單擊“生成”按鈕,就可以生成線夾的三維參數(shù)化實(shí)體模型,“修改”按鈕將按照用戶輸入的參數(shù)值更新并保存模型的參數(shù)。實(shí)例解決了UG二次開發(fā)應(yīng)用程序向?qū)Р荒苷{(diào)用MFC的接口問題,實(shí)現(xiàn)DLL程序與UG的集成,并通過參數(shù)化驅(qū)動的方式實(shí)現(xiàn)了線夾的三維參數(shù)化建模。

實(shí)例程序運(yùn)行結(jié)果

      4 結(jié)束語

      在研究UG二次開發(fā)接口技術(shù)的基礎(chǔ)上,給出了二次開發(fā)接口實(shí)現(xiàn)方案。解決了利用MenuScript菜單和UIStyler的回調(diào)函數(shù)無法直接調(diào)用MFC函數(shù)的問題,實(shí)現(xiàn)了DLL程序與UG的集成。開發(fā)人員可以充分發(fā)揮VC++及MFC庫類函數(shù)的強(qiáng)大的功能,借助VC++中面向?qū)ο蟮乃枷?,開發(fā)功能強(qiáng)大的應(yīng)用程序,例如可以利用Windows消息機(jī)制編寫更復(fù)雜的界面,利用ADO訪問數(shù)據(jù)庫,還可以調(diào)用VC++中ActiveX控件、Intemet控件等。使用該方法進(jìn)行二次開發(fā)具有速度快、方便簡單、界面統(tǒng)一、良好的人機(jī)交互能力、功能強(qiáng)大和編程容易等特點(diǎn)。有效地提高UG軟件的二次開發(fā)效率,使UG二次開發(fā)的應(yīng)用領(lǐng)域更加廣闊。

參考文獻(xiàn):

[1]. Dialog datasheet http://www.hbjingang.com/datasheet/Dialog_1398663.html.

關(guān)鍵詞:基于UG的接口技術(shù)研究接口技術(shù)

版權(quán)與免責(zé)聲明

凡本網(wǎng)注明“出處:維庫電子市場網(wǎng)”的所有作品,版權(quán)均屬于維庫電子市場網(wǎng),轉(zhuǎn)載請必須注明維庫電子市場網(wǎng),http://www.hbjingang.com,違反者本網(wǎng)將追究相關(guān)法律責(zé)任。

本網(wǎng)轉(zhuǎn)載并注明自其它出處的作品,目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點(diǎn)或證實(shí)其內(nèi)容的真實(shí)性,不承擔(dān)此類作品侵權(quán)行為的直接責(zé)任及連帶責(zé)任。其他媒體、網(wǎng)站或個人從本網(wǎng)轉(zhuǎn)載時,必須保留本網(wǎng)注明的作品出處,并自負(fù)版權(quán)等法律責(zé)任。

如涉及作品內(nèi)容、版權(quán)等問題,請?jiān)谧髌钒l(fā)表之日起一周內(nèi)與本網(wǎng)聯(lián)系,否則視為放棄相關(guān)權(quán)利。

廣告
OEM清單文件: OEM清單文件
*公司名:
*聯(lián)系人:
*手機(jī)號碼:
QQ:
有效期:

掃碼下載APP,
一鍵連接廣大的電子世界。

在線人工客服

買家服務(wù):
賣家服務(wù):
技術(shù)客服:

0571-85317607

網(wǎng)站技術(shù)支持

13606545031

客服在線時間周一至周五
9:00-17:30

關(guān)注官方微信號,
第一時間獲取資訊。

建議反饋

聯(lián)系人:

聯(lián)系方式:

按住滑塊,拖拽到最右邊
>>
感謝您向阿庫提出的寶貴意見,您的參與是維庫提升服務(wù)的動力!意見一經(jīng)采納,將有感恩紅包奉上哦!