齿轮论坛 www.gearbbs.net

 找回密码
 注册

手机号码,快捷登录

手机号码,快捷登录

搜索
查看: 3758|回复: 8
收起左侧

[Pro/E] 基于Pro/ENGINEER的渐开线变位直齿圆柱齿轮实体模型的二次开发

[复制链接]
发表于 2007-4-3 13:53 | 显示全部楼层 |阅读模式

本帖子中包含更多资源。

您需要 登录 才可以下载或查看,没有账号?注册

x
【摘    要】介绍了利用Pro/ENGINEER 2001软件中自动化零件设计程序Program设计渐开线变位直齿圆柱齿轮的方法和步骤。

【关键词】齿轮  计算机辅助设计


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所示。
 楼主| 发表于 2007-4-3 13:53 | 显示全部楼层
3 程序设计时需解决的几个关键问题

    3.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所示。


                               
登录/注册后可看大图
 楼主| 发表于 2007-4-3 13:54 | 显示全部楼层
图3 a种情况的齿轮自动化设计流程


                               
登录/注册后可看大图

图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分度圆半径
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))
              /*分度圆上齿厚(弧长)
 楼主| 发表于 2007-4-3 13:54 | 显示全部楼层
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分度圆半径
 楼主| 发表于 2007-4-3 13:55 | 显示全部楼层
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
 楼主| 发表于 2007-4-3 13:55 | 显示全部楼层
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<RB1  /*齿根圆半径<基圆半径时,加入
  /*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
 楼主| 发表于 2007-4-3 13:56 | 显示全部楼层
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


                               
登录/注册后可看大图

图5 圆柱齿轮实体造型

7 结束语

    渐开线变位直齿圆柱齿轮自动化造型设计软件的成功开发大大地提高了齿轮的造型速度,与传统的造型设计相比,其设计效率可提高百倍以上,且对使用者要求不高。该软件已在我校的教学和毕业设计实践中推广使用,并取得了良好的效果。
发表于 2009-12-1 14:29 | 显示全部楼层
东东好,好东东
发表于 2009-12-23 21:56 | 显示全部楼层
图片怎么打不开?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|小黑屋|手机版|Archiver|齿轮论坛

GMT+8, 2024-5-3 21:11 , Processed in 0.196408 second(s), 14 queries , MemCache On.

Powered by Discuz! X3.4 Licensed

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表