毕业设计论文
更新时间: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 -
正在阅读:
毕业设计论文03-01
刺猬 教案12-05
DQ-014-101A(就地控制柜)检修文件包 - 图文03-15
关于XXXX2011年财政预算执行情况03-20
转正自我鉴定02-24
GCP相关术语解释03-08
卫生监督所“十三五”发展规划03-17
伤仲永03-17
- 2009中西部家居博览会总体策划
- 2009 Revit 1级工程师学生用
- 天津地铁建设工程试验检测机构管理办法(TJDT-ZY-AQ-29)
- 新四年级数学暑期班第七次教案
- 机械制造企业隐患排查治理检查表 - 图文
- 2008届全国百套高考数学模拟试题分类汇编-103概率与统计解答题 -
- 职场健身防病试题及答案
- Excel操作技巧大全II - --数据输入和编辑技巧
- 南开大学2018春季《行政管理学》离线作业考核答案
- 2015年医师定考简易程序试卷及答案
- 新《预算法》对行政事业单位预算管理的挑战解读
- 轴的课件
- 电动汽车充电桩设计 毕业论文
- 必修2、选修2-1、1-1期末模拟试题2
- 桌面远程运维管理系统实施-可行性研究报告120306
- 西气东输水土保持工程工作总结 - 图文
- 正宁县基本县情及经济社会发展情况简介
- SATWE参数设置(巨详细)
- 儒家法思想研究综述
- 生活家政服务电子商务平台建设运营整合方案书【审报完稿】
- 毕业设计
- 论文