注意,将DELAY_START字段内容设为FALSE,这样打开Pro/ENGINEER时使自动注册运行该应用程序。即启动Pro/ENGINEER后,自定义菜单使自动挂接到Pro/ENGINEER菜单条上。不必再手动注册和运行。这样,所创建的“弹簧”菜单便如同Pro/ENGINEER菜单栏中的一项菜单,即当运行Pro/ENGINEER,“弹簧”菜单项将自动连接上去。
4.2 对话框的设计
用户界面对话框(User Interface Dialog Boxes,简称UI对话框)是Pro/TOOLKIT提供的一项交互界面。可以利用UI对话框技术,在Pro/TOOLKIT应用程序中设计出风格与Pro/ENGINEER系统本身具有的对话框相似的人机交互界面。UI对话框的设计思路和方法与AutoCAD的DCL对话框类似。主要由对话框资源文件和相应的控制程序两大部分构成。对话框资源文件的功能相当于AutoCAD的对话框控制语言(DCL),用ASCII码文本格式编写,其内容定义了对话框的组成、外观和属性。控制程序相当于AutoCAD的DCL驱动程序,用C或C++语言编写,用来在Pro/ENGINEER环境装入对话框资源、显示对话框、设置动作和退出对话框等。
下面以圆截面圆柱螺旋压缩弹簧为例介绍说明弹簧对话框的创建全过程。其余弹簧类型见附录I。
4.2.1 编写对话框资源文件
对话框应包含以下内容:弹簧模型图片,弹簧设计各参数(参数要求既有用下拉选择型的,又能供用户自定义的)以及确定和取消按钮。由于输入框与选项菜单在同一个对话框中将会发生冲突,因此本人将其分为两个对话框:一个为参数选择型,另一个为参数输入型。
圆截面圆柱螺旋压缩弹簧的选择型对话框资源文件如下: (Dialog Spring1
(Components !对话框元件声明
(Label Image) (SubLayout Layout1) (Separator Separator1) (PushButton Update1) (PushButton Cancel)
)
(Resources !对话框资源(属性定义)
(Image.Bitmap \(Image.TopOffset 10)
第 23 页 共 72 页
(Image.LeftOffset 4) (Image.RightOffset 2)
(Update1.Label \生成模型(&U)\(Update1.Bitmap \(Update1.TopOffset 4) (Update1.BottomOffset 8) (Update1.LeftOffset 4) (Update1.RightOffset 4)
(Cancel.Label \退出(&E)\(Cancel.Bitmap \(Cancel.TopOffset 4) (Cancel.BottomOffset 8) (Cancel.LeftOffset 4) (Cancel.RightOffset 4) (Separator1.TopOffset 4) (Separator1.BottomOffset 4)
(.Label \弹簧参数化设计\对话框标题 (.StartLocation 5) (.Resizeable 0) (.Layout !对话框元件的布局
(Grid (Rows 1 1 1) (Cols 1)
(Grid (Rows 1) (Cols 1 1)
Image Layout1 )
Separator1
(Grid (Rows 1) (Cols 1 1)
Update1 Cancel ) )
) ) )
第 24 页 共 72 页
(Layout Layout1
(Components
(Label H_Label) (OptionMenu H_Value) (Label D_Label) (OptionMenu D_Value) (Label L_Label) (OptionMenu L_Value) (Label DD_Label) (OptionMenu DD_Value)
(Label Userdefined1_Value) (PushButton Userdefined1) ) (Userdefined1.Label \(Userdefined1.TopOffset 4) (Userdefined1.BottomOffset 8) (Userdefined1.LeftOffset 4) (Userdefined1.RightOffset 4) (H_Label.AttachLeft True) (H_Label.LeftOffset 4) (H_Label.Label \(D_Label.AttachLeft True) (D_Label.LeftOffset 4) (D_Label.Label \(L_Label.AttachLeft True) (L_Label.LeftOffset 4) (L_Label.Label \(DD_Label.AttachLeft True) (DD_Label.LeftOffset 4)
(DD_Label.Label \(Userdefined1_Value.Label \(H_Value.AttachLeft True) (H_Value.TopOffset 4)
第 25 页 共 72 页自定义\长度H\中径D\螺距L\直径d\自定义参数\(Resources
(H_Value.BottomOffset 4) (H_Value.LeftOffset 2) (H_Value.RightOffset 4) (H_Value.Columns 4) (H_Value.Names
\\\\\
\\\\\
(H_Value.Labels
\\\\\\\\\\
(D_Value.AttachLeft True) (D_Value.TopOffset 4) (D_Value.BottomOffset 4) (D_Value.LeftOffset 2) (D_Value.RightOffset 4) (D_Value.Columns 4) (D_Value.Names
\\\\\\\\\\
(D_Value.Labels
\\\\\\\\\\
(L_Value.AttachLeft True) (L_Value.TopOffset 4) (L_Value.BottomOffset 4) (L_Value.LeftOffset 2) (L_Value.RightOffset 4) (L_Value.Columns 4) (L_Value.Names
\\\\\
\\\\\
(L_Value.Labels
\\\\\\\\\\
第 26 页 共 72 页
(DD_Value.AttachLeft True (DD_Value.TopOffset 4) (DD_Value.BottomOffset 4) (DD_Value.LeftOffset 2) (DD_Value.RightOffset 4) (DD_Value.Columns 4) (DD_Value.Names
\\\\\
\\\\\
(DD_Value.Labels
\\\\\
\\\\\
(.Decorated True)
(.Label \设计参数\(.TopOffset 4) (.BottomOffset 2) (.LeftOffset 4) (.RightOffset 4) (.Layout
(Grid (Rows 1 1 1 1 1) (Cols 1 1)
H_Label H_Value D_Label D_Value L_Label L_Value DD_Label DD_Value
Userdefined1_Value Userdefined1 ) ) ) )
第 27 页 共 72 页