<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于UG的接口技術(shù)研究

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

          作者: 時(shí)間:2011-12-15 來(lái)源:網(wǎng)絡(luò) 收藏

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

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

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

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

          (2)設(shè)置UG應(yīng)用開(kāi)發(fā)環(huán)境。在Project—Setting---~Link中,Object/library modules文本框中加入U(xiǎn)G庫(kù)文件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)建立對(duì)話框并添加調(diào)用MFC函數(shù)。選擇菜單命令I(lǐng)nsert---~Resource,在Resource對(duì)話框中選擇Dialog,就可以創(chuàng)建Windows風(fēng)格對(duì)話框。

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

          3 實(shí)例分析

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

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

          MenuScript菜單界面

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

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

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

          4 結(jié)束語(yǔ)

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


          上一頁(yè) 1 2 3 4 下一頁(yè)

          評(píng)論


          相關(guān)推薦

          技術(shù)專(zhuān)區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();