基于ProEngineer的工艺数据库开发 第四章 系统的设计与实现
UpdateData(FALSE);
BoxRs->Close(); BoxTd->Close(); BoxDb->Close();
delete BoxRs; delete BoxTd; delete BoxDb;
4.3.2 菜单设计
Pro/E的命令都是通过菜单或一些控件按钮执行的,在对Pro/E进行工艺数据库集成开发时,需要使用其菜单及用户界面技术,使用好这些技术会使编写的软件操作起来更加方便,界面更加友好。PRO/TOOLKIT提供了一系列菜单操作函数,允许应用程序创建和管理菜单。其创建方法是:直接调用ProMenubarMenuAdd()函数向PRO/E添加所需的菜单;建立新建菜单信息文件。
首先要在加入Pro/TOOLKIT 包含文件:
/*--------------------------------------------------------------------*\\ Pro/TOOLKIT includes
\\*--------------------------------------------------------------------*/ #include \#include \#include \#include \#include \#include \#include \#include \#include \#include \
然后对函数进行定义:
/*--------------------------------------------------------------------*\\ Functions declaration 函数声明
\\*--------------------------------------------------------------------*/
29
基于ProEngineer的工艺数据库开发 第四章 系统的设计与实现
int chechuangcanshu_1(); int xc_1(); int mochuang_1(); int daoju_1(); int wyzcx_1(); int neikong_1(); int zhouduanmian_1();
static uiCmdAccessState AccessAvailable (uiCmdAccessMode);
#ifdef _DEBUG
#define new DEBUG_NEW #undef THIS_FILE
static char THIS_FILE[] = __FILE__; #endif
以机床菜单下的车床为例来说明菜单添加和动作设置函数:
/*========================================================*\\ FUNCTION: user_initialize()
\\*========================================================*/ extern \{
ProError status; ProFileName MsgFile;
uiCmdCmdId PushButton_cmd_id;
ProStringToWstring(MsgFile, \设置菜单信息文件名 //添加名称为“工艺数据库”菜单条
status=ProMenubarMenuAdd(\PRO_B_TRUE, MsgFile);
//添加一级子菜单项 机床
ProMenubarmenuMenuAdd(\NULL, PRO_B_TRUE, MsgFile);
/*--------------------------------------------------------------------*\\ 机床特征
\\*--------------------------------------------------------------------*/ //设置(机床_车床)按纽的动作函数
ProCmdActionAdd(\
30
基于ProEngineer的工艺数据库开发 第四章 系统的设计与实现
uiCmdPrioDefault,AccessAvailable,PRO_B_TRUE,PRO_B_TRUE,&PushButton_cmd_id);
//添加(机床_车床)按纽
ProMenubarmenuPushbuttonAdd(\
\a push button 1 to the ProE menu bar\NULL, PRO_B_TRUE, PushButton_cmd_id, MsgFile);
return status; }
本系统在Pro/E中建立了一个菜单,由于系统有三个模块,因此在此菜单下有三个子菜单,而每个子菜单下又根据每个模块的子模块数的多少设有几级下级子菜单。建立的菜单的具体形式如图4.6所示。
图4.6 系统菜单设计图
4.3.3 对话框设计
对话框是向用户提供的一个友好的界面,以方便用户使用。Pro/TOOLKIT提供了UI对话框函数,但其对话框采用资源文件的形式来定义和描述界面组成元件,属性及布局,不能直观反映界面的布局、设计、修改和调试。因此,本系统的对话框的设计采用VC++中的MFC类来进行,通过调用VC DLL程序,PRO/TOOKIT应用程序可以直接使用VC DLL程序中所建立的对话框界面。
下面以车床子模块为例来说明对话框的设计,车床的对话框界面如图4.7所示,创建步骤如下:
首先,在资源文件中选择资源类型Dialog创建对话框,如图4.8所示。
31
基于ProEngineer的工艺数据库开发 第四章 系统的设计与实现
图4.7 车床对话框
图4.8 创建对话框
图4.9 类的创建
然后,用classward创建对话框类,自动生成Cdialog派生类定义的头文件和和相应的实现文件,如图4.9所示。
32
基于ProEngineer的工艺数据库开发 第四章 系统的设计与实现
最后,创建和显示对话框,创建和显示对话框的源程序在菜单动作函数中设计,对话框的创建过程如图4.8-4.10所示。
图4.10 创建对话框
4.3.4 数据库设计
本系统采用Access97作为数据库开发软件。用Access97开发的数据库与程序的接口问题较为简单,采用直接调用方式。数据库开发主要是编辑数据库表格。根据系统的模块划分情况,针对不同条件制作Access97表格。
在此以表格“半精车轴端面加工余量”为例介绍数据库的开发,如图4.11所示。
图4.11 半精车轴端面加工余量
设计该表时,应包括半精车轴端面的零件长度,端面最大直径,端面直径按大小划分五个范围。
创建步骤如下:
首先双击“使用设计器创建表”,在新建表中的“字段名称”中分别输入ID 、零件长度(全长)、“端面最大直径<=30”、“端面最大直径>30-120”、“端面最大直径>120-260”、“端面最大直径>260-500”、“端面最大直径>500”,在“数据类型”中
33