您的位置:网站首页 > Proe教程

探讨ProE二次开发开线变位直齿圆柱齿轮实体模型方法

时间:2011-02-24 09:39:30 来源:

  本文探讨了ProE二次开发开线变位直齿圆柱齿轮实体模型相关方法。

  1前言

  Pro/ENGINEER是由美国PTC公司开发的三维CAD软件,在工业造型设计和模具设计制造行业中得到广泛应用。运用Pro/ENGINEER软件,设计人员可以在计算机上实现虚拟现实设计和制造。

  在Pro/ENGINEER软件中,Program模块是自动化零件与组合件设计的一项重要工具,使用者可以经由非常简易且高级的程序语言来控制特征的出现与否、尺寸的大小、零件的出现与否、零件的个数等。当零件或组合件的Program设计完成后,往后读取此零件或组合件时,其各种变化情况即可利用问答式的方式得到不同的形状,以实现产品设计的要求。

  齿轮虽然在机械行业中有广泛的使用,但Pro/ENGINEER软件不能直接生成。通过复杂的造型设计虽可以生成齿轮,但变化齿数、模数和变位系数后,又需进行复杂的设计计算和造型形状判断,工作量很大,齿轮的三维造型设计成为造型设计中望而却步的工作。本文基于渐开线齿轮的生成原理,结合Program程序,研制出变位直齿圆柱齿轮实体造型的自动化设计程序,用户只要输入齿轮的设计参数(齿数z1、z2,模数m,变位系数x1、x2,齿槽圆角半径、齿宽、轴孔直径、键槽高度和宽度)就可以快速地生成齿轮实体,使用简单方便,该设计软件可以广泛地应用于网页设计和机械产品造型设计中。

  2 齿轮齿槽形状的精确确定

  齿形的渐开线形状可通过高级Sweep特征设计精确地设计出来,但齿轮齿槽的形状与齿轮齿数、模数、变位系数和压力角有关。具体地说,下列两种情况决定齿槽的形状:

图1

图2

  即:齿根圆的半径小于渐开线的基圆半径时和齿根圆的半径大于渐开线的基圆半径时。为了叙述方便,下文中,分别称前者为a情况,后者为b情况。因齿轮的啮合只在渐开线部分,因此对于a情况,设计时可在基圆的以下部分加与渐开线相切的直线以连接齿根圆,如图1所示。而对于b情况则无需加相切直线,仅截取渐开线的一部分即可,如图2所示。

  3 程序设计时需解决的几个关键问题

  3.1 啮合角的计算

  变位齿轮的齿顶圆直径和啮合角有关,因此设计时必须先由输入的齿轮设计参数经过复杂的数学计算得到啮合角值。

  我们知道,外齿合时的啮合角计算公式为:

公式1

  可见无法由显式直接表达出来,因此也就无法直接计算出来。虽然用C语言可以数值计算出,但Program自带的程序不支持C语言,幸运的是利用Program自带的解方程程序可以解出,具体的设计程序是:

  上式中必须赋初值,否则数值解会不确定,考虑到啮合角一般大于10度,所以初值设为10即可。由于Program程序中三角函数内的角度是度,因此公式右边最后的应处理成弧度,以便和tan同量纲。

  3.2 a种情况和b种情况齿轮的调用

  对于Pro/ENGINEER软件,在零件设计模式下是无法实现两种不同零件的调用的,但在装配模式下可以实现这种调用功能,具体的方法是:在.asm下新建文件,坐标系统为mmns,把a、b两种情况的齿轮造型在基准缺省方式下直接装配在一起,这时的装配件是a和b两种情况齿轮的重叠,Program编程时,通过判断齿轮的齿根圆半径是否大于渐开线的基圆半径来决定采用a种情况还是b种情况的齿轮。若齿根圆半径小于基圆半径,则采用a种情况的齿轮 ;否则,则采用b种情况的齿轮。

  4 齿轮的自动化设计程序流程图

  4.1 a、b两种情况时的齿轮自动化设计流程图

  图3是a种情况时齿轮的自动化设计流程图。b种情况的齿轮自动化设计流程和上图类似,只是齿槽设计时改为b种情况即可。

  4.2 综合a种和b种两种情况时的齿轮自动化设计流程图

  综合a和b情况后的自动化设计流程图如图4所示。

图2

图3

  5 源程序

  5.1 a种情况的齿轮自动化设计Program原程序

  VERSION

  REVNUM 23833

  LISTING FOR PART GEAR_A

  INPUT

  Z1 NUMBER  /*齿轮1齿数

  "Enter Z1: "

  Z2 NUMBER  /*齿轮2齿数

  "Enter Z2: "

  M NUMBER  /*模数

  "Enter M: "

  X1 NUMBER  /*齿轮1变位系数

  "Enter x1:"

  X2 NUMBER  /*齿轮2变位系数

  "Enter x2:"

  ALPHA NUMBER /*压力角

  "Enter the pressure angle: "

  GEAR_WIDTH NUMBER /*齿轮宽度

  "Enter the gear width: "

  RAD_FILLET NUMBER  /*齿槽圆角半径

  "Enter rad_fillet:"

  SHAFT_DIA NUMBER  /*轴孔直径

  "Enter shaft_dia:"

  KEY_WIDTH NUMBER  /*键槽宽度

  "Enter key_width:"

  KEY_HEIGHT NUMBER /*键槽高度

  "Enter key_height:"

  END INPUT

  RELATIONS

  INVA=TAN(ALPHA)-ALPHA*PI/180

  /*标准压力角时的渐开线函数值

  INVAP=2*(X1+X2)*TAN(ALPHA)/(Z1+Z2)

  +INVA

  /*计算啮合角时的渐开线函数值

  AP=10

  SOLVE     /*解方程程序

  INVAP=TAN(AP)-AP*PI/180

  FOR AP

  HA=1      /*齿顶高系数

  IF M<1     /*径向间隙系数的确定

  C=0.35

  ELSE

  C=0.25

  ENDIF

  R1 = 0.5*M*Z1  /*齿轮1分度圆半径

  R2 = 0.5*M*Z2  /*齿轮1分度圆半径

  D = R1+R2   /*标准中心距

  RD = D*COS(ALPHA)/COS(AP)

  /*实际中心距

  RB1 = R1*COS(ALPHA)  /*基圆半径

  RF1 = R1-M*(HA+C-X1)  /*齿根圆半径

  RA1 = RD-R2+M*(HA-X2) /*齿顶圆半径

  THICK1 = M*(0.5*PI+2*X1*TAN(ALPHA))

  /*分度圆上齿厚(弧长)

  TOOTH_THICK1=THICK1*COS(ALPHA)

  +2*RB1*INVA /*基圆上齿厚(弧长)

  ANG_TOOTH_THICK1=TOOTH_THICK1/RB1*180/PI    /*基圆上齿厚角(度)

  D0=RA1      /*内部参数赋值

  D1=GEAR_WIDTH

  D2=360/Z1

  D3=ANG_TOOTH_THICK1

  D4=180/Z1

  D5=RB1

  D13=RF1

  D14=RAD_FILLET

  D15=360/Z1

  P16=Z1

  D36=SHAFT_DIA

  D37=KEY_HEIGHT

  D38=KEY_WIDTH

  END RELATIONS

  …………………………

  5.2 b种情况的齿轮自动化设计Program原程序

  VERSION

  REVNUM 60662

  LISTING FOR PART GEAR_B

  INPUT

  Z1 NUMBER  /*齿轮1齿数

  "Enter Z1: "

  Z2 NUMBER  /*齿轮2齿数

  "Enter Z2: "

  M NUMBER  /*模数

  "Enter M: "

  X1 NUMBER  /*齿轮1变位系数

  "Enter x1:"

  X2 NUMBER  /*齿轮2变位系数

  "Enter x2:"

  ALPHA NUMBER /*压力角

  "Enter the pressure angle: "

  GEAR_WIDTH NUMBER /*齿轮宽度

  "Enter the gear width: "

  RAD_FILLET NUMBER  /*齿槽圆角半径

  "Enter rad_fillet:"

  SHAFT_DIA NUMBER  /*轴孔直径

  "Enter shaft_dia:"

  KEY_WIDTH NUMBER  /*键槽宽度

  "Enter key_width:"

  KEY_HEIGHT NUMBER /*键槽高度

  "Enter key_height:"

  END INPUT

  RELATIONS

  INVA=TAN(ALPHA)-ALPHA*PI/180

  /*标准压力角时的渐开线函数值

  INVAP=2*(X1+X2)*TAN(ALPHA)/(Z1+Z2)

  +INVA

  /*计算啮合角时的渐开线函数值

  AP=10

  SOLVE     /*解方程程序

  INVAP=TAN(AP)-AP*PI/180

  FOR AP

  HA=1      /*齿顶高系数

  IF M<1     /*径向间隙系数的确定

  C=0.35

  ELSE

  C=0.25

  ENDIF

  R1 = 0.5*M*Z1  /*齿轮1分度圆半径

  R2 = 0.5*M*Z2  /*齿轮1分度圆半径

  D = R1+R2   /*标准中心距

  RD = D*COS(ALPHA)/COS(AP)

  /*实际中心距

  RB1 = R1*COS(ALPHA)  /*基圆半径

  RF1 = R1-M*(HA+C-X1)  /*齿根圆半径

  RA1 = RD-R2+M*(HA-X2) /*齿顶圆半径

  THICK1 = M*(0.5*PI+2*X1*TAN(ALPHA))

  /*分度圆上齿厚(弧长)

  TOOTH_THICK1=THICK1*COS(ALPHA)

  +2*RB1*INVA /*基圆上齿厚(弧长)

  ANG_TOOTH_THICK1=TOOTH_THICK1/RB1*180/PI    /*基圆上齿厚角(度)

  D0=RA1      /*内部参数赋值

  D1=GEAR_WIDTH

  D2=360/Z1

  D3=ANG_TOOTH_THICK1

  D4=180/Z1

  D5=RB1

  D13=RF1

  D14=RAD_FILLET

  D15=360/Z1

  P16=Z1

  D116=SHAFT_DIA

  D117=KEY_HEIGHT

  D118=KEY_WIDTH

  END RELATIONS

  ……………………

  5.3 结合a和b两种情况后的齿轮自动化设计Program原程序

  VERSION

  REVNUM 145

  LISTING FOR ASSEMBLY GEAR

  INPUT

  Z1 NUMBER  /*齿轮1齿数

  "Enter Z1: "

  Z2 NUMBER  /*齿轮2齿数

  "Enter Z2: "

  M NUMBER  /*模数

  "Enter M: "

  X1 NUMBER  /*齿轮1变位系数

  "Enter x1:"

  X2 NUMBER  /*齿轮2变位系数

  "Enter x2:"

  ALPHA NUMBER /*压力角

  "Enter the pressure angle: "

  GEAR_WIDTH NUMBER /*齿轮宽度

  "Enter the gear width: "

  RAD_FILLET NUMBER  /*齿槽圆角半径

  "Enter rad_fillet:"

  SHAFT_DIA NUMBER  /*轴孔直径

  "Enter shaft_dia:"

  KEY_WIDTH NUMBER  /*键槽宽度

  "Enter key_width:"

  KEY_HEIGHT NUMBER /*键槽高度

  "Enter key_height:"

  END INPUT

  RELATIONS

  HA=1      /*齿顶高系数

  IF M<1     /*径向间隙系数的确定

  C=0.35

  ELSE

  C=0.25

  ENDIF

  R1 = 0.5*M*Z1  /*齿轮1分度圆半径

  RB1 = R1*COS(ALPHA)  /*基圆半径

  RF1 = R1-M*(HA+C-X1)  /*齿根圆半径

  END RELATIONS

  ……………

  IF RF1

  /*a种情况齿轮,否则加入b种情况齿轮

  EXECUTE PART GEAR_A

  /*执行a种情况齿轮

  Z1 = Z1   /*外部参数输入

  Z2 = Z2

  M = M

  X1 = X1

  X2 = X2

  ALPHA = ALPHA

  GEAR_WIDTH = GEAR_WIDTH

  RAD_FILLET = RAD_FILLET

  SHAFT_DIA = SHAFT_DIA

  KEY_WIDTH = KEY_WIDTH

  KEY_HEIGHT = KEY_HEIGHT

  END EXECUTE

  ADD PART GEAR_A  /*加入a种齿轮

  INTERNAL COMPONENT ID 39

  END ADD

  ELSE

  EXECUTE PART GEAR_B

  /*执行b种情况齿轮

  Z1 = Z1    /*外部参数输入

  Z2 = Z2

  M = M

  X1 = X1

  X2 = X2

  ALPHA = ALPHA

  GEAR_WIDTH = GEAR_WIDTH

  RAD_FILLET = RAD_FILLET

  SHAFT_DIA = SHAFT_DIA

  KEY_WIDTH = KEY_WIDTH

  KEY_HEIGHT = KEY_HEIGHT

  END EXECUTE

  ADD PART GEAR_B /*加入b 种齿轮

  INTERNAL COMPONENT ID 40

  END ADD

  END IF

  ……………

  6 造型实例

  图5是本二次开发软件在Pro/ENGINEER软件中自动生成的圆柱齿轮实体模型。

  其设计参数是:

  齿数z1=20           齿数z2=30

  模数m=3            变位系数x1=0.1

  变位系数x2=0.2      压力角=200

  齿槽圆角半径=0.2    齿宽=15

  轴孔直径=20        键槽宽度=8

  键槽高=3

图6

  7 结束语

  渐开线变位直齿圆柱齿轮自动化造型设计软件的成功开发大大地提高了齿轮的造型速度,与传统的造型设计相比,其设计效率可提高百倍以上,且对使用者要求不高。该软件已在我校的教学和毕业设计实践中推广使用,并取得了良好的效果。