APP下载

塑料瓶及其吹塑模具参数化CAD软件的程序设计

2011-02-09

制造业自动化 2011年4期
关键词:调用对话框菜单

付 饶

(绵阳职业技术学院,绵阳 621000)

1 选择应用程序的开发模式和创建方法

所谓的Pro/TOOLKIT应用程序,是指利用Pro/E系统提供的Pro/TOOLKIT工具包的支持,用C语言进行程序设计,采用C编译器和连接器创建能够在Pro/E环境运行的可执行程序(文件后缀名为EXE)或动态连接库程序(文件后缀名为DLL)形式的程序[1]。对于不同的操作系统平台,在编译和连接生成Pro/TOOLKIT应用程序时,编译器选项和所需的系统库文件通常是不同的。要使Pro/TOOLKIT应用程序在Pro/E环境下正常运行,必须正确设置编译和连接选项。

1.1 开发模式

用Pro/TOOLKIT开发应用程序有两种模式:同步模式(Synchronous Mode)和异步模式(Asynchronous Mode)[2]。在着手进行应用程序开发前,必须先选择采用同步模式还是异步模式。同步模式下,Pro/E根据注册文件中的信息启动应用程序,Pro/TOOLKIT应用程序和Pro/E产生各自的进程,程序的控制权在两个进程之间切换。该应用程序不能够独立于Pro/E 而运行。异步模式下,Pro/TOOLKIT应用程序和Pro/E能够进行各自的操作,在通信方面,异步模式使用远程调用(Remote Procedure Calls, RPC)方式,程序(含有独立主函数)能独立于Pro/E启动。由于异步模式采用远程调用,程序运行速度相比同步模式慢很多,整合性也不好,所以,一般基于Pro/E的Pro/TOOLKIT开发采用同步模式。在同步模式下又有两种开发方式:动态链接库(DLL Mode)和多进程(Multi-process或Spawned Mode)。前者为动态连接库文件,无自身主程序函数,直接连接于Pro/E进行程序调用。后者为.exe文件,有独立的主程序和Pro/E进行相连接。一般为了调试方便,开发程序时可以采用多进程模式,在程序完成时,采用动态连接库以提高程序运行效率[3]。由于本课题的应用程序并不是十分复杂,所以从始至终都采用动态链接库的方式。

1.2 创建方法

创建Pro/TOOLKIT应用程序的方法有两种,即利用Make文件创建和利用VC向导创建。默认安装时,在protoolkiti486_ntobj文件火,文件名前缀为Make_的文件为Pro/TOOLKIT工具包提供的Make文件范例。将其扩展名改为.mak,可在VC++(Microsoft Visual C++ 6.0)环境打开该文件,并可直接创建应用程序。但采用Make文件的方法创建Pro/TOOLKIT应用程序必须用手工修改make文件,程序的设计和调试均不方便。另外,由于这种方式无法使用MFC类库,因而不能充分利用VC++的资源。特别是在人机交互界面设计时不能直接进行对话框的可视化设计。因而直接利用VC++的应用程序设计向导(App Wizard)和类向导(Class Wizard)来进行Pro/TOOLKTT应用程序的设计、创建和调试,无疑是一种更佳选择[4]。因此,本课题的应用程序利用VC++向导的方式创建。

2 应用程序设计步骤

使用Pro/TOOLKIT开发应用程序包含五个基本步骤:编写源文件(源代码文件和资源文件);编译和连接,生成可执行文件(DLL或EXE文件);注册Pro/TOOLKIT应用程序;运行应用程序;停止和重启动应用程序。

2.1 编写源文件

源文件包括资源文件和C++源代码文件:资源文件包括菜单资源文件、对话框资源文件和信息文件等;程序源文件是指我们在VC++环境下编写的C++程序。

2.2 编译和连接,生成可执行文件

一般需要制作makefile工程文件,可以根据Pro/E自带的makefile文件修改,由该文件指定库文件、头文件、源文件的位置及要生成的EXE文件和DLL文件的名称等,也可以在VC++ 6.0环境中设定,指定必要库文件和头文件的包含目录,添加必要的库文件:protk_dll.lib、mpr.lib[5]。完成设置后就可以编译Pro/TOOLKIT应用程序生成动态链接库文件了。

2.3 注册Pro/TOOLKIT应用程序

注册Pro/TOOLKIT应用程序是指将Pro/TOOLKIT应用程序文件的信息提供给Pro/E,为了做到这一点,Pro/E会寻找并读入Pro/TOOLKIT的注册文件,该文件是一个文本文件[2]。注册文件的编写也要遵从一定的格式。

注册文件以.dat为后缀,其格式如下:name<应用程序名>

startup<工作模式,exe或d11>exec_ file<可执行文件或动态链接库的位置>text dir<(资源文件、对话框文件、窗口信息文件)的位置>

allow_stop<是否允许终止运行程序>delay_start<手工或自动启动程序>revision<版本号>end<结束>

可以采用两种注册方式,即自动注册和手动注册。

自动注册:自动注册分为两种情况:一是必须将注册文件名取为Protk.dat,并保存于Pro/E的安装目录的 ext目录,或者位于Pro/E的起始位置设定的目录。二是在Pro/E的config.pro文件设定注册文件。

手动注册:选择Pro/E界面上的Utilities/Auxiliary Applications菜单项,选择“注册”按钮注册应用程序。注册成功后选择“启动”按钮运行应用程序。

2.4 运行应用程序

注册成功后,该程序的名称出现在辅助应用程序对话框中,且处于未运行状态,选中该应用程序,单击“启动”按钮,即可运行该应用程序。

2.5 停止和重启动应用程序

Pro/TOOLKIT支持在Pro/E的运行中停止和重启动应用程序的功能,该功能在应用程序的开发阶段是很有用的,可以允许开发者在不重新启动Pro/E的情况下修改程序代码并重新测试程序[6]。

3 应用程序模块及其编写

Pro/TOOLKIT应用程序,即Pro/TOOLKIT源文件,主要分为程序源代码和菜单文件、对话框资源文件等多个模块,图1给出了本课题用到的各个模块以及它们之间的层次关系,由十篇幅有限,本文只介绍其中几个比较重要的模块的编写。

3.1 编写程序源代码文件

在同步模式下开发程序,Pro/TOOLKIT应用程序的核心是:user_ initialize()和user_terminate()两个函数,这两个函数是在Pro/E启动或终止时调用的。在Pro/E完成初始化和图形界面生成,而用于交互的菜单还没有生成前,系统调用函数user initialize()。在该函数中应完成Pro/TOOLKTT应用程序所需的任何初始化工作,其中包括对Pro/E菜单的修改(例如添加新的菜单按钮等)。当成功地完成初始化后,该函数返回零值,任何其他的返回值均被认为是初始化失败。终止Pro/E任务时,将调用user_terminate()函数,该函数返回值是void。

3.1.1 编写user initialize()函数完成初始化工作

该函数用来初始化一个同步模式的应用程序,在该函数里面,主要调用相关函数来做如下的工作:设置菜单信息文件名、添加菜单条、添加菜单按钮、设置菜单按钮的动作函数等。该函数必须返回0来表明程序已经被正确地初始化了。而动作函数一般在该函数外进行定义。

3.1.2 编写user_terminate()函数终止程序

该函数的主要任务是终止应用程序,它的调用比较简单,对于实现功能比较简单的应用程序,该函数可以为空。但是,应该注意的是,如果要在DLL模式下调用对话框资源,就必须在该函数中 调 用“AFX_MANAGE_STATE(AfxGetStaticM oduleState());”语句。这是因为,最后生成的Pro/TOOLKIT应用程序为动态链接库(DLL)文件,因此,在使用对话框资源时,应明确指定所使用的是DLL资源,否则,在Pro/E调用该应用程序时,DLL将使用EXE(可执行文件)的资源。

图1 应用程序编写模块

3.2 编写菜单文件

菜单文件的内容主要是程序添加到Pro/E系统里面的菜单名,如果是在Pro/E原有菜单里面加入一个新菜单,则其文件后缀为.AUX,如果加入的菜单里又含有下一级子菜单,则这个菜单文件后缀为.MNU。菜单文件的编写也有一定的格式规范。菜单文件必须编写正确,否则,也将导致程序无法正常运行。

菜单资源文件有其规范的格式,每三行为一组,具体如下:

菜单标识名 ……菜单标识文本

#

#

选项名[覆盖选项名] ……菜单选项显示文本

(提示信息) ……鼠标划过或停留在菜单项时显示的提示文本

[覆盖提示信息]

选项名[覆盖选项名]

本课题菜单资源文件为:

MyMenu

&MyMenu

我的菜单

#

BottleAndMoldDesign

BottleAndMoldDesign

瓶子和模具设计

#

Parameterized Programmi ng

Parameterized Programming

参数化设计

#

4 结束语

本文以目前国内市场上占主流的瓶子的改型设计为研究对象,充分渗透参数化设计的思想,利用VC++与Pro/E和Pro/TOOLKIT,实现了瓶子的参数化设计和模具设计的自动化。整个设计采用参数化设计的方法,用户只需点击按钮和修改数据,即可实现模具的设计。另外,系统还通过改变按钮的可选状态的方式指导用户进行操作,用户只要按指定的顺序进行操作,即可在短短一两分钟之内完成模具设计的整个过程。所有的计算和数据传递都在幕后进行,无须用户干涉,使得复杂的模具设计过程变得简单明了。

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

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

[3] 二代龙震工作室.Fro/TOOLKIT Wildfire 2.0插件设计[M].北京电子工业出版社,2005:1-392.

[4] 田福祥.现代模具技术的特点及其发展趋势[J].热加工工艺,2004 (08).

[5] 李剑峰,等.Pro/TOOLKIT技术及其在Pro/ENGINEER二次开发中的应用[J].网络与信息化,2003 (05).

[6] 金涛,陈敏,等.Pro/ENGINEER软件的一次开发技术[J].计算机工程与应用,2001 (13).

猜你喜欢

调用对话框菜单
中国新年菜单
正常恢复虚拟机
核电项目物项调用管理的应用研究
系统虚拟化环境下客户机系统调用信息捕获与分析①
Bootlace Worms’Secret etc.
What Is Beauty?
本月菜单
浅谈VB的通用对话框《CommonDialog》控件的使用
利用RFC技术实现SAP系统接口通信
一个“公海龟”的求偶菜单