iCAx开思网
标题:
在Solid Edge中精确生成齿廓曲线的研究
[打印本页]
作者:
tomjhon66
时间:
2005-8-11 14:52
标题:
在Solid Edge中精确生成齿廓曲线的研究
基于SOLID EDGE的零件库设计方法及其应用
newmaker
[摘要]:本文提出并分析了基于三维CAD软件Solid Edge零件库设计的四种不同方法及其关键技术,它有助于解决大量标准件、通用件等的三维设计问题,有助于提高设计效率。
[关键词]:零件库,Solid Edge,三维CAD,二次开发
1. 引言
计算机辅助设计即CAD技术已经成为企业提高创新能力,提高产品开发能力,增强企业竞争能力的一项关键技术。大力推广应用CAD技术、开展“CAD应用工程”是我国“八五”和“九五”期间的重要项目。通过多年的推广和应用,目前工程技术人员和设计人员正在积极从二维CAD向三维CAD转变。为此我们开展了自然科学基金项目《基于Solid Edge面向先进制造的机械产品开发与设计技术研究》的研究,试图在三维CAD软件Solid Edge[1][2]的基础上进行二次开发,为中小型制造企业提供经过实践检验的机械产品开发与设计技术。研究中我们发现,在应用三维CAD技术进行机械产品设计时,往往将大量的时间和精力花在大量标准件、通用件、外购件以及企业内部系列化产品等的设计上,其工作重复而繁琐,大大延缓了产品开发周期,不能充分体现CAD技术的优越性。为此本文在Solid Edge的基础上,就如何对标准件、通用件等设计参数化零件库,作了一定的研究,并提出了几种不同的实现方法和策略。
2. 零件库设计方法
基于Solid Edge的零件库设计方法主要有以下几种:①采用Solid Edge本身的零件族功能;②采用Excel VBA技术操纵Solid Edge的变量表;③采用VB、VC编程技术操纵Solid Edge的变量表;④采用VB、VC编程技术操纵Solid Edge的特征造型过程。在设计零件库时,应根据零件的复杂程度,零件的相似性、零件库零件数量等因素选择不同的方法,下面就不同设计方法的特点、关键技术及其应用情况等作对比分析。
2.1 采用Solid Edge本身的零件族功能
采用Solid Edge本身的零件族功能设计零件库,就是通过手工操作Solid Edge设计零件库。其一般步骤是:①找出一个能集中零件库中不同零件所有功能要素的复合零件,并运用Solid Edge参数化特征造型技术建立该零件的三维模型;②打开复合零件的变量表和复合零件的特征管理器(EdgeBar),在特征管理器中,打开零件族功能(Family of Parts),并点击新建(New)、输入零件库零件名称;③在变量表中选择需要控制的特征尺寸变量,并在零件族对话框的变量(Variables)栏中点击“添加变量”(Add Variables)将所选变量的名称和数值都加入到零件库中,并修改尺寸;④用鼠标在实体零件中选取要抑制的特征,在零件族中的“被抑制特征(suppressed features)”栏点击“添加特征(Add Feature)”按钮,将需要抑制的特征抑制(隐藏)。⑤如此反复操作,得到一系列零件,并保存,如图1所示;⑥以后需要调用零件库中不同零件时,只需打开该复合零件,并零件族对话框中选择不同的零件名即可[3]。
图1 采用Solid Edge零件族功能设计零件库
在Solid Edge中利用零件族功能设计零件库,用户无须编程,即可得到一个简单的零件库。但是该方法操作较为烦琐、设计数据较为散乱、设计效率低。
该方法一般用于零件库中零件数量较少、零件结构较为复杂、控制变量的数量较少,且各变量之间的关系较为简单的场合,如企业中某几种变型产品零件库的设计。
2.2 采用Excel VBA技术操纵Solid Edge的变量表
为了便于零件库中各个零件数据的集中管理,简化零件库的手工操作,提高设计效率,这时可采用该方法来设计零件库。其一般步骤是:①运用Solid Edge参数化特征造型技术建立复合零件的三维模型,并整理其变量表,建立变量之间的约束关系,确定主控变量;②用Microsoft Excel创建复合零件数据表用于记录复合零件模型中用到的变量及其不同的取值组合,每一行数据就是零件库中某一个零件各尺寸参数的值。当用户选定该主控尺寸值所在的行,则其它尺寸的值即可确定,如图2所示;③在Excel VBA编程环境中,新建一个Excel宏,编写VBA程序代码来驱动Solid Edge变量表。涉及到的主要程序代码有:用Set Sel = Application.ActiveCell及SelRow = Sel.Row获得当前Excel的激活行SelRow;用Set “变量值”=Sheets("Excel表名").Cells(SelRow,n).Value方法获取当前Excel激活行SelRow的第n列数据;用Set objApp = GetObject(, "SolidEdge.Application")函数来调用Solid Edge对象objApp;用Set objvars = objApp.ActiveDocument.Variables方法获取该复合零件变量表中的所有设计变量;用Call objvars.Edit("变量名", 变量值)方法修改变量表中相应变量的值,Solid Edge便会自动更新复合零件的三维模型;④使用时,先打开Solid Edge复合零件,打开相应的Excel数据表并选择其中某一行数据,然后运行Excel宏,这时Solid Edge就按指定的尺寸数据更新复合零件三维模型得到零件库中的某一个零件,如图2所示为我们所设计的夹具元件库。
图2 采用Excel VBA技术设计零件库
该方法通过Excel VBA技术来驱动Solid Edge变量表,无需设计专门的数据管理程序,零件库数据管理方便,程序设计简单清晰,但是使用时需要同时运行Excel,零件库的运行、管理、维护不方便。该方法一般用于零件库中零件数量较多、零件结构复杂、零件数据较多的场合,如企业通用件库的设计。
2.3采用VB或VC编程技术操纵Solid Edge的变量表
为了便于零件库中各个零件数据的集中管理,减少零件库的手工操作,提高设计效率,这时可采用该方法来设计零件库。其一般步骤是:①运用Solid Edge参数化特征造型技术建立复合零件的三维模型,并整理其变量表,建立变量之间的约束关系,确定主控变量;②用VB或VC编程,获取复合零件的各个变量。以VB程序为例,一般采用Set objApp = GetObject(, "SolidEdge.Application")或Set objApp = CreateObject("SolidEdge.Application")函数来调用或创建Solid Edge对象objApp,并采用Call objApp.Documents.Open(FileName:=“复合零件文件名”)方法打开复合零件的三维模型,用Set objvars = objApp.ActiveDocument.Variables方法获取该复合零件变量表中的所有设计变量;③设计清晰友好的用户图形界面,管理零件库中各个零件的设计数据,如图3为某法兰盘类零件库界面;④在程序中用Call objvars.Edit("变量名", 变量值)方法修改变量表中相应变量的值,Solid Edge便会自动更新复合零件的三维模型[4][5]。
图3 采用VB操纵Solid Edge变量表设计零件库
该方法通过VB或VC来驱动Solid Edge变量表,程序设计简单清晰,用户界面友好,便于设计数据的管理,但所能控制的主控变量不能太多,否则会引起
三维模型的异变。该方法一般用于零件库中零件数量较多、零件结构复杂、控制变量的数量较少,且各变量之间的关系较为简单的场合,如组合机床通用件库(多轴箱、主轴等)的设计。
2.4 采用VB、VC等编程技术操纵Solid Edge的特征造型过程
上述几种方法在设计零件库时均需要事先设计复合零件的三维模型,使得零件库运行时的独立性较差,如果复合零件的三维模型设计不当,当改变数据时会引起零件三维模型的异变,零件库中零件变化不能太大,数量较少。如果零件库中零件数量较大,且零件的结构不太复杂,这时可采用VB、VC等编程技术操纵Solid Edge的特征造型过程,形成一个独立的零件库软件。通过该方法设计零件库的一般步骤是:①仔细分析零件库中各零件的结构特征,优化零件在Solid Edge环境中的造型方法;②运用VB或VC设计零件库的图形用户界面;③用VB或VC编程对零件库数据进行管理;④用VB或VC编程,根据零件库零件数据控制Solid Edge的特征造型过程,从而在Solid Edge中得到所需零件[6]。例如图4为我们所设计的紧固件标准零件库的一部分。
图4 紧固件标准零件库
该方法通过VB或VC来控制Solid Edge特征造型过程,不需事先建立复合零件,零件库的独立性较高,便于零件库的运行、维护,但程序设计较为复杂,一般用于零件库中零件数量较多、零件结构较为简单的场合,如标准零件库的设计。
3. 设计零件库的几个关键技术
3.1 复合零件的特征造型
在采用上述前三种方法设计零件库时,最为关键的是复合零件的三维造型问题,在复合零件造型时必须考虑一定的造型策略,否则在改变参数时会引起三维模型的异变,一般应注意以下几点:①三维CAD软件Solid Edge在进行特征造型和特征修改时都必须有一个基本特征,其它特征都是在该特征的基础上通过填料或除料来实现的,所以该基本特征是不能被删除或隐藏的,否则其它特征就无法存在。因此,在复合零件造型时,必需合理选择基本特征,一般应选择零件库中每个零件都具备的特征。②在复合零件的变量表中,应对每个变量之间的关系通过变量表公式加以确定,尽量减少主控变量的个数。③在Solid Edge中进行特征造型时,尽可能做到关联造型。为此,在特征造型时,基本特征的基准可选择Solid Edge的基准参考面,而其它特征在造型时均应以基本特征或相关特征的特征面、相切面、平行面等相对基准作为特征造型基准,如图5所示。
图5 基准面的选取
3.2零件库的数据管理
在设计零件库时需要对零件库的零件参数进行管理,其方法主要有以下几种:①零件数量较少(5~8个以下),可直接保存在上述的Solid Edge零件族中;②零件数量较少(5~20个),数据结构简单,可通过编程在VB的下拉式列表框中保存零件库数据,如图2所示,也可在VB程序界面中插入DataGrid对象来管理零件库数据,如图6所示为我们设计的组合机床轴类通用件库数据管理界面,还可采用上述直接用Excel驱动变量表的方法管理零件库数据;③零件数量较多(20个以上),且数据结构较为复杂,这时可采用数据库技术管理零件库数据。例如在我们设计的紧固件标准件库中,采用了与VB的结合比较紧密Microsoft Access建立零件数据库,在VB中通过ADO(Microsoft ActiveX Data Objets)控件采用Jet数据引擎,即Micrisoft.Jet.OLEDB.4.0来链接数据库,从而实现VB程序对数据库数据的读取。
图6 组合机床轴类通用件库
4. 结论
本文在Solid Edge的基础上,以实例提出了几种不同的零件库设计方法及其关键技术,它有助于解决大量标准件、通用件、外购件以及企业内部系列化产品等的三维设计问题,有助于提高企业的设计效率和设计水平。
(2005-1-26,阅读104次)
在Solid Edge中精确生成齿廓曲线的研究
作者:
liyef2005
时间:
2006-2-20 17:52
这哪是精确生成齿廓曲线的研究 ?
本人急需学会精确绘制渐开线齿廓方法,请高手指教。谢谢!
作者:
xexplorer
时间:
2006-2-24 22:03
标题:
本人论文
基于SOLID EDGE的齿轮三维设计系统的研究*
徐武彬
(广西工学院机械工程系 广西柳州 545006)
摘要:本文以三维CAD软件Solid Edge为软件平台,介绍了参数化的齿轮三维设计方法,并将齿轮的设计计算和三维实体模型设计融为一体,大大地提高了齿轮三维设计的效率。本文还以斜齿圆柱齿轮为例,着重介绍了齿轮三维设计软件系统的程序设计方法。
关键词:齿轮,Solid Edge ,三维CAD
中图分类号:TH122 文献标识码:A
基于Solid Edge的齿轮廓线设计
轮齿的形成在实际加工中可以有多种方法,有成形法、范成法等等,不管是什么方法,它们都是在毛坯上去除齿槽,最终形成轮齿。齿轮三维造型方法与实际切削加工有着相似的地方,也是通过除料(Cutout)的方法把齿槽部分去除。该部分主要是在Solid Edge的草图环境(Sketch)中创建齿轮的轮齿廓线,为生成齿轮的三维模型做准备。
图2“四点法”
创建齿轮齿槽廓线主要有三种方法:①模拟切削加工,形成精确齿廓[1]。②根据轮齿廓线的解析法方程,用直线段逼近。③用轮齿廓线上少量的点,通过B样条曲线拟合。方法一和方法二所生成的轮齿廓线精确,但在三维环境中采用,则所形成的齿轮包含的特征元素数量庞大,占用的磁盘存储空间庞大,生成的时间长,无法用于齿轮传动系统的三维装配和二维工程图中[4][5]。为此,我们采用方法三,并经过反复测试,提出了“四点法”构成轮齿廓线,且效果较好。
所谓“四点法”,就是在轮齿渐开线及过渡线上取四点,通过Solid Edge提供的B 样曲线接口函数BSplineCurve2d来生成轮齿廓线。在不同的条件下,这四点有所不同。当基圆大于齿根圆(齿数z≤41)时,轮齿廓线在理论上由一条渐开线和一条过渡线组成,此时,我们所指的四点是取齿根圆上A点、基圆上B点、分度圆上C点和齿顶圆上D点,如图2 a所示。当基圆小于齿根圆(齿数z>41)时,轮齿廓线在理论上是一条渐开线,我们所指的四点是取齿根圆上A点、分度圆上C点、齿顶圆上D点及齿根圆与分度圆中间的一点E,如图2 b所示。
2.4基于Solid Edge的齿轮三维设计
该部分主要根据设计计算出的齿轮基本参数和结构参数,通过Solid Edge二次开发接口程序来生成齿轮的三维实体模型。
图3齿槽放样除料截面图
对于直齿圆柱齿轮,只需在圆柱形齿坯上,通过拉伸除料(ExtrudedCutout)将齿槽部分切去,然后再将该拉伸除料特征阵列z个即可。对于斜齿圆柱齿轮,做法主要有两种:一是作一条螺旋线,然后通过螺旋除料(HelixCutout)将齿槽部分切去,然后再将该螺旋除料特征阵列z个;二是沿齿槽方向作若干个齿槽轮廓线,通过放样除料(LoftedCutout)将齿槽部分切去,然后再将该放样除料特征阵列z个[6]。考虑到Solid Edge软件本身特点,经反复测试发现,第一种方法运行的可靠性较差。因此我们采用第二种方法,并经过反复测试,沿齿槽方向采用4个齿槽轮廓线进行放样除料的效果和可靠性都非常理想。如图3所示。
3. 基于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(i) = objLFRefPlane(i).Lines2d.AddBy2Points( )直线方法分别在四个参考面objLFRefPlane(i)上建立相应的齿槽轮廓,如图3所示。
(4)采用放样除料方法去除齿槽部分。具体算法是:根据放样除料特征操作的要求,在四个参考面上将右侧齿根点定义为放样基准点,构成放样基准点数组OriginArray(i),并用SectionTypes(i) = igProfileBasedCrossSection方法确认每个轮廓封闭。最后用Set objLoftCut = objModel. LoftedCutouts.AddSimple(NumSections:=4, CrossSections:=objLFProfile, CrossSectionTypes: = SectionTypes, Origins:=OriginArray, MaterialSide:=igLeft, StartTangentType:=igNone, EndTangentType:=igNone) 放样除料方法在齿坯模型objModel上去除齿槽部分。
图4 斜齿轮三维模型
(5)根据齿数,阵列齿槽部分,形成齿轮三维实体。具体算法是:用Set objRPattern = objProf.CircularPatterns2d.AddByCircle(CenterX:=0#, CenterY:=0#, StartX:=0.006, StartY:=0.06, Orientation:= igGeom2dOrientCounterClockwise, OffsetType:=sePatternFillOffset, Count:=1, AngularSpacing:=2 * PI / z)方法在齿坯基准面objProf上创建圆形阵列objRPattern,用Set objFeatures(1) = objLoftCut方法设置阵列特征为放样除料特征,最后用Set objPattern = objModel.Patterns.Add (Number OfFeatures:=1, FeatureArray: =objFeatures, Profile:=objProf, PatternType:= seSmartPattern)方法在齿坯模型objModel上将齿槽放样除料特征阵列,形成齿轮三维实体,如图4所示。
(6)程序的运行。用VB技术和Solid Edge二次开发接口开发的齿轮三维设计应用程序有两种运行方式:一是将开发的齿轮三维设计应用程序(*.EXE类型可执行文件)作为一条新增命令,嵌入到Solid Edge中,在Solid Edge环境中运行。二是将齿轮三维设计应用程序作为用户端主控模块控制Solid Edge的进入和退出[4]。
作者:
pxbpxbpxb
时间:
2007-5-16 19:37
谢了
欢迎光临 iCAx开思网 (https://www.icax.org/)
Powered by Discuz! X3.3