|
Pro/ENGINEER是美國PTC公司研制的CAD/CAM軟件,。Pro/TOOLKIT是PTC提供用于對Pro/ENGINEER進行二次開發(fā)的軟件包,,Pro/TOOLKIT提供了大量的C語言函數(shù),幫助我們利用C語言編程來增加Pro/ENGINEER的功能,。在Pro/ENGINEER的二次開發(fā)過程中,,有以下幾個問題值得注意(筆者使用的是Pro/ENGINEER 2000i)。1 編寫應(yīng)用程序/ X7 l* F4 _1 y
可在Visual C++環(huán)境下編寫Pro/TOOLKIT應(yīng)用程序,此應(yīng)用程序包含Pro/TOOLKIT提供的函數(shù),,必須和Pro/TOOLKIT提供的頭文件編譯(Compile)到一起,,所以,必須在Visual C++的菜單“Tools→Options→Directories”中添加如下內(nèi)容 :
( `2 |5 ^, |7 o) d: u( w/ W5 w$ K8 u2 s~\PROTOOLKIT\INCLUDES
" u$ k% |# |" P+ \~\PROTOOLKIT\PROTK_APPLS\INCLUDES/ e; i" W6 {9 k, f
~\PRODEVELOP\INCLUDES
* ]5 U$ ?; h# b6 {/ ^( D2 n7 R. h~\PRODEVELOP\PRODEV_APPLS\INCLUDES
5 B0 [+ D! c) k `! u, u其中,,~表示Pro/ENGINEER的安裝路徑,。& O) |: Z2 X, c5 b" ^7 h* l% f
2 編譯應(yīng)用程序& P% ^$ i f$ H2 O, J# }
編譯(Compile)通過的應(yīng)用程序,還必須在命令提示符下編譯和連接(nmake),,以生成可執(zhí)行的.exe或.dll文件,。4 K9 F$ t$ w( Z0 ~' Y
nmake命令是由第三方軟件(Micosoft Visual C++)提供的。要在命令提示符下使用這個命令,,必須在安裝Visual C++時注冊環(huán)境變量(安裝時會有對話框“設(shè)置環(huán)境變量”提示,,將“注冊環(huán)境變量”選中),或者在Windows的“設(shè)置→控制面板→系統(tǒng)→高級→環(huán)境變量→用戶變量”中,,選取變量名“path”,,在值中添加“ ~:\Microsoft Visual Studio\VC98\bin”,“~”表示Visual C++ 的安裝路徑(適用于 Windows 2000),。而且,,運行“nmake”命令所在的路徑為“~/protoolkit/i486_nt/obj”,此路徑下必須要有一個對應(yīng)于C應(yīng)用程序的make文件,,命令全形為“nmake -f *”,,“*”為對應(yīng)的make文件名。make文件的樣板在“~\proe2000i\protoolkit\i486_nt\obj”下,。
0 ^ ~5 c& A5 q) m3 運行應(yīng)用程序" ^! Y7 u6 ?% S9 n! l9 A/ ?
要在Pro/ENGINEER環(huán)境中運行自己的應(yīng)用程序,,必須在Pro/ENGINEER中對該程序進行注冊,。注冊分為手動注冊和自動注冊兩種,。手動注冊就是在Pro/ENGINEER界面上依次選取“Utilities→Auxiliary Application”對話框,加載該注冊文件,,自動注冊有以下4個步驟,。! I; t, Q2 ~8 @& ?, @; R! j
(1)將注冊文件命名為protk.dat,并放在Pro/ENGINEER的啟動目錄下,。
- K+ I: _# w3 A6 J( F (2)將注冊文件放在Pro/ENGINEER的啟動目錄下,,并在啟動目錄下創(chuàng)建一個config.pro文件,其中設(shè)置“TOOLKIT_REGISTRY_FILE * ”語句即可,,“*” 就是要注冊的注冊文件名,。$ S( [8 u, s" z% n, L
(3)將注冊文件命名為“protk.dat”,并放在路徑“〈Pro/ENGINEER〉/〈MACHINE〉/text/〈LANGUAGE〉”下,,其中〈LANGUAGE〉是運行Pro/ENGINEER時所選的語言類型,。 o/ d. S1 x6 A! g
(4)將注冊文件命名為“protk.dat”,并放在路徑“〈Pro/ENGINEER〉/text”下。
4 I# Y1 _3 O: Q$ @: s& b! V4 A- Y5 q 這樣,,只要運行Pro/ENGINEER就能自動加載該注冊文件,,并運行指定的應(yīng)用程序。注冊文件protk.dat的樣板在“~\proe2000i\protoolkit”下,。7 j) X5 \# n; K2 U0 [! ?
4 Config.pro文件的設(shè)置8 A$ _- k. a6 Z( N
環(huán)境設(shè)置文件的內(nèi)容是以文字形式將選項及參數(shù)值存在名為Config.pro的文件內(nèi),,這些文件均可用一般的文本編輯軟件編輯。
0 w8 j/ m( `$ H% Z4 l$ o; W Config.pro文件可設(shè)置系統(tǒng)的操作環(huán)境,,如工具按鈕設(shè)置,、模型的顯示方式、視角等,。Config.pro文件應(yīng)放在Pro/ENGINEER的啟動目錄下,,當(dāng)啟動Pro/ENGINEER時,系統(tǒng)會自動加載環(huán)境設(shè)置文件Config.pro,。若應(yīng)用程序是一個大量組裝零,、部件的二次開發(fā)程序,下面這個Config.pro將十分有用,。
+ ?1 _0 r- M Y2 _" ^9 D- P6 fBELL NO9 l* k- A- m, w( v/ V* Z% W
DISPLAY SHADE
3 T' L( z1 O$ s* D1 e' q( }2 DDATUM_DISPLAY NO
/ c! Q( t' \/ k! Y6 [8 tDATUM_POINT_DISPLAY NO: s. e( B0 a& W, `/ r
DISPLAY_COORDINATE_SYS NO: W8 l+ \; U5 m$ \" \
AXIS_DISPLAY NO
$ h8 s9 S; b8 HSPIN_CENTER_DISPLAY NO" H7 ^% s# g: ]! v) u$ B
TOOLKIT_REGISTRY_FILE *
d6 ~8 ^' x# l% ?% k$ _5 添加自定義菜單 G) Q1 {% K3 M! d- p
在Pro/ENGINEER的二次開發(fā)中,,添加用戶自定義菜單是最基本、最常用的技術(shù),。9 `. s: Z0 C' }; Q5 L- u
可以在Pro/ENGINEER界面上現(xiàn)有的菜單條和菜單中添加用戶自定義菜單,,如在“文件”等菜單條菜單中添加,也可以在Pro/ENGINEER界面上添加菜單條菜單,,它和“文件”等菜單條菜單處于同等地位,。或者也可以在模式菜單中添加自定義菜單,。
0 U& x5 L# Q3 E { 筆者建議在Pro/ENGINEER界面上添加菜單條菜單,,因為Pro/ENGINEER是一個不斷發(fā)展、不斷更新的軟件,,某個版本下有的菜單條菜單或模式菜單,,在另一個版本下可能沒有,因此,,如果用戶自定義菜單依賴于某個菜單,,很可能在另一個Pro/ENGINEER的版本中不能正常使用。這樣,,只能修改應(yīng)用程序來適應(yīng)這種變化,,軟件的通用性較差。下面這個程序詳細講述如何在Pro/ENGINEER界面上添加用戶自定義菜單條菜單UserMenu以及在菜單條菜單UserMenu中添加按鈕“A”,。
& \5 Z; f A0 e4 a4 Fint user_initialize()
" Y& D2 S/ w' {; q0 a5 x& r8 t{ ProFileName message_file;
/ {5 Y2 h* ~1 k/ xuiCmdCmdId cmd_id;
" [0 Z# m/ g9 s4 c! O+ WProStringToWstring(message_file,, "user_msg.txt") ;
( H/ r7 U5 ]) x* C+ WProMenubarMenuAdd("UserMenu","UserMenu", "Help",, PRO_B_TRUE ,, message_file); //添加用戶自定義菜單條菜單UserMenu并放在菜單條菜單“幫助”之后
: B( a6 T B F0 U7 W& a& iProCmdActionAdd("A", (uiCmdCmdActFn) Action,,uiProe2ndImmediate,,NULL,PRO_B_TRUE,,
, J/ ^9 ?1 S) C7 P( QPRO_B_TRUE,, &cmd_id); //給按鈕A設(shè)定動作Action6 E; B) K8 ?1 O
ProMenubarmenuPushbuttonAdd("UserMenu", "A",, "A",,"Non-mode-specific Pro/TOOLKIT test
3 i- S" e) |5 G1 Z$ v! W: }+ F* Pcommands", NULL ,, PRO_B_TRUE ,, cmd_id ,) i- F% m0 K9 v U3 a8 k7 G
message_file); //在菜單條菜單UserMenu添加按鈕A
# W. W% B& P* g4 ]- v) ]9 Hreturn(0);}
; E6 p% N) R; |其中user_msg.txt文件的內(nèi)容為 :
$ v9 d; d' T6 D/ u! N: \' f2 y UserMenu(換行)UserMenu(換行)#(換行)#(換行)A(換行)A(換行)#(換行)#
+ U0 L/ X: m, vuser_msg.txt文件通常放在“~\text\usascii”下,,它的路徑對應(yīng)于protk.dat注冊文件的TEXT_DIR項,。4 y8 g I( K; e" z- ?( w: `
1 j# \7 G' a7 f6 Q. a Pro/ENGINEER的二次開發(fā)功能十分強大,本文主要描述了Pro/ENGINEER二次開發(fā)的整體過程(編寫C程序→VC++下編譯→命令提示符下編連→Pro/ENGINEER中注冊)以及所遇到的關(guān)鍵性問題,,用戶可在此基礎(chǔ)上在Pro/TOOLKIT二次開發(fā)程序中通過編寫各種功能函數(shù)來實現(xiàn)他的具體要求,。 |
|