ProE圆锥齿轮参数化建模

合集下载

proe野火版锥形齿轮参数化设计

proe野火版锥形齿轮参数化设计

锥齿1.工具,参数z 本齿轮齿数25 m 模数 3 alpha 压力角20 ha 齿顶高0 hf 齿根高0 h 齿高0 z_asm 与之相啮合的齿轮数45 delta 分锥角0 delta_a 顶锥角0 delta_b 基锥角0 delta_f 根锥角0 d 分度圆直径0 da 齿顶圆直径0 db 基圆直径0 df 齿根圆直径0 hb 齿基高0 rx 锥距0 theta_a 齿顶角0 theta_b 齿基角0 theta_f 齿根角0 ba 齿顶宽0 bb 齿基宽0 bf 齿根宽0 b 齿宽202.工具,关系ha=mhf=1.2mh=2.2*mdelta=atan(z/z_asm)d=m*zdb=d*cos(alpha)da=d+2*ha*cos(delta)df=d-2*hf*cos(delta)hb=(d-db)/(2*cos(delta))rx=d/(2*sin(delta))theta_a=atan(ha/rx)theta_b=atan(hb/rx)theta_f=atan(hf/rx)delta_a=delta+theta_adelta_b=delta-theta_bdelta_f=delta-theta_fba=b/cos(theta_a)bb=b/cos(theta_a)bf=b/cos(theta_a)再生3.创建基准面DTM1 :向右偏移基准面Right ,距离随意工具,关系(假设上步的偏移值为d0 ),则输入 d0=d/(2*tan(delta))确定,再生4.创建轴A1:基准面Top 与Front 相交5.创建点PNT0 :轴A1与基准面DTM1相交6.草绘曲线:Front 为草绘面,Right 为右参考面,以点PNT0为参照,绘制如图1所示黄色7段直线,并标注如图所示的尺寸,大小随意,不用更改工具,关系(假设对应的尺寸ID 如上图红色部分)d1=90d2=deltad3=bd4=df/2d5=db/2d6=d/2d7=da/2确定,再生后如图 2 基准点PNT07.创建基准面DTM2:穿过直线,垂直基准面Front ,如上图标示。

[优质文档]proe参数化锥齿轮的设计

[优质文档]proe参数化锥齿轮的设计

参数化锥齿轮设计1.新建并命名零件的模型zhui_chi_lun,取消使用缺省模板,选取mmns_part_solid,单击“确定”进入零件设计窗口。

图1 图2图32.从“工具”—“参数”,设置锥齿轮参数。

如下图所是:图43.在Front平面草绘齿顶圆,分度圆,基圆,齿根圆,并在关系中设置四个圆的参数。

图5图64.绘制渐开线。

单击,从方程,选取坐标系,迪卡尔,单击“确定”。

进入记事本编辑器,输入渐开线参数如下:图7保存并退出记事本,查看预览渐开线,如下图所示,单击“确定”,完成渐开线的绘制。

图85.以渐开线为草绘线拉伸曲面,并在“关系”中定义拉伸长度。

并单击重生成试图。

图9 图10图11图12 图136.延伸曲面如下图所示:“编辑”—“延伸”,在“关系”中定义延伸长度为d0/2。

图14 图157.创建如图16所示的基准轴A_1:图16 图178.创建如图17所示的基准点PNT0:9.过基准轴A_1和基准点PNT0创建如图18所示的基准面DTM1:10.过基准轴A_1和基准面DTM1创建如图20所示的基准面DTM2,参照步骤5创建上一步基准平面旋转角度关系式D9=90/z。

11.以基准面DTM2镜像步骤6延伸后形成的曲面。

如图21所示:图18 图19图20 图21 12.以基圆为轮廓线拉伸曲面并在关系中设置其拉伸长度为b。

如图23所示:图22 图23 13.合并曲面。

如图24、25所示:图24 图25 14.创建如图24所示的基准点和基准轴。

图24 图2515.以齿顶圆为轮廓线拉伸曲面并在关系中设置其拉伸长度为b。

如图26所示:图26 图2716.创建旋转复制特征,使其旋转角大小等于long,如图27所示:17.草绘基准曲线,如图28所示:图28 图29 18.创建旋转特征。

如图29、30所示:图30 图3119.创建扫描混合切削特征。

如图32所示:图32 图33 20.创建旋转切削特征,如图33所示:21.创建旋转切削特征,如图34所示:图34 图35 22.移动复制齿特征。

Pro-e 齿轮教程

Pro-e 齿轮教程

Pro-e 齿轮教程第一步新建一个文件File > New... > 出现新建文件对话框> 输入新文件名:gear > OK第二步建立第一条曲线> Sketch | Done> 选择绘图平面:FRONT> OK> Top > 选择参考平面:TOP> 绘制如图剖面>> OK> 完成第一条曲线的绘制第三步修改曲线的名称Set Up > Name > Feature > 在模型树选择曲线> 输入新的名称:PITCH_DIAMETER> Done> 回到PART菜单第四步修改尺寸的名称Modify > 在模型树选择曲线> 在零件窗口出现尺寸,如图> DimCosmetics > Symbol > 选择尺寸,如图> 输入新的名称:PCD> Done> Done> 回到PART菜单第五步建立两个参数Set up > Parameters > Part > Create > Real Number> 输入第一个参数名称:m> 直接回车(由于这个参数的值是由方程控制的,所以这里不用输入数值) > Real Number> 输入第二个参数名称:no_of_teeth> 输入数值:25> Done/Return> Done> 回到PART菜单第六步输入方程式Relations > Add> 输入方程式:m=PCD/no_of_teeth > 回车> 再一次回车以结束方程式的输入> Done> 回到PART菜单第七步绘制第二条曲线> Sketch | Done> Use Prev> Okay> 绘制如图剖面>> OK> 完成第二条曲线的绘制第八步修改第二条曲线的名称Set Up > Name > Feature > 在模型树选择第二条曲线> 输入新的名称:ADDENDUM_DIAMETER> Done> 回到PART菜单第九步修改第二条曲线尺寸的名称Modify > 在模型树选择第二条曲线> 在零件窗口出现曲线的尺寸> DimCosmetics > Symbol > 选择第二条曲线的尺寸> 输入新尺寸名称:ADD_DIAMETER> Done> Done> 回到PART菜单第十步输入第二条方程式Relations > 选择第二条曲线> 这时零件窗口显示零件尺寸的名称,如图> Add> 输入方程式:ADD_DIAMETER=PCD+2*m > 回车> 再一次回车以结束方程式的输入> Done> 回到PART菜单第十一步绘制第三条曲线> Sketch | Done> Use Prev> Okay> 绘制如图剖面>> OK> 完成第三条曲线的绘制第十二步修改第三条曲线的名称Set Up > Name > Feature > 在模型树选择第三条曲线> 输入新的名称:DEDDENDUM_DIAMETER> Done> 回到PART菜单第十三步修改第三条曲线尺寸的名称Modify > 在模型树选择第三条曲线> 在零件窗口出现曲线的尺寸,如图> DimCosmetics > Symbol > 如图所示尺寸> 输入新尺寸名称:DED_DIAMETER> Done> Done> 回到PART菜单第十四步输入第三条方程式Relations > 选择第三条曲线> 这时零件窗口显示零件尺寸的名称,如图> Add> 输入方程式:DED_DIAMETER=PCD-2*(m+(3.1415*m/20)) > 回车> 再一次回车以结束方程式的输入> Done> 回到PART菜单第十五步绘制第四条曲线> Sketch | Done> Use Prev> Okay> 绘制如图剖面>> OK> 完成第四条曲线的绘制第十六步修改第四条曲线的名称Set Up > Name > Feature > 在模型树选择第四条曲线> 输入新的名称:BASE_DIAMETER> Done> 回到PART菜单第十七步修改第四条曲线尺寸的名称Modify > 在模型树选择第四条曲线> 在零件窗口出现曲线的尺寸,如图> DimCosmetics > Symbol > 如图所示尺寸>输入新尺寸名称:BASE_DIAMETER> Done> Done> 回到PART菜单第十八步建立一个参数Set up > Parameters > Part > Create > Real Number> 输入参数名称:pressure_angle> 输入数值:20> Done/Return> Done> 回到PART菜单第十九步输入第四条方程式Relations > 选择第四条曲线> 这时零件窗口显示零件尺寸的名称,如图> Add> 输入方程式:BASE_DIAMETER=PCD*cos(pressure_angle) > 回车> 再一次回车以结束方程式的输入> Done> 回到PART菜单第二十步建立第五条曲线> Sketch | Done> Use Prev> Okay> 绘制如图剖面>> OK> 完成第五条曲线的绘制第二十一步修改第五条曲线的名称Set Up > Name > Feature > 在模型树选择第五条曲线> 输入新的名称:TOOTH> Done> 回到PART菜单第二十二步修改第五条曲线尺寸的名称Modify > 在模型树选择第五条曲线> 在零件窗口出现曲线的尺寸> DimCosmetics > Symbol > 分别将对应的尺寸改成如图所示的名称> Done> Done> 回到PART菜单第二十三步建立方程式Relations > 选择第五条曲线> 这时零件窗口显示零件尺寸的名称,如图> Add> 输入方程式:TOOTH_RAD=PCD/8 > 回车> HALF_TOOTH_TK=3.1415*m/4 > 回车> TIP_RAD=3.1415*m/8 > 回车> 再一次回车以结束方程式的输入> Done> 回到PART菜单第二十四步建立两个参数Set up > Parameters > Part > Create > Real Number> 输入参数名称:helix_angle> 输入数值:15> Real Number> 输入参数名称:face_width> 输入数值:100> Done/Return> Done> 回到PART菜单第二十五步复制曲线Feature > Copy > Move | Select | Independent | Done> 选择TOOTH曲线> Done> Translate> Plane> 选择FRONT平面> Flip | Okay> 输入数值:face_width*cos(helix_angle)/3(注:这里可以用方程式代替,这里为了简便,就不写出来了,但我已给出完整的公式,你只需将公式代出相应的尺寸名称就可以了。

proe参数化建模简介(齿轮建模实例)

proe参数化建模简介(齿轮建模实例)

proe参数化建模简介(1)本教程分两部分,第一部分主要介绍参数化建模的相关概念和方法,包括参数的概念、参数的设置、关系的概念、关系的类型、如何添加关系以及如何使用关系创建简单的参数化零件(以齿轮为例)。

第二部分介绍参数化建模的其他方法:如族表的应用、如何使用UDF(用户自定义特征)、如何使用Pro/Program创建参数化零件。

(后一部分要等一段时间了,呵呵)参数化设计是proe重点强调的设计理念。

参数是参数化设计的核心概念,在一个模型中,参数是通过“尺寸”的形式来体现的。

参数化设计的突出有点在于可以通过变更参数的方法来方便的修改设计意图,从而修改设计意图。

关系式是参数化设计中的另外一项重要内容,它体现了参数之间相互制约的“父子”关系。

所以,首先要了解proe中参数和关系的相关理论。

一、什么是参数?参数有两个含义:●一是提供设计对象的附加信息,是参数化设计的重要要素之一。

参数和模型一起存储,参数可以标明不同模型的属性。

例如在一个“族表”中创建参数“成本”后,对于该族表的不同实例可以设置不同的值,以示区别。

●二是配合关系的使用来创建参数化模型,通过变更参数的数值来变更模型的形状和大小。

二、如何设置参数在零件模式下,单击菜单“工具”——参数,即可打开参数对话框,使用该对话框可添加或编辑一些参数。

1.参数的组成(1)名称:参数的名称和标识,用于区分不同的参数,是引用参数的依据。

注意:用于关系的参数必须以字母开头,不区分大小写,参数名不能包含如下非法字符:!、”、@和#等。

(2)类型:指定参数的类型∙a)整数:整型数据∙b)实数:实数型数据∙c)字符型:字符型数据∙d)是否:布尔型数据。

(3)数值:为参数设置一个初始值,该值可以在随后的设计中修改(4)指定:选中该复选框可以使参数在PDM(Product Data Management,产品数据管理)系统中可见(5)访问:为参数设置访问权限。

∙a)完全:无限制的访问权,用户可以随意访问参数∙b)限制:具有限制权限的参数∙c)锁定:锁定的参数,这些参数不能随意更改,通常由关系式确定。

齿轮参数化设计PROE

齿轮参数化设计PROE

齿轮参数化设计PROE
1.新建文件夹chilui
2.设置参数工具/参数单击
3.草绘基准曲线单击先FRONT平面为草绘平面绘制四条圆曲线,尺寸任意
4.设置关系工具/关系单击3中产生草绘曲线,消失符号尺寸关系中输入关系式确定后按再生按钮
5.创建渐开线单击选取[从方程]/[完成]选项取默认坐标系,选取[笛卡尔]选项
选坐标系
打开点保存
所得曲线
1/ 3
6.创建拉伸曲面拉伸/选曲面/TRONT为草绘平面/
曲面高度任意给定
创建参数化
7.延长曲面(1)选曲面的边,[编辑]/[延长] (2)单击选项/切线
选此边
(3)建立d5=d0/2 (4)单击再生按钮
8.创建基准轴单击打开基准对话框,选TOP/RIGHT平面,创建A-1 按CTRAL
9.创建基准点单击选分度圆曲线和拉伸曲面,创建PNT0
按CTRAL
2/ 3
10.创建基准平面单击平面选A1和PNT0,创建DTM1平面3/ 3。

基于ProE的齿轮参数化设计

基于ProE的齿轮参数化设计

基于Pro/E的齿轮参数化设计一、齿轮设计实现文件// chilunsheji.cpp : 定义DLL 的初始化例程。

#include "stdafx.h"#include "chilunsheji.h"#include "LoadDlg.h"#include "ProMenu.h"#include "ProUtil.h"#include "ProMenubar.h"#include <ProMessage.h>///////////////Functions declarationint GearDesign1MenuActFn();static uiCmdAccessState AccessAvailable(uiCmdAccessMode);#ifdef _DEBUG#define new DEBUG_NEW#endifint GearDesign1();int GearDesign2();// CchilunshejiAppBEGIN_MESSAGE_MAP(CchilunshejiApp, CWinApp)END_MESSAGE_MAP()// CchilunshejiApp 构造CchilunshejiApp::CchilunshejiApp()// 唯一的一个CchilunshejiApp 对象CchilunshejiApp theApp;// CchilunshejiApp 初始化///////////////FUNCTION: user_initialize()extern "C" int user_initialize(){ProError status;ProFileName MsgFile;uiCmdCmdId PushButton_cmd_id;ProStringToWstring(MsgFile,"Message1.txt");//设置菜单信息文件名//status=ProMenubarMenuAdd ("GearDesign", "GearDesign","Utilities", PRO_B_TRUE, MsgFile);ProCmdActionAdd("PushButtonAct",(uiCmdCmdActFn) GearDesign1MenuActFn, uiCmdPrioDefault,AccessAvailable,PRO_B_TRUE,PRO_B_TRUE,&PushButton_cmd_id); ProMenubarmenuPushbuttonAdd("GearDesign","GearDesign1","GearDesign1","GearDesign 1", NULL, PRO_B_TRUE, PushButton_cmd_id, MsgFile);return status;ProMenubarmenuPushbuttonAdd("GearDesign","GearDesign2","GearDesign2","GearDesign2", NULL, PRO_B_TRUE, PushButton_cmd_id, MsgFile);66return status;}/////////////////////FUNCTION: user_terminate()extern "C" void user_terminate(){AFX_MANAGE_STA TE(AfxGetStaticModuleState());}BOOL CchilunshejiApp::InitInstance(){CWinApp::InitInstance();return TRUE;}static uiCmdAccessState AccessAvailable(uiCmdAccessMode access_mode) {return (ACCESS_A V AILABLE);}二、齿轮设计对话框实现文件#include "stdafx.h"#include "chilunsheji.h"#include "LoadDlg.h"#include "LoadDlg2.h"#include "LoadDlg3.h"#include "LoadDlg4.h"#include <ProSolid.h>#include <math.h>#include "ProUtil.h"#include <ProWindows.h>#include <ProParameter.h>#include <ProParamval.h>IMPLEMENT_DYNAMIC(CLoadDlg, CDialog) CLoadDlg::CLoadDlg(CWnd* pParent /*=NULL*/): CDialog(CLoadDlg::IDD, pParent){}CLoadDlg::~CLoadDlg(){}void CLoadDlg::DoDataExchange(CDataExchange* pDX) {CDialog::DoDataExchange(pDX);}BEGIN_MESSAGE_MAP(CLoadDlg, CDialog)67return status;}/////////////////FUNCTION: user_terminate()extern "C" void user_terminate(){AFX_MANAGE_STA TE(AfxGetStaticModuleState()); }BOOL CchilunshejiApp::InitInstance(){CWinApp::InitInstance();return TRUE;}static uiCmdAccessState AccessAvailable(uiCmdAccessMode access_mode) {return (ACCESS_A V AILABLE);}二、齿轮设计对话框实现文件#include "stdafx.h"#include "chilunsheji.h"#include "LoadDlg.h"#include "LoadDlg2.h"#include "LoadDlg3.h"#include "LoadDlg4.h"#include <ProSolid.h>#include <math.h>#include "ProUtil.h"#include <ProWindows.h>#include <ProParameter.h>#include <ProParamval.h>IMPLEMENT_DYNAMIC(CLoadDlg, CDialog)CLoadDlg::CLoadDlg(CWnd* pParent /*=NULL*/): CDialog(CLoadDlg::IDD, pParent){}CLoadDlg::~CLoadDlg(){}void CLoadDlg::DoDataExchange(CDataExchange* pDX){CDialog::DoDataExchange(pDX);}BEGIN_MESSAGE_MAP(CLoadDlg, CDialog)67ON_BN_CLICKED(IDC_BUTTON1, &CLoadDlg::OnBnClickedButton1) ON_BN_CLICKED(IDC_BUTTON2, &CLoadDlg::OnBnClickedButton2) ON_BN_CLICKED(IDC_BUTTON3, &CLoadDlg::OnBnClickedButton3) END_MESSAGE_MAP()void CLoadDlg::OnBnClickedButton1(){AFX_MANAGE_STATE(AfxGetStaticModuleState());int status;CLoadDlg2 LoadDlg;status=LoadDlg.DoModal();}void CLoadDlg::OnBnClickedButton2(){AFX_MANAGE_STATE(AfxGetStaticModuleState());int status;CLoadDlg3 LoadDlg;status=LoadDlg.DoModal();}void CLoadDlg::OnBnClickedButton3(){AFX_MANAGE_STATE(AfxGetStaticModuleState());int status;CLoadDlg4 LoadDlg;status=LoadDlg.DoModal();}三、直齿圆柱齿轮对话框实现文件// LoadDlg2.cpp : 实现文件#include "stdafx.h"#include "chilunsheji.h"#include "LoadDlg2.h"#include <ProSolid.h>#include <math.h>#include "ProUtil.h"#include <ProWindows.h>#include <ProParameter.h>#include <ProParamval.h>IMPLEMENT_DYNAMIC(CLoadDlg2, CDialog)CLoadDlg2::CLoadDlg2(CWnd* pParent /*=NULL*/): CDialog(CLoadDlg2::IDD, pParent){M_Z=17;M_ANGLE=20;68M_C=0.25;M_M=10;M_HA=1;M_B=100;M_D=0;M_DB=0;M_DA=0;M_TIP_RAD=0;M_DF=0;}CLoadDlg2::~CLoadDlg2(){}BEGIN_MESSAGE_MAP(CLoadDlg2, CDialog)ON_BN_CLICKED(IDOK, &CLoadDlg2::OnBnClickedOk)ON_BN_CLICKED(IDCANCLE, &CLoadDlg2::OnBnClickedCancle)ON_BN_CLICKED(IDC_mokuaichongsheng,&CLoadDlg2::OnBnClickedmokuaichongsheng)END_MESSAGE_MAP()void CLoadDlg2::OnBnClickedOk(){OnOK();ProMdl model;ProModelitem modelitem;ProNameParamName1,ParamName2,ParamName3,ParamName4,ParamName5,ParamName6;//wchar_t *ParamName;ProParameter param1,param2,param3,param4,param5,param6;ProParamvalue value1,value2,value3,value4,value5,value6;ProError status;UpdateData(true);status=ProMdlCurrentGet(&model);if (status!=PRO_TK_NO_ERROR)return ;ProMdlToModelitem(model, &modelitem);ProStringToWstring(ParamName1,"Z");ProStringToWstring(ParamName2,"ANGLE");ProStringToWstring(ParamName3,"C");ProStringToWstring(ParamName4,"M"); ProStringToWstring(ParamName5,"HA"); ProStringToWstring(ParamName6,"B");status=ProParameterInit(&modelitem,ParamName1,&param1); status=ProParameterInit(&modelitem,ParamName2,&param2); status=ProParameterInit(&modelitem,ParamName3,&param3);69 status=ProParameterInit(&modelitem,ParamName4,&param4); status=ProParameterInit(&modelitem,ParamName5,&param5); status=ProParameterInit(&modelitem,ParamName6,&param6); if (status==PRO_TK_NO_ERROR){ProParameterValueGet(&param1, &value1);value1.value.d_val=M_Z;ProParameterValueSet(&param1, &value1);//ZProParameterValueGet(&param2, &value2);value2.value.d_val=M_ANGLE;ProParameterValueSet(&param2, &value2);//ANGLEProParameterValueGet(&param3, &value3);value3.value.d_val=M_C;ProParameterValueSet(&param3, &value3);//CProParameterValueGet(&param4, &value4);value4.value.d_val=M_M;ProParameterValueSet(&param4, &value4);//M//获得参数值(HA)ProParameterValueGet(&param5, &value5);value5.value.d_val=M_HA;ProParameterValueSet(&param5, &value5);//HAProParameterValueGet(&param6, &value6);value6.value.d_val=M_B;ProParameterValueSet(&param6, &value6);//BProSolidRegenerate ((ProSolid)model,PRO_B_TRUE);ProWindowRepaint(PRO_V ALUE_UNUSED);UpdateData(false);}}void CLoadDlg2::OnBnClickedCancle(){OnCancel();}void CLoadDlg2::OnBnClickedmokuaichongsheng(){{ProMdl model;ProModelitem modelitem;ProNameParamName1,ParamName2,ParamName3,ParamName4,ParamName5,ParamName6;//wchar_t *ParamName;ProParameter param1,param2,param3,param4,param5,param6;ProParamvalue value1,value2,value3,value4,value5,value6;70ProError status;UpdateData(true);status=ProMdlCurrentGet(&model);if (status!=PRO_TK_NO_ERROR)return ;ProMdlToModelitem(model, &modelitem);ProStringToWstring(ParamName1,"Z");ProStringToWstring(ParamName2,"ANGLE");ProStringToWstring(ParamName3,"C");ProStringToWstring(ParamName4,"M");ProStringToWstring(ParamName5,"HA");ProStringToWstring(ParamName6,"B");status=ProParameterInit(&modelitem,ParamName1,&param1);status=ProParameterInit(&modelitem,ParamName2,&param2);status=ProParameterInit(&modelitem,ParamName3,&param3);status=ProParameterInit(&modelitem,ParamName4,&param4); status=ProParameterInit(&modelitem,ParamName5,&param5); status=ProParameterInit(&modelitem,ParamName6,&param6); if (status==PRO_TK_NO_ERROR){ProParameterValueGet(&param1, &value1);value1.value.d_val=M_Z;ProParameterValueSet(&param1, &value1);//ZProParameterValueGet(&param2, &value2);value2.value.d_val=M_ANGLE;ProParameterValueSet(&param2, &value2);//ANGLEProParameterValueGet(&param3, &value3);value3.value.d_val=M_C;ProParameterValueSet(&param3, &value3);//CProParameterValueGet(&param4, &value4);value4.value.d_val=M_M;ProParameterValueSet(&param4, &value4);//MProParameterValueGet(&param5, &value5);value5.value.d_val=M_HA;ProParameterValueSet(&param5, &value5);//HAProParameterValueGet(&param6, &value6);value6.value.d_val=M_B;ProParameterValueSet(&param6, &value6);//BM_D=M_Z*M_M;//DM_DB=M_D*cos(M_ANGLE);//DBM_DA=M_D+2*M_M*M_HA;//DAM_TIP_RAD=3.1415*M_M/8;//TIP_RADM_DF=M_D-2*M_M*(M_HA+M_C);//DF71ProSolidRegenerate ((ProSolid)model,PRO_B_TRUE);ProWindowRepaint(PRO_V ALUE_UNUSED);UpdateData(false);}}}BOOL CLoadDlg2::OnInitDialog(){CDialog::OnInitDialog();ProMdl model;ProModelitem modelitem;ProNameParamName1,ParamName2,ParamName3,ParamName4,ParamName5,ParamName6;//wchar_t *ParamName;ProParameter param1,param2,param3,param4,param5,param6;ProParamvalue value1,value2,value3,value4,value5,value6; ProError status;status=ProMdlCurrentGet(&model);if (status!=PRO_TK_NO_ERROR){ProMdlToModelitem(model, &modelitem); ProStringToWstring(ParamName1,"Z"); ProStringToWstring(ParamName2,"ANGLE"); ProStringToWstring(ParamName3,"C"); ProStringToWstring(ParamName4,"M"); ProStringToWstring(ParamName5,"HA");ProStringToWstring(ParamName6,"B");status=ProParameterInit(&modelitem,ParamName1,&param1); status=ProParameterInit(&modelitem,ParamName2,&param2); status=ProParameterInit(&modelitem,ParamName3,&param3);status=ProParameterInit(&modelitem,ParamName4,&param4);status=ProParameterInit(&modelitem,ParamName5,&param5);status=ProParameterInit(&modelitem,ParamName6,&param6);if (status==PRO_TK_NO_ERROR){ProParameterValueGet(&param1, &value1);M_Z=value1.value.d_val;ProParameterValueSet(&param1, &value1);//ZProParameterValueGet(&param2, &value2);M_ANGLE=value2.value.d_val;ProParameterValueSet(&param2, &value2);//ANGLEProParameterValueGet(&param3, &value3);M_C=value3.value.d_val;72ProParameterValueSet(&param3, &value3);//CProParameterValueGet(&param4, &value4);M_M=value4.value.d_val;ProParameterValueSet(&param4, &value4);//MProParameterValueGet(&param5, &value5);M_HA=value5.value.d_val;ProParameterValueSet(&param5, &value5);//HAProParameterValueGet(&param6, &value6);M_B=value6.value.d_val;ProParameterValueSet(&param6, &value6);//B}}return TRUE; // return TRUE unless you set the focus to a control }void CLoadDlg2::DoDataExchange(CDataExchange* pDX){CDialog::DoDataExchange(pDX);DDX_Text(pDX, IDC_EDIT1, M_Z);DDX_Text(pDX, IDC_EDIT2, M_ANGLE);DDX_Text(pDX, IDC_EDIT3, M_C);DDX_Text(pDX, IDC_EDIT4, M_M);DDX_Text(pDX, IDC_EDIT5, M_HA);DDX_Text(pDX, IDC_EDIT6, M_B);DDX_Text(pDX, IDC_EDIT7, M_D);DDX_Text(pDX, IDC_EDIT8, M_DB);DDX_Text(pDX, IDC_EDIT9, M_DA);DDX_Text(pDX, IDC_EDIT10, M_TIP_RAD);DDX_Text(pDX, IDC_EDIT11, M_DF);}四、直齿圆锥齿轮对话框实现文件// LoadDlg3.cpp : 实现文件#include "stdafx.h"#include "chilunsheji.h"#include "LoadDlg3.h"#include <ProSolid.h>#include <math.h>#include "ProUtil.h"#include <ProWindows.h>#include <ProParameter.h>#include <ProParamval.h>IMPLEMENT_DYNAMIC(CLoadDlg3, CDialog)CLoadDlg3::CLoadDlg3(CWnd* pParent /*=NULL*/)73DDX_Text(pDX, IDC_EDIT7, M_BETA);DDX_Text(pDX, IDC_EDIT8, M_S);DDX_Text(pDX, IDC_EDIT9, M_GAMMA);}六、响应文件//响应函数#include"stdafx.h"#include"LoadDlg.h"#include"chilunsheji.h"#include "LoadDlg.h"int GearDesign1MenuActFn(){AfxMessageBox(_T("齿轮"));AFX_MANAGE_STATE(AfxGetStaticModuleState());int status;CLoadDlg LoadDlg;status=LoadDlg.DoModal();if(status==0){AfxMessageBox(_T("对话框创建失败"));}return status;}七、直齿圆柱齿轮对话框头文件#pragma once#include"resource.h"class CLoadDlg2 : public CDialog{DECLARE_DYNAMIC(CLoadDlg2)public:CLoadDlg2(CWnd* pParent = NULL); // 标准构造函数virtual ~CLoadDlg2();enum { IDD = IDD_DIALOG2 };protected:virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV 支持DECLARE_MESSAGE_MAP()public:afx_msg void OnEnChangeRichedit26();double M_Z;double M_ANGLE;double M_C;85double M_M;double M_HA;double M_B;double M_D;double M_DB;double M_DA;double M_TIP_RAD;double M_DF;public:afx_msg void OnBnClickedOk();public:afx_msg void OnBnClickedCancle();public:afx_msg void OnBnClickedmokuaichongsheng();public:afx_msg void OnEnChangeEdit1();public:afx_msg void OnEnChangeEdit2();public:afx_msg void OnEnChangeEdit3(); public:afx_msg void OnEnChangeEdit4(); public:afx_msg void OnEnChangeEdit5(); public:afx_msg void OnEnChangeEdit6(); public:afx_msg void OnEnChangeEdit7(); public:afx_msg void OnEnChangeEdit8(); public:afx_msg void OnEnChangeEdit9(); public:afx_msg void OnEnChangeEdit10(); public:afx_msg void OnEnChangeEdit11(); public:virtual BOOL OnInitDialog();};86。

PROE参数化锥齿轮的建立方法

PROE参数化锥齿轮的建立方法

三、参数化锥齿轮的建立1. 新建并命名零件的名称为zhuichilun.prt 。

2.创建用户参数:齿轮模数-M,齿轮齿数-Z,与之啮合的齿轮齿数-Z_AM,齿轮宽度-B ,齿轮压力角-ANGLE ,分度圆锥角-LONG,分度圆直径-D ,齿顶圆直径-DA ,齿根圆直径-DF,基圆直径-DB 。

在主菜单选择“工具”→“参数”命令,打开如图3-1所示的“参数”对话框然后单击十次按钮,在名称栏中依次输入参数名m 、z 、z -am 、angle 、b 、long 、d 、da 、df 、db ,类型栏中全部为实数,参数分别为4、50、40、20、30、0、0、0、0、0。

完成后单击确定。

3. 在零件模型中创建关系:在主菜单选择“工具”→“关系”命令,打开如图3-2所示的“关系”对话框,在“关系”对话框的关系编辑区,键入如下关系式:Long=atan(z/z_am )D=m*zDa=d+2*m*cos(long)Df=d-2.4*m*cos(long)Db=d*cos(angle) 完成后关系对话框如图3-2所示,单击确定完成关系的建立。

4. 创建基准曲线:在特征工具栏单击草绘按钮,选取front 基准面为草绘平面,绘制草图,如图3-3所示(直径值可以任意给出,以后将由关系式控制),在特征工具栏单击完成 按钮退出草绘。

图3-1“参数”对话框 图3-2“关系”对话框 图3-3 截面草图 图3-4 选取参数5.建立关系:参照步骤3,打开如图3-2所示的“关系”对话框,然后参照图3-4,在关系编辑区键入如下关系式:D0=dfD1=dbD2=dD3=da单击确定按钮完成关系的定义,在主菜单单击再生按钮再生模型。

6. 创建渐开线: 在特征工具栏单击“曲线”按钮,在弹出的如图3-5所示的“菜单管理器”中,选择“从方程”→“完成”命令,此时系统弹出如图3-6所示的信息框,选取默认坐标系PRT_CSYS_DEF ,并在弹出的如图3-7所示的“菜单管理器”中选择笛卡尔命令,系统弹出如图3-8所示的记事本,在文本输入区,输入如下所示的渐开线方程:r=db/2theta=t*60x=r*cos(theta)+r*sin(theta)* theta*(pi/180) y=r*sin(theta)-r*cos(theta)* theta*(pi/180)z=0完成后将其保存然后退出记事本,单击“曲线 从方程”信息框中的确定按钮,完成渐开线的建立,如图3-9所示。

proe圆锥齿轮全参数化画法

proe圆锥齿轮全参数化画法

锥齿轮在机械工业中有着广泛的应用,它用来实现两相交轴之间的传动,两轴的相交角一般采用90度。

锥齿轮的轮齿排列在截圆锥体上,轮齿由齿轮的大端到小端逐渐收缩变小,本节将介绍参数化设计锥齿轮的过程。

与本章先前介绍的齿轮的建模过程相比拟,锥齿轮的建模更为复杂。

参数化设计锥齿轮的过程中应用了大量的参数与关系式。

锥齿轮建模分析〔如图3-122所示〕:〔1〕输入关系式、绘制创建锥齿轮所需的根本曲线〔2〕创建渐开线〔3〕创建齿根圆锥〔4〕创建第一个轮齿〔5〕阵列轮齿图3-122锥齿轮建模分析1.输入根本参数和关系式〔1〕单击,在新建对话框中输入文件名conic_gear,然后单击;〔2)在主菜单上单击“工具〞→“参数〞,系统弹出“参数〞对话框,如图3-123所示;图3-123 “参数〞对话框〔3〕在“参数〞对话框内单击按钮,可以看到“参数〞对话框增加了一行,依次输入新参数的名称、值、和说明等。

需要输入的参数如表3-3所示;名称值说明名称值说明M 模数DELTA ___ 分锥角Z 24 齿数DELTA_A ___ 顶锥角Z_D 45 大齿轮齿数DELTA_B ___ 基锥角ALPHA 20 压力角DELTA_F ___ 根锥角B 20 齿宽HB ___ 齿基高HAX 1 齿顶高系数RX ___ 锥距CX 顶隙系数THETA_A ___ 齿顶角HA ___ 齿顶高THETA_B ___ 齿基角HF ___ 齿根高THETA_F ___ 齿根角H ___ 全齿高BA ___ 齿顶宽D ___ 分度圆直径BB ___ 齿基宽DB ___ 基圆直径BF ___ 齿根宽DA ___ 齿顶圆直径X 0 变位系数DF ___ 齿根圆直径表3-3 创建齿轮参数注意:表3-3中未填的参数值,表示是由系统通过关系式将自动生成的尺寸,用户无需指定。

〔4〕在主菜单上依次单击“工具〞→“关系〞,系统弹出“关系〞对话框;〔5〕在“关系〞对话框内输入齿轮的根本关系式。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Pro/E圆锥齿轮参数化建模第一篇:认识锥齿轮==================================P2-P4 第二篇:当量齿数建模================================P5-P11 第三篇:球面渐开线精确建模==========================P12-P20第一篇:认识锥齿轮1、认识锥齿轮先来看一组锥齿轮图片(动画图片请点原文)。

锥齿轮是圆锥齿轮的简称,它用来实现两相交轴之间的传动,两轴交角Σ可以是任意的,机械传动中应用最多的是两轴交角Σ=90度的锥齿轮传动。

下图为一对轴交角Σ=80度的锥齿轮平面动画2、锥齿轮的一些几何参数齿数(tooth_n)、模数(module)、压力角(pressure_a)、齿宽(face_width)、分度圆锥角(pitch_cone_a)、轴交角(shaft_a)即可确定单个锥齿轮。

如上图,有pitch_rad = pitch_dia/2 = tooth_n* module/2addendum = 1*modulededendum = (1+0.25)*moduleshaft_a = pitch_cone_a+ pitch_cone_a_rel (即Σ= δ1+δ2)锥齿轮传动比i = Z2/Z1= Z2*module/Z1*module = pitch_dia_rel/pitch_dia = pitch_rad_rel/pitch_rad1因pitch_rad_rel / sin(δ2) = pitch_rad / sin(δ1)所以,传动比又有i = sin(δ2) / sin(δ1)设计一对锥齿轮,通常是根据设计需要确定齿数(传动比)、模数和轴交角,然后通过解下面方程组得出两个锥齿轮的分度圆锥角sin(δ2)/sin(δ1) = Z2/Z1δ1+δ2 = Σ3、锥齿轮的当量齿数锥齿轮的理论轮廓线为球面渐开线。

一个圆平面在一圆锥上作纯滚动时,平面上到锥顶距离相等任一点的轨迹所形成一条曲线称为球面渐开线。

球面渐开线方程比较难理解,本文不作讨论。

此文第二篇将介绍基于当量齿数建模之3D,理论上虽然有误差,但可放心开模做产品,除非你对齿轮的要求是μ(微米)级的。

当量齿数建模,需了解当量齿数的概念。

过锥齿轮大端作母线与分度圆锥母线垂直的圆锥(该圆锥称为背锥),将球面齿往该圆锥上投影,则球面齿形与锥面上的投影非常接近。

由于锥面可以展开,故可用锥面上的齿形代替球面齿。

定义不好理解,看下图指示的就是背锥了,记住背锥的母线与分度圆锥母线垂直。

将背锥展开,得到下图右边的扇形齿,假想将空出的齿形补全,补全后所有的齿数就是锥齿轮的当量齿数了。

通常算出来的当量齿数不是整数,没关系的,当量齿数只是假想的齿数。

上图e_pitch_rad就是大端当量分度圆了,锥齿轮齿形的计算都是基于当量齿数来计算的。

好了,接下来就是一些烦杂的计算公式了。

pitch_rad_e = pitch_rad/cos(pitch_cone_a)tooth_n_e = pitch_rad_e*2/ module= pitch_rad/cos(pitch_cone_a)*2/module因tooth_n = pitch_rad*2/ module所以tooth_n_e = tooth_n/cos(pitch_cone_a)还有更多的公式不就不列出了,按需要自己推导吧。

第二篇:当量齿数建模1.齿数、模数、压力角、齿宽、轴交角即可确定一对相互啮合的锥齿轮。

打开Pro/E新建part文件,文件名自定,进入建模,点击Program=>Edit Design(From Model)a.在“INPUT……END INPUT”之间加入以下内容:INPUTTOOTH_N NUMBER"Enter the number of teeth: "TOOTH_N_REL NUMBER"Enter the number of teeth for the related assembly gear:"SHAFT_A NUMBER"Enter the shaft angle for two gears:"MODULE NUMBER"Enter the module: "PRESSURE_A NUMBER"Enter the pressure angle: "FACE_WIDTH NUMBER"Enter the face width: "END INPUTb.保存后退出程序编辑,软件提示“要将所做的修改体现到模型中?”,选择“Yes”(或者再生一次)。

然后点选Enter=>Select All=>Done Sel然后根据提示依次输入“齿数、模数、压力角、齿宽、与之啮合的齿轮齿数、轴交角”的数值,合理就可以,如齿数16、模数1、压力角20、齿宽5、与之啮合的齿轮齿数25、轴交角120c.再次进行Program =>Edit Design (From Model),在“RELATIONS……END RELATIONS”之间加入以下内容:RELATIONS/*=========SOME OF THE BEVEL GEAR PARAMETERS==========*/PITCH_CONE_A = ATAN(SIN(180-SHAFT_A)/(TOOTH_N_REL/TOOTH_N-COS(180-SHAFT_A)))PITCH_CONE_A_REL = ATAN(SIN(180-SHAFT_A)/(TOOTH_N/TOOTH_N_REL-COS(180-SHAFT_A)))IF PITCH_CONE_A+PITCH_CONE_A_REL<>SHAFT_ASHAFT_A = 180-SHAFT_APITCH_CONE_A = ATAN(SIN(180-SHAFT_A)/(TOOTH_N_REL/TOOTH_N-COS(180-SHAFT_A)))ENDIFPITCH_RAD = TOOTH_N*MODULE/2ADDENDUM = 1*MODULEDEDENDUM = (1+0.25)*MODULETOOTH_N_E = TOOTH_N/COS(PITCH_CONE_A)PITCH_RAD_E = PITCH_RAD/COS(PITCH_CONE_A)BASE_RAD_E = PITCH_RAD_E*COS(PRESSURE_ANGLE)IF PITCH_RAD/SIN(PITCH_ANGLE)-FACE_WIDTH<MODULEFACE_WIDTH = PITCH_RAD/SIN(PITCH_CONE_A)-MODULEENDIF/*============DIMENSION RELATIONS===============*/END RELATIONS然后保存后退出程序编辑2.用旋转曲面命令分别绘制“分度圆锥、齿顶锥、齿根锥”,注意草绘平面均为Right基准平面。

a.分度圆锥草绘截面如下图所示,并加入草绘关系式如图示b.齿顶锥草绘截面如下图所示,选择步骤2a中的分度圆锥母线作为参照,并加入草绘关系式如图示c.为方便草绘,先隐藏步骤2b中的齿顶锥曲面。

齿根锥草绘截面如下图所示,选择步骤2a中的分度圆锥母线作为参照,并加入草绘关系式如图示3.以极坐标方程绘出渐开线齿廓,并旋转、移动到正确的位置。

a.选取PRT_CSYS_DEF坐标做参照,并以极坐标方程绘出渐开线齿廓,方程如下:A = t*sqrt((pitch_rad_e+addendum+0.5)^2-base_rad_e^2)/base_rad_e/pi*180r = base_rad_e*sqrt(1+(A*pi/180)^2)theta = A-atan(A*pi/180)-(sqrt(pitch_rad_e^2-base_rad_e^2)/base_rad_e/pi*180-pressure_a)+90/tooth_n_e z = 0b.用移动命令将步骤a中位于FRONT基准平面上的渐开线以Y轴负方向旋转、z轴负方向平移到正确的位置(节点在背锥上)。

如下图尺寸d13、d14需加入关系式:D13 = PITCH_CONE_AD14 = PITCH_RAD/TAN(PITCH_CONE_A) + PITCH_RAD_E*SIN(PITCH_CONE_A)c.以通过渐开线起点并垂直于渐开线的临时平面镜像出另一半的渐开线,此目的是保证当基锥大于齿根锥时齿底有齿形。

然后用逼近合并两打条渐开线为一条。

4.绘出一组齿面a.分别用草绘曲线命令绘出两条直线(下图左)。

草绘平面为通过节锥旋转轴,并过合并后的渐开线端点。

两直线相交于圆锥顶点,并分别与合并后的渐开线两端点相交。

b.用边界曲面命令绘出单个齿面(如上图右)c.以TOP基准为镜像平面,镜像出另一个齿面。

d.将步骤“2c(齿根锥曲面)、4b(齿面)、4c(镜像齿面)”三个曲面合并为一组齿面。

如下图示(已隐去齿顶锥曲面):e.用变化半径方式倒出齿根圆角,如下图左为未倒圆角前的形状,下图右为倒圆角后的形状。

两个端点处的圆角半径应加入下面的关系式:D15 = PI*MODULE/8D17 = PI*MODULE/8D16 = PI*MODULE/8*(1-FACE_WIDTH/(PITCH_RAD/SIN(PITCH_CONE_A)))D18 = PI*MODULE/8*(1-FACE_WIDTH/(PITCH_RAD/SIN(PITCH_CONE_A)))5.阵列出所有齿形,然后用参照阵列合并所有齿形曲面,最后将齿轮生成实体。

a.以z轴为旋转轴心,旋转复制出一个齿形,旋转角度为0度。

在模型树中隐藏原来的曲面,以方便后续阵列不会选错曲面。

b.将步骤5a旋转复制的曲面进行旋转阵列,角度可暂定30度,阵列数量可暂定5个。

然后加入下面的关系式后再生一次即可得到下图示的全部齿型:D20 = 360/TOOTH_NP21 = TOOTH_Nc.将“步骤2b齿顶锥曲面”与“步骤5a的第一个旋转曲面”合并,如下图左所示。

选中刚才的合并特征(在模型树中更容易选),按住鼠标右键不放,在弹出的菜单中点选“Pattern…(阵列)”,即可得到下图右的齿轮曲面。

6.最后一步将曲面生成实体即可。

剩下的比如齿轮的轴孔、键槽、加强肋之类就根据实际使需要增加上去了。

需要变更齿轮参数,只需再生一次,根据提示选取需要变更的参照并依次输入即可。

相关文档
最新文档