|
Pro/Engineer平臺(tái)的菜單系統(tǒng)十分龐大,,層次,、結(jié)構(gòu)也相當(dāng)復(fù)雜,,如何構(gòu)建應(yīng)用軟件的菜單以方便,、快捷地實(shí)現(xiàn)設(shè)計(jì)意圖成為Pro/Engineer平臺(tái)上進(jìn)行二次開(kāi)發(fā)的關(guān)鍵技術(shù)之一,。Pro/Engineer提供了功能強(qiáng)大的二次開(kāi)發(fā)包-Pro/Toolkit,。它以C語(yǔ)言為依托,,封裝了許多針對(duì)Pro/Engineer底層資源調(diào)用的庫(kù)函數(shù)與頭文件,,借助第三方的編譯集成環(huán)境進(jìn)行調(diào)試。Pro/Engineer平臺(tái)上的菜單開(kāi)發(fā)信息是以菜單資源文件為載體(以.mnu和.aux為后綴),。菜單資源文件有其規(guī)范的格式,,具體如下: 菜單標(biāo)識(shí)名→菜單標(biāo)識(shí)文本* L9 b1 y( b0 k; R5 l1 k
#/ Y( d0 a$ {, O* n
#" ~& l, {* x2 o- V8 P
選項(xiàng)名 [覆蓋選項(xiàng)名] →菜單選項(xiàng)顯示文本3 a, I5 y5 X' r- I: h7 B
(提示信息) →鼠標(biāo)劃過(guò)或停留在菜單項(xiàng)時(shí)顯示的提示文本$ d7 ]) `- |9 T8 |# c1 D6 @
[覆蓋提示信息]. l! d5 I2 V- z1 Z
選項(xiàng)名 [覆蓋選項(xiàng)名]1 f: }3 Q& H) t8 f: }# c
…
2 ^, h! ^3 f+ K 3 ]( Z& O n; [! T; z
所有菜單資源文件均需菜單載入、菜單項(xiàng)定義,、完成動(dòng)作定義三個(gè)基本流程,,才能在Pro/Engineer菜單系統(tǒng)中注冊(cè),然后通過(guò)庫(kù)函數(shù)進(jìn)行激活等相應(yīng)操作,。菜單項(xiàng)可相互激活,,由主及次構(gòu)建成所需層次式菜單系統(tǒng)。上述菜單開(kāi)發(fā)機(jī)制能快速定義出菜單系統(tǒng)的架構(gòu),,然后根據(jù)實(shí)際需要將[覆蓋選項(xiàng)名]和[覆蓋提示信息]加上,,以替換原選項(xiàng)名和原提示信息,十分靈活地實(shí)現(xiàn)設(shè)計(jì)意圖,而程序源代碼無(wú)需修改,,極大地提高了開(kāi)發(fā)效率,。
/ e3 A, q1 ^9 C7 i# U
" D9 ?: S; `* ~2 a2 p, ? 一、Pro/Engineer菜單分類& u. L9 x9 B% o2 R$ D- q
. g1 L4 E M t( p- k8 n& Z
依據(jù)新建菜單與Pro/Engineer原始菜單的相互關(guān)系,,菜單可分為如下兩大類:( I+ g% R4 i* z. F- w
" |5 ?; ~- q" o" J
主菜單:完全獨(dú)立于原有菜單,,層次結(jié)構(gòu)完備,對(duì)應(yīng)于后綴名.mnu的菜單資源文件,,用以構(gòu)建新的應(yīng)用系統(tǒng),。& y7 h+ S* r8 q5 z
8 R6 u5 M4 @! M. S# |
輔菜單:對(duì)Pro/Engineer原有菜單項(xiàng)的增加和修改,依托于原有的菜單體系,,對(duì)應(yīng)于后綴名為.aux的菜單資源文件,,是對(duì)Pro/Engineer原有功能的補(bǔ)充和修改。, |$ c+ f) f" i* o+ X. ]( d
+ n# b: M! x: `7 } H F
以對(duì)鼠標(biāo)點(diǎn)擊動(dòng)作的不同響應(yīng)和外觀差異,,菜單又可如下細(xì)分:7 O6 t) ?5 }( M4 B) E% h8 M
0 P' S2 Q. u) s; T# i) x# } 強(qiáng)制菜單:該菜單彈出后,,必須選定其中某一菜單項(xiàng),否則無(wú)法擊活屏幕上其它菜單欄中的任一菜單項(xiàng),。其目的在于減少誤操作的可能性,,保證設(shè)計(jì)流程的連續(xù)性和正確性,廣泛應(yīng)用于設(shè)計(jì)過(guò)程中重要參數(shù)和型號(hào)的選擇等必不可少的步驟,。
) H% S) |: n+ e6 x
! F4 K' {8 s+ z) ] 自由菜單:此類菜單彈出后,,如果在未點(diǎn)擊其上菜單項(xiàng)的情況下,擊活了屏幕上另外的菜單,,該自由菜單消失,軟件按另外菜單的定義進(jìn)行響應(yīng),。其目的在于方便設(shè)計(jì)過(guò)程中一次要信息的修改和重定義,,以體現(xiàn)設(shè)計(jì)師的突發(fā)靈感。/ Z2 J# H. I$ P
( H# v) B2 Z1 E5 }; ]% N1 h& [ 變量菜單:設(shè)計(jì)過(guò)程中常常涉及到一些全局性的參數(shù)或變量設(shè)定,,對(duì)于這一類設(shè)置有其專用的菜單類別,。這類變量菜單均帶有標(biāo)識(shí)框以顯示參數(shù)的設(shè)定,常用于顯示的控制和字體的指定等設(shè)計(jì)環(huán)境的選擇,。
$ Q5 {) f2 o2 s- }; j" o- i. D; U$ q
! O# x- S; W" n0 l# F 復(fù)選菜單:賦值菜單僅返回一個(gè)值,,而復(fù)選菜單可返回多個(gè)值,且不同類數(shù)值的數(shù)值項(xiàng)在菜單外觀上有區(qū)別,,不易混淆,。其目的在于提供一種參數(shù)類型多,但同一類參數(shù)可選項(xiàng)少的設(shè)計(jì)表達(dá)手段,,是復(fù)雜設(shè)計(jì)過(guò)程中必不可少的技術(shù)之一,。% L* D) p0 d1 X S$ M" e( B c' B2 W
$ h3 t. |5 g& o7 e 賦值菜單:此類菜單對(duì)鼠標(biāo)點(diǎn)擊的響應(yīng)是數(shù)值的返回,而非函數(shù)的調(diào)用。它對(duì)應(yīng)于產(chǎn)品設(shè)計(jì)中的參數(shù)和類型選擇,,其菜單項(xiàng)的顯示文本即為返回值或可選擇類型,,在標(biāo)準(zhǔn)化零部件的設(shè)計(jì)過(guò)程中頻繁出現(xiàn)。- [2 g# H+ f' y" u2 l9 v
% P" q5 \: w/ X$ O) R 菜單上的菜單項(xiàng),,在特定的領(lǐng)域或設(shè)計(jì)流程中,,常出現(xiàn)相互矛盾的情形,Pro/Engineer通過(guò)設(shè)定菜單項(xiàng)禁選屬性來(lái)處理這類異常,,并灰顯該菜單項(xiàng),,以避免設(shè)計(jì)過(guò)程的混亂,提高系統(tǒng)的健壯性,。而且因劃分標(biāo)準(zhǔn)不同,,應(yīng)用軟件的某一菜單可同時(shí)屬于多類菜單。
: G1 q! w6 L2 d* c* p6 H; | ! K, }% N- z8 l+ N" O. j
二,、菜單技術(shù)實(shí)踐
/ Q% h# t$ T2 m/ V5 ~% o ) o! O% I/ D, F c/ c
筆者開(kāi)發(fā)的齒輪設(shè)計(jì)系統(tǒng)是Pro/Engineer(V19.0)用戶化設(shè)計(jì)的典型應(yīng)用,,本文以此為例對(duì)上述菜單技術(shù)進(jìn)行詳細(xì)說(shuō)明,下圖為該系統(tǒng)的部分菜單示例:
, t5 `: B; i' S+ S1 X
$ x6 Y& w8 d U: T" h% ^" R6 V 菜單①是Pro/Engineer菜單系統(tǒng)中的主控菜單,,其上增加的Gear Design
) b# U$ _; A3 o4 U
' J2 p/ n+ L/ h: X- m System菜單項(xiàng)是對(duì)主控菜單的自定義補(bǔ)充,,點(diǎn)擊該項(xiàng)即進(jìn)入用戶開(kāi)發(fā)的齒輪設(shè)計(jì)系統(tǒng),之所以選用輔菜單方式在主控菜單上增加菜單項(xiàng),,其目的是使用戶可方便地切換于開(kāi)發(fā)平臺(tái)和應(yīng)用系統(tǒng)之間,,提高設(shè)計(jì)自由度。
. D. t5 U; l- k1 |* c. c
" [5 Q4 l6 z( N2 m 菜單②是齒輪設(shè)計(jì)系統(tǒng)的主控菜單,,整個(gè)設(shè)計(jì)周期中均可見(jiàn),。菜單項(xiàng)的排列參照齒輪設(shè)計(jì)的一般流程,方便用戶操作,。此菜單完全獨(dú)立于原有菜單體系,,為用戶新建菜單。8 u4 c; n' l9 k6 }; |) s& _3 Q9 Q9 }$ Q9 S
; L' R5 H7 k, i8 d 菜單③是參數(shù)選擇(Parameter Choice)的主控菜單,,在設(shè)計(jì)系統(tǒng)中屬二級(jí)菜單,,也是對(duì)②菜單上Parameter
1 Z7 H' V: f: J4 d8 x* N2 t! Y + F1 Z# G4 l+ v- W i/ s3 S
Choice菜單項(xiàng)的響應(yīng)。菜單③的菜單項(xiàng)列舉了齒輪設(shè)計(jì)過(guò)程中涉及的重要參數(shù),,并注明了常用的英文簡(jiǎn)明表達(dá),,以貼近中國(guó)人的設(shè)計(jì)習(xí)慣。1 P. `2 g5 ]) m. l7 s% s
, n9 ]( B% I, K( E 菜單④是變量菜單的典型應(yīng)用,,設(shè)計(jì)要求的千差萬(wàn)別,,令一般菜單難以全面描述,而變量菜單可使用戶在眾多可能項(xiàng)中選取實(shí)際的已知項(xiàng),,拓廣了設(shè)計(jì)系統(tǒng)的應(yīng)用范圍,,也增強(qiáng)了設(shè)計(jì)流程的智能性,。菜單項(xiàng)旁的標(biāo)識(shí)框說(shuō)明了已知條件的實(shí)際構(gòu)成狀況,方便了用戶的復(fù)查,。
# y( I; C1 n" L3 E' c / @) N% I: G4 o0 m9 r. z' ~! {
菜單⑤是菜單③的下級(jí)菜單,,用以設(shè)定齒寬系數(shù)。其強(qiáng)制性保證了設(shè)計(jì)的完整,。菜單⑤菜單項(xiàng)的設(shè)置綜合考慮了硬,、軟兩種齒面條件下齒輪的對(duì)稱、非對(duì)稱和懸臂六種狀態(tài),,充分體現(xiàn)了復(fù)選菜單的靈活性,。
/ b9 T/ s/ g& C0 `% f/ S3 N, e& H
6 r$ {( {3 R, @9 Q1 _ 菜單⑥是典型的賦值菜單,在本例中用于齒輪精度等級(jí)的選擇,,并通過(guò)菜單提示列出各精度等級(jí)相應(yīng)的適用范圍和加工要求,,以方便設(shè)計(jì)、為增強(qiáng)設(shè)計(jì)的靈活性,,菜單⑥被定義為自由菜單,。下附菜單⑥的菜單資源文件。* V5 E9 k' U; G& w5 Q. f% ~
PRECISION#LEVEL
) v* p) H3 p: E#- ^- @5 v- D& b& f
#: w5 I8 g8 w3 f
-GRADE#2
4 |1 E: {% Z2 q% w* @GEAR USED FOR CHECK.HIGH SPEED AND HEAVY LOAD.
6 ]: a% ?3 r% }; E4 I/ E# 9 f4 b( w- `, D/ q
…
, {" B1 f9 E1 O# m-GRADE#12
8 B' O! @. m/ d4 u% O' |! u' qGEAR USED FOR LOW SPEED.IT’S AN UNIMPORTANT. # ~7 K9 Y) e+ `& b, r8 m. Z
#
! m8 V0 _1 a$ B" P- O( A- Z- n" D) {QUIT
4 g! T! k. O% _- c6 R7 GQUIT THE VALUE MENU # V Y8 x* v% H% t ^3 `6 I E
# |
|