?

基于Pro/Toolkit的Pro/E工程圖標注系統的二次開發研究

2016-11-03 08:19王思遠賀成柱
甘肅科技 2016年12期
關鍵詞:形位工程圖二次開發

王思遠,賀成柱

(甘肅省機械科學研究院,甘肅省機械產品檢測與技術評價重點實驗室,甘肅 蘭州 730030)

基于Pro/Toolkit的Pro/E工程圖標注系統的二次開發研究

王思遠,賀成柱

(甘肅省機械科學研究院,甘肅省機械產品檢測與技術評價重點實驗室,甘肅蘭州730030)

針對Pro/E系統中工程圖標注的繁瑣難題,利用VC++技術和Pro/E二次開發工具包Pro/Toolkit,通過動態鏈接庫方式對Pro/E中工程圖的公差標注系統進行二次開發,并對菜單開發和MFC可視化對話框開發設計的關鍵技術進行了研究,實現了形位公差、尺寸公差標注符號類型和各參數的選擇與輸入,有助于用戶在使用過程中能迅速、快捷、準確的完成工程圖的標注。

Pro/E;Pro/Toolkit;公差標注;二次開發;VC++

Pro/ENGINEER(以下簡稱Pro/E)軟件是由美國PTC公司開發并研制的一款三維設計軟件,它將CAD/CAPP/CAM功能集于一體化,不僅具有“參數化、相關化”的特點,而且具有更加細致而強大的設計、分析、制造等功能,可以為工業產品的開發設計提供了一套完整的解決方案,因此,應用范圍涉及到航空、機械設計、數控加工、有限元分析等諸多領域,當前Pro/E在我國的應用比較比較廣泛。

一般產品的三維設計軟件應具備快速反求的設計開發功能,系統的界面設計要更專業化、智能化、人性化,各個模塊之間要無縫連接,以快速設計為最終開發的目標。在國內各大企業實際生產當中,二維工程圖紙從產品的研發到裝配過程中占據了重要的地位,它是產品設計與制造的技術核心,必須具備行業規范性和標準性,特別是工程圖的二維標注標注符號、標題欄及其他標注信息等[1]。二維工程圖在Pro/E環境下,其標注功能較為薄弱,并且有些標注方法與國際標準不相符。所以更多的企業提出了二次開發的需求,通過對Pro/E二次開發,不僅使軟件具備了更高的實用性,而且能夠提高產品的開發效率,這樣以來大大縮短了產品的設計周期。這將使得企業和用戶擺脫了二維工程圖圖紙上的重復繁瑣的標注,在一定程度上提高了對工程圖二維標注的處理能力。

本文針對形位公差國際化標注進行了一些研究,在Pro/E Wildfire 5.0的環境下,主要使用Pro/ Toolkit工具包。在VC++平臺上利用MFC對話框的可視化技術開發了符合國際標準的形位公差符號標注功能,有效地解決了工程圖中形位公差符號標注上的繁瑣難題。

1 Pro/Toolkit開發的基本方法

Pro/E自帶的二次開發工具包包括Pro/Toolkit、J-link等。用戶可以通過Pro/Toolkit工具包獲得大量的C語言函數庫。如果用戶想要方便地訪問Pro/ E的內部數據庫及應用程序,可以通過調用最底層函數的方式來實現,企業或用戶可以根據自己的需求進行二次開發,通過C程序代碼來擴充Pro/E的其它所需要的功能。

Pro/Toolkit應用程序有兩種工作模式:異步和同步模式。

1)異步模式:Pro/Toolkit應用程序可以在Pro/E系統關閉的狀態下單獨運行,這樣就實現了兩個程序的獨立運行,Pro/E系統在需要調用Pro/E功能的時候再啟動運行。異步模式的程序代碼復雜并且運行速度比較慢,因此一般不采用異步模式。

2)同步模式:Pro/Toolkit應用程序與Pro/E系統必須同步運行,Pro/Toolkit應用程序在Pro/E系統關閉的狀態下是無法運行的。同步模式又分為DLL模式和多進程模式,Pro/Toolkit應用程序集成到Pro/E系統中的標準方法就是DLL模式??紤]到Pro/ Toolkit應用程序的運行都在Pro/E系統里,所以一般采用同步模式。

Pro/Toolkit開發應用程序在使用過程中包括3個基本步驟:

1.1編寫源文件

Pro/Toolkit應用程序整體上有3部分組成:頭文件包含部分、用戶初始化函數和用戶結束中斷函數部分。

頭文件包含部分是指定應用程序所使用對象函數的原型文件,每個應用程序都必須包含的頭文件是“Pro/Toolkit.h”否則在編譯該文件時就會出現錯誤。

源文件包括:對話框源文件、菜單資源文件及程序源文件,其中程序源文件是要進行編寫的C語言程序,它包括定義的菜單內容及動作,是整個二次開發的核心部分。

在同步模式下,Pro/Toolkit應用程序中必須包含這兩個核心函數:初始化函數user_initializ(),該函數主要是用戶用來設置需要添加的菜單,以及其他的一些初始值設置或直接調用所需的函數等;終止函數user_terminate(),該函數主要用來執行程序結束時的處理工作,如釋放程序中全局變量的內存等。這兩個函數都應該放在與工程文件名同名的cpp文件中。

1.2編譯鏈接程序

程序代碼編寫完成后,就可以在VC++中編譯鏈接Pro/Toolkit函數庫和MFC(Microsoft

Foundation Classes)類庫的程序,最終可生成在Pro/E中注冊運行的DLL文件。Makefile文件在整個編譯連接的過程中起著很重要的作用,其中包括:指定頭文件、源文件、庫文件的位置;生成可執行文件和動態連接庫名稱等。一般Makefile文件在用戶開發一個VC項目時,就會在VC中自動生成并集成到VC環境中。因此,用戶可以不用編寫Makefile文件。

1.3注冊運行Pro/Toolkit應用程序

編寫一個文本文件的擴展名為.dat的文件作為注冊文件,注冊文件是向Pro/E提供應用程序的信息。Pro/Toolkit應用程序有兩種注冊方式:

1)自動注冊的方式:第一種方式是將注冊文件protk.dat保存在Pro/E安裝目錄的 ext目錄,或者位于Pro/E起始位置設定的目錄下,在運行Pro/E時,Pro/E將自動啟動注冊文件里的所有Pro/Toolkit應用程序。如果在注冊文件設置DELAY_START的值為TRUE時,在啟動Pro/E時Pro/Toolkit應用程序將自動運行,否則必須用手動來運行。第二種方式是在Pro/E的config.pro文件設定為注冊文件但是系統的變量名必須為toolkit_registry_file。

2)手動注冊方式:在Pro/E運行的界面上單擊“工具”主菜單下的“輔助應用程序”子菜單,然后在彈出的對話框中選“注冊”按鈕,按路徑選擇所建立的protk.dat文件,注冊成功后選擇“啟動”按鈕運行程序。

注冊文件編寫格式如下:

2 Pro/Toolkit二次開發的關鍵性技術問題

2.1標注系統的二次開發流程

通過二次開發,Pro/E中形位公差標注的繁瑣與不足得到了很好的改善,以交互的方式實現了直觀友好的對話,從而達到快捷,準確的標注目標。形位公差國際標注系統的開發流程如圖1所示。

圖1 開發流程圖

2.2菜單的編寫技術

在Pro/E中,幾乎所有的操作命令都是通過菜單或按鈕來實現相應的操作,在Pro/E二次開發中,用戶可以通過Pro/Toolkit,利用其提供的函數自定義拓展以及使用緊密結合的且操作起來方便的個性化菜單。一個完整的菜單編寫代碼里應包含兩個

Pro/Toolkit函數:ProCmdActionAdd()和

ProMenubarmenuPushbuttonAdd()函數。

以下是本程序的菜單添加的相應函數設置∶

1)status=ProMenubarMenuAdd("CHECK"," CHECK","Utilities",PRO_B_TRUE,MsgFile);

此函數的功能是:在Pro/E界面上添加一個新的菜單。

2)ProCmdActionAdd("ShowTest1",(uiCmdCmdActFn)

UsrPlanesTol,uiCmdPrioDefault,AccessDefault,PRO_B_TRUE,PRO_B_TRUE,&cmd_id1);

此函數的功能是:設置Pro/E菜單項時所需要執行的動作函數,這個函數命令和按鈕捆綁在一起。參數ShowTest1是動作命令名,但是動作命令名必須是唯一的;參數uiCmdPrioDefault是命令的優先級別,指該動作函數優先于向Pro/E里加的其它動作函數的等級;參數&cmd_id1是動作函數的命令標示號,在調用動作ProMenubarmenuPushbuttonAdd函數時作為作為輸入參數。

3)ProMenubarmenuPushbuttonAdd("CHECK"," UsrPlanesTol","UsrPlanesTol","Active UsrPlanesTol menu",NULL,PRO_B_TRUE,cmd_id1,ProString-ToWstring(message_file,"message2.txt"))。

此函數的功能是:用來添加所需要的菜單按鈕。參數UsrPlanesTol是菜單標簽名,該值必須與信息文件中同組的標示關鍵字相同。

本文設計的菜單如圖2所示:

圖2 所添加的菜單

2.3MFC可視化對話框的創建技術

目前,人機交互界面最流行的一種方式為彈出式對話框,用戶通過對話框對參數信息進行輸入或顯示數據,本文采用VisualC++的MFC可視化對話框技術來實現。MFC設計對話框技術通過面向對象的方法來調用API,并且提供了文檔框架的視圖和活動文檔,這是優于UI對話框技術的一個關鍵作用,這樣使用戶可以根據自己的需求自定義應用程序框架,使得操作起來比較靈活、高效、修改和調試也簡單。

對話框有兩種類型:模式和無模式對話框,前者是激活當前對話框的條件下不能激活另外的對話框,只有關閉該對話框才能對其他對話框進行操作。后者恰恰相反,它是激活一個對話框的同時還可以激活另外的對話框,可以不關閉前一個對話框,但是前一個對話框處于非活動狀態,這種模式的對話框使得操作起來沒有更多的限制。

在Pro/E系統中調用MFC可視化對話框的關鍵問題就是要實現 Pro/TOOLKIT、Pro/E系統和MFC對話框三者之間的通信。因為Pro/TOOLKIT本??身并不支持對MFC可視化對話框開發設計,本文采用動態鏈接庫 (DLL)方式來實現 Pro/T??OOLKIT與MFC之間的通信,同樣??DLL方式也可以在Pro/E與Pro/TOOLKIT??之間相互通信。DLL的產生則由MFC根據Pro/TOOLKIT的環境要求設置后進行編程實現,應用程序功能就完全集成到DLL中,其中接口方案如下圖3所示。

圖3 二次開發接口的實現方案

本文按如下步驟,實現MFC對話框的開發設計[3]:

1)新建一個MFC DLL的項目。用AppWizard創Pro/T OOLKIT應用程序框架,在該項目文件里設置好頭文件、庫文件和項目的其它屬性。

2)在該項目.cpp文件里內添加常用的頭文件、初始化函數和終止函數,如果對話框需要Pro/E菜單項啟動的話,就要在user_initializ()里添加菜單按鈕函數和動作函數設置。

3)創建對話框資源。在VC++的集成環境里調整并設置對話框的布局等屬性,如調整對話框大小、添加文本空間、選擇控件等。

4)創建對話框類。對話框界面設計好之后就可以用ClassWizard創建一個對話框類。自動生成CDialog派生類定義的頭文件Dlg.h和實現文件Dlg. cpp。

5)創建和顯示對話框。設置好類的成員變量函數之后,就可以編寫并實現每個函數功能的代碼。

6)生成Pro/T OOLKIT應用程序。

下面給出了無模式對話框圖4的部分編寫代碼:

圖4 形位公差對話框

2.4外部數據庫的訪問

通常在Pro/E二次開發過程中,還需要與外界的數據庫相連接,來實現相應的查詢功能,由于Microsoft Access數據庫具有使用性強、兼容性和通用性好等優點,因此采用Access數據庫來創建公差數據庫。在數據庫與Pro/TOOLKIT應用程序之間的連接采用ADO(ActiveX Date Objects)方式。

ADO是一個面向對象的程序接口,也是存取數據源的COM組件的一部分,它提供了編程語言和數據訪問方式OLE DB,不過OLE DB更加接近底層。ADO繼承了早期微軟的數據訪問的對象層,包括RDO(Remote Data Objects)和DAO(Data Access Objects)。ADO庫包含三個基本接口對象∶_ConnectionPtr接口、_CommandPtr接口和_RecordsetPtr接口。本文采用的是_ConnectionPtr接口對象進行數據庫之間的連接,用該對象進行對數據庫的關閉打開和創建數據集的動作等。在使用之前,把“stdafx. h”文件加到下面的代碼中:#import“c;program filescommon filessystemadomsado15.dll”re name_

namespace(“myado”)rename(“EOF”,”adoEOF”)主要是添加ADO系統所使用的相關組件及操作空間。

下面給出了部分連接實例程序代碼如下:

3 開發實例及程序

形位公差的標注采用彈出式對話框的形式,用戶可以選擇相應的形位公差進行標注。部分標注的

所建立的對話框以及標注的結果如圖5所示。

圖5 工程圖標注示例圖

4 結束語

本文闡述了運用Pro/TOOLKIT結合VC++的 MFC的可視化優點實現了 Pro/E系統的二次開發——工程圖的國際化標注。這是一款簡單易用且符合國際的通用化標準插件的開發,最大限度地提高了Pro/E軟件的使用效率,縮短了產品的開發周期,促進了CAD技術的發展。

[1]路強,費明浩,賈騰,等.基于Pro/TOOLKIT二次開發的二維工程圖標注系統[J].拖拉機與農用運輸車,2008,35(6)∶101-103.

[2]王文波.Pro/EWildfire4.0二次開發實例解析[M].北京∶清華大學出版社,2010.

[3]李世國.Pro/TOOLKIT程序設計[M].北京∶機械工業出版社,2003.

[4]張繼春.Pro/E二次開發實用教程[M].北京∶北京大學出版社,2003.

[5]宋娥,李世國.Pro/E二次開發中的界面設計技術[J].機械設計與制造,2005.(5)∶56-58.

[6]衛大為,李健康.Pro/E二次開發的機械零件參數化設計[J].機械制造與研究,2004.33(6)21-24.

TH391.7;TP391.9

猜你喜歡
形位工程圖二次開發
四合一鉛筆刀設計
漢字形位與漢字教學*
面向工程認證的機制專業工程圖學(一)課程教學探索
淺談基于Revit平臺的二次開發
MASTERCAM工程圖出圖功能研究
淺談Mastercam后處理器的二次開發
綜論漢字的形位
復合式測量技術在航天產品形位尺寸檢測中的應用
西門子Easy Screen對倒棱機床界面二次開發
直線度誤差曲線形成機理與形位特性研究
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合