1 前言
Pro/ENGINEER由美PTC公司开发的三维CAD软件,在工业造型设计和模具设计制造行业中得到广泛应用。运用Pro/ENGINEER软件,设计员可以在计算机上实现虚拟现实设计和制造。
在Pro/ENGINEER软件中,Program模块是自动化零件与组合件设计的一项重要工具,使用者可以经由非常简易且高级的程序语言来控制特征的出现与否、尺寸的大小、零件的出现与否、零件的个数等。当零件或组合件的Program设计完成后,往后读取此零件或组合件时,其各种变化情况即可利用问答式的方式得到不同的形状,以实现产品设计的要求。
齿轮虽然在机械行业中有广泛的使用,但Pro/ENGINEER软件不能直接生成。通过复杂的造型设计虽可以生成齿轮,但变化齿数、模数和变位系数后,又需进行复杂的设计计算和造型形状判断,工作量很大,齿轮的三维造型设计成为造型设计中望而却步的工作。本文基于渐开线齿轮的生成原理,结合Program程序,研制出变位直齿圆柱齿轮实体造型的自动化设计程序,用户只要输入齿轮的设计数(齿数z1、z2,模数m,变位系数x1、x2,齿槽圆角半径、齿宽、轴孔直径、键槽高度和宽度)就可以快速地生成齿轮实体,使用简单方便,该设计软件饕怨惴旱赜τ糜谕页设计和机械产品造型设计中。
2 齿轮齿槽形状的精确确定
齿形的渐开线形状可通过高级Sweep特征设计精确地设计出来,但齿轮齿槽的形状与齿轮齿数、模数、变位系数和压力角有关。具体地说,下列两种情况决定齿槽的形状
1
图1 第一种情况的齿槽形状
2
图2 第二种情况的齿槽形状
即:齿根圆的半径小于渐开线的基圆半径时和齿根圆的半径大于渐开线的基圆半径时。为了叙述方便,下文中,分别称前者为a情况,后者为b情况。/齿轮的啮合只在渐开线部分,因此对于a情况,设计时可在基圆的以下部分加与渐开线相切的直线以连接齿根圆,如图1所示。而对于b情况则无需加相切直线,仅截取渐开线的一部分即可,如图2所示。
3 程序设计时需解决的几个关键问题
3.1 啮合角的计算
变位齿轮的齿顶圆直径和啮合角有关,因此设计时必须先由输入的齿轮设计参数经过复杂的数学计算得到啮合角值。
我们知道,外齿合时的啮合角计算公式为:
3
screen.width*0.78-37) window.open('http://www.jxcad.com.cn/attachment/Mon_0612/129_162193_bf20e23c19beaed.jpg');" onload="if(this.width>screen.width*0.78-36)this.width=screen.width*0.78-36;" data-ke-onmousewheel="return bbimg(this)" src="../../upFiles/infoImg/coll/20111103/OT20111103124906685.jpg" data-ke-src="../../upFiles/infoImg/coll/20111103/OT20111103124906685.jpg" width="204" />
可见a`无法由显式直接表达出来,因此也就无法直接计算出来。虽然用C语言可以数值计算出a1,但Program自带的程序不支持C语言,幸运的是利用Program自带的解方程程序可以解出inva`,具体的设计程序是:
4
screen.width*0.78-37) window.open('http://www.jxcad.com.cn/attachment/Mon_0612/129_162193_5a14652b11b21d9.jpg');" onload="if(this.width>screen.width*0.78-36)this.width=screen.width*0.78-36;" data-ke-onmousewheel="return bbimg(this)" src="../../upFiles/infoImg/coll/20111103/OT20111103124906429.jpg" data-ke-src="../../upFiles/infoImg/coll/20111103/OT20111103124906429.jpg" width="156" />
上式中a`必须赋初值,否则数值解会不确定,考虑到啮合角一般大于10度,所以初值设为10即可。由于Program程序中三角函数内的角度是度,因此公式右边最后的a`应处理成弧度,以便和tana`同量纲。
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所示。
5
screen.width*0.78-37) window.open('http://www.jxcad.com.cn/attachment/Mon_0612/129_162193_d48e4eeb26a6383.jpg');" onload="if(this.width>screen.width*0.78-36)this.width=screen.width*0.78-36;" data-ke-onmousewheel="return bbimg(this)" src="../../upFiles/infoImg/coll/20111103/OT20111103124906158.jpg" data-ke-src="../../upFiles/infoImg/coll/20111103/OT20111103124906158.jpg" width="361" />
图3 a种情况的齿轮自动化设计流程
6
screen.width*0.78-37) window.open('http://www.jxcad.com.cn/attachment/Mon_0612/129_162193_41a19eb6be627a2.jpg');" onload="if(this.width>screen.width*0.78-36)this.width=screen.width*0.78-36;" data-ke-onmousewheel="return bbimg(this)" src="../../upFiles/infoImg/coll/20111103/OT20111103124906292.jpg" data-ke-src="../../upFiles/infoImg/coll/20111103/OT20111103124906292.jpg" width="368" />
图4 综合a、b两种情况后的齿轮自动化设计流程
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分度圆b径
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轮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软件中自动r成的圆柱齿轮实体模型。
其设计参数是:
齿数z1=20 齿数z2=30
模数m=3 变位系数x1=0.1
变位系数x2=0.2 压力角=200
齿槽圆角半径=0.2 齿宽=15
轴孔直径=20 键槽宽度=8
键槽高=3
7
图5 圆柱齿轮实体造型
7 结束语
渐开线变位直齿圆柱齿轮自动化造型设计软件的成功开发大大地提高了齿轮的造型速度,与传统的造型设计相比,其设计效率可提高百/以上,且对使用者要求不高。该软件已在我校的教学和毕业设计实践中推广使用,并取得了良好的效果。