机械社区

 找回密码
 注册会员

QQ登录

只需一步,快速开始

搜索
查看: 1656|回复: 1

Pro/Engineer用户化菜单设计的技术及实践

[复制链接]
发表于 2008-8-6 14:22:16 | 显示全部楼层 |阅读模式
Pro/Engineer平台的菜单系统十分庞大,层次、结构也相当复杂,如何构建应用软件的菜单以方便、快捷地实现设计意图成为Pro/Engineer平台上进行二次开发的关键技术之一。Pro/Engineer提供了功能强大的二次开发包-Pro/Toolkit。它以C语言为依托,封装了许多针对Pro/Engineer底层资源调用的库函数与头文件,借助第三方的编译集成环境进行调试。Pro/Engineer平台上的菜单开发信息是以菜单资源文件为载体(以.mnu和.aux为后缀)。菜单资源文件有其规范的格式,具体如下:      菜单标识名→菜单标识文本4 j3 O' h  n" L( ~* s/ g- |) ~: t
      #
; V9 c2 c( S  z' Y2 x  R, R5 _% {+ @      #
( J# _# r) W9 m; }! K' f0 {7 X      选项名 [覆盖选项名] →菜单选项显示文本, }* V0 I+ z0 ^; [! L) ~
      (提示信息) →鼠标划过或停留在菜单项时显示的提示文本1 D: ?  o3 _& k" ]0 P3 E0 M! `
      [覆盖提示信息]
' ]' E. v# f' p      选项名 [覆盖选项名]" S- t1 [9 O$ _3 }
      …/ t1 O! X( u: Q- T; n$ D
         
8 B5 A2 K" J1 R+ c, z; Y      所有菜单资源文件均需菜单载入、菜单项定义、完成动作定义三个基本流程,才能在Pro/Engineer菜单系统中注册,然后通过库函数进行激活等相应操作。菜单项可相互激活,由主及次构建成所需层次式菜单系统。上述菜单开发机制能快速定义出菜单系统的架构,然后根据实际需要将[覆盖选项名]和[覆盖提示信息]加上,以替换原选项名和原提示信息,十分灵活地实现设计意图,而程序源代码无需修改,极大地提高了开发效率。
& r' y( w* j' F     
( w4 d' p8 x8 N- l8 C$ r, ~7 l 一、Pro/Engineer菜单分类
+ u# Q1 l( h& s6 Q          2 }. }: N* Y+ G* E. D* f# v
    依据新建菜单与Pro/Engineer原始菜单的相互关系,菜单可分为如下两大类:" G7 U2 U" |6 H) N$ g0 I
        5 e- x+ F( }* {( g/ V
    主菜单:完全独立于原有菜单,层次结构完备,对应于后缀名.mnu的菜单资源文件,用以构建新的应用系统。
, o8 |+ x# y& O4 I1 [  |& @& @9 C4 ^# B        * w& I3 Q. A1 P. W) E
    辅菜单:对Pro/Engineer原有菜单项的增加和修改,依托于原有的菜单体系,对应于后缀名为.aux的菜单资源文件,是对Pro/Engineer原有功能的补充和修改。( j- ^! l4 V5 Y4 _& l& K* K; c
      
% I6 S; L. {# D    以对鼠标点击动作的不同响应和外观差异,菜单又可如下细分:
) J3 O7 X9 J  S        6 L' A  H/ l0 {' G# w7 Z/ s2 s
    强制菜单:该菜单弹出后,必须选定其中某一菜单项,否则无法击活屏幕上其它菜单栏中的任一菜单项。其目的在于减少误操作的可能性,保证设计流程的连续性和正确性,广泛应用于设计过程中重要参数和型号的选择等必不可少的步骤。9 @8 C/ \. S* V9 [' C+ v" e, U7 |
        
0 j: ~8 S( x' s4 B4 ]' G, W( Y    自由菜单:此类菜单弹出后,如果在未点击其上菜单项的情况下,击活了屏幕上另外的菜单,该自由菜单消失,软件按另外菜单的定义进行响应。其目的在于方便设计过程中一次要信息的修改和重定义,以体现设计师的突发灵感。6 Y: W6 @! t# {( U/ r7 U+ {. R
        
9 e# x8 k; }5 g# _6 f$ c    变量菜单:设计过程中常常涉及到一些全局性的参数或变量设定,对于这一类设置有其专用的菜单类别。这类变量菜单均带有标识框以显示参数的设定,常用于显示的控制和字体的指定等设计环境的选择。
9 y- X) s! Z" P+ h' F/ O        
  ?1 I) N; C7 n$ C    复选菜单:赋值菜单仅返回一个值,而复选菜单可返回多个值,且不同类数值的数值项在菜单外观上有区别,不易混淆。其目的在于提供一种参数类型多,但同一类参数可选项少的设计表达手段,是复杂设计过程中必不可少的技术之一。2 A& x6 u1 e$ E# M8 ?4 s
        - r) ]- O1 }8 j1 f& r( r. v( E6 S9 s
    赋值菜单:此类菜单对鼠标点击的响应是数值的返回,而非函数的调用。它对应于产品设计中的参数和类型选择,其菜单项的显示文本即为返回值或可选择类型,在标准化零部件的设计过程中频繁出现。
/ [2 N* ~' C6 g; o2 T. |2 Z      & s* ?9 }5 Q. i* K5 B
    菜单上的菜单项,在特定的领域或设计流程中,常出现相互矛盾的情形,Pro/Engineer通过设定菜单项禁选属性来处理这类异常,并灰显该菜单项,以避免设计过程的混乱,提高系统的健壮性。而且因划分标准不同,应用软件的某一菜单可同时属于多类菜单。7 k! t' ~" `5 O5 B: S( ]
      
! t& q. b* B9 b( G  ]二、菜单技术实践
" i4 u5 J) _. Z* x        4 u% y, r: l8 [8 o2 T
    笔者开发的齿轮设计系统是Pro/Engineer(V19.0)用户化设计的典型应用,本文以此为例对上述菜单技术进行详细说明,下图为该系统的部分菜单示例:
( `5 |8 n6 d. M      ' ?; X1 a% L: ], S
    菜单①是Pro/Engineer菜单系统中的主控菜单,其上增加的Gear Design ! Y- y, K. O  z7 y
      
% _4 [) B3 U! z+ U    System菜单项是对主控菜单的自定义补充,点击该项即进入用户开发的齿轮设计系统,之所以选用辅菜单方式在主控菜单上增加菜单项,其目的是使用户可方便地切换于开发平台和应用系统之间,提高设计自由度。6 X8 \" q1 P. \4 Z- J; C7 [; Y. O
      , e) N( i/ p! o8 Y4 V+ H* P
    菜单②是齿轮设计系统的主控菜单,整个设计周期中均可见。菜单项的排列参照齿轮设计的一般流程,方便用户操作。此菜单完全独立于原有菜单体系,为用户新建菜单。( Q4 K5 `0 T. r
      : d8 D7 _* I" g) @
    菜单③是参数选择(Parameter Choice)的主控菜单,在设计系统中属二级菜单,也是对②菜单上Parameter
% K/ w0 _6 [6 y3 R4 L3 I2 Z      + E4 I; F6 z# G# s
    Choice菜单项的响应。菜单③的菜单项列举了齿轮设计过程中涉及的重要参数,并注明了常用的英文简明表达,以贴近中国人的设计习惯。* {- n8 c3 _/ y+ p
      0 V2 k; K- b1 o# _
    菜单④是变量菜单的典型应用,设计要求的千差万别,令一般菜单难以全面描述,而变量菜单可使用户在众多可能项中选取实际的已知项,拓广了设计系统的应用范围,也增强了设计流程的智能性。菜单项旁的标识框说明了已知条件的实际构成状况,方便了用户的复查。
$ N; q1 j# i" D* f( X/ V, g/ g8 F      
% ?- ~* E! \% a    菜单⑤是菜单③的下级菜单,用以设定齿宽系数。其强制性保证了设计的完整。菜单⑤菜单项的设置综合考虑了硬、软两种齿面条件下齿轮的对称、非对称和悬臂六种状态,充分体现了复选菜单的灵活性。2 A9 F( s) v! T2 z. G; a
      8 X3 F1 n6 \% V* }7 ]  j0 ~
    菜单⑥是典型的赋值菜单,在本例中用于齿轮精度等级的选择,并通过菜单提示列出各精度等级相应的适用范围和加工要求,以方便设计、为增强设计的灵活性,菜单⑥被定义为自由菜单。下附菜单⑥的菜单资源文件。
5 x6 {8 l5 T4 b9 [9 Z; mPRECISION#LEVEL 7 K8 j; P: \  H
#3 R: o$ F" m# o. P3 L1 s5 G4 [
#
7 l7 {3 ]. S2 T' l2 g; j! Q-GRADE#2 ( z+ r) y2 B  \# H
GEAR USED FOR CHECK.HIGH SPEED AND HEAVY LOAD. ( z1 H: S2 G! U: O
#
  j; h9 H9 a! ?$ ~! S! _4 J& Z
' P5 h+ y' b" m( \-GRADE#12
( ?1 ]% G6 q' ~1 h  r; ZGEAR USED FOR LOW SPEED.IT’S AN UNIMPORTANT.
4 z; F; m5 R3 w4 B. z* l#   D/ w6 f$ Y; n( ^4 ~  i) j6 X
QUIT + k! G9 b% ~. L* @5 U+ J. X  E$ S
QUIT THE VALUE MENU # g: ^! Z% g. K
#
回复

使用道具 举报

发表于 2010-4-21 13:27:04 | 显示全部楼层
鼠标划过或停留在菜单项时显示的提示文本9 R4 D7 x& x0 D0 h: \
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

小黑屋|手机版|Archiver|机械社区 ( 京ICP备10217105号-1,京ICP证050210号,浙公网安备33038202004372号 )

GMT+8, 2024-11-24 12:45 , Processed in 0.052090 second(s), 15 queries , Gzip On.

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表