齿轮传动是机械传动中最主要的一类,型式很多,应用广泛,齿轮设计在机械设计中占据着相当重要的地位,但它的设计步骤多、涉及参数多,需查询的图表总数有二十多个,给设计工作者带来很多的不便,降低了设计效率。随着计算机辅助设计与制造(CAD/CAM)技术的发展,在产品开发的过程中,有限元分析、装配设计、运动仿真、数控加工等都必须以三维模型为基础。在进行齿轮机构设计时,经常需要利用CAD技术设计并建立齿轮的三维实体模型,从而利用CAD/CAM软件进行装配、检测和分析。目前国内外常用的CAD/CAM软件,如美国EDS公司的UG和 Solid Edge, PTC (Parametric Technology Corporation)公司的Pro/Engineer, CNC Software Inc.的MasterCAM等三维CAD/CAM软件都无法直接进行齿轮的设计[1][2]。为此我们提出了将齿轮的设计计算和三维实体模型设计融为一体的设计方法,并设计了基于三维CAD软件Solid Edge[2]的齿轮三维设计软件系统。该软件系统不仅可以方便地设计并生成齿轮的三维实体模型,还可用于齿轮装配设计、运动仿真及计算机辅助教学中。
1. 齿轮三维设计软件系统的构成
1.1软件系统的设计思想
我们在构建齿轮三维设计软件系统时,主要考虑了以下几个方面的问题:①在三维环境中进行齿轮设计,主要有两种情况:一是根据使用要求,逐步进行设计计算,设计出齿轮的参数后再进行齿轮的三维设计;二是已经知道齿轮的基本参数,如齿数、模数等,利用三维CAD软件直接构建齿轮的三维模型。这两种情况在构建齿轮三维设计软件系统时,必须要都能满足。②在构建齿轮三维设计软件系统时,必须仔细分析齿轮的设计过程,提取其合理的设计流程。只有建立在合理的设计流程基础上的齿轮设计系统,才可能较好地满足用户的要求,只注重理论研究而忽视工程实践的做法是不可取的。为此我们设计的齿轮软件系统是按齿轮的设计流程分模块设计的。③三维CAD软件Solid Edge虽然具有较强的参数化特征造型功能,但不能生成需要经过精确计算的齿轮廓线。为此我们将复杂的齿轮设计计算交给Visual Basic程序完成,将齿轮的结构设计交给Solid Edge来完成,通过Solid Edge的二次开发接口用Visual Basic程序将两者有机地结合在一起,形成一个完整的齿轮三维设计系统。
1.2齿轮的设计计算
该部分主要根据文献[3]的齿轮设计步骤来进行设计。设计中,可以根据齿轮的工作要求、工作环境来选择齿轮的类型、材料、精度等级等,按照保证齿面接触强度和齿根弯曲强度两准则[3]进行计算,设计出齿轮的基本参数如模数m、齿数z等。其具体设计计算方法可参考文献[3],本文不再赘述。本软件系统采用了向导型设计界面,使用方便、清晰。如图1为几个设计界面。
图1齿轮设计界面
在进行齿轮设计计算时,需查询的图表总数有二十多个,因此在软件设计时需要解决的关键问题是这些图表的查询。为此我们采用了以下几种不同的方法来解决:
(1) 直接创建数据库
该方法主要是针对二维表格,如常用齿轮材料及其机械特性表,齿间载荷分配系数KHα 、KFα表,齿形系数YFα及应力校正系数YSα表,圆柱齿轮的齿宽系数φd表,各类机器所用齿轮传动的精度等级范围表等。我们是通过Acess2000来建立相应的数据库,对于不能直接从数据库中获取数据的情况,我们还在程序中采用了插值法来实现数据的获取。
(2) 创建数据库与程序相结合
该方法主要针对多维表格,如:使用系数K A表,弹性影响系数Z E表等。对于这类表格采用创建数据库与分支程序相结合的方式来获取相应的数据,可简化数据库结构。
(3) 图表的数学处理
对于接触强度计算用的齿向载荷分布系数KHβ表、弯曲强度计算用的齿向载荷分布系数KFβ图、弯曲疲劳寿命系数KFN图、接触疲劳寿命系数KHN图、标准圆柱齿轮传动的端面重合度εα图、螺旋角影响系数Yβ 图、区域系数ZH 、动载系数K V 图、弯曲疲劳强度极限σFE图、齿轮的接触疲劳强度极限σH lim等图表,通过查询有关资料获得相应公式,或建立相应的数学方程来简化程序设计。
1.3 基于Solid Edge的齿轮廓线设计
轮齿的形成在实际加工中可以有多种方法,有成形法、范成法等等,不管是什么方法,它们都是在毛坯上去除齿槽,最终形成轮齿。齿轮三维造型方法与实际切削加工有着相似的地方,也是通过除料(Cutout)的方法把齿槽部分去除。该部分主要是在Solid Edge的草图环境(Sketch)中创建齿轮的轮齿廓线,为生成齿轮的三维模型做准备。
创建齿轮齿槽廓线主要有三种方法:①模拟切削加工,形成精确齿廓。②根据轮齿廓线的解析法方程,用直线段逼近。③用轮齿廓线上少量的点,通过B样条曲线拟合。方法一和方法二所生成的轮齿廓线精确,但在三维环境中采用,则所形成的齿轮包含的特征元素数量庞大,占用的磁盘存储空间庞大,生成的时间长,无法用于齿轮传动系统的三维装配和二维工程图中。为此,我们采用方法三,并经过反复测试,提出了“四点法”近似构成轮齿廓线,且效果较好。
所谓“四点法”,就是在轮齿渐开线及过渡线上取四点,通过Solid Edge提供的B 样曲线接口函数BSplineCurve2d来近似生成轮齿廓线。在不同的条件下,这四点有所不同。当基圆大于齿根圆(齿数z≤41)时,轮齿廓线在理论上由一条渐开线和一条过渡线组成,此时,我们所指的四点是取齿根圆上A点、基圆上B点、分度圆上C点和齿顶圆上D点,如图2 a所示。当基圆小于齿根圆(齿数z>41)时,轮齿廓线图2“四点法” 基圆分度圆分度圆基圆ba在理论上是一条渐开线,但实际上,由于刀具齿顶圆弧的存在,齿根部分仍然存在过度曲线。由于该过度曲线部分较小,因此,此时我们所指的四点是取齿根圆上A点、分度圆上C点、齿顶圆上D点及齿根圆与分度圆中间的一点E,如图2 b所示。
图2“四点法”
1.4基于Solid Edge的齿轮三维设计
该部分主要根据设计计算出的齿轮基本参数和结构参数,通过Solid Edge二次开发接口程序来生成齿轮的三维实体模型。
对于直齿圆柱齿轮,只需在圆柱形齿坯上,通过拉伸除料(ExtrudedCutout)将齿槽部分切去,然后再将该拉伸除料特征阵列z个即可。对于斜齿圆柱齿轮,做法主要有两种:一是作一条螺旋线,然后通过螺旋除料(HelixCutout)将齿槽部分切去,然后再将该螺旋除料特征阵列z个;二是沿齿槽方向作若干个齿槽轮廓线,通过放样除料(LoftedCutout)将齿槽部分切去,然后再将该放样除料特征阵列z个[6]。考虑到Solid Edge软件本身特点,经反复测试发现,第一种方法运行的可靠性较差。因此我们采用第二种方法,并经过反复测试,沿齿槽方向采用4~5个齿槽轮廓线进行放样除料的效果和可靠性都非常理想,其精度能够基本满足工程要求,且运行的可靠性高。对于一般齿轮而言,采用4个轮廓,对于宽径比较大的齿轮,可采用5个轮廓,如图3所示。
图3齿槽放样除料截面图
2. 基于Solid Edge的齿轮三维设计程序的设计方法
有关齿轮设计计算等部分的程序设计方法可参阅相关参考文献,本文以斜齿圆柱齿轮为例,着重介绍一下面向Solid Edge的齿轮三维设计程序的设计方法。 斜齿圆柱齿轮三维造型程序设计主要包括以下几个方面:
(1)在VB程序中调用Solid Edge对象。在VB程序中是采用VB的CreateObject( )或GetObject( )函数来调用Solid Edge对象,用Set objDoc = objApp.Documents.Add("SolidEdge.PartDocument")方法创建SolidEdge 零件(Part)模块文档objDoc。如需退出Solid Edge环境,可执行objApp.Quit语句[4]。
(2)创建齿坯并倒角、开中心孔、键槽。具体算法是:用Set objProfile(1) = objDoc.ProfileSets.Add.Profiles.Add(objDoc.RefPlanes(1))方法在Part模块文档objDoc中定义齿坯二维轮廓参考面objProf(1);用Call objProfile(1).Circles2d.AddByCenterRadius(0, 0, r)方法在参考面objProf(1)上建立半径为r的二维齿顶园,用Set objModel = objDoc.Models.AddFiniteExtrudedProtrusion(1, objProfile, igLeft, b)方法将二维齿顶园拉伸为齿宽为b三维齿坯objModel;用Set objEdges = objModel.ExtrudedProtrusions(1).Edges(EdgeType:=igQueryAll)方法获取齿坯objModel的边缘objEdges,用Call objModel.Chamfers.AddEqualSetback(2, objEdge, s) 切角方法生成宽度为s的45度倒角;用Call objProf.Arcs2d.AddByCenterStartEnd( )和 Call objProf.Lines2d.AddBy2Points( )方法在参考面objProf上建立中心孔和键槽轮廓,然后用Set objCutout = objModel.ExtrudedCutouts.AddFinite(objProf, igLeft, igLeft, b)拉伸除料方法在齿坯上切出中心孔和键槽。其中objProfile、objProf、objEdges、objModel 、objCutout等均为Object类型数据[7][8]。
(3)创建齿槽轮廓。对于斜齿圆柱齿轮,我们沿齿槽方向采用4个齿槽轮廓进行放样除料形成齿槽。具体算法是:用Set objLFRefPlane(i) = objDoc.RefPlanes.AddParallelByDistance(objDoc.RefPlanes(1), (i-1)*b / 3, igRight, True)方法在齿槽方向建立四个平行于基准面RefPlanes(1)的参考面objLFRefPlane(i)(其中i=1~ 4,b为齿宽),根据“四点法”用 Set objCurve(i) = objLFRefPlane(i).BsplineCurves2d.AddByPoints(Order:=4, ArraySize:=4, Array:=MyArray()) B样条曲线方法,根据“四点”数组MyArray()建立B样条曲线objCurve(i),并用Set objArc(i) = objLFRefPlane(i). Arcs2d.AddByCenterStartEnd( )圆弧方法及Set objLine1(