|
|
Pro/ENGINEER是美國PTC公司研制的CAD/CAM軟件。Pro/TOOLKIT是PTC提供用于對Pro/ENGINEER進行二次開發的軟件包,Pro/TOOLKIT提供了大量的C語言函數,幫助我們利用C語言編程來增加Pro/ENGINEER的功能。在Pro/ENGINEER的二次開發過程中,有以下幾個問題值得注意(筆者使用的是Pro/ENGINEER 2000i)。1 編寫應用程序$ n, F. R w9 k) V1 I
可在Visual C++環境下編寫Pro/TOOLKIT應用程序,此應用程序包含Pro/TOOLKIT提供的函數,必須和Pro/TOOLKIT提供的頭文件編譯(Compile)到一起,所以,必須在Visual C++的菜單“Tools→Options→Directories”中添加如下內容 :# m% b% k; |" i2 |" z
~\PROTOOLKIT\INCLUDES5 W* A2 ]' q, e
~\PROTOOLKIT\PROTK_APPLS\INCLUDES
! g3 q0 i. O* f+ E~\PRODEVELOP\INCLUDES2 ^% X4 g# E& O8 Q6 d( }+ I O
~\PRODEVELOP\PRODEV_APPLS\INCLUDES
2 o2 d3 {5 i6 m6 M其中,~表示Pro/ENGINEER的安裝路徑。
3 J5 t/ S) t1 v* f" i1 O2 編譯應用程序
) L* `& l# z: f5 w$ A 編譯(Compile)通過的應用程序,還必須在命令提示符下編譯和連接(nmake),以生成可執行的.exe或.dll文件。' ?! M' x) Z& g8 x L
nmake命令是由第三方軟件(Micosoft Visual C++)提供的。要在命令提示符下使用這個命令,必須在安裝Visual C++時注冊環境變量(安裝時會有對話框“設置環境變量”提示,將“注冊環境變量”選中),或者在Windows的“設置→控制面板→系統→高級→環境變量→用戶變量”中,選取變量名“path”,在值中添加“ ~:\Microsoft Visual Studio\VC98\bin”,“~”表示Visual C++ 的安裝路徑(適用于 Windows 2000)。而且,運行“nmake”命令所在的路徑為“~/protoolkit/i486_nt/obj”,此路徑下必須要有一個對應于C應用程序的make文件,命令全形為“nmake -f *”,“*”為對應的make文件名。make文件的樣板在“~\proe2000i\protoolkit\i486_nt\obj”下。4 A$ g; m7 ~! y0 Y
3 運行應用程序
, M- w4 s9 C9 B; E! y2 K [ 要在Pro/ENGINEER環境中運行自己的應用程序,必須在Pro/ENGINEER中對該程序進行注冊。注冊分為手動注冊和自動注冊兩種。手動注冊就是在Pro/ENGINEER界面上依次選取“Utilities→Auxiliary Application”對話框,加載該注冊文件,自動注冊有以下4個步驟。1 j* |1 q: i/ i( p& p
(1)將注冊文件命名為protk.dat,并放在Pro/ENGINEER的啟動目錄下。/ z, c+ r; \$ I" \ b. A/ S3 k* h
(2)將注冊文件放在Pro/ENGINEER的啟動目錄下,并在啟動目錄下創建一個config.pro文件,其中設置“TOOLKIT_REGISTRY_FILE * ”語句即可,“*” 就是要注冊的注冊文件名。
X; p& R( ^; N/ B$ R4 n4 I (3)將注冊文件命名為“protk.dat”,并放在路徑“〈Pro/ENGINEER〉/〈MACHINE〉/text/〈LANGUAGE〉”下,其中〈LANGUAGE〉是運行Pro/ENGINEER時所選的語言類型。4 p% Y8 S- Y, c
(4)將注冊文件命名為“protk.dat”,并放在路徑“〈Pro/ENGINEER〉/text”下。& e- } \1 }! ?% a7 g3 |: r
這樣,只要運行Pro/ENGINEER就能自動加載該注冊文件,并運行指定的應用程序。注冊文件protk.dat的樣板在“~\proe2000i\protoolkit”下。0 b* Q. B0 |8 a( N- a
4 Config.pro文件的設置
, ]' h+ W' F2 v. \- h& @ 環境設置文件的內容是以文字形式將選項及參數值存在名為Config.pro的文件內,這些文件均可用一般的文本編輯軟件編輯。, U+ h0 ^$ Y) w+ F0 f9 M% g
Config.pro文件可設置系統的操作環境,如工具按鈕設置、模型的顯示方式、視角等。Config.pro文件應放在Pro/ENGINEER的啟動目錄下,當啟動Pro/ENGINEER時,系統會自動加載環境設置文件Config.pro。若應用程序是一個大量組裝零、部件的二次開發程序,下面這個Config.pro將十分有用。% ]! V: T6 k6 [& e8 E
BELL NO, S8 |! K/ V# K- R
DISPLAY SHADE
% |" N; R0 K" S! _3 oDATUM_DISPLAY NO$ Z% u: ~3 t( d7 {1 S) d3 I( T
DATUM_POINT_DISPLAY NO
% F, O" f7 O/ t7 ], }3 ^DISPLAY_COORDINATE_SYS NO
" R7 h) k9 R7 g' l$ b' ` w8 ^AXIS_DISPLAY NO
( ]- J/ i |4 Q; R) }SPIN_CENTER_DISPLAY NO3 l8 J3 K' T2 ~! Q. }( `
TOOLKIT_REGISTRY_FILE *
+ J4 @* F% g1 M. Y& a$ j5 添加自定義菜單& H, k* H) R. J* B5 u) z
在Pro/ENGINEER的二次開發中,添加用戶自定義菜單是最基本、最常用的技術。
! E9 g0 f# z6 P) c3 [: y 可以在Pro/ENGINEER界面上現有的菜單條和菜單中添加用戶自定義菜單,如在“文件”等菜單條菜單中添加,也可以在Pro/ENGINEER界面上添加菜單條菜單,它和“文件”等菜單條菜單處于同等地位。或者也可以在模式菜單中添加自定義菜單。- R8 u4 b# W1 f/ S8 M' ^4 J+ M
筆者建議在Pro/ENGINEER界面上添加菜單條菜單,因為Pro/ENGINEER是一個不斷發展、不斷更新的軟件,某個版本下有的菜單條菜單或模式菜單,在另一個版本下可能沒有,因此,如果用戶自定義菜單依賴于某個菜單,很可能在另一個Pro/ENGINEER的版本中不能正常使用。這樣,只能修改應用程序來適應這種變化,軟件的通用性較差。下面這個程序詳細講述如何在Pro/ENGINEER界面上添加用戶自定義菜單條菜單UserMenu以及在菜單條菜單UserMenu中添加按鈕“A”。
: A$ Z6 d2 S0 t+ W' nint user_initialize()
9 O) q7 E" ]& T* c! Q, Z{ ProFileName message_file;
D8 C4 I! w7 V3 C4 d8 J' S5 u/ d3 PuiCmdCmdId cmd_id;
4 j1 N3 S$ _4 {$ IProStringToWstring(message_file, "user_msg.txt") ;8 }) Q: k2 Y8 [& \# h
ProMenubarMenuAdd("UserMenu","UserMenu", "Help", PRO_B_TRUE , message_file); //添加用戶自定義菜單條菜單UserMenu并放在菜單條菜單“幫助”之后# p0 d) [$ x# g$ `6 ~
ProCmdActionAdd("A", (uiCmdCmdActFn) Action,uiProe2ndImmediate,NULL,PRO_B_TRUE,
/ s! g9 V3 t/ C( ^7 t% gPRO_B_TRUE, &cmd_id); //給按鈕A設定動作Action
0 R$ I! @* J% ?6 J k1 ^ProMenubarmenuPushbuttonAdd("UserMenu", "A", "A","Non-mode-specific Pro/TOOLKIT test 6 y D- }1 Y- v0 u2 i
commands", NULL , PRO_B_TRUE , cmd_id ,% i* _, N; I l+ k# T$ J) k) _) f% ^
message_file); //在菜單條菜單UserMenu添加按鈕A
+ y2 M7 p1 j, ]5 V) A- b9 R/ mreturn(0);}
' A$ f" R% x d' D& Z其中user_msg.txt文件的內容為 :
3 a* F3 e v- W+ u UserMenu(換行)UserMenu(換行)#(換行)#(換行)A(換行)A(換行)#(換行)#2 }# y. X! W$ x! \5 I( |
user_msg.txt文件通常放在“~\text\usascii”下,它的路徑對應于protk.dat注冊文件的TEXT_DIR項。: f2 J {$ L6 [: C* m% Q# p
4 ~) L; s+ A, y! ]
Pro/ENGINEER的二次開發功能十分強大,本文主要描述了Pro/ENGINEER二次開發的整體過程(編寫C程序→VC++下編譯→命令提示符下編連→Pro/ENGINEER中注冊)以及所遇到的關鍵性問題,用戶可在此基礎上在Pro/TOOLKIT二次開發程序中通過編寫各種功能函數來實現他的具體要求。 |
|