您的位置:网站首页 > Proe教程

ProE二次开发菜单技术

时间:2012-04-06 09:31:43 来源:未知

一、概述
Pro/Engineer作为一个高端、全方位的三维产品设计开发软件,具有尺寸驱动、基于特征及单一数据库的特点。强大的功能使其日益成为国内最受欢迎的3D CAD/CAM系统。 Pro/Toolkit是PTC公司针对Pro/Engineer软件提供给用户的二次开发模块。通过调用该模块中的C语言函数,用户可以方便地访问Pro/Engineer的数据库以及内部应用程序,对Pro/E软件的现有功能进行扩展和定制。

由于Pro/Engineer的命令都是通过菜单或一些控件按钮执行的,在对 Pro/Engineer进行二次开发时,不可避免的需要使用其菜单及用户界面技术,同时使用好这些技术会使编写的软件操作起来更加方便,界面更加友好。

二、菜单技术
Pro/Engineeg的菜单系统由2种不同类型的菜单组成,1种是与具体模式如Part,Assembly等相关的模式菜单,如图1。另1种是处于Pro/Engineer界面上方的如 File、 Edit 菜单,相对于模式菜单,笔者姑且将其称为全局菜单。虽然都属于Pro/Engineer的菜单,但这2种菜单所使用的文件与函数却有根本的差异。

 


 

 

图1 Proe管道模式菜单

1.模式菜单
加载模式菜单需要编写菜单文件,模式菜单的菜单文件分为完整菜单文件(以. mnu 为后缀名)和辅助菜单文件(以. aux为后缀名) 。完整菜单是指可独立于Pro/Engineer原有菜单并且具有完整结构的菜单。辅助菜单是向Pro/Engineer原有的菜单中添加菜单按钮,是对Pro/Engineer原有菜单的补充。无论是完整菜单还是辅助菜单都需要编写菜单文件,而且这两种菜单文件的语法结构是相同的。在开发时一般将编写的菜单文件存放在注册文件关键字text_dir所定义的目录下的textmenus文件夹中.

由于模式菜单的操作不够人性化繁琐等缺点,PTC公司也逐渐消灭模式菜单取而代之的事UI对话框,所以本文对模式菜单就不做过多的介绍。

2.全局菜单
Pro/Engineer的全局菜单的菜单条(menu Bar)包含有很多菜单(menu bar menu)这些菜单又是由按钮或子菜单组成,如图2。所以,我们可以向菜单栏中添加菜单,也可以向菜单中添加按钮或子菜单。

 


 

 

图2  本人开发的菜单

2.1 向菜单(menu bar menu)中添加按钮
向菜单中添加按钮,在应用程序中需要做如下2步:

a.按钮定义命令操作,这些命令即在我们通常所说的回调函数中进行定义。

b.向菜单中添加此按钮。按钮与命令的绑定是通过命令标识符(command id)实现的。

在定义命令的回调函数时需要调用 Pro/Toolkit的函数 ProCmdActionAdd (),该函数返回输出一个类型为uiCmdCmdId的命令标识符,在向菜单中添加按钮时, 例如添加一个PushButton,就需要调用ProMenubarmenuPushbuttonAdd( )函数,而这时就要将上一步得到的命令标识符作为参数输入到函数中。

2.2向菜单栏中添加菜单及向菜单中添加子菜单

向菜单栏中添加菜单以及向菜单中添加子菜单都同向菜单中添加按钮相似,在调用相应的函数中都需要输入类型为 ProMenuItemName的参数,这些参数主要用来确定父菜单的名称,添加的菜单或按钮的名称或与其相临的菜单或按钮的名称。这些参数的确定可通过查找Pro/Engineer的轨迹文件(Trail File)得到。