APP下载

基于Pro/TOOLKIT的Pro/E二次开发技术研究

2011-07-07刘玉秦

制造业自动化 2011年20期
关键词:二次开发对话框菜单

刘玉秦,宋 彦

(中国矿业大学 机电工程学院,徐州 221000)

0 引言

现在的CAD/CAM系统,如Pro/E、UG等,都是比较通用的大型软件系统,存在着针对性不强,设计效率不高的问题。另外,CAD软件的通用性也使其难以很好地应对不同用户在技术标准方面的差异,因此用这样的大型系统建立我们所需要的产品模型可能需要大量的时间。而二次开发则较好地解决了这个问题。二次开发即是在此类软件的基础上,开发出适合本单位产品的应用程序,提高产品的设计效率,加快产品的更新速度,从而提高企业的市场竞争能力。

与其他CAD软件的二次开发书籍相比,Pro/ENGINEER二次开发方面的参考资料和教程十分稀少,并且有很多都比较旧,无法跟上版本的更新,时代的要求。同时Pro/E二次开发官方提供的帮助文件内容非常多,从中找到合适的切入点比较困难,且内容大多是英文,并涉及到大量C程序代码,因此理解起来有困难。本文针对现在广泛使用的Pro/E 4.0 简要介绍一下它的二次开发及应用。

1 Pro/ENGINEER二次开发的方法介绍

Pro/ENGINEER的二次开发,利用标准零件间的相似性,发挥Pro/ENGINEER参数建模的特长,使用二次开发工具,如族表工具、用户定义特征(UDF)、Pro/Program、J-link、Pro/TOOLKIT等来实现。文献[1]给出了各二次开发工具的简单介绍。

除此以外Pro/E4.0 提供的二次开发API工具包,还包含基于Pro/Web Link的二次开发过程,这种方法使用的语言是javascript,以网页的形式来访问Pro/E模型;和基于VB API的二次开发过程。Pro/E Wildfire 4.0开始可以采用Visual Basic API,通过 Visual Basic. NET 应用程序和应用程序 (如 Microsoft Word、Excel 或 Access) 中的Visual Basic 宏来进行二次开发。在参考文献[2]和一些相关刊物上发表的论文中还介绍了一种基于Automation GATEWAY插件和VB的二次开发。Automation GATEWAY是RAND公司开发的针对Pro/E软件的二次开发工具,与Pro/E系统自带的二次开发工具Pro/TOOLKIT相比,具有简单易用的优点。应用Automation GATEWAY可以自动实现Pro/E任务,创建用户界面,完全实现自动设计任务;应用Automation GATEWAY可以把任何支持ActiveX的应用程序和Pro/E建立直接联系。利用VB,可以使Microsoft Office产品(如Word,Excel等)和Pro/E对象之间进行数据交换。在这个过程中,Automation GATE WAY在VB和Pro/E之间起到桥梁和纽带的作用。通过Automation GATE WAY,VB可以访问Pro/E的大部分底层资源文件。

由于Pro/TOOLKIT具有多种功能:利用Pro/TOOLKIT能够自动化建模——尤其是几何或参数约束驱动的衍生或单一用途模型;集成需要访问Pro/ENGINEER数据或操作的外部应用程序;扩展Pro/ENGINEER用户界面,使定制流程无缝嵌入到界面中。因此本文主要讲述基于Pro/TOOLKIT的二次开发过程。

[3]可知,在对Pro/E4.0进行二次开发的VC软件升级至Visual Studio 2005,因此在开发过程中势必有一些变化。在此,笔者针对其开发过程给予一些讲解,以供参考。

2 Pro/E 4.0二次开发步骤

2.1 确定运行模式

Pro/TOOLKIT应用程序有两种工作模式:同步模式和异步模式。

2.1.1 异步模式

无需启动Pro/ENGINEER,就能单独运行Pro/TOOLKIT应用程序的方式。异步模式实现了两个程序的并行运行(两个程序是独立可运行的),可以只在程序需要调用Pro/ENGINEER功能时,才启动Pro/ENGINEER。但由于异步模式具有代码复杂、执行速度慢等缺点,因此一般不采用异步模式。

2.1.2 同步模式

同步模式下,Pro/TOOLKIT应用程序必须与Pro/ENGINEER系统同步运行。同步运行并非并行运行,同步的意思是Pro/TOOLKIT应用程序集成到Pro/ENGINEER系统中,若Pro/ENGINEER没有启动,Pro/TOOLKIT应用程序将无法运行。还需要注意的是,Pro/TOOLKIT应用程序执行时,Pro/ENGINEER系统是处于停止状态的。

同步模式又分为两种模式,即:动态连接模式(DLL模式)和多进程模式(Multiprocess Mode)。动态连接模式是将用户编写的C程序编译成一个DLL文件,这样Pro/TOOLKIT应用程序和Pro/ENGINEER运行在同一进程中,它们之间的信息交换是直接通过函数调用实现的。多进程模式是将用户的C程序编译成一个可执行文件,Pro/TOOLKIT应用程序和Pro/ENGINEER运行在各自的进程中,它们之间的信息交换是由消息系统来完成的。

可以根据需要选择DLL模式或者多进程模式。一般来说,多进程模式主要是用于程序开发阶段以便程序的调试,但是由于DLL模式的运行速度快,所以程序开发完成之后,最后转化成DLL模式。DLL 模式是应用程序开发首选的模式。在VC开发环境中如果要使用DLL模式,创建程序时选择MFC DLL项目类型,如果要使用多进程模式,则创建程序时选择MFC EXE项目类型[1]。本文主要采用DLL模式。

2.2 安装和测试开发环境

在安装完API工具包中的Pro/TOOLKIT后,文献[4]中,Pro/TOOLKIT要求有授权许可,才能够开发和测试应用程序。它要求从Pro/ENGINEER装载点运行Ptcstatus,查看是否有许可证选项14。在第一次使用Pro/TOOLKIT建立应用程序时,该应用程序会被视为是“锁定”的。因此在测试应用程序时,需要有Pro/TOOLKIT开发许可证,否则锁定的应用程序在载入到Pro/ENGINEER进程中时会在启动时发生错误。在此,笔者建议大家用一种新方法即可解决这个问题:在Pro/ENGINEER安装的时候,其安装目录不要有空格,当安装Pro/E wildfire4.0时,最好连小数点也不要,如D:ptcproeWildfire4。这样在后续的运行安装测试makefile应用程序时将不会出现问题。限于篇幅,请参考文献[4]或[5]。〈proe装载点〉即为proe的安装路径。

2.3 新建项目和设置开发环境

Pro/TOOLKIT是PTC公司提供的C语言二次开发工具包,因此具有丰富的C语言函数库,对于开发人员有一定要求,适用于熟悉C/C++编程语言,C/C++的指针、数据结构以及动态内存管理方面的知识的人使用,尤其是对于Pro/E4.0二次开发,更是要求能够熟练使用Microsoft Visual Studio2005。以前的开发都是在纯C语言环境下,用Make文件创建Pro/TOOLKIT应用程序(可参考文献[2]、[6]),有以下缺点:1)应用程序必须手工修改make文件,程序的设计和调试不方便;2)无法使用MFC,不能充分利用VC资源;3)人机交互界面较难开发,不能直接进行对话框的可视化设计。虽然PTC提供了prodialog_view.exe工具用于查看即将生成的对话框是什么样,可是开发难度大,过程繁琐,开发的对话框组件十分有限。综上所述,在创建Pro/TOOLKIT应用程序时,用VC。这样除了在创建应用程序基本框架时能调用VC的应用程序设计向导和类向导进行简便快速的设计和调试,同时在设计对话框时可直接使用MFC对话框控件,比起UI对话框的创建,直观简便。

用VC开发程序对于初学者来说常遇到的问题就是VC开发环境的设置,这直接关系程序运行的成败,笔者针对Visual Studio.NET2005简要讲述开发环境设置。

2.3.1 新建项目

1)选择新建项目的类型(dll或exe类型),并输入项目名称。

2)指定连接类型。若是DLL类型,一般选择共享MFC DLL规则。

3)设置包含文件和库文件。选择菜单【工具】-〉【选项】,在弹出的“选项”对话框中选择左侧列表框中的“项目和解决方案”结点下的“VC++目录”,并:在“显示以下内容的目录”下拉列表框中选择“包含文件”,然后添加头文件如图1所示。

D:ptcproeWildfire4prodevelopprodev_applsincludes

D:ptcproeWildfire4protoolkitprotk_applsincludes

D:ptcproeWildfire4protoolkitincludes

D:ptcproeWildfire4prodevelopincludes

4)在“显示以下内容的目录”下拉列表框中选择“库文件”,然后添加库文件

D:ptcproeWildfire4prodevelopi486_ntobj

D:ptcproeWildfire4protoolkiti486_ntobj

2.3.2 项目属性的设置

用于添加链接时所需的lib文件,此设置,不同于上面的设置,需要每建一个新工程都设置一次。

1)在菜单【项目】-〉【属性】,在弹出的属性页对话框左边的列表框中选择“C/C++”节点下的“预处理器”,然后在“预处理器定义”栏添加:PRO_USE_VAR_ARGS(见图 2)。

2)选择“C/C++”节点下的“语言”,并将“将wchar_t视为内置类型”设置为“否”。

3)选择“链接器”节点下的“输入”,然后在“附加依赖项”中添加必要的库文件:protk_dllmd.lib(用于MFC DLL方式)、 prodev_dllmd.lib (用于MFC DLL方式)、protkmd.lib(用于MFC EXE方式 )、pt_asynchronous.lib (用 于 MFC EXE 方 式 )、wsock32.lib、mpr.lib、psapi.lib,kernel32.lib(如图 3所示)。设置库文件相当重要,如果设置不对或是设置缺少,就会造成错误。本文只是将最常见的库文件的添加显示出来,更多的请参考帮助文件[7]。

图1 添加包含文件

图2 添加预定义

与VC++6.0不同的是,在VC2005 中已经不需要设置“忽略库”与“强制输出”的选项了。

2.4 定义初始化函数和结束函数

图3 添加附加依赖项

完成项目的创建及开发环境的设置后,就开始定义初始化函数user_initializ()函数和结束函数user_terminate()函数。初始化函数和终止函数是每个同步模式程序都必须添加的。初始化函数主要是用来设置需要添加的菜单,调用对话框,设置用户的交互接口等一些初始值设置。结束函数用于结束Pro/TOOLKIT应用程序。

2.5 创建编写程序源代码

在主文件中需要添加Pro/TOOLKIT头文件,常用的头文件也可以添加到stdafx.h,这样就不需要在添加新的CPP文件时设置一次头文件。如果使用了Pro/TOOLKIT对象函数,则应用程序都必须包括ProToolkit.h头文件。

注意:VC中的宽字符与Pro/TOOLKIT应用程序中的宽字符不匹配常会导致程序崩溃,因此要进行宽字符的转换,加入头文件ProUtil.h,它包含数据类型的转换函数。同时笔者建议熟练掌握VC2005的编程应用,它在编程和选项设置上与VC6有一些不同。在字符的问题上,有许多代码在VC6中没问题,但在VC2005中出现错误,那是因为在VC6中代码没有按可编译为UNICODE版本的方式写,而VC2005之后版本默认是UNICODE编码的,所以所有使用到字符串的地方都会出错,解决的办法是,一定要熟悉VC2005的新特性,对于原有代码进行适当修改。当然也有一简便的方法是:在菜单【项目】-〉【属性】-〉【配置属性】-〉【常规】,在“字符集”一栏中选择“使用多字节字符集”,这样能减少编译时的错误。

2.6 编写注册文件、菜单,编译运行项目

注册文件的编写可参考文献[6]。如有必要可以加上菜单的编写使之更人性化。最后编译连接Pro/TOOLKIT函数库和VC类库,生成解决方案。

2.7 Pro/TOOLKIT应用程序的运行

一定要在环境变量设置完后,程序调试成功后,进行创建测试目录和创建测试快捷启动。这时编好的注册文件根据注册方式——自动注册方式或手动注册方式,进行Pro/TOOLKIT应用程序的注册,运行相应的Pro/TOOLKIT应用程序。

3 开发应用实例

图4所示显示的是一个简单的Pro/E二次开发实例,利用了上述关键技术,开发出菜单和对话框显示的实例,当有模型的时候,点击菜单会显示出模型的地址,没有模型的时候则提示打开错误。

图4 二次开发实例

4 结论

本文详细介绍了利用Pro/TOOLKIT对Pro/E 4.0 二次开发的关键步骤和技术。由于操作不易,国内的基于Pro/E的三维CAD系统的研究和应用还处于初步阶段。本文的介绍,对于进行Pro/E4.0及其以上版本的成功开发具有重要的借鉴意义。随着机械行业的发展,Pro/E的二次开发会益加广泛,作用也会越来越大。

参考文献:

[1] 吴立军, 陈波. Pro/ENGINEER二次开发技术基础[M]. 北京: 电子工业出版社, 2006:1-30.

[2] 张继春. Pro/ENGINEER二次开发实用教程[M]. 北京: 北京大学出版社, 2003: 4-75.

[3] Parametric Technology Corporation. Platform Notes-Pro/TOOLKIT for Pro/ENGINEER Wildfire 4.0 [S]. USA:PTC公司. 2007, 6.

[4] Parametric Technology Corporation. Pro/TOOLKIT for Pro/ENGINEER Wildfire 4.0入门[S]. USA: PTC公司.2007, 9: 3-24.

[5] Parametric Technology Corporation. Getting Started with Pro/TOOLKIT for Pro/ENGINEER Wildfire 4.0 [S]. USA:PTC公司. 2007, 9: 3-24.

[6] 李世国. Pro/TOOLKIT程序设计[M]. 北京: 机械工业出版社, 2003: 15-90.

[7] Parametric Technology Corporation. Pro/ENGINEER Wildfire 4.0 Pro/TOOLKIT User’s Guide[S]. USA: PTC公司.2009, 6: 2101-2200.

猜你喜欢

二次开发对话框菜单
中国新年菜单
正常恢复虚拟机
西门子Operate高级编程的旋转坐标系二次开发
浅谈Mastercam后处理器的二次开发
Bootlace Worms’Secret etc.
What Is Beauty?
西门子Easy Screen对倒棱机床界面二次开发
本月菜单
浅谈VB的通用对话框《CommonDialog》控件的使用
ANSYS Workbench二次开发在汽车稳定杆CAE分析中的应用