基于PROE二次开发的齿轮参数化设计系统方案.doc
《基于PROE二次开发的齿轮参数化设计系统方案.doc》由会员分享,可在线阅读,更多相关《基于PROE二次开发的齿轮参数化设计系统方案.doc(40页珍藏版)》请在三一文库上搜索。
1、西南交通大学机械CAD课程大作业设计说明书设计题目:基于PROE二次开发的齿轮参数化设计系统指导熊鹰组员信息:20XX12月目录简介2一、研究现状3二、设计思路42.1 选定平台42.2 Pro/E+Visual Studio平台调试52.3 编译及调试事项5三、系统结构6四、关键功能实现74.1 齿轮参数化建模过程74.2 程序关键功能实现114.2.1 主程序进入流程114.2.2 对话框与具体实现方法134.2.3 建立模型方法144.2.4 读取模型参数方法17五、系统使用方法185.1 安装系统185.2 使用方法20六、总结与展望22七、附录22参考文献40简 介Pro/Engin
2、eer操作软件是美国参数技术公司PTC旗下的CAD/CAM/CAE一体化的三维软件。Pro/Engineer软件以参数化著称,是参数化技术的最早应用者,在目前的三维造型软件领域中占有着重要地位,Pro/Engineer作为当今世界机械CAD/CAE/CAM领域的新标准而得到业界的认可和推广。是现今主流的CAD/CAM/CAE软件之一,特别是在国产品设计领域占据重要位置。我们以Pro/E Wildfire 4.0为基础进行二次开发,建立了符合GB的齿轮模型,并在Visual Studio 2005平台上编写了齿轮参数化设计程序,界面友好。设置模数等参数即可快速地生成符合GB的齿轮模型,极提高了齿
3、轮设计效率。一、 研究现状Pro/E平台:MONLibs号称是国最全的标准件库,其中的齿轮库使用了名为PTC国家标准件库中的齿轮模型。这些齿轮模型带有参数,并自带Pro/Program编写的输入函数。该库并未添加齿轮参数设置的容。图1.1 MONLibs标准件库就目前互联网上的免费资源而言,Pro/E平台下的齿轮参数化设计程序还是较为常见,但其大多界面和功能都较为简单。Solidworks平台:Solidworks平台下的GearTrax是享有盛名的齿轮参数化设计系统。能够详细地设置齿轮的各个参数,绘制动态的啮合图,且能够修改该程序创建的模型。但最大的缺点是该程序制作的齿轮模型的渐开线是分段取
4、值后连线而成,对系统资源的占用相当高,曲线分段化后给人以不完美的感觉体验。图1.2 Solidworks平台下的GearTrax由此,自主开发一套齿轮参数化设计程序还是有其实用性。二、 设计思路2.1 选定平台最初我们打算使用Pro/E的Pro/Program模块进行设计。但在研究了Pro/Program的共11条函数1,并了解其功能后,我们认为Pro/Program虽然能够实现功能,但界面不够友好。图2.1 Pro/Program的使用步骤还是不够友好之后,我们决定使用Pro/Toolkit,进行Pro/E的二次开发。2.2 Pro/E+Visual Studio平台调试开始使用的是Creo
5、 Elements/Pro 5.0。我们对照二代龙震工作室的Pro/Toolkit Wildfire 2.0插件设计2,搭配Visual C+6.0进行调试。但遗憾的是,虽然Helloworld.dll的例子可以运行,但编译环境却怎么也调不出来,例子都无法编译。我们尝试了使用nmake命令,与可视化环境,均无法编译。经过检查,随书光盘例子的代码存在部分错误,修正后依然无法通过编译。之后,我们参考了王伟的ProE野火版TOOLKIT二次开发入门与进阶3,文中提及一般来说Visual Studio可以编译Pro/E 2.0至4.0的程序,而Visual C+要编译Pro/E 4.0的程序,则环境设
6、置过于复杂。在换用Visual Studio 2010后,Creo Elements/Pro 5.0的Toolkit官方例程及二代龙震的例程依然无法编译。代码编译已经通过,但各lib之间依然存在问题。在参考了大量文献及源代码后,我们决定降级平台,安装Pro/E 4.0+Visual Studio 2005进行编译。在编译成功后,我们再采取单一变量法实验并写成了一个Excel表格以总结各编译参数对于编译结果的影响,详见附录1 proe二次开发总结 by Tom Willow.xls。2.3 编译及调试事项使用库:wsock32.libVS系统库必需mpr.libVS系统库必需psapi.lib系
7、统进程状态控制库必需netapi32.libWindows网络应用接口库Creo1.0必需protk_dllmd.lib早期:prodev_dllmd.libProe4.0+VS2005,Debug/Release均可注册文件protk.dat文件名不可变容:NAME你好世界可用中文,与dll名称等均无关EXEC_FILEC:ch03Helloworld.dll如果开头是.或无盘符则自动寻找工作路径$MACHINE_TYPE返回i486_ntTEXT_DIRC:ch03text1. 不可无该项目。2. 文本并不嵌入程序,而是在proe第一次执行该程序时载入。之后修改文本须在proe重启并再次执
8、行程序时生效。3. 若proe启动后,第一次运行程序时没找到text,程序不报错。但之后即便修复了text程序依然不运行。菜单不更改,消息不输出。STARTUPdllDll模式:dll多进程模式:spawnALLOW_STOPTRUE允许停止UNICODE_ENCODINGFALSE不支持UNICODE选FALSE,较老的程序需有此项方可运行ENDDELAY_START是否延迟调用应用程序REVISION2001Pro/TOOLKIT版本号,若没有则Pro/E自动寻找版本号同一个注册文件中可以容纳多个应用程序。若将protk.dat文件放在Pro/E工作目录下,则Pro/E启动时自动加载。三、
9、 系统结构系统名称为GBGear,即国标齿轮的意思。工程下包含stdafx和GBGear两个头文件,其包含文件再包含系统标准包含文件及资源。具体结构如图3.1。GBGear工程stdafx.cppstdafx.h标准系统包含文件GBGear.cppGBGear.h主程序DlgGear类Resourse.h资源头文件GBGear.rc资源文件IDD_DIALOG1程序主界面图3.1 系统结构文件结构如图3.2所示。-界面头文件-主程序头文件-资源头文件-界面源文件-主程序头文件-资源文件,包含程序界面图3.2 文件结构四、 关键功能实现4.1 齿轮参数化建模过程1.建立各参数。图4.1 建立各参
10、数2.在关系中加入运算齿根圆等四个圆半径的公式。ha=*mhf=*mr=z*m/2ra=r+harb=r*cosrf=r-hf3.草绘四个圆,并加入关系。图4.2 加入草绘关系4.加入计算渐开线偏移角的关系。ee=pi*m/2-2*x*m*tane_half_reg=ee/2/re_half_deg=e_half_reg*180/piss=pi*m/2+2*x*m*tans_half_reg=ss/2/rs_half_deg=s_half_reg*180/pitheta=tanacos-acos*pi/180偏移角弧度=-偏移角角度=偏移角弧度*180/pi计算偏移角是为了使渐开线最终围成的齿
11、位于正中间,再加入位于齿隙正中的参考平面后,可便于装配时定位,以达到良好的仿真效果,并减少干涉。5.加入基于圆柱坐标系的渐开线,再镜像。图4.3 渐开线镜像前方程:r=rb/costheta=90+tan-t*50*pi/180*180/pi+偏移角角度z=06.拉伸齿根圆,厚度为b。图4.4 拉伸齿根圆7.绘制齿形草绘,并加入关系。图4.5 绘制齿形草绘8.阵列齿形,并加入关系。图4.6 阵列齿形9.加入参考平面,并加入关系。该参考平面用于装配时定位初始角度。图4.7 加入参考平面如此,即完成了直齿圆柱齿轮的参数化建模。图4.8 直齿圆柱齿轮参数化建模模型4.2 程序关键功能实现4.2.1
12、主程序进入流程由于Pro/Toolkit应用程序工作模式有两种同步模式Synchronous mode和异步模式Asynchronous mode。而同步模式又包含两种模式动态库模式DLL和多进程模式Multiprocess mode。我们这次是针对同步模式中的动态库模式DLL。简单地说,就是Pro/E通过protk.dat文件寻找dll和text的目录,然后通过dll中的user_initialize函数进入二次开发程序。其中text目录用于供程序读取菜单栏,通知信息等文字数据。主程序进入函数流程如图4.8。ProMenubarMenuAdd加入新工具栏项ProCmdActionAdd加入处
13、理事件ProMenubarmenuPushbuttonAdd加入新工具栏项若无ProCmdActionAdd加入工具栏按钮,则工具栏无法显示user_initialize Pro/E标准进入函数UserAccessTestMenu命令传入状态函数名称项引用txt文件CyGear函数图4.9 主程序进入函数流程图主程序进入函数源代码:externCint user_initialize /AfxEnableControlContainer;ProError status;ProName menufil;uiCmdCmdId cmd_id;ProStringToWstring;status = P
14、roMenubarMenuAdd;/名字GBGearstatus = ProCmdActionAddCyGear,CyGear,uiCmdPrioDefault,UserAccessTestMenu,PRO_B_TRUE,PRO_B_TRUE,&cmd_id;status = ProMenubarmenuPushbuttonAdd;ProStringToWstring;ProMessageDisplay;return;命令传入状态函数源代码:static uiCmdAccessState UserAccessTestMenureturn ;在命令处理事件添加函数ProCmdActionAdd中
15、调用了CyGear函数,将函数加载至工具栏按钮。ProCmdActionAddCyGear,CyGear,uiCmdPrioDefault,UserAccessTestMenu, PRO_B_TRUE,PRO_B_TRUE,&cmd_id;CyGear函数:void CyGearAFX_MANAGE_STATEAfxGetStaticModuleState; DlgGear DlgGear; DlgGear.DoModal;CyGear函数中创建了一个DlgGear对象,该对象由DlgGear.cpp及DlgGear.h支持,用于显示对话框,及完成相关命令。4.2.2 对话框与具体实现方法在资
16、源文件GBGear.rc中,新建了一个IDD_DIALOG1对话框资源。并添加控件,布局如图。图4.10 对话框资源IDD_DIALOG1为对话框添加类DlgGear。在DlgGear.h头文件中,可以找到枚举型IDD变量,即为引用了对话框资源。class DlgGear : public CDialogDECLARE_DYNAMICpublic:DlgGear; / 标准构造函数virtual DlgGear;/ 对话框数据enum IDD = IDD_DIALOG1 ;4.2.3 建立模型方法在按钮中加入OnBnClicked函数处理按下事件,建立模型。void DlgGear:OnBnC
17、lickedBuildProMdl part;ProError err;wchar_t fname255;wcscpy;err = ProMdlRetrieve;/载入fname文件SetGear;其中,cy_gearfilename为一个全局变量,其定义如下:CString cy_gearfilename=LPTCGBGearcylinder_gear.prt;SetGear为一个自定函数,传入ProMdl类型的形参,在函数将该模型参数设置为全局变量中定义的各参数值,并再生模型,激活窗口。下面为SetGear函数流程图:ProModelitemInit初始化模型特征ProParameterI
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 PROE 二次开发 齿轮 参数 设计 系统 方案
