?

塑料瓶及其吹塑模具參數化CAD軟件的程序設計

2011-02-09 01:57
制造業自動化 2011年4期
關鍵詞:調用對話框菜單

付 饒

(綿陽職業技術學院,綿陽 621000)

1 選擇應用程序的開發模式和創建方法

所謂的Pro/TOOLKIT應用程序,是指利用Pro/E系統提供的Pro/TOOLKIT工具包的支持,用C語言進行程序設計,采用C編譯器和連接器創建能夠在Pro/E環境運行的可執行程序(文件后綴名為EXE)或動態連接庫程序(文件后綴名為DLL)形式的程序[1]。對于不同的操作系統平臺,在編譯和連接生成Pro/TOOLKIT應用程序時,編譯器選項和所需的系統庫文件通常是不同的。要使Pro/TOOLKIT應用程序在Pro/E環境下正常運行,必須正確設置編譯和連接選項。

1.1 開發模式

用Pro/TOOLKIT開發應用程序有兩種模式:同步模式(Synchronous Mode)和異步模式(Asynchronous Mode)[2]。在著手進行應用程序開發前,必須先選擇采用同步模式還是異步模式。同步模式下,Pro/E根據注冊文件中的信息啟動應用程序,Pro/TOOLKIT應用程序和Pro/E產生各自的進程,程序的控制權在兩個進程之間切換。該應用程序不能夠獨立于Pro/E 而運行。異步模式下,Pro/TOOLKIT應用程序和Pro/E能夠進行各自的操作,在通信方面,異步模式使用遠程調用(Remote Procedure Calls, RPC)方式,程序(含有獨立主函數)能獨立于Pro/E啟動。由于異步模式采用遠程調用,程序運行速度相比同步模式慢很多,整合性也不好,所以,一般基于Pro/E的Pro/TOOLKIT開發采用同步模式。在同步模式下又有兩種開發方式:動態鏈接庫(DLL Mode)和多進程(Multi-process或Spawned Mode)。前者為動態連接庫文件,無自身主程序函數,直接連接于Pro/E進行程序調用。后者為.exe文件,有獨立的主程序和Pro/E進行相連接。一般為了調試方便,開發程序時可以采用多進程模式,在程序完成時,采用動態連接庫以提高程序運行效率[3]。由于本課題的應用程序并不是十分復雜,所以從始至終都采用動態鏈接庫的方式。

1.2 創建方法

創建Pro/TOOLKIT應用程序的方法有兩種,即利用Make文件創建和利用VC向導創建。默認安裝時,在protoolkiti486_ntobj文件火,文件名前綴為Make_的文件為Pro/TOOLKIT工具包提供的Make文件范例。將其擴展名改為.mak,可在VC++(Microsoft Visual C++ 6.0)環境打開該文件,并可直接創建應用程序。但采用Make文件的方法創建Pro/TOOLKIT應用程序必須用手工修改make文件,程序的設計和調試均不方便。另外,由于這種方式無法使用MFC類庫,因而不能充分利用VC++的資源。特別是在人機交互界面設計時不能直接進行對話框的可視化設計。因而直接利用VC++的應用程序設計向導(App Wizard)和類向導(Class Wizard)來進行Pro/TOOLKTT應用程序的設計、創建和調試,無疑是一種更佳選擇[4]。因此,本課題的應用程序利用VC++向導的方式創建。

2 應用程序設計步驟

使用Pro/TOOLKIT開發應用程序包含五個基本步驟:編寫源文件(源代碼文件和資源文件);編譯和連接,生成可執行文件(DLL或EXE文件);注冊Pro/TOOLKIT應用程序;運行應用程序;停止和重啟動應用程序。

2.1 編寫源文件

源文件包括資源文件和C++源代碼文件:資源文件包括菜單資源文件、對話框資源文件和信息文件等;程序源文件是指我們在VC++環境下編寫的C++程序。

2.2 編譯和連接,生成可執行文件

一般需要制作makefile工程文件,可以根據Pro/E自帶的makefile文件修改,由該文件指定庫文件、頭文件、源文件的位置及要生成的EXE文件和DLL文件的名稱等,也可以在VC++ 6.0環境中設定,指定必要庫文件和頭文件的包含目錄,添加必要的庫文件:protk_dll.lib、mpr.lib[5]。完成設置后就可以編譯Pro/TOOLKIT應用程序生成動態鏈接庫文件了。

2.3 注冊Pro/TOOLKIT應用程序

注冊Pro/TOOLKIT應用程序是指將Pro/TOOLKIT應用程序文件的信息提供給Pro/E,為了做到這一點,Pro/E會尋找并讀入Pro/TOOLKIT的注冊文件,該文件是一個文本文件[2]。注冊文件的編寫也要遵從一定的格式。

注冊文件以.dat為后綴,其格式如下:name<應用程序名>

startup<工作模式,exe或d11>exec_ file<可執行文件或動態鏈接庫的位置>text dir<(資源文件、對話框文件、窗口信息文件)的位置>

allow_stop<是否允許終止運行程序>delay_start<手工或自動啟動程序>revision<版本號>end<結束>

可以采用兩種注冊方式,即自動注冊和手動注冊。

自動注冊:自動注冊分為兩種情況:一是必須將注冊文件名取為Protk.dat,并保存于Pro/E的安裝目錄的 ext目錄,或者位于Pro/E的起始位置設定的目錄。二是在Pro/E的config.pro文件設定注冊文件。

手動注冊:選擇Pro/E界面上的Utilities/Auxiliary Applications菜單項,選擇“注冊”按鈕注冊應用程序。注冊成功后選擇“啟動”按鈕運行應用程序。

2.4 運行應用程序

注冊成功后,該程序的名稱出現在輔助應用程序對話框中,且處于未運行狀態,選中該應用程序,單擊“啟動”按鈕,即可運行該應用程序。

2.5 停止和重啟動應用程序

Pro/TOOLKIT支持在Pro/E的運行中停止和重啟動應用程序的功能,該功能在應用程序的開發階段是很有用的,可以允許開發者在不重新啟動Pro/E的情況下修改程序代碼并重新測試程序[6]。

3 應用程序模塊及其編寫

Pro/TOOLKIT應用程序,即Pro/TOOLKIT源文件,主要分為程序源代碼和菜單文件、對話框資源文件等多個模塊,圖1給出了本課題用到的各個模塊以及它們之間的層次關系,由十篇幅有限,本文只介紹其中幾個比較重要的模塊的編寫。

3.1 編寫程序源代碼文件

在同步模式下開發程序,Pro/TOOLKIT應用程序的核心是:user_ initialize()和user_terminate()兩個函數,這兩個函數是在Pro/E啟動或終止時調用的。在Pro/E完成初始化和圖形界面生成,而用于交互的菜單還沒有生成前,系統調用函數user initialize()。在該函數中應完成Pro/TOOLKTT應用程序所需的任何初始化工作,其中包括對Pro/E菜單的修改(例如添加新的菜單按鈕等)。當成功地完成初始化后,該函數返回零值,任何其他的返回值均被認為是初始化失敗。終止Pro/E任務時,將調用user_terminate()函數,該函數返回值是void。

3.1.1 編寫user initialize()函數完成初始化工作

該函數用來初始化一個同步模式的應用程序,在該函數里面,主要調用相關函數來做如下的工作:設置菜單信息文件名、添加菜單條、添加菜單按鈕、設置菜單按鈕的動作函數等。該函數必須返回0來表明程序已經被正確地初始化了。而動作函數一般在該函數外進行定義。

3.1.2 編寫user_terminate()函數終止程序

該函數的主要任務是終止應用程序,它的調用比較簡單,對于實現功能比較簡單的應用程序,該函數可以為空。但是,應該注意的是,如果要在DLL模式下調用對話框資源,就必須在該函數中 調 用“AFX_MANAGE_STATE(AfxGetStaticM oduleState());”語句。這是因為,最后生成的Pro/TOOLKIT應用程序為動態鏈接庫(DLL)文件,因此,在使用對話框資源時,應明確指定所使用的是DLL資源,否則,在Pro/E調用該應用程序時,DLL將使用EXE(可執行文件)的資源。

圖1 應用程序編寫模塊

3.2 編寫菜單文件

菜單文件的內容主要是程序添加到Pro/E系統里面的菜單名,如果是在Pro/E原有菜單里面加入一個新菜單,則其文件后綴為.AUX,如果加入的菜單里又含有下一級子菜單,則這個菜單文件后綴為.MNU。菜單文件的編寫也有一定的格式規范。菜單文件必須編寫正確,否則,也將導致程序無法正常運行。

菜單資源文件有其規范的格式,每三行為一組,具體如下:

菜單標識名 ……菜單標識文本

#

#

選項名[覆蓋選項名] ……菜單選項顯示文本

(提示信息) ……鼠標劃過或停留在菜單項時顯示的提示文本

[覆蓋提示信息]

選項名[覆蓋選項名]

本課題菜單資源文件為:

MyMenu

&MyMenu

我的菜單

#

BottleAndMoldDesign

BottleAndMoldDesign

瓶子和模具設計

#

Parameterized Programmi ng

Parameterized Programming

參數化設計

#

4 結束語

本文以目前國內市場上占主流的瓶子的改型設計為研究對象,充分滲透參數化設計的思想,利用VC++與Pro/E和Pro/TOOLKIT,實現了瓶子的參數化設計和模具設計的自動化。整個設計采用參數化設計的方法,用戶只需點擊按鈕和修改數據,即可實現模具的設計。另外,系統還通過改變按鈕的可選狀態的方式指導用戶進行操作,用戶只要按指定的順序進行操作,即可在短短一兩分鐘之內完成模具設計的整個過程。所有的計算和數據傳遞都在幕后進行,無須用戶干涉,使得復雜的模具設計過程變得簡單明了。

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

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

[3] 二代龍震工作室.Fro/TOOLKIT Wildfire 2.0插件設計[M].北京電子工業出版社,2005:1-392.

[4] 田福祥.現代模具技術的特點及其發展趨勢[J].熱加工工藝,2004 (08).

[5] 李劍峰,等.Pro/TOOLKIT技術及其在Pro/ENGINEER二次開發中的應用[J].網絡與信息化,2003 (05).

[6] 金濤,陳敏,等.Pro/ENGINEER軟件的一次開發技術[J].計算機工程與應用,2001 (13).

猜你喜歡
調用對話框菜單
中國新年菜單
正?;謴吞摂M機
核電項目物項調用管理的應用研究
系統虛擬化環境下客戶機系統調用信息捕獲與分析①
Bootlace Worms’Secret etc.
What Is Beauty?
本月菜單
淺談VB的通用對話框《CommonDialog》控件的使用
利用RFC技術實現SAP系統接口通信
一個“公海龜”的求偶菜單
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合