|
Pro/Engineer平台的菜单系统十分庞大,层次、结构也相当复杂,如何构建应用软件的菜单以方便、快捷地实现设计意图成为Pro/Engineer平台上进行二次开发的关键技术之一。Pro/Engineer提供了功能强大的二次开发包-Pro/Toolkit。它以C语言为依托,封装了许多针对Pro/Engineer底层资源调用的库函数与头文件,借助第三方的编译集成环境进行调试。Pro/Engineer平台上的菜单开发信息是以菜单资源文件为载体(以.mnu和.aux为后缀)。菜单资源文件有其规范的格式,具体如下: 菜单标识名→菜单标识文本
6 z$ C7 a0 h9 U; H' N0 N j" ` #! ?) h) k7 V8 I. T
#
: t- o r( `) U( o% U0 y$ j2 M9 v7 x0 [ 选项名 [覆盖选项名] →菜单选项显示文本
. O/ B9 z7 m* W+ s# j, }2 T7 A0 u, S (提示信息) →鼠标划过或停留在菜单项时显示的提示文本
\( ?0 e# e0 w8 Q7 M [覆盖提示信息]0 s5 ]' H& X$ E) x0 p: Z
选项名 [覆盖选项名]
( T9 a& F7 L; N9 D( @ …. A6 f8 y: e, m) D6 G7 R* F7 C0 J
! w1 q: P5 m' v9 ?( D7 X2 f
所有菜单资源文件均需菜单载入、菜单项定义、完成动作定义三个基本流程,才能在Pro/Engineer菜单系统中注册,然后通过库函数进行激活等相应操作。菜单项可相互激活,由主及次构建成所需层次式菜单系统。上述菜单开发机制能快速定义出菜单系统的架构,然后根据实际需要将[覆盖选项名]和[覆盖提示信息]加上,以替换原选项名和原提示信息,十分灵活地实现设计意图,而程序源代码无需修改,极大地提高了开发效率。1 u" k- B8 V* l$ F7 \( T5 _$ K; ]
% k5 j( r7 \7 u0 n+ P% {9 I
一、Pro/Engineer菜单分类
% Y4 x9 y+ x# M8 Q, j
2 X& ~; [/ r: `' a 依据新建菜单与Pro/Engineer原始菜单的相互关系,菜单可分为如下两大类:: @$ P+ \' c: h8 Q! q4 j
( ~6 M* w0 R% m& @ r4 G# D: I* r8 [4 D
主菜单:完全独立于原有菜单,层次结构完备,对应于后缀名.mnu的菜单资源文件,用以构建新的应用系统。$ d# T7 H; y" G) T$ k
5 `9 Y3 o6 Q" \, q 辅菜单:对Pro/Engineer原有菜单项的增加和修改,依托于原有的菜单体系,对应于后缀名为.aux的菜单资源文件,是对Pro/Engineer原有功能的补充和修改。
+ r5 m9 k- S9 R0 e1 a 8 q/ X. Y, \: b; z
以对鼠标点击动作的不同响应和外观差异,菜单又可如下细分:
1 O! `; ?2 ?! p9 Y , ~+ H: k1 j+ Q1 R6 |% q
强制菜单:该菜单弹出后,必须选定其中某一菜单项,否则无法击活屏幕上其它菜单栏中的任一菜单项。其目的在于减少误操作的可能性,保证设计流程的连续性和正确性,广泛应用于设计过程中重要参数和型号的选择等必不可少的步骤。
+ s5 n$ T% r: E " ^! D8 Q ~- z: a
自由菜单:此类菜单弹出后,如果在未点击其上菜单项的情况下,击活了屏幕上另外的菜单,该自由菜单消失,软件按另外菜单的定义进行响应。其目的在于方便设计过程中一次要信息的修改和重定义,以体现设计师的突发灵感。
" ~; G1 Q8 t$ D5 k& W
0 i. M g8 T/ z+ ], x1 x t 变量菜单:设计过程中常常涉及到一些全局性的参数或变量设定,对于这一类设置有其专用的菜单类别。这类变量菜单均带有标识框以显示参数的设定,常用于显示的控制和字体的指定等设计环境的选择。
% w' Q/ v; w! F" H" r1 h$ g+ I$ v6 }6 \
, Q* n1 n: s: ]: y 复选菜单:赋值菜单仅返回一个值,而复选菜单可返回多个值,且不同类数值的数值项在菜单外观上有区别,不易混淆。其目的在于提供一种参数类型多,但同一类参数可选项少的设计表达手段,是复杂设计过程中必不可少的技术之一。* I$ @2 x4 @& G$ u0 H1 g+ s2 A# b
+ J, j f5 ?& v 赋值菜单:此类菜单对鼠标点击的响应是数值的返回,而非函数的调用。它对应于产品设计中的参数和类型选择,其菜单项的显示文本即为返回值或可选择类型,在标准化零部件的设计过程中频繁出现。
1 {0 h) M+ | { : }" T2 o0 G# G \# s: ]/ w
菜单上的菜单项,在特定的领域或设计流程中,常出现相互矛盾的情形,Pro/Engineer通过设定菜单项禁选属性来处理这类异常,并灰显该菜单项,以避免设计过程的混乱,提高系统的健壮性。而且因划分标准不同,应用软件的某一菜单可同时属于多类菜单。% M0 s5 h" e/ g6 W
$ u5 e) `; M/ F2 [; T
二、菜单技术实践
% i, T6 E0 _* q& V7 S' a
# A7 P1 b3 X* F! S e 笔者开发的齿轮设计系统是Pro/Engineer(V19.0)用户化设计的典型应用,本文以此为例对上述菜单技术进行详细说明,下图为该系统的部分菜单示例:9 v) ]4 _3 |) x
, x' n4 A; i7 E& c1 O+ X 菜单①是Pro/Engineer菜单系统中的主控菜单,其上增加的Gear Design # {/ t5 P8 G" Z, o/ j5 a# [& C2 \
' |/ q2 i' W' b, ]! b
System菜单项是对主控菜单的自定义补充,点击该项即进入用户开发的齿轮设计系统,之所以选用辅菜单方式在主控菜单上增加菜单项,其目的是使用户可方便地切换于开发平台和应用系统之间,提高设计自由度。
6 F" s/ I8 F! S" y
8 Q. W# J+ N2 R3 T 菜单②是齿轮设计系统的主控菜单,整个设计周期中均可见。菜单项的排列参照齿轮设计的一般流程,方便用户操作。此菜单完全独立于原有菜单体系,为用户新建菜单。( K4 F0 g. S' h; `7 l% G$ x
; K N/ ^) e2 D8 G7 {+ W# S
菜单③是参数选择(Parameter Choice)的主控菜单,在设计系统中属二级菜单,也是对②菜单上Parameter
3 @( o4 d4 X# S$ `1 H+ ~+ a: {: ?
: q# Y3 v) M) L* V' A$ Y Choice菜单项的响应。菜单③的菜单项列举了齿轮设计过程中涉及的重要参数,并注明了常用的英文简明表达,以贴近中国人的设计习惯。
& e. Y% [: I! ]) ~' Q A4 W
0 O& e; l5 Y. ] 菜单④是变量菜单的典型应用,设计要求的千差万别,令一般菜单难以全面描述,而变量菜单可使用户在众多可能项中选取实际的已知项,拓广了设计系统的应用范围,也增强了设计流程的智能性。菜单项旁的标识框说明了已知条件的实际构成状况,方便了用户的复查。
# V/ T; m9 ~7 B& e * b; i# W1 {% L: s
菜单⑤是菜单③的下级菜单,用以设定齿宽系数。其强制性保证了设计的完整。菜单⑤菜单项的设置综合考虑了硬、软两种齿面条件下齿轮的对称、非对称和悬臂六种状态,充分体现了复选菜单的灵活性。
/ W, Y i) c! N5 }4 s8 a
$ I: _, Z$ v% G2 [: l& @( d 菜单⑥是典型的赋值菜单,在本例中用于齿轮精度等级的选择,并通过菜单提示列出各精度等级相应的适用范围和加工要求,以方便设计、为增强设计的灵活性,菜单⑥被定义为自由菜单。下附菜单⑥的菜单资源文件。
" w5 I- m/ A6 _" r2 KPRECISION#LEVEL ; V3 }) L! b- j
#* S4 D# [, N6 {6 N# L( k0 `
#2 w5 c% W/ x N8 E% |
-GRADE#2
8 u6 o' p1 M, ] k/ p5 ~GEAR USED FOR CHECK.HIGH SPEED AND HEAVY LOAD.
/ e8 {- k3 v ]5 H! J- W) G" F6 g# 1 e& n8 s6 X& p/ k0 P1 ~0 d
… 0 q3 u/ S% c, @% e% M8 w; M
-GRADE#12
" P2 O S* C$ G" ]: Z3 R/ g! PGEAR USED FOR LOW SPEED.IT’S AN UNIMPORTANT.
+ K4 H% u) ?8 ^+ i4 S( }( h#
" Q/ {/ O- v l( HQUIT
4 C8 ^$ R5 g( n4 a% fQUIT THE VALUE MENU ! W8 k2 K8 ~& @) \
# |
|