摘 要:对Pro/Engineer的CAD二次开发技术进行探讨,深入研究Pro/Engineer的几种二次开发工具,并通过对Pro/TOOLKIT二次开发工具包的研究和分析,提出了基于三维模型的用户自定义参数设计,最后利用Pro/TOOLKIT开发模块和Visual C++完成建立齿轮参数化设计。
关键词:二次开发 Pro/TOOLKIT开发工具 参数化设计
一、引言
在CAD技术日益普及的今天,传统的二维CAD软件正逐渐被三维CAD软件所替代。在众多软件中,PTC公司的Pro/Engineer是具有代表性的优秀软件之一。自从面世以来,它以尺寸驱动、基于特征、单一全关联的数据库等优点深受用户好评。企业根据产品对象的不同,在使用CAD软件时也各有侧重。企业要想最大效率的发挥出软件的功效,必须根据企业的产品特征和企业状况对软件进行二次开发。本文列举了在软件Pro/Engineer中常用的二次开发工具与方法,并着重介绍了用Pro/TOOLKIT对Pro/Engineer进行开发时的步骤。最后通过“齿轮快速设计系统”的开发实例进一步说明开发时的技巧。http://www.16sheji8.cn/
二、开发工具
Pro/Engineer为用户提供了丰富的二次开发工具。常用的有Pro/Program、簇表(Family Table)、用户自定义特征(UDF)、J-Link和Pro/Toolkit等。为了防止混淆,以下特别对这几种开发工具进行比较和说明。
1.Pro/Program
Pro/Engineer对每个零件或组件模型都有一个主要的设计步骤和参数列表,那就是Pro/Program。它是零件与组件自动化设计的一种有效工具。设计人员可使用类似BASIC的高级语言,根据需要来编写该模型的Program。包括:控制特征的出现与否、尺寸的大小、零件与组件的出现与否、零件与组件的个数等。然而,Pro/Engineer就可以通过运行该程序来读取此零件或组件,并通过人机交互的方法得到不同的几何形状,以满足产品设计的需要。
2.簇表(Family Table)
簇表可用于管理具有相同或相近结构的零件,特别适用于标准零件的管理。它是通过建立基础零件为父零件,然后在簇表中定义各个控制参数来控制模型的形状及大小。这样,就可通过改变各个参数的值来控制派生的各种子零件。
3.用户自定义特征(UDF)
设计人员在使用Pro/Engineer进行零件设计时,经常会遇到一些重复出现的特征。例如,螺钉的座孔等,因此设计人员就要花费许多时间进行这种重复性的操作。用户自定义特征则能将同一特征用于不同的零件上,或将若干个系统特征融合为一个自定义特征,使用时作为一个全局出现。这样,设计人员就可以建立自己的用户自定义特征库,根据产品特征快速生成几何模型,从而极大地提高了设计人员的工作效率。
4.Pro/TOOLKIT
Pro/TOOLKIT是PTC为Pro/Engineer制定的开发工具包,它提供了应用程序接口(API),使客户或第三方厂商具有扩展Pro/Engineer功能的能力。Pro/TOOLKIT使用面向对象风格C编程,且提供一个庞大、用于底层资源调用的C语言函数和头文件,外部应用程序可借此访问Pro/Engineer的数据库和应用程序。
三、Pro/TOOLKIT的运作方式
Pro/TOOLKIT应用程序代码集成进入Pro/Engineer的标准方法是通过“动态链接库”(Dynamical Linked Libraries, DLLs)完成的。当编译Pro/TOOLKIT应用程序的C代码,并将其链接至Pro/TOOLKIT库文件时,就创建了一个可链接至Pro/Engineer可执行文件的对象库文件,这个可执行文件将在Pro/Engineer启动时被执行。这种方法称为“DLL模式”。
此外,Pro/TOOLKIT还支持第二种方法的集成,即“多进程”(Multiprocess),或称为“衍生模式”(Spawned Mode)。在这种模式下,Pro/TOOLKIT应用程序将被编译和链接,从而形成一个独立的执行文件。这个可执行文件将是Pro/Engineer的衍生,并作为Pro/Engineer工作任务的一个子程序来运行。http://www.16sheji8.cn/
在DLL模式中,Pro/TOOLKIT应用程序与Pro/Engineer之间的信息交换,是通过直接函数调用完成的。而在多进程模式下,内部进程信息系统会传递必要的信息,以确定两进程间的函数及其所需参数来模拟直接函数调用,以实现和DLL模式中相同的效果。
四、创建齿轮参数设计应用程序的基本方法
1.利用VC向导创建齿轮参数设计应用程序
程序设计的主要工作在三个方面:1)编写下拉菜单的(. txt)文件和对话框的(.res)资源文件;2)按Pro/TOOLKIT应用程序Pro/Engineer环境运行的要求设计接口与程序运行结束时的终止程序;3)根据功能需求设计Pro/TOOLKIT应用程序主体部分。
其程序部分的主体结构如下:
int user_initialize( nt argc, char * argv[ ] ) //其功能相当于C语言中的main( )函数
{ //调用函数
… …(该部分是用来初始化Pro/TOOLKIT应用程序且创建图形窗口,这部分包括了应用程序的所有初始化进程)
return(0)
} void user_terminate( )
{ … …(该部分是用来结束Pro/TOOLKIT应用程序)
return;
}func( )
(该部分是主要添加要完成预定功能的一个或多个的C语言代码)
编辑完源代码后要用Visual C++ 6.0进行编译,首先要设置好编译环境:一是设置好包含头文件的路径;二是设置好连接所需库文件的路径。
编译连接成功生成可执行程序中,要把Pro/TOOLKIT应用程序集成到Pro/Engineer系统中,必须进行应用程序的注册,才能运行和生成一个注册文件(* .dat),其中包含的应Pro/Engineer用程序的位置,菜单资源及对话框资源文件的位置,以及该Pro/TOOLKIT的版本信息[2][3]。
2.以开发直齿圆柱齿轮为例来具体论述设计过程
(1)编写齿轮设计的下拉菜单在已有的菜单条中要增加一列“齿轮参数化设计”及下拉菜单。具体有两步:第一步定义按钮命令;第二步是菜单栏中添加该按钮。在程序中加入以下命令:
ProMenubarMenuADD(“UserMenu”,“齿轮参数化设计”,“Utilities”,PRO_B_FALSE,UserMg)http://www.16sheji8.cn/
ProMenubarmenuPushbuttonADD(“UserMenu”,“直齿圆柱齿轮帮助”,NULL,PRO_B_TRUE,cmd_id1,UserMsg)
(2)编写人机交换对话框。利用Pro/TOOLKIT提供的(User Interface Dialog Boxes)对话框技术。其中UI对话框的设计涉及两个方面:一是按界面的布局编写资源文件;二是针对UI对话框的功能编写相应的控制程序。要在C语言程序中进行以下过程:
(a)程序读取对话框资源文件,以便将对话框调入内存;
(b) 为对话框各控件指定行为函数,修改对话框及控件属性;
(c) 显示对话框,接受用户交往;
(d)关闭对话框,释放对话框所占的内存。
其中主要用到以下函数:对话框调入内存函数ProUIDialogCreat( ),对话框各控件指定行为函数ProUIPushbuttonActivateActionset( ),激活对话框函数ProUIDialogActivate( ),关闭对话框函数ProUIDialogDestroy( )。
(3)在零件模式下建立直齿圆柱齿轮的模型,并将各尺寸间的关联输入到Program中的INPUT-END与RELATIONS-ENDRELATIONS之间,这其中找各尺寸的关系很重要,即不要繁琐,也不能过于简单而不能驱动模型。从直齿圆柱齿轮的几何尺寸计算公式中找到了可以驱动该模型的四个参数:齿轮、模数、压力角与齿宽。在Pro/Engineer的Programe中输入:
INPUT
(4)最好在对话框输入参数后就可以生成。
五、结论
本文列举了Pro/Engineer软件常用的二次开发方法和适用场合,并着重介绍了利用Pro/TOOLKIT进行二次开发时的一般步骤。通过“齿轮快速设计系统”的开发实例进一步阐述了在开发过程中应注意的事项。Pro/Engineer是功能强大/体系完备的CAD/CAM软件,通过对其二次开发可以将Pro/Engineer的通用性和专一性完美的结合起来。企业应根据其自身的产品对象、人员素质和开发要求来确定开发工具与开发深度。
参考文献
[1] 林龙震.Pro/TOOLKIT WILDFIRE 2.0插件设计[M].电子工业出版社.2005.1.
[2] 李世国,何建军.基于Pro/E零件模型的参数化设计技术研究[J].机械设计与研究.2002.12.