减速器辅助设计软件的开发关键零部件的参数化设计.docx
《减速器辅助设计软件的开发关键零部件的参数化设计.docx》由会员分享,可在线阅读,更多相关《减速器辅助设计软件的开发关键零部件的参数化设计.docx(37页珍藏版)》请在冰豆网上搜索。
减速器辅助设计软件的开发关键零部件的参数化设计
目次
1引言……………………………………………………………………………………………1
1.1AutoCAD应用……………………………………………………………………1
1.2AutoCAD二次开发………………………………………………………………1
1.3ActiveXAutomation技术………………………………………………………3
1.4本课题研究内容安排……………………………………………………………4
2零部件参数化设计…………………………………………………………………4
3齿轮的参数化设计…………………………………………………………………4
3.1齿轮的机械设计方法……………………………………………………………4
3.2系统的工作流程…………………………………………………………………5
3.3系统的用户界面…………………………………………………………………5
3.4创建对AutoCAD部件对象的引用………………………………………………6
3.5程序中强度的计算与校验………………………………………………………7
3.6用户界面中各个模块的实现……………………………………………………8
3.7零件图的绘制……………………………………………………………………11
3.8应用实例…………………………………………………………………………13
4轴的参数化设计…………………………………………………………………14
4.1系统的用户界面…………………………………………………………………14
4.2应用实例…………………………………………………………………………15
结论…………………………………………………………………………………18
致谢…………………………………………………………………………………19
参考文献………………………………………………………………………………20
附录A齿轮参数化设计程序………………………………………………………21
附录B轴的参数化设计程序………………………………………………………47
1引言
AutoCAD是当前应用最广泛的CAD图形支撑平台但缺少参数化设计功能,因而不能完成零部件的自动设计与绘图,设计效率难以提高。
本文主要研究减速器计算机辅助设计软件的开发,阐述应用VB语言对AutoCAD进行二次开发,以实现减速器关键零部件的参数化设计。
1.1AutoCAD应用
CAD是一种利用计算机强大的图形处理和数值计算能力,辅助人们进行工程或产品的设计与分析,以达到理想的目的并取得创新成果的一种技术。
现阶段由于人们对软件的开发产生了许多以CAD技术为基础的应用软件。
在这些软件中,应用人数最多、最具影响力的当属AutoCAD。
AutoCAD具有良好的用户界面,通过交互菜单或命令行方式便可以进行各种操作。
它的多文档设计环境,让非计算机专业人员也能很快地学会使用。
在不断实践的过程中更好地掌握它的各种应用和开发技巧,从而不断提高工作效率。
AutoCAD还具有广泛的适应性,它可以在各种操作系统支持的微型计算机和工作站上运行,并支持40多种分辨率由320×200到2048×1024的各种图形显示设备,以及30多种数字仪和鼠标器,数十种绘图仪和打印机,这就为AutoCAD的普及创造了条件[1-3]。
然而在许多方面,AutoCAD还是无法达到预计的目的,如参数化设计等,因此,人们又对AutoCAD进行了进一步开发,使AutoCAD能适应更多的软件支持。
这就是所谓的AutoCAD二次开发。
1.2AutoCAD二次开发
1.2.1系统的二次开发功能
AutoCAD不仅能够胜任二、三维绘图工作,而且还是一个良好的CAD二次开发平台,系统提供的主要开发功能有:
(1)用户能自定义屏幕菜单、下拉式菜单、图标菜单、图形输入板菜单和按钮菜单。
(2)用户能定义与图形有关的一些属性,如线型、剖面线图案、文本字体、符号、样板图形等。
(3)建立命令组文件,自动执行预定义的命令序列。
(4)通过DXF或IGES等规范的图形数据转换接口,与其他CAD系统或应用程序进行数据交换,以实现不同系统之间的集成。
(5)提供了一个完全集成在AutoCAD内部的VisualLISP编程开发环境,用户可使LISP语言定义新命令,开发新应用,迅速而方便地建立自己的高效解决方案。
编译后的VisualLISP代码是二进制的,从而有助于保护软件算法和知识产权。
(6)具有一个功能强大的编程接口ObjectARX,提供了对AutoCAD进行二次开发的C语言编程环境与接口。
用户可以用从ObjectARXAcDb的基本类中导出AutoCAD的所有对象,因此,用户自定义的对象可以完全建立在已有的AutoCAD对象库上。
(7)配备了更加丰富的ActiveX对象用于定义和编程。
应用AutoCADActiveX技术,可以从AutoCAD内部或外部应用程序控制编程。
(8)熟悉VisualBasic的用户还可以用VBA进行开发,这也是一个面向对象的编程环境,它具有与VB类似的特点,语法简单、功能强大[4]。
1.2.2AutoCAD二次开发工具
(1)VisualLISP(VLISP)
VLISP是新一代的AutoCADLISP语言。
VLISP对语言进行了扩展,可以通过MicrosoftActiveXAutomation接口与对象交互。
同时,通过实现反应器函数,还扩展AutoLISP响应事件的能力。
作为开发工具,VLISP提供了一个完整的集成开发环境(IDE),包括编译器、调试器和其他工具,可以提高二次开发的效率。
另外,VLISP还提供了工具用于发布独立的应用程序。
(2)ARX
ObjectARX应用程序以C++为基本开发语言,具有面向对象编程方式的数据可封装性、可继承性及多态性的特点,用其开发的CAD软件具有模块性好、独立性强、连接简单、使用方便、内部功能高效实现以及代码可重用性强等特点,并且支持MFC基本类库,能简洁高效地实现许多复杂功能。
(3)基于ActiveXAutomation技术的VBA等开发工具
ActiveXAutomation是一套微软标准,该标准允许通过外显的对象由一个Windows应用程序控制另一个Windows应用程序,这也是面向对象编程技术的精髓所在。
ActiveXAutomation服务器应用程序是通过自身对象的属性、方法、事件外显其功能。
对象是服务器应用程序的简单而抽象的代表。
不管是用VB、VC、OFFICEVBA等从外部,还是用AutoCADVBA从内部对AutoCAD进行二次开发,都是通过调用AutoCAD的对象体系结构来进行的。
ActiveXAutomation技术的完全面向对象化编程的特点,使其开发环境具备了强大的开发能力和简单易用的优良特点,开发工具的选择也具有很大的灵活性。
所以,利用ActiveXAutomation技术,是极具潜力的一种开发手段[5-15]。
对于减速器辅助设计关键零部件的参数化设计,就需要用到AutoCAD的这一二次开发。
利用ActiveXAutomation技术,对减速器的零部件进行分析,以达到参数化设计。
1.3ActiveXAutomation技术
ActiveXAutomation的使用方法
(1)Application对象
如果在计算机系统上安装了AutoCAD,则Windows会自动将其所有的信息注册到系统注册表里。
那么在启动VisualBasic后,用户可以象调用VB自己的对象一样调用AutoCAD所提供的ActiveX。
(2)Preferences与Document对象
与AutoCAD中的Preferences对话框的作用相同,通过Preferences对象可以读取或设置AutoCAD的一些基本设置。
Preferences对象通过Application的Preferences属性返回。
(3)创建、查询与修改AutoCAD图形对象
在创建AutoCAD图形对象之前,首先必须定义并创建ModelSpace与PaperSpace集合对象。
这两个对象可通过Document对象的ModelSpace属性与PaperSpace属性返回。
(4)非图形对象
除了ModelSpace与PaperSpace集合,Document对象中另外12个集合中的对象都是非图形对象,如Layers集合包含了AutoCAD当前文档中所有的层,而Linetypes和TextStyles则分别为线型对象与字符型对象的集合。
(5)用户输入
Document对象中还包含有一个很重要的子对象Utility,Utility对象提供了一些其它的实用功能,如用户输入控制(user-input)。
user-input方法可以在AutoCAD的命令提示行中提示用户输入,并显示相应的输入数据类型。
这种类型的输入对于屏幕坐标系,实体选择,短字符与数字的输入有着极为重要的应用。
AutoCAD的ActiveXAutomation技术的出现,标志着AutoCAD的二次开发技术取得了历史性转折。
首先,它首次完全实现了OLEAutomation,使得其他软件可以方便地访问AutoCAD;其次,AutoCAD首次实现了面向对象的开发技术,用户可以操纵它提供所有的AutoCAD对象;最后,基于ActiveXAutomation开发技术的开发工具得到空前的膨胀,已不再局限于C及C++系列语言,用VisualBasic,Delphi等工具都可以进行开发。
ActiveXAutomation技术大大地提高了系统开发的效率、健壮性及易维护性。
1.4本课题研究内容安排
选好课题后,在开学期间充分利用学校图书馆、数字图书馆进行文献搜索。
然后根据检索来的文献,按照任务书要求完成方案设计、开题报告、外文翻译。
初期任务在前4周内全部做完。
由于该课题需要运用到程序语言来进行编程,在中期需要学习一种程序语言,并能够运用该语言编写出一些具有代表性的程序。
同时学习和掌握齿轮类零件的参数化设计基本方法,然后利用AutoCAD的二次开发,运用VB语言对程序进行编制,开发一个原型软件系统,对参数化设计进行验证。
最后,结合实际工作,完成毕业设计说明书的撰写。
2零部件参数化设计
零部件参数化设计模块完成减速器中关键零部件(如齿轮、轴等)的参数化设计功能,如对于齿轮零件,系统能够根据所输入的已知参数(如齿轮的传递功率、主动齿轮转速、传动比、主动齿轮齿数等),自动完成齿轮的结构设计,并输出二维工程图。
下面主要以标准直齿圆柱齿轮为例,阐述零部件参数化设计的实现方法。
3齿轮的参数化设计
3.1齿轮的机械设计方法
齿轮在工程中应用极其广泛。
考虑到常用齿轮减速器中的齿轮通常为闭式传动的实际情况,故齿轮的设计计算可分为2种形式[1]:
(1)软齿面闭式齿轮传动。
齿轮的主要失效形式是齿面疲劳点蚀,设计时应先按齿面接触疲劳强度计算出小齿轮直径,再利用齿根弯曲疲劳强度进行校核。
(2)硬齿面闭式齿轮传动。
齿轮的主要失效形式是齿根弯曲折断,设计时应先按齿根弯曲疲劳强度计算出模数,再用齿面接触疲劳强度进行校核。
3.2系统的工作流程
根据齿轮设计步骤,本系统按图1所示的流程完成齿轮的参数化设计。
图1齿轮参数化设计系统工作流程
3.3系统的用户界面
为方便用户与系统的交互,系统具有如图2所示的用户交互界面[5]。
“初始设计条件”功能模块,采用“文本库”形式供用户输入已知参数,包括传递功率、转速、齿数、传动比等;采用“组合框”控件,列出常用齿轮材料、热处理方式及硬度,方便用户选择。
根据用户选择的材料及齿轮的硬度,通过“齿面接触疲劳强度设计”和“齿根弯曲疲劳强度设计”2个功能模块,分别实现对软齿面齿轮和硬齿面齿轮的设计。
“几何尺寸”功能模块,输出主动齿轮和从动齿轮的基本尺寸参数。
图2齿轮参数化设计用户界面
单击“绘图”按钮,自动创建AutoCAD文件,并输出齿轮的二维工程图。
3.4创建对AutoCAD部件对象的引用
3.5程序中强度的计算与校验
由于齿轮有软齿面和硬齿面之分,故在计算中可分别按齿面接触疲劳强度和齿根弯曲疲劳强度计算,而在验算时则需按照齿根弯曲疲劳强度和齿面接触疲劳强度进行校核[1,7,11]。
若按齿面接触疲劳强度计算,根据设计计算公式进行计算。
式中,
为齿轮1分度圆直径,
为传递功率,
为载荷集中系数,
为泊松比,
为齿宽系数,
为齿轮2许用接触应力。
程序代码中与之相对应的语句是d1=Kd*(InputTorque*1000*Factor_LoadConcentration1*(PoissonRatio+1)/Factor_GearWidth/PoissonRatio/AllowableStress_contact2/AllowableStress_contact2)^(1/3),其中,定义AllowableStress_contact2为齿轮2许用接触应力,定义PoissonRatio为泊松比,定义InputTorque为传递功率,定义Factor_LoadConcentration1为接触强度时的载荷集中系数,定义Kd为公式系数,定义Factor_GearWidth为齿宽系数。
根据此公式,计算出齿轮1的分度圆直径,进而通过已知条件,分别计算出齿轮的齿顶圆直径、齿根圆直径、齿轮宽度、模数等量。
再而对其进行齿根弯曲疲劳强度校核,需要用到公式
进行验算。
式中,
为许用弯曲应力,
为载荷集中系数,
为传递扭矩,
为齿形系数,
为应力校正系数,
为重合度系数,
为模数,
为齿宽系数,
为齿轮1齿数。
其程序代码中相对应的语句:
AllowableStress_bend3=2*Factor_LoadConcentration2*TorqueInput*Factor*Factor_contactRatio/Factor_GearWidth/z1^2/m^3,其中,定义TorqueInput为传递扭矩,定义Factor为齿形系数与应力校正系数的乘积,定义UltimateStress_bend3为校核齿轮1时的弯曲极限应力,定义Factor_LoadConcentration2为弯曲强度时的载荷集中系数,定义Factor_contactRatio为重合度系数。
根据此公式,检验齿轮是否符合弯曲强度要求。
若按齿根弯曲疲劳强度计算,根据公式进行计算,而程序中的语句为m=(2*Factor_LoadConcentration2*TorqueInput*Factor*Factor_contactRatio/Factor_GearWidth/z1^2/AllowableStress_bend1)^(1/3),对以上为出现的量进行定义,定义AllowableStress_bend1为齿轮1许用弯曲应力。
则可计算出齿轮的模数,进而可得齿轮的其他参数,如齿顶圆直径、齿根圆直径、分度圆直径、齿轮宽度等。
待算出以上量后,需对齿轮进行齿面接触疲劳强度校核,可根据公式进行验算,与之对应的程序中的语句为AllowableStress_contact3=Sqr(Kd^3*InputTorque*1000*Factor_LoadConcentration1*(PoissonRatio+1)/Factor_GearWidth/PoissonRatio/d1^3),对以上为出现的量进行定义,定义AllowableStress_contact3为校核齿轮1时的需用接触应力。
从而检验齿轮是否满足接触强度要求。
3.6用户界面中各个模块的实现
由图2可看出,用户界面可分为“初始设计条件”、“按齿面接触疲劳强度设计”、“按齿根弯曲疲劳强度设计”和“几何尺寸”四大模块。
3.6.1初始设计模块
此模块是对程序设计初始条件的设置,故使用文本框的形式显示,以便用户输入已知条件。
传递功率、输入转速、传动比这3个文本框的内容可由主界面获取,实现代码如下:
txtInputTorque.Text=frmMain.lblTorQueInput_axis1.Caption
txtInputRotate.Text=frmMain.lblRotate_Axis1.Caption
txtI.Text=frmMain.lblI1.Caption
在窗口被装载时,这些文本框可直接获取已知量,但由于此程序未对主界面进行设置,所以此3个已知量可由用户直接输入。
输入齿轮齿数这一文本框的内容是由用户预想输入的,可根据以上3个已知量估算出输入齿轮的的齿数,输入齿轮的齿数对一下计算起着关键性的作用,若齿数取的不对,则对齿轮的校验就可能失败。
主动齿轮轴径、平键尺寸
、平键尺寸
这三个文本框的内容是绘图的必要参数,用户可对其自行设置,一般可在计算出几何尺寸后进行设置,以防输入的数据不符合计算出的参数数据。
在这一模块中,还采用了两个组合框控件,可供用户选择,选择好齿轮的材料、热处理方式和硬度,这些资料可在窗口装载时载入,语句说明如下:
cboRigidity_InputGear.AddItem"45钢调质<=350HBS"
cboRigidity_InputGear.AddItem"40Cr表面淬火40~56HRC"
cboRigidity_InputGear.AddItem"40Cr调质<=350HBS"
cboRigidity_OutputGear.AddItem"45钢调质<=350HBS"
cboRigidity_OutputGear.AddItem"40Cr表面淬火40~56HRC"
cboRigidity_OutputGear.AddItem"40Cr调质<=350HBS"
当选择好一种材料后,程序会自动对其进行分析,获得其硬度,填入组合框之后的文本框中,如选择的材料及热处理方式是45钢和调质时,其硬度取为300HBS。
其他选择亦如此。
可由以下语句进行说明:
SelectCasecboRigidity_InputGear.ListIndex
EndSelect
在已知量全部输入完成以后,此模块的任务也算是完成,然后可进入下一模块,继续程序的运行。
3.6.2齿轮计算与校验模块
在此模块中分为两个具体模块,分别为“按齿面接触疲劳强度设计”和“按齿根弯曲疲劳强度设计”,这两个模块就是用两种方法对齿轮进行计算和校验,模块中都是以标签形式显示,无需用户输入,在点击计算和校核后,程序内部自动计算,然后把需要的数据附于对应的标签中。
点击“计算”按钮时,程序会根据初始条件进行计算;点击“校核”按钮时,程序会对齿轮进行强度校核,检验齿轮是否满足强度要求,同时还可以计算出齿轮的几何尺寸,此内容在下一小节中具体介绍;点击“取消”按钮时,清空该模块与“几何尺寸”模块中的数据。
3.6.3几何尺寸模块
在“校核”按钮的点击下,“几何尺寸”模块也随之启动,当齿轮满足强度要求时,程序就会进入几何尺寸计算中。
当按齿面接触疲劳强度设计时,由公式
可直接计算出齿轮1的分度圆直径,由于此时计算出的分度圆直径是个保留n位的小数,所以我们要对其进行圆整,由语句d1=Int(d1+1)得。
然后计算出齿轮的宽度
,齿轮2齿数
,以及模数
,但由于所得模数非标准量,所以要进行选取,在程序中可以用数组的形式将标准模数列出来,在用计算所得的模数与之比较,获取标准模数,渐开线圆柱齿轮模数标准量如表1所示[1]。
待获取模数后,需要给定齿顶高系数
和顶隙系数
。
当模数
时,齿顶高系数
,顶隙系数
;当模数
时,齿顶高系数
,顶隙系数
。
然后可以计算出齿轮的其他参数,如齿顶圆直径
,齿根圆直径
。
将所计算出的几何参数附在相应的标签中。
表1渐开线圆柱齿轮模数(GB1357-87)mm
0.1
0.12
0.15
0.2
0.25
0.3
0.4
0.5
0.6
0.8
1
1.25
1.5
2
2.5
3
4
5
6
8
10
12
16
20
25
32
40
50
对于按齿根弯曲疲劳强度进行设计的齿轮,则需按公式
直接计算出齿轮的模数,然后选取标准模数,根据所选取的模数来选择齿顶高系数
和顶隙系数
,然后计算出齿轮的各个参数,并将这些数值附在相应的标签中。
在计算完成后,先检验主动齿轮轴径、平键尺寸
、平键尺寸
这三个文本框中是否已填入数据,并与所计算出的齿轮参数进行对较,检查齿轮轴径和平键尺寸是否满足要求。
当完成以上步骤后,就可以进入下一步——零件图的绘制。
3.7零件图的绘制
单击“绘图”按钮后,系统调用AutoCAD[3,7,11-15]:
OnErrorResumeNext
SetAcadApp=GetObject(,"AutoCAD.Application")
IfErrThen
Err.Clear
SetAcadApp=CreateObject("AutoCAD.Application")
IfErrThen
MsgBoxErr.Description
ExitSub
EndIf
EndIf
对AutoCAD进行初始化设计,设置窗体在显示器中的位置:
AcadApp.WindowTop=0
AcadApp.WindowLeft=400
设置窗体的宽度与高度:
AcadApp.Width=600
AcadApp.Height=800
设置窗体的初始状态:
AcadDoc.WindowState=acMax
创建出一个新的AutoCAD文件,并将对象引用赋给对象变量。
继续编写代码,完成以下功能:
(1)设置图层及颜色、线型和线宽;
图层可以将各种线型分开处理,使画图变得简单明了。
线条颜色可以一眼区分线条的种类,是用户更易看图AutoCAD生成图。
绘制AutoCAD图形时,线型是最重要的因素,可以用来表示出图形外部、内部、截面等各个部位,是图形不至于繁琐。
至于线宽,是对粗实线的命令,是为了区分粗实线和细实线的重要环节。
下面可以举一例子说明在VB中如何设置者几个参数。
如将图层一设置为粗实线层,线宽设置为0.8毫米,颜色设为白色:
Dimlayer1AsAcadLayer
Setlayer1=AcadApp.ActiveDocument.Layers.Add("粗实线层")
layer1.Lineweight=acLnWt080'粗实线的线宽
layer1.Color=acWhite'粗实线的颜色
(2)画中心线;
首先加载中心线,选择所需的线型,先判断程序中是否已经存在该线型,如不存在,则需在加载中查找所需的线型:
OnErrorResumeNext
DimentryAsAcadLineType
DimfoundAsBoolean
found=False
ForEachentryInAcadDoc.Li