毕业设计论文

更新时间:2024-03-01 06:11:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

河南机电高等专科学校毕业设计说明书

摘 要

本文介绍了Pro/E的二次开发工具,利用Pro/E对卷筒中间轴进行了参数化造型设计,建立了相应的参数,用Pro/Toolkit和VC对卷筒中间轴参数化系统进行了程序设计,包括菜单的添加和MFC对话框的制作。最后,对开发的三维建模程序进行测试。结果表明:开发程序准确无误,建模迅速,大大提高了这类通用件在Pro/E平台上的设计效率。

关键词:三维造型、Pro/E二次开发、Pro/Toolkit、VC

ABSTRACT

The essay introduced the tools of the second-development of Pro/E,design the intermediate shaft of winding drum in parametrics based on Pro/E and built its variables.On this basis,the writer designed the programs of its parametric systems used Pro/Toolkit and VC .The programs includes the creation of menu,the creation of the MFC dialogue.In the end,the test of all process of three-dimension-part-model driven by database is performed indicates that the program is right,and the mold can be set up quickly.The efficiency for the design of interchangeable part based on Pro/E can be increased.

Key Words: three-dimension design;second-development of Pro/E;Pro/Toolkit;VC

- 1 -

河南机电高等专科学校毕业设计说明书

目 录

摘要……………………………………………………………………………..….1 绪论……………………………………………………………….….…………… 1 第1章 Pro/E二次开发简介……………………………………….….………..3 1.1 Pro/E软件简介……………………………………………………………....3 1.2 Pro/E二次开发工具简介…………………………………………………....4 第2章 零件造型………………………………………………………………...6 2.1 pro/E的三维造型功能……………………………………….……………...6 2.2 pro/E创建模型过程…………………….…………………………...…....…7 第3章 轴的参数化设计…………………….…………………………...……...11 3.1 菜单的添加…………………….…………………………...……...……...….11 3.2 MFC对话框的建立及运行…………………….………………………….......15 3.3 整个参数化的实现…………………….…………………………..................18 总结……………………………….……………………..………………...……….25 致谢……………………………….……………………..………………...……….26 参考文献………………………….…………………..……..……………….…….27

- 2 -

河南机电高等专科学校毕业设计说明书

绪论

现在的CAD/CAM系统,如Pro/E、UG等,都是比较通用的大型软件系统,用这样的大型系统建立我们所需要的产品模型可能需要大量的时间。如果能在此类软件的基础上,开发出适合本单位产品的应用程序,无疑会大大提高本单位产品的设计效率,加快产品的更新速度,从而提高企业的市场竞争能力。

Pro/E的二次开发方法有五种:

(1)基于Pro/TOOLKIT的二次开发过程

Pro/TOOLKIT是针对Pro/E功能强大的二次开发工具。它封装了许多针对Pro/E底层资源调用的库函数与头文件,借助第三方编译环境(C语言、VC++语言等)进行调试。使用Pro/TOOLKIT开发应用程序包含三个基本步骤:编写源文件(包括资源文件和程序源文件);生成可执行文件;可执行文件在Pro/E中注册并运行是Pro/E软件自带的二次开发模块,可以直接访问Pro/E软件的最底层数据库资源,这是进行Pro/E二次开发最根本的方法,但要求开发人员具有相当C语言的编程能力;它是PTC公司为Pro/E提供的用户化工具箱(18以前的版本为Pro/DEVELOP),该工具箱为用户程序、软件及第三方程序提供了与Pro/E的无缝联接。用户程序和第三方程序是用C语言编写的,Pro/TOOLKIT提供了大量的c语言的库函数,能够使外部应用程序安全有效地访问Pro/E的数据库和应用程序。通过c语言编程及应用程序与Pro/E的无缝集成,用户和第三方能够在Pro/E系统中增加所需的功能。

(2)基于Automation GATEWAY的二次开发

Automation GATEWAY是RAND公司开发的针对Pro/E软件的二次开发工具,与Pro/E系统自带的二次开发工具Pro/TOOLKIT相比,具有简单易用的优点。应用AutomationGATEWAY可以自动实现Pro/E任务,创建用户界面,完全实现自动设计任务;应用AutomationGATEWAY可以把任何支持ActiveX的应用程序和Pro/E建立直接联系。利用VB,可以使Microsoft Ofice产品(如Word,Excel等)和Pro/E对象之间进行数据交换。在这个过程中,Automation GATE WAY在VB和Pro/E之间起到桥梁和纽带的作用。通过A,就可以利用VB访问Pro/E的大部分底层资源文件。

- 3 -

河南机电高等专科学校毕业设计说明书

(3)基于J-Link的二次开发过程

基于JAVA语言的二次开发工具,用户通过JAVA编程实现在软件Pro/E中添加功能。

(4)基于Pro/Web Link的二次开发过程

这种方法使用的语言是javascript,以网页的形式来访问Pro/E模型 (5)基于VB API的二次开发过程

Pro/E Wildfire 4.0开始可以采用Visual Basic API,通过 Visual Basic NET 应用程序和应用程序 (如 Microsoft Word、Excel 或 Access) 中的 Visual Basic 宏来进行二次开发。

本论文的主要工作有:

(1)利用Pro/E对卷筒中间轴进行三维建模。

(3)利用Pro/E的二次开发工具Pro/Toolkit及VC++.net进行二次开发,设计出人机交互式的界面,开发出参数化的中间轴系统。

(4)利用Pro/E的二次开发工具Pro/Toolkit创建三维的标准零件库并实现零件库与Pro/E的集成。

(5)调试、运行程序。

- 4 -

河南机电高等专科学校毕业设计说明书

第1章 Pro/E二次开发简介

1.1 Pro/E软件简介

Pro/E操作软件是美国参数技术公司(PTC)旗下的CAD/CAM/CAE一体化的三维软件。Pro/E软件以参数化著称,是参数化技术的最早应用者,在目前的三维造型软件领域中占有着重要地位,Pro/E作为当今世界机械CAD/CAE/CAM领域的新标准而得到业界的认可和推广。是现今主流的CAD/CAM/CAE软件之一,特别是在国内产品设计领域占据重要位置。

Pro/E中文版软件是美国参数技术公司开发的三维参数化设计软件,是目前国内外应用最为广泛的一款CAD/CAM/CAE软件,在中国有很多研究院和企业采用该软件进行设计、仿真、分析和加工。它功能强大、应用广泛,使用方便,得到广大用户和爱好者的一致认可。

Pro/E第一个提出了参数化设计的概念,并且采用了单一数据库来解决特征的相关性问题。另外,它采用模块化方式,用户可以根据自身的需要进行选择,而不必安装所有模块。Pro/E的基于特征方式,能够将设计至生产全过程集成到一起,实现并行工程设计。它不但可以应用于工作站,而且也可以应用到单机上。Pro/E采用了模块方式,可以分别进行草图绘制、零件制作、装配设计、钣金设计、加工处理等,保证用户可以按照自己的需要进行选择使用。Pro/E的主要特性如下:

1.参数化设计

相对于产品而言,我们可以把它看成几何模型,而无论多么复杂的几何模型,都可以分解成有限数量的构成特征,而每一种构成特征,都可以用有限的参数完全约束,这就是参数化的基本概念。

2.基于特征建模

Pro/E是基于特征的实体模型化系统,工程设计人员采用具有智能特性的基于特征的功能去生成模型,如腔、壳、倒角及圆角,您可以随意勾画草图,轻易改变模型。这一功能特性给工程设计者提供了在设计上从未有过的简易和灵活。

3.单一数据库(全相关)

Pro/E是建立在统一基层上的数据库上,不像一些传统的CAD/CAM/CAE系统建立在多个数据库上。所谓单一数据库,就是工程中的资料全部来自一个库,使得每一个独立用户在为一件产品造型而工作,不管他是哪一个部门的。换言之,

- 5 -

河南机电高等专科学校毕业设计说明书

在整个设计过程的任何一处发生改动,亦可以前后反应在整个设计过程的相关环节上。例如,一旦工程详图有改变,NC(数控)工具路径也会自动更新;组装工程图如有任何变动,也完全同样反应在整个三维模型上。这种独特的数据结构与工程设计的完整的结合,使得一件产品的设计结合起来。这一优点,使得设计更优化,成品质量更高,产品能更好地推向市场,价格也更便宜。

1.2 Pro/E二次开发工具简介

Pro/E提供了强大的三维几何造型功能,使我们能够创建出各种复杂的几何零件模型,但有时我们在设计产品时,经常遇到相同类型仅尺寸不一样的零件,如果我们把它们都一一三维建模,那工作量是巨大的。最有效的方法是利用零件间的相似性,发挥参数化建模的特长,使用二次开发来实现。以下是对各二次开发工具的介绍:

1.族表

通过族表可以方便的管理具有相似结构的零件,特别适用于标准件的管理。族表工具是通过一个通用零件作为父零件,然后在其基础上对多个参数加以控制生成派生零件。整个族表是通过电子表格来实现的,因此可以称其为表格驱动。

2.用户定义特征

用户定义特征是将若干各子系统特征融合为一个自定义特征,使用时作为一个整体出现。UDF适用特定产品中的特定结构,有利于设计者根据产品特征快速生成几何模型。

3.Pro/Program

Pro/E软件对于每个模型都有一个主要设计步骤和参数列表Pro/Program,它是类似于 BASIC的高级语言构成,用户可以根据设计需要来编辑该模型的Program,使其以一个程序来工作。通过运行该程序,系统通过人机交互的方法来控制系统参数、特征出现与否以及特征的具体尺寸等。

4.J-link

J-link是Pro/E中自带的基于JAVA语言的二次开发工具,是一种面向对象、独立于操作系统平台的开发工具。用户通过JAVA编程实现向Pro/E软件添加功能。

5.Pro/Toolkit

Pro/Toolkit同J-link一样也是Pro/E中自带的二次开发工具。Pro/TOOLKIT

- 6 -

河南机电高等专科学校毕业设计说明书

是针对Pro/E功能强大的二次开发工具。它封装了许多针对Pro/E底层资源调用的库函数与头文件,借助第三方编译环境(C语言、VC++语言等)进行调试。使用Pro/Toolkit开发应用程序包含三个基本步骤:编写源文件(包括资源文件和程序源文件);生成可执行文件;可执行文件在Pro/E中注册并运行。Pro/Toolkit是Pro/E软件自带的二次开发模块,可以直接访问Pro/E软件的最底层数据库资源,这是进行Pro/E二次开发最根本的方法,但要求开发人员具有相当C语言的编程能力;它是PTC公司为Pro/E用户提供的用户化工具箱(18以前的版本为Pro/DEVELOP),该工具箱为用户程序、软件及第三方程序提供了与Pro/E的无缝联接。用户程序和第三方程序是用C语言编写的,Pro/TOOLKIT提供了大量的C语言的库函数,能够使外部应用程序安全有效地访问Pro/E的数据库和应用程序。通过C语言编程及应用程序与Pro/E的无缝集成,

用户和第三方能够在Pro/E系统中增加所需的功能。 上述二次开发工具集中在Pro/E的“工具”菜单中,如图1-1所示。其中“辅助应用程序”主要用来测试

Pro/Toolkit程序。

图1-1 二次开发工具

- 7 -

河南机电高等专科学校毕业设计说明书

第2章 零件造型

从这章开始将用一个实例详细介绍二次开发的完整过程。首先对零件进行三维造型。

2.1 Pro/E的三维造型功能

2.1.1 Pro/E的造型优点

Pro/E的功能包括参数化功能定义、实体零件及组装造型,三维上色实体或线框造型棚完整工程图产生及不同视图(三维造型还可移动,放大或缩小和旋转)。Pro/E是一个功能定义系统,即造型是通过各种不同的设计专用功能来实现,其中包括:筋(Ribs)、槽(Slots)、倒角(Chamfers)和抽空(Shells)等,采用这种手段来建立形体,对于工程师来说是更自然,更直观,无需采用复杂的几何设计方式。这系统的参数比功能是采用符号式的赋予形体尺寸,不 象其他系统是直接指定一些固定数值于形体,这样工程师可任意建立形体上的尺寸和功能之间的关系,任何一个参数改变,其也相关的特征也会自动修正。这种功能使得修改更为方便和可令设计优化更趋完美。造型不单可以在屏幕上显示,还可传送到绘图机上或一些支持 Postscript格式的彩色打印机。Pro/E还可输出三维和二维图形给予其他应用软件,诸如有限元分析及后置处理等,这都是通过标准数据交换格式来实现,用户更可配上Pro/E软件的其它模块或自行利用 C语言编程,以增强软件的功能。它在单用户环境下(没有任何附加模块)具有大部分的设计能力,组装能力(人工)和工程制图能力(不包括ANSI,ISO, DIN或 JIS标准),并且支持符合工业标准的绘图仪(HP,HPGL)和黑白及彩色打印机的二维和三维图形输出。试用Pro/E 可以轻松而快捷的创建三维实体模型,使用户直观的看到零件或装配部件的实际形状和外观。这些实体模型和真实世界中的事物一样,具有密度、质量、体积和重心等属性,这也是Pro/E造型强大的原因。 2.1.2 Pro/E的造型功能

Pro/E功能如下:

1.特征驱动(例如:凸台、槽、倒角、腔、壳等); 2.参数化(参数=尺寸、图样中的特征、载荷、边界条件等);

3.通过零件的特征值之间,载荷/边界条件与特征参数之间(如表面积等)的关系来进行设计。

4.支持大型、复杂组合件的设计(规则排列的系列组件,交替排列,

- 8 -

河南机电高等专科学校毕业设计说明书

Pro/PROGRAM的各种能用零件设计的程序化方法等)。

5.贯穿所有应用的完全相关性(任何一个地方的变动都将引起与之有关的每个地方变动)。其它辅助模块将进一步提高扩展 Pro/E的基本功能。

2.2 创建模型过程

2.2.1进入拉伸界面、设置草绘平面

单击【文件】、【新建】弹出【新建】对话框如图2.1,选择【零件】,取消【使用缺省模板】,在名称框中输入“zhongjianzhou”,点击【确定】。在弹出的【新文件选项】对话框中选中“mmns_part_solid”选项,点击【确定】。

图2-1 新建三维模型对话框

单击下拉菜单【插入】、【拉伸】命令,则开始建立拉伸特征。此时在绘图区的下方会弹出如图2-2的操作控制面板。

图2-2 拉伸命令操作控制面板

单击【放置】、【定义】,会进入设置绘图平面对话框如图2-3,在绘图区选择“FRONT”平面作为草绘平面。单击【草绘】按钮退出。系统弹出如图2-4的

- 9 -

河南机电高等专科学校毕业设计说明书

【参照】对话框,直接单击【关闭】,开始草绘。

图2-3 设定【草绘】对话框 图2-4 设定【参照】对话框 2.2.2 绘制草绘图形

绘制直径为φ34的圆,草绘图形结束后,单击2.3.3 设定深度、创建拉伸实体特征

在 按钮右侧的编辑框中输入拉伸深度值29.8,单击 预览按钮,进行几何预览和特征预览,预览结束,单击 按钮,特征创建结束。

参照其二维图(如图2-5所示)用拉伸的方法完成是三维建模如图2-7所示。

图2-5 中间轴工程图

按钮则退出草绘界面。

单击 按钮进入倒角操控板如图2-6所示,在倒角参数编辑框中输入数值2, 选择轴两端边线如图2-7,单击 按钮完成倒角。再次单击 按钮进入倒角操控板设置倒角参数值为1选择分别选择槽底部靠近轴两端的边线如图2-8a所示。

图2-6 【倒角】控制面板

- 10 -

河南机电高等专科学校毕业设计说明书

图2-7 三维实体模型

完成倒角。单击 按钮进入圆角操控板如图2-9所示,设置圆角半径为1.5,选择两槽底部另外一条边线如图2-8b,单击 按钮完成倒圆角。零件造型完毕。 获取零件各尺寸的标识号,以便在后序编程中使用。在模型树中【右键】单击拉伸1弹出快捷菜单选中【编辑】,在绘图区选中某一尺寸单击【右键】、【属性】,弹出【尺寸属性】对话框,切换到【尺寸文本】,在名称编辑框中的数值部分即为尺寸标识号,用相同方法获得各尺寸的标识号,为各尺寸设置变量,其中部分尺寸值相同,设置为一个变量,具体如表2-1所示。

图2-8a 槽端尺寸 图2-8b 槽底尺寸

图2-9 【圆角】控制面板

- 11 -

河南机电高等专科学校毕业设计说明书

表2-1 尺寸标识号与变量对照表

各尺寸名称 中间段长 两端段长 两端段直径 中间段直径 槽段长 槽段直径 两端倒角 槽段倒角 槽段圆角 尺寸标识号 4 0 ,8 1,9 5 2,6 3,7 10, 11 12,13 14,15 变量 ml sl sd md cl cd sda cda cy

- 12 -

河南机电高等专科学校毕业设计说明书

第3章 轴的参数化设计

本章主要介绍如何使用VC的MFC类库来开发Pro/Toolkit对话框应用程序。用VC开发程序时,CDialog类是使用频率较高的MFC对象。

3.1 菜单的添加

由于该对话框通过菜单来调用,所以需要在Pro/E上添加一个菜单,并给菜单添加一个动作函数。可以把这个菜单挂在Pro/E的【工具】菜单下,菜单的名称为【中间轴】。要添加一个菜单,必须先建立一个信息资源文件。

(1)在【项目】文件夹zhongjianzh下面新建一个文件夹text,然后在该文件夹内建两个文件夹chinese_cn和usascii;

(2)在这两个文件夹内分别创建文件message.txt,并在两个文件里面输入: Newmdl 中间轴 # #

Usr Button For New Mdl 用于模型新建的用户菜单 # #

注意“#”必须在英文格式下输入,否则将无法显示菜单。

编辑好菜单资源文件后,就可以编写程序来添加自定义菜单。添加菜单的操作在user_initialize()内完成。在程序主文件zhongjianzh.cpp里面自定义一个菜单的动作函数:

#include \

void MenuNewMdl();//菜单的动作函数

再添加一个菜单访问函数,这个函数是用来控制菜单显示的,即什么情况下可以让菜单显示,什么情况下让菜单无效。这个状态有访问状态函数来控制,建一个访问控制函数。

static uiCmdAccessState UsrAccessDefault(uiCmdAccessMode access_mode) { }

- 13 -

return(ACCESS_AVAILABLE);//返回可用,即任何情况下这个菜单都有效

河南机电高等专科学校毕业设计说明书

最终项目主文件zhongjianzh.cpp如下:

// zhongjianzh.cpp : 定义 DLL 的初始化例程。 //

#include \#include \#include \//Pro/Toolkit的头文件 #include \#include \#include \#include \#include \#include \#include \#include \#include \#include \#include \#include \#include \#include \#include \#include \#include \#include \#include \#include \

void MenuNewMdl();//声明菜单动作函数函数 zhongjianzhdlg dlg;//实例化对话框 #ifdef _DEBUG

#define new DEBUG_NEW

- 14 -

河南机电高等专科学校毕业设计说明书

#endif

static uiCmdAccessState UsrAccessDefault(uiCmdAccessMode access_mode) { return(ACCESS_AVAILABLE);

} // // 注意! //

// 如果此 DLL 动态链接到 MFC // DLL,从此 DLL 导出并

// 调入 MFC 的任何函数在函数的最前面 // 都必须添加 AFX_MANAGE_STATE 宏。 // // 例如: // // extern \ // { // AFX_MANAGE_STATE(AfxGetStaticModuleState());// // 此处为普通函数体 // }

// // 此宏先于任何 MFC 调用

// 出现在每个函数中十分重要。这意味着 // 它必须作为函数中的第一个语句 // 出现,甚至先于所有对象变量声明, // 这是因为它们的构造函数可能生成 MFC // DLL 调用。

// // 有关其他详细信息,

//

请参阅 MFC 技术说明 33 和 58。 - 15 -

河南机电高等专科学校毕业设计说明书

//

// CzhongjianzhApp

BEGIN_MESSAGE_MAP(CzhongjianzhApp, CWinApp) END_MESSAGE_MAP() // CzhongjianzhApp 构造

CzhongjianzhApp::CzhongjianzhApp() { // TODO: 在此处添加构造代码,

// 将所有重要的初始化放置在 InitInstance 中

}

// 唯一的一个 CzhongjianzhApp 对象 CzhongjianzhApp theApp; // CzhongjianzhApp 初始化

BOOL CzhongjianzhApp::InitInstance() { CWinApp::InitInstance(); return TRUE;

}

extern\

int argc,

char* argv[], char* version, char* build,

wchar_t errbuf[80])

{ ProError status; ProFileName Msg;

uiCmdCmdId uiCmdNewMdl;

ProStringToWstring(Msg,\

status=ProCmdActionAdd(\新建全新对象命令\

- 16 -

河南机电高等专科学校毕业设计说明书

uiCmdPrioDefault,UsrAccessDefault,PRO_B_TRUE,PRO_B_TRUE,&

uiCmdNewMdl); //返回动作函数的标识给参数uiCmdNewMdl status=ProMenubarmenuPushbuttonAdd(\

\

Mdl\//将动作函数与菜单联系起来 }

extern\{ }

void MenuNewMdl() {

ProMdl mdl;

ProPath a; return 0;

//将零件三维造型图的位置路径赋给参数a

ProStringToWstring(a,\图形\\\\zhongjianzhou.prt\

//打开零件三维造型图

ProMdlLoad(a,PRO_MDL_UNUSED,PRO_B_FALSE,&mdl); ProMdlDisplay(mdl);

AFX_MANAGE_STATE(AfxGetStaticModuleState()); }

dlg.DoModal();//模式方式显示对话框

3.2 MFC对话框的建立及运行

3.2.1 新建一个MFC DLL的项目

新建一个名称为“zhongjianzhou”的MFC DLL项目,并设置好头文件、库文件、和项目的属性,然后在项目的主文件zhongjianzhou.cpp内添加常用的

头文件、初始化函数和终止函数。 图3-1 MFC对话框

- 17 -

河南机电高等专科学校毕业设计说明书

3.2.2 创建对话框资源

在VC的【资源视图】里面添加对话框资源并在对话框上添加3个Button按钮、9个编辑控件(Edit Control)、9个静态文本控件(Static Text),将对话框的Caption属性改为“毕业设计”,如图3-1所示,各控件的ID及属性设置如表3-1所示。

表3-1 对话框控件设置

控件类型 Button Control Edit Control ID 属性设置 控件类型 Static Text ID IDC_STATIC 属性设置 Caption:中间段长ml: Caption:两端段长sl: Caption:两端段直径sd: Caption:中Edit Control IDC_sd Static Text IDC_STATIC 间段直径md: Edit Control IDC_md Static Text IDC_STATIC Caption:槽段长cl: Caption:槽段直径cd: Caption:两Edit Control IDC_cd Static Text IDC_STATIC 端段倒角sda: Edit Control IDC_sda Static Text IDC_STATIC Caption:槽段倒角cda: Caption:槽段圆角cy: IDC_zaisheng Caption:再生 IDC_ml Static Text IDC_STATIC Edit Control IDC_sl Static Text IDC_STATIC Edit Control IDC_cl Static Text IDC_STATIC Edit Control Edit Control IDC_cda IDC_cy Static Text IDC_STATIC

3.2.3 创建对话框类

(1)设计好对话框界面后,就可以创建一个对话框类了。方法是双击设计好

- 18 -

河南机电高等专科学校毕业设计说明书

的对话框窗口,然后输入对话框类的名称zhongjianzhoudlg,如图3-2所示。

图3-2 创建对话框类

(2)给对话框窗口上的编辑控件添加double类型的变量如图3-3所示。

图3-3 添加成员变量对话框

(3)用相同的方法给各个编辑框添加double类型。

(4)分别双击【确定】、【取消】和【再生】按钮,给按钮添加事务处理程

- 19 -

河南机电高等专科学校毕业设计说明书

序。

(5)给类添加两个成员函数:

void input(double x); // 将编辑框中的数值传递给编辑框变量 void sets(double d, int n); // 将编辑框变量的值赋给对应的尺寸值

3.3 整个参数化的实现

3.3.1 编写代码,实现每个函数的功能

设置好类的成员变量成员函数之后,就可以编写代码以实现每个函数的功能,具体如下:

(1)对话框类头文件 #pragma once

// zhongjianzhdlg 对话框

class zhongjianzhdlg : public CDialog { public:

zhongjianzhdlg(CWnd* pParent = NULL); // 标准构造函数 virtual ~zhongjianzhdlg();

DECLARE_DYNAMIC(zhongjianzhdlg)

// 对话框数据

enum { IDD = IDD_biyesheji };

protected:

virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV 支持

DECLARE_MESSAGE_MAP()

public:

afx_msg void OnBnClickedOk(); afx_msg void OnBnClickedCancel(); // 中间段长 double ml; // 两端段长 double sl;

- 20 -

河南机电高等专科学校毕业设计说明书

// 两端段直径 double sd; // 中间段直径 double md; // 槽段长 double cl; // 槽段直径 double cd; // 两端段倒角 double sda; // 槽段倒角 double cda; // 槽段圆角 double cy;

// 将编辑框中的数值传递给编辑框变量 void input(double x);

// 将编辑框变量的值赋给对应的尺寸值 void sets(double d, int n);

afx_msg void OnBnClickedzaisheng();

};

2)对话框类程序主文件:zhongjianzhdlg.cpp // zhongjianzhdlg.cpp : 实现文件

#include \#include \#include \#include \#include \#include \#include \#include \#include \

- 21 -

河南机电高等专科学校毕业设计说明书

#include \#include \// zhongjianzhdlg 对话框

IMPLEMENT_DYNAMIC(zhongjianzhdlg, CDialog) zhongjianzhdlg::zhongjianzhdlg(CWnd* pParent /*=NULL*/) : CDialog(zhongjianzhdlg::IDD, pParent) , ml(241) , sl(29.8) , sd(34) , md(35) , cl(5) , cd(32) , sda(2) , cda(1) , cy(1)

{ }

zhongjianzhdlg::~zhongjianzhdlg() { }

void zhongjianzhdlg::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); DDX_Text(pDX, IDC_ml, ml); DDX_Text(pDX, IDC_sl, sl); DDX_Text(pDX, IDC_sd, sd); DDX_Text(pDX, IDC_md, md); DDX_Text(pDX, IDC_cl, cl); DDX_Text(pDX, IDC_cd, cd); DDX_Text(pDX, IDC_sda, sda);

DDX_Text(pDX, IDC_cda, cda);

- 22 -

河南机电高等专科学校毕业设计说明书

}

DDX_Text(pDX, IDC_cy, cy);

BEGIN_MESSAGE_MAP(zhongjianzhdlg, CDialog)

ON_BN_CLICKED(IDOK, OnBnClickedOk)

ON_BN_CLICKED(IDCANCEL, OnBnClickedCancel) ON_BN_CLICKED(IDC_zaisheng, OnBnClickedzaisheng)

END_MESSAGE_MAP() // zhongjianzhdlg 消息处理程序

/************************************************************* /*【确定】的事务处理函数

/************************************************************* void zhongjianzhdlg::OnBnClickedOk() {

input(sl); input(sd);

input(cl);

input(cd); input(ml); input(md); input(cl); input(cd); input(sl); input(sd); input(sda); input(sda); input(cda); input(cda); input(cy); input(cy); sets(sl,0); sets(sd,1);

- 23 -

河南机电高等专科学校毕业设计说明书

sets(cl,2); sets(cd,3); sets(ml,4); sets(md,5); sets(cl,6); sets(cd,7); sets(sl,8); sets(sd,9); sets(sda,10); sets(sda,11); sets(cda,12); sets(cda,13); sets(cy,14);

sets(cy,15);

int p_window_id;

ProWindowCurrentGet(&p_window_id); ProWindowActivate(p_window_id); // TODO: 在此添加控件通知处理程序代码 OnOK();

}

void zhongjianzhdlg::OnBnClickedCancel() { // TODO: 在此添加控件通知处理程序代码 OnCancel();

}

// 将编辑框中的数值传递给编辑框变量 void zhongjianzhdlg::input(double x) { UpdateData(true);

}

// 将编辑框变量的值赋给对应的尺寸值

- 24 -

河南机电高等专科学校毕业设计说明书

void zhongjianzhdlg::sets(double d, int n) {

//d为编辑框变量值,n为相应尺寸的尺寸标号

ProMdl p_handle;

ProModelitem p_handle1;

ProMdlCurrentGet(&p_handle);//获得当前窗口中的模型句柄

ProModelitemInit(p_handle,n,PRO_DIMENSION,&p_handle1);//根据

类型、所属模型以及项的标示号来获得模型项

}

void zhongjianzhdlg::OnBnClickedzaisheng() {

// TODO: 在此添加控件通知处理程序代码

ProMdl p_handle;

ProMdlCurrentGet(&p_handle);

ProSolidRegenerate((ProSolid)p_handle,PRO_REGEN_NO_FLAGS);

//重生或更新实体对象

}

3.3.2 编译程序

程序编好后,就可以生成DLL文件。单击【生成解决方案】即可进行编译生成项目。

3.3.3 编写注册文件

编写注册文件zhongjianzh.dat如下: Name zhongjianzh startup dll

exec_file E:\\程序\\zhongjianzh\\zhongjianzh\\Debug\\zhongjianzh.dll text_dir E:\\程序\\zhongjianzh\\zhongjianzh\\text allow_stop true revision Wildfire End

3.3.4 注册运行程序

ProDimensionValueSet(&p_handle1,d); //设置指定尺寸对象的值

- 25 -

河南机电高等专科学校毕业设计说明书

通过Pro/E的【辅助应用程序】菜单打开文件,并启动程序,在菜单【工具】下可以看到新添加的【中间轴】项,如图3-4所示。

图3-4 添加【中间轴】项

单击【中间轴】,会弹出中间轴的对话框,同时调入前面所绘的零件图如图3-5所示,修改其中一个编辑框值,例如修改两端端直径为340,单击【确定】,再单击【再生】,零件可以按照新尺寸重新生成如图3-6所示。

图3-5 中间轴对话框 图3-6 再生零件图

- 26 -

河南机电高等专科学校毕业设计说明书

结论

本次设计完成了卷筒中间轴的参数化设计,主要包含以下几点内容: 1.完成了一项菜单的添加。在菜单【工具】下新添加了【中间轴】项。 2.完成了MFC对话框的建立。在单击菜单【工具】下的【中间轴】项后会弹出一个对话框。包含:中间段长、两端段长、两端段直径、中间段直径、槽段长、槽段直径、两端段倒角、槽段倒角、槽段圆角九个参数对话框。

3.实现了对已有图形的调用。当单击【中间轴】项后不仅会弹出对话框,而且还会调用原有的中间轴图形。

4.实现了对原有图形的修改。当对对话框内的数据做出合理的修改后会生成一个新的图形。

不足之处是未能实现对整个卷筒的参数化设计,实现的功能有限。可以再后续设计中添加卷筒菜单项。再单击【卷筒】项后,会产生卷筒外壳、倒绳器、弹性联轴器、中间轴卷筒部件等下拉菜单。再单击这些下拉菜单的某一项后会弹出对话框,以实现对这些零件的修改。最后生成一个全新的卷筒。

- 27 -

河南机电高等专科学校毕业设计说明书

致 谢

本文是在老师陈芳的悉心指导下完成的。从题目的确定,到关键问题的解决,直至取得目前阶段性的成果,都倾注了老师大量的心血。老师严谨求实的治学态度、高度负责的敬业精神、渊博的学识、博大的胸怀、开拓的视野、敏锐的洞察力,都给了我深深的影响和启迪,使我无论在学习上还是在思想上,都受益匪浅。衷心感谢老师对我在学习上的关心和帮助。值此成文之际,特此向老师致以衷心的感谢和崇高的敬意。

- 28 -

河南机电高等专科学校毕业设计说明书

参考文献

[1] 吴立军.Pro/Engineer二次开发技术基础.北京:电子工业出版社,2006 [2] JohnE.swanke visual C++ MFC扩展编程实例.北京:机械工业出版社,1999 [3] 孙小捞等.Pro/EngineerWildfire4.中文版教程.北京:人民邮电出版社2010 [4] 郑莉等.C++教程.人民邮电出版社,2010

[5] Stanley.B. Lippman C++入门.北京:机械工业出版社,2002

- 29 -

本文来源:https://www.bwwdw.com/article/0mia.html

Top