• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于Pro/TOOLKIT的Pro/E二次開發(fā)技術(shù)研究

      2011-07-07 08:48:22劉玉秦
      制造業(yè)自動化 2011年20期
      關(guān)鍵詞:二次開發(fā)對話框菜單

      劉玉秦,宋 彥

      (中國礦業(yè)大學(xué) 機(jī)電工程學(xué)院,徐州 221000)

      0 引言

      現(xiàn)在的CAD/CAM系統(tǒng),如Pro/E、UG等,都是比較通用的大型軟件系統(tǒng),存在著針對性不強(qiáng),設(shè)計(jì)效率不高的問題。另外,CAD軟件的通用性也使其難以很好地應(yīng)對不同用戶在技術(shù)標(biāo)準(zhǔn)方面的差異,因此用這樣的大型系統(tǒng)建立我們所需要的產(chǎn)品模型可能需要大量的時(shí)間。而二次開發(fā)則較好地解決了這個(gè)問題。二次開發(fā)即是在此類軟件的基礎(chǔ)上,開發(fā)出適合本單位產(chǎn)品的應(yīng)用程序,提高產(chǎn)品的設(shè)計(jì)效率,加快產(chǎn)品的更新速度,從而提高企業(yè)的市場競爭能力。

      與其他CAD軟件的二次開發(fā)書籍相比,Pro/ENGINEER二次開發(fā)方面的參考資料和教程十分稀少,并且有很多都比較舊,無法跟上版本的更新,時(shí)代的要求。同時(shí)Pro/E二次開發(fā)官方提供的幫助文件內(nèi)容非常多,從中找到合適的切入點(diǎn)比較困難,且內(nèi)容大多是英文,并涉及到大量C程序代碼,因此理解起來有困難。本文針對現(xiàn)在廣泛使用的Pro/E 4.0 簡要介紹一下它的二次開發(fā)及應(yīng)用。

      1 Pro/ENGINEER二次開發(fā)的方法介紹

      Pro/ENGINEER的二次開發(fā),利用標(biāo)準(zhǔn)零件間的相似性,發(fā)揮Pro/ENGINEER參數(shù)建模的特長,使用二次開發(fā)工具,如族表工具、用戶定義特征(UDF)、Pro/Program、J-link、Pro/TOOLKIT等來實(shí)現(xiàn)。文獻(xiàn)[1]給出了各二次開發(fā)工具的簡單介紹。

      除此以外Pro/E4.0 提供的二次開發(fā)API工具包,還包含基于Pro/Web Link的二次開發(fā)過程,這種方法使用的語言是javascript,以網(wǎng)頁的形式來訪問Pro/E模型;和基于VB API的二次開發(fā)過程。Pro/E Wildfire 4.0開始可以采用Visual Basic API,通過 Visual Basic. NET 應(yīng)用程序和應(yīng)用程序 (如 Microsoft Word、Excel 或 Access) 中的Visual Basic 宏來進(jìn)行二次開發(fā)。在參考文獻(xiàn)[2]和一些相關(guān)刊物上發(fā)表的論文中還介紹了一種基于Automation GATEWAY插件和VB的二次開發(fā)。Automation GATEWAY是RAND公司開發(fā)的針對Pro/E軟件的二次開發(fā)工具,與Pro/E系統(tǒng)自帶的二次開發(fā)工具Pro/TOOLKIT相比,具有簡單易用的優(yōu)點(diǎn)。應(yīng)用Automation GATEWAY可以自動實(shí)現(xiàn)Pro/E任務(wù),創(chuàng)建用戶界面,完全實(shí)現(xiàn)自動設(shè)計(jì)任務(wù);應(yīng)用Automation GATEWAY可以把任何支持ActiveX的應(yīng)用程序和Pro/E建立直接聯(lián)系。利用VB,可以使Microsoft Office產(chǎn)品(如Word,Excel等)和Pro/E對象之間進(jìn)行數(shù)據(jù)交換。在這個(gè)過程中,Automation GATE WAY在VB和Pro/E之間起到橋梁和紐帶的作用。通過Automation GATE WAY,VB可以訪問Pro/E的大部分底層資源文件。

      由于Pro/TOOLKIT具有多種功能:利用Pro/TOOLKIT能夠自動化建?!绕涫菐缀位騾?shù)約束驅(qū)動的衍生或單一用途模型;集成需要訪問Pro/ENGINEER數(shù)據(jù)或操作的外部應(yīng)用程序;擴(kuò)展Pro/ENGINEER用戶界面,使定制流程無縫嵌入到界面中。因此本文主要講述基于Pro/TOOLKIT的二次開發(fā)過程。

      [3]可知,在對Pro/E4.0進(jìn)行二次開發(fā)的VC軟件升級至Visual Studio 2005,因此在開發(fā)過程中勢必有一些變化。在此,筆者針對其開發(fā)過程給予一些講解,以供參考。

      2 Pro/E 4.0二次開發(fā)步驟

      2.1 確定運(yùn)行模式

      Pro/TOOLKIT應(yīng)用程序有兩種工作模式:同步模式和異步模式。

      2.1.1 異步模式

      無需啟動Pro/ENGINEER,就能單獨(dú)運(yùn)行Pro/TOOLKIT應(yīng)用程序的方式。異步模式實(shí)現(xiàn)了兩個(gè)程序的并行運(yùn)行(兩個(gè)程序是獨(dú)立可運(yùn)行的),可以只在程序需要調(diào)用Pro/ENGINEER功能時(shí),才啟動Pro/ENGINEER。但由于異步模式具有代碼復(fù)雜、執(zhí)行速度慢等缺點(diǎn),因此一般不采用異步模式。

      2.1.2 同步模式

      同步模式下,Pro/TOOLKIT應(yīng)用程序必須與Pro/ENGINEER系統(tǒng)同步運(yùn)行。同步運(yùn)行并非并行運(yùn)行,同步的意思是Pro/TOOLKIT應(yīng)用程序集成到Pro/ENGINEER系統(tǒng)中,若Pro/ENGINEER沒有啟動,Pro/TOOLKIT應(yīng)用程序?qū)o法運(yùn)行。還需要注意的是,Pro/TOOLKIT應(yīng)用程序執(zhí)行時(shí),Pro/ENGINEER系統(tǒng)是處于停止?fàn)顟B(tài)的。

      同步模式又分為兩種模式,即:動態(tài)連接模式(DLL模式)和多進(jìn)程模式(Multiprocess Mode)。動態(tài)連接模式是將用戶編寫的C程序編譯成一個(gè)DLL文件,這樣Pro/TOOLKIT應(yīng)用程序和Pro/ENGINEER運(yùn)行在同一進(jìn)程中,它們之間的信息交換是直接通過函數(shù)調(diào)用實(shí)現(xiàn)的。多進(jìn)程模式是將用戶的C程序編譯成一個(gè)可執(zhí)行文件,Pro/TOOLKIT應(yīng)用程序和Pro/ENGINEER運(yùn)行在各自的進(jìn)程中,它們之間的信息交換是由消息系統(tǒng)來完成的。

      可以根據(jù)需要選擇DLL模式或者多進(jìn)程模式。一般來說,多進(jìn)程模式主要是用于程序開發(fā)階段以便程序的調(diào)試,但是由于DLL模式的運(yùn)行速度快,所以程序開發(fā)完成之后,最后轉(zhuǎn)化成DLL模式。DLL 模式是應(yīng)用程序開發(fā)首選的模式。在VC開發(fā)環(huán)境中如果要使用DLL模式,創(chuàng)建程序時(shí)選擇MFC DLL項(xiàng)目類型,如果要使用多進(jìn)程模式,則創(chuàng)建程序時(shí)選擇MFC EXE項(xiàng)目類型[1]。本文主要采用DLL模式。

      2.2 安裝和測試開發(fā)環(huán)境

      在安裝完API工具包中的Pro/TOOLKIT后,文獻(xiàn)[4]中,Pro/TOOLKIT要求有授權(quán)許可,才能夠開發(fā)和測試應(yīng)用程序。它要求從Pro/ENGINEER裝載點(diǎn)運(yùn)行Ptcstatus,查看是否有許可證選項(xiàng)14。在第一次使用Pro/TOOLKIT建立應(yīng)用程序時(shí),該應(yīng)用程序會被視為是“鎖定”的。因此在測試應(yīng)用程序時(shí),需要有Pro/TOOLKIT開發(fā)許可證,否則鎖定的應(yīng)用程序在載入到Pro/ENGINEER進(jìn)程中時(shí)會在啟動時(shí)發(fā)生錯(cuò)誤。在此,筆者建議大家用一種新方法即可解決這個(gè)問題:在Pro/ENGINEER安裝的時(shí)候,其安裝目錄不要有空格,當(dāng)安裝Pro/E wildfire4.0時(shí),最好連小數(shù)點(diǎn)也不要,如D:ptcproeWildfire4。這樣在后續(xù)的運(yùn)行安裝測試makefile應(yīng)用程序時(shí)將不會出現(xiàn)問題。限于篇幅,請參考文獻(xiàn)[4]或[5]?!磒roe裝載點(diǎn)〉即為proe的安裝路徑。

      2.3 新建項(xiàng)目和設(shè)置開發(fā)環(huán)境

      Pro/TOOLKIT是PTC公司提供的C語言二次開發(fā)工具包,因此具有豐富的C語言函數(shù)庫,對于開發(fā)人員有一定要求,適用于熟悉C/C++編程語言,C/C++的指針、數(shù)據(jù)結(jié)構(gòu)以及動態(tài)內(nèi)存管理方面的知識的人使用,尤其是對于Pro/E4.0二次開發(fā),更是要求能夠熟練使用Microsoft Visual Studio2005。以前的開發(fā)都是在純C語言環(huán)境下,用Make文件創(chuàng)建Pro/TOOLKIT應(yīng)用程序(可參考文獻(xiàn)[2]、[6]),有以下缺點(diǎn):1)應(yīng)用程序必須手工修改make文件,程序的設(shè)計(jì)和調(diào)試不方便;2)無法使用MFC,不能充分利用VC資源;3)人機(jī)交互界面較難開發(fā),不能直接進(jìn)行對話框的可視化設(shè)計(jì)。雖然PTC提供了prodialog_view.exe工具用于查看即將生成的對話框是什么樣,可是開發(fā)難度大,過程繁瑣,開發(fā)的對話框組件十分有限。綜上所述,在創(chuàng)建Pro/TOOLKIT應(yīng)用程序時(shí),用VC。這樣除了在創(chuàng)建應(yīng)用程序基本框架時(shí)能調(diào)用VC的應(yīng)用程序設(shè)計(jì)向?qū)Ш皖愊驅(qū)нM(jìn)行簡便快速的設(shè)計(jì)和調(diào)試,同時(shí)在設(shè)計(jì)對話框時(shí)可直接使用MFC對話框控件,比起UI對話框的創(chuàng)建,直觀簡便。

      用VC開發(fā)程序?qū)τ诔鯇W(xué)者來說常遇到的問題就是VC開發(fā)環(huán)境的設(shè)置,這直接關(guān)系程序運(yùn)行的成敗,筆者針對Visual Studio.NET2005簡要講述開發(fā)環(huán)境設(shè)置。

      2.3.1 新建項(xiàng)目

      1)選擇新建項(xiàng)目的類型(dll或exe類型),并輸入項(xiàng)目名稱。

      2)指定連接類型。若是DLL類型,一般選擇共享MFC DLL規(guī)則。

      3)設(shè)置包含文件和庫文件。選擇菜單【工具】-〉【選項(xiàng)】,在彈出的“選項(xiàng)”對話框中選擇左側(cè)列表框中的“項(xiàng)目和解決方案”結(jié)點(diǎn)下的“VC++目錄”,并:在“顯示以下內(nèi)容的目錄”下拉列表框中選擇“包含文件”,然后添加頭文件如圖1所示。

      D:ptcproeWildfire4prodevelopprodev_applsincludes

      D:ptcproeWildfire4protoolkitprotk_applsincludes

      D:ptcproeWildfire4protoolkitincludes

      D:ptcproeWildfire4prodevelopincludes

      4)在“顯示以下內(nèi)容的目錄”下拉列表框中選擇“庫文件”,然后添加庫文件

      D:ptcproeWildfire4prodevelopi486_ntobj

      D:ptcproeWildfire4protoolkiti486_ntobj

      2.3.2 項(xiàng)目屬性的設(shè)置

      用于添加鏈接時(shí)所需的lib文件,此設(shè)置,不同于上面的設(shè)置,需要每建一個(gè)新工程都設(shè)置一次。

      1)在菜單【項(xiàng)目】-〉【屬性】,在彈出的屬性頁對話框左邊的列表框中選擇“C/C++”節(jié)點(diǎn)下的“預(yù)處理器”,然后在“預(yù)處理器定義”欄添加:PRO_USE_VAR_ARGS(見圖 2)。

      2)選擇“C/C++”節(jié)點(diǎn)下的“語言”,并將“將wchar_t視為內(nèi)置類型”設(shè)置為“否”。

      3)選擇“鏈接器”節(jié)點(diǎn)下的“輸入”,然后在“附加依賴項(xiàng)”中添加必要的庫文件:protk_dllmd.lib(用于MFC DLL方式)、 prodev_dllmd.lib (用于MFC DLL方式)、protkmd.lib(用于MFC EXE方式 )、pt_asynchronous.lib (用 于 MFC EXE 方 式 )、wsock32.lib、mpr.lib、psapi.lib,kernel32.lib(如圖 3所示)。設(shè)置庫文件相當(dāng)重要,如果設(shè)置不對或是設(shè)置缺少,就會造成錯(cuò)誤。本文只是將最常見的庫文件的添加顯示出來,更多的請參考幫助文件[7]。

      圖1 添加包含文件

      圖2 添加預(yù)定義

      與VC++6.0不同的是,在VC2005 中已經(jīng)不需要設(shè)置“忽略庫”與“強(qiáng)制輸出”的選項(xiàng)了。

      2.4 定義初始化函數(shù)和結(jié)束函數(shù)

      圖3 添加附加依賴項(xiàng)

      完成項(xiàng)目的創(chuàng)建及開發(fā)環(huán)境的設(shè)置后,就開始定義初始化函數(shù)user_initializ()函數(shù)和結(jié)束函數(shù)user_terminate()函數(shù)。初始化函數(shù)和終止函數(shù)是每個(gè)同步模式程序都必須添加的。初始化函數(shù)主要是用來設(shè)置需要添加的菜單,調(diào)用對話框,設(shè)置用戶的交互接口等一些初始值設(shè)置。結(jié)束函數(shù)用于結(jié)束Pro/TOOLKIT應(yīng)用程序。

      2.5 創(chuàng)建編寫程序源代碼

      在主文件中需要添加Pro/TOOLKIT頭文件,常用的頭文件也可以添加到stdafx.h,這樣就不需要在添加新的CPP文件時(shí)設(shè)置一次頭文件。如果使用了Pro/TOOLKIT對象函數(shù),則應(yīng)用程序都必須包括ProToolkit.h頭文件。

      注意:VC中的寬字符與Pro/TOOLKIT應(yīng)用程序中的寬字符不匹配常會導(dǎo)致程序崩潰,因此要進(jìn)行寬字符的轉(zhuǎn)換,加入頭文件ProUtil.h,它包含數(shù)據(jù)類型的轉(zhuǎn)換函數(shù)。同時(shí)筆者建議熟練掌握VC2005的編程應(yīng)用,它在編程和選項(xiàng)設(shè)置上與VC6有一些不同。在字符的問題上,有許多代碼在VC6中沒問題,但在VC2005中出現(xiàn)錯(cuò)誤,那是因?yàn)樵赩C6中代碼沒有按可編譯為UNICODE版本的方式寫,而VC2005之后版本默認(rèn)是UNICODE編碼的,所以所有使用到字符串的地方都會出錯(cuò),解決的辦法是,一定要熟悉VC2005的新特性,對于原有代碼進(jìn)行適當(dāng)修改。當(dāng)然也有一簡便的方法是:在菜單【項(xiàng)目】-〉【屬性】-〉【配置屬性】-〉【常規(guī)】,在“字符集”一欄中選擇“使用多字節(jié)字符集”,這樣能減少編譯時(shí)的錯(cuò)誤。

      2.6 編寫注冊文件、菜單,編譯運(yùn)行項(xiàng)目

      注冊文件的編寫可參考文獻(xiàn)[6]。如有必要可以加上菜單的編寫使之更人性化。最后編譯連接Pro/TOOLKIT函數(shù)庫和VC類庫,生成解決方案。

      2.7 Pro/TOOLKIT應(yīng)用程序的運(yùn)行

      一定要在環(huán)境變量設(shè)置完后,程序調(diào)試成功后,進(jìn)行創(chuàng)建測試目錄和創(chuàng)建測試快捷啟動。這時(shí)編好的注冊文件根據(jù)注冊方式——自動注冊方式或手動注冊方式,進(jìn)行Pro/TOOLKIT應(yīng)用程序的注冊,運(yùn)行相應(yīng)的Pro/TOOLKIT應(yīng)用程序。

      3 開發(fā)應(yīng)用實(shí)例

      圖4所示顯示的是一個(gè)簡單的Pro/E二次開發(fā)實(shí)例,利用了上述關(guān)鍵技術(shù),開發(fā)出菜單和對話框顯示的實(shí)例,當(dāng)有模型的時(shí)候,點(diǎn)擊菜單會顯示出模型的地址,沒有模型的時(shí)候則提示打開錯(cuò)誤。

      圖4 二次開發(fā)實(shí)例

      4 結(jié)論

      本文詳細(xì)介紹了利用Pro/TOOLKIT對Pro/E 4.0 二次開發(fā)的關(guān)鍵步驟和技術(shù)。由于操作不易,國內(nèi)的基于Pro/E的三維CAD系統(tǒng)的研究和應(yīng)用還處于初步階段。本文的介紹,對于進(jìn)行Pro/E4.0及其以上版本的成功開發(fā)具有重要的借鑒意義。隨著機(jī)械行業(yè)的發(fā)展,Pro/E的二次開發(fā)會益加廣泛,作用也會越來越大。

      參考文獻(xiàn):

      [1] 吳立軍, 陳波. Pro/ENGINEER二次開發(fā)技術(shù)基礎(chǔ)[M]. 北京: 電子工業(yè)出版社, 2006:1-30.

      [2] 張繼春. Pro/ENGINEER二次開發(fā)實(shí)用教程[M]. 北京: 北京大學(xué)出版社, 2003: 4-75.

      [3] Parametric Technology Corporation. Platform Notes-Pro/TOOLKIT for Pro/ENGINEER Wildfire 4.0 [S]. USA:PTC公司. 2007, 6.

      [4] Parametric Technology Corporation. Pro/TOOLKIT for Pro/ENGINEER Wildfire 4.0入門[S]. USA: PTC公司.2007, 9: 3-24.

      [5] Parametric Technology Corporation. Getting Started with Pro/TOOLKIT for Pro/ENGINEER Wildfire 4.0 [S]. USA:PTC公司. 2007, 9: 3-24.

      [6] 李世國. Pro/TOOLKIT程序設(shè)計(jì)[M]. 北京: 機(jī)械工業(yè)出版社, 2003: 15-90.

      [7] Parametric Technology Corporation. Pro/ENGINEER Wildfire 4.0 Pro/TOOLKIT User’s Guide[S]. USA: PTC公司.2009, 6: 2101-2200.

      猜你喜歡
      二次開發(fā)對話框菜單
      淺談基于Revit平臺的二次開發(fā)
      甘肅科技(2020年20期)2020-04-13 00:30:02
      中國新年菜單
      正?;謴?fù)虛擬機(jī)
      淺談Mastercam后處理器的二次開發(fā)
      模具制造(2019年3期)2019-06-06 02:11:02
      Bootlace Worms’Secret etc.
      西門子Easy Screen對倒棱機(jī)床界面二次開發(fā)
      本月菜單
      美食堂(2017年1期)2017-01-13 01:37:42
      基于Pro/E二次開發(fā)的推土鏟參數(shù)化模塊開發(fā)
      一個(gè)“公海龜”的求偶菜單
      鴨綠江(2013年10期)2013-03-11 19:41:55
      快速抓取對話框中的完整信息
      電腦迷(2012年22期)2012-04-29 20:30:54
      普安县| 潼关县| 牟定县| 富裕县| 德化县| 潼南县| 凌源市| 乌兰浩特市| 马尔康县| 汉沽区| 开封县| 安图县| 枞阳县| 明水县| 凤台县| 政和县| 张家港市| 界首市| 姜堰市| 五原县| 太仆寺旗| 二连浩特市| 大丰市| 大石桥市| 延川县| 绥阳县| 民权县| 和林格尔县| 彰化县| 广昌县| 安远县| 广平县| 文昌市| 呼玛县| 定陶县| 天祝| 三亚市| 临汾市| 年辖:市辖区| 丰都县| 综艺|