Pro/ENGINEER是美国参数化公司PTC(Parametric Technology Corporation)于1989年开发出的三维系统,在我国的机械、电子、家电、塑料模具等行业取得了广泛的应用。本文探讨的是Pro/E二次开发技术在装配干涉检查中的应用方面的问题。
1 Pro/ENGINEER二次开发方法的研究
1.1 Pro/ENGINEER的二次开发工具Pro/TOOLKIT简介
Pro/ENGINEER同时也为用户提供了多种二次开发工具,其中Pro/TOOLKIT是PTC公司自己研发的功能强大的二次开发工具,它提供了应用程序接口(API),使客户或第三方厂商具有扩展Pro/ENGINEER功能的能力。Pro/TOOLKIT使用面向对象风格的C语言编程,且提供了一个庞大、用于底层资源调用的C语言函数库和头文件,外部应用程序可借此访问Pro/ENGINEER的数据库和应用程序。不仅如此,还可以利用Pro/TOOLKIT提供的UI对话框、菜单以及VC的可视界面化技术,设计出方便实用的人机交互界面,从而大大提高系统的利用率。
1.2 Pro/TOOLKIT二次开发基本流程
要编写一个完整的二次开发程序需要经过编写源文件(Pro/TOOLKIT C程序、菜单资源文件、信息资源文件、对话框资源文件),程序的编译和连接,程序的注册和运行等过程。流程如图1所示。
图1 Pro/TOOLKIT二次开发基本流程
1.2.1 编写源文件
源文件包括资源文件和程序源文件,资源文件又包括菜单资源文件、信息资源文件和对话框资源文件(分别用来完成创建和修改Pro/Engineer菜单、窗口信息和对话框等功能)。
1.2.2 程序的编译和连接
为了编译连接所编制的程序代码,一般需要制作Make file工程文件,可以根据Pro/TOOLKIT自带的Make file修改。该文件主要指定库文件、头文件、源文件的位置及要生成的可执行文件和动态连接库名称等。也就是说,此文件是用来说明如何进行应用程序编译和连接的。
1.2.3 应用程序的注册
要使应用程序能够集成到Pro/Engineer系统中运行,必须制作一个扩展名为.dat的注册文件,用该文件进行应用程序的注册。注册文件(registry file)的作用是向Pro/Engineer系统传递应用程序的信息,注册文件格式如图2所示:
图2 注册文件格式
1.2.4 程序的运行
在含有上述protk.dat文件的目录下启动Pro/Engineer,应用程序会自动执行,执行结果就是所创建的应用程序对话框。
1.2.5 程序的卸载
如果在注册文件中设置ALLOW_STOP为TRUE,可以用手工来终止应用程序的运行。如图,选择需要终止的应用程序,先选择“停止”按钮,再单击“删除”按钮。
2 基于Pro/E的装配干涉检查二次开发
2.1 Pro/E产品装配模型的特点
装配模型的研究早在70年代就开始了,其主要的发展趋势是由图表达的拓扑结构向树表达的登记层次结构发展。装配建模的实质就在于如何在计算机内有效地表达装配体外在的和内在的关系,主要集中在以下两点:(1)装配模型必须囊括哪些有关的信息;(2)所有这些信息如何恰当地组织起来,才能支持整个CAD系统在其生命周期的全过程——从需求分析、设计、加工、装配、直到最后的销售维护。
装配体模型最基本的组成单元是零件,子装配体和成品装配体。
零件(Part):即是通常意义上的零件,是装配体中最基本的物理组成元素,是不可拆分的几何实体,是详细设计中的具体设计对象。
子装配体(Subassembly):是装配体中逻辑组成元素之一,是在设计过程中确定的具有一定功能的逻辑实体,它由多个零件组合而成。
部件(Component):是装配体中最基本的逻辑组成元素,它是零件和子装配体的并集。
成品装配体(Product):是产品设计的结果,是最终体现设计者的设计意图、实现产品的预定功能的实体,它是由零件和子装配体组成的。
装配模型所包含的基本装配信息主要有两类,一是装配体的分组和层次信息,如产品的部件、组件的划分;二是装配体之间的装配关系信息,如轴孔配合、螺纹联接、面接触等典型的装配联接信息。这两类信息的获取方法,一种是由人根据图纸判断并输入到模型中;另一种则是利用特征CAD系统在设计阶段进行装配特征定义,使建模时可以从特征CAD的输出中获得这些信息。所以装配过程中清楚了解零部件的组织结构是一个关键。
2.2 干涉检查的二次开发流程及实现
干涉检查模块的二次开发最主要的关键技术有如下几个:一是VC++应用程序与Pro/E的接口技术;二是怎样建立零部件装配模型树和装配变量表;三是怎样将零部件装配变量表中的装配关系、参数约束和干涉条件赋给Pro/E中装配模型的Analysis分析模块,由Analysis模块对模型进行干涉检查。最后是怎样从Pro/E装配中提取装配干涉信息,并自动生成空间干涉和接口匹配性检查报告。具体实现技术路线如图3所示:
图3 干涉检查实现技术路线
2.2.1 VC++6.0应用程序与Pro/E的接口技术
Pro/E同外部应用程序的接口,可用VC++实现Pro/E的用户界面,用DLL技术实现VC++应用程序与Pro/E的接口技术。Pro/E同外部应用程序的接口设置包括一下几个方面:
(1)对VC++6.0的编译连接环境的设置
①设置Selecting对话框
在Tools/Option/Directories/Show Directories for中添加包含文件和库文件如下:
proe2001/protoolkit/includes;
proe2001/protoolkit/protk_appla/includes;
proe2001/protoolkit/protk_appls/includes;
②设置Project Setting对话框各项更改工程设置如下:
C/C++/Preprocessordefinitions:_DEBUG,_WINDLL,WIN32,_WINDOWS,_MBCS,_USRDLL,PRO_USE_VAR_ARGS。
C/C++/Code Ceneration/Use run-time library:Multithreaded
C/C++/Code Ceneration/Precompiled Headers:选择Notusing precompiled headers
link/General/Object/librarymodules:protk_dll.libprodev_dll.libwsock32.libmpr.lib
kerne132.libuser32.libodbc32.libodbccp32.lib
(2)缩写菜单项、菜单项提示的信息文件
添加初始化程序、终止程序,加入主菜单程序,设置菜单动作程序,菜单信息文本文件。菜单信息文本文件用来描述所添加菜单的一些属性,它的内容要和添加菜单函数中的一些参数相对应。
(3)编写源文件、对话框资源文件
在VC应用设计程序设计向导创建的程序框架上增加新的CPP源文件和对话框资源文件。然后在VC中设计人机交互界面,先用对话框编辑器创建对话框模板资源,加入所需控件,Claaswizard为对话框生成CTestDlg类,并加入所需的成员变量。
(4)注册文件及程序的运行
在Pro/E中运行应用程序,编写一个后缀为dat的注册文件,然后在菜单功能的辅助应用程序中注册该程序,就可以成功运行。
2.2.2 零部件装配模型树和装配变量表的建立
装配模型所包含的基本装配信息可归纳为三类:一是装配体的分组和层次信息,如产品的部、件组件的划分;二是装配体之间的装配关系信息,如轴孔配合、螺纹联接、面接触等典型的装配联接信息;三是装配设计参数的约束和传递关系信息:装配设计参数的约束和传递是解决设计参数的一致性,实现设计的关键。Pro/E可根据装配模型自动生成BOM清单,可利用Pro/TOOLKIT函数读取BOM清单和关系信息,利用VC++应用程序生成装配树和装配信息表。
2.2.3 Analysis分析模块中装配关系、参数约束和干涉条件的赋给
用VC++应用程序编写装配关系、参数约束和干涉条件输入界面,通过接口,用Pro/TOOLKIT的关系式操作函数创建新的关系式集对象,并将输入的关系写入新关系式集中,通过关系式驱动Pro/E中的Pro/Analysia模块对装配模型进行装配分析和干涉检验。
2.2.4 装配干涉信息的提取及干涉检查报告的生成
用Pro/TOOLKIT操作函数从Pro/E装配中提取装配干涉检验的结果信息,利用VC++应用程序自动将干涉检验结果生成空间干涉和接口匹配性检查报告。
2.3 干涉检查开发的实现
2.3.1 添加干涉检查菜单
在开发的系统中工具栏中添加一个菜单项和菜单条,函数为:
2.3.2 创建干涉检查对话框
PTC公司提供的用户用于Pro/E二次开发工具Pro/TOOLKIT功能强大:可对已有菜单扩展或修改;直接访问Pro/E的数据库;能够用程序实现自动建模;获取特征类型、几何形体及尺寸;提供了传递信息、接受键盘输入、鼠标交互拾取图元的工具;能组装和拆卸组件;能产生零件或装配体的截面和视图等。既然Pro/TOOLKIT具有这么多功能,因此受到广大用户的欢迎。然而,采用Pro/TOOLKIT提供的UI对话框操作函数和Pro/ENGINEER资源虽然可以设计出与Pro/ENGINEER界面一致的人机交互界面,但是它所采用的文本形式来定义对话框难以直观地反映界面的布局,此外,对于已完成的对话框难以进行调试、修改等工作。MFC是VC++程序的—个重要的软件资源,它为开发Windows应用程序提供了强大的支持。与UI对话框相比,使用MFC的对话框界面布局上更为容易,修改和调试更为方便。
签于此,本课题拟采用VC++的应用程序设计向导(AppWizard)和类向导(Class Wizard)来进行Pro/TOOLKIT的应用程序的设计、创建和调试,VC++来编写应用程序,用MFC(Microsoft Foundation Class)来设计对话框界面。
创建函数为:
然后再添加对话框资源文件,利用VC自带的对话框模板添加各个控件。
2.3.3 干涉检查程序主要模块及功能
对Pro/E进行二次开发后干涉检查功能主要包括三个模块:全局干涉计算、点选不需要进行干涉检查的零件或组件,对剩余的零件和组件进行干涉检查和点选需要检查的零件或组件进行干涉检查。在这三个模块中又有两种计算方式:确切结果和快速计算。第一种计算方式是分析发生干涉了的零件并对发生干涉的零件计算体积和计算发生干涉的那部分体积以及得出发生干涉的程度(发生干涉的体积占发生干涉的两个零件之间体积较小者的百分比),提取发生干涉的零件的文件名、参数名称和代号名称,高亮显示发生干涉的部位;第二种计算方式只是分析那些零件发生了干涉并提取发生干涉的零件的文件名、参数名称和代号名称,高亮显示发生干涉的部位。根据系统菜单可调出干涉检查对话框,根据主对话框可以选择全局干涉计算、点选不需要进行干涉检查的零件或组件对剩余的零件和组件进行干涉检查、点选多个需要检查的零件或组件对其进行干涉检查。在这三个模块中又有两种计算方式:确切结果和快速检测。
3 结论
激烈的市场竞争对企业产品的设计水平提出了越来越高的要求,CAD技术的应用,能够有效提高产品的性能和质量,使得设计人员在设计产品时候能尽量减少失误,从而加快产品开发的步伐,缩短产品上市时间,降低产品的开发费用和生产成本,增加企业在国际市场上的竞争力。本文研究了成功开发出了Pro/E干涉检查程序,通过在上海卫星研究所的装配干涉检查测试,证明其实用可靠。同时总结了干涉检查二次开发的技术特点。