凸轮机构计算机辅助设计软件开发_第1页
凸轮机构计算机辅助设计软件开发_第2页
凸轮机构计算机辅助设计软件开发_第3页
凸轮机构计算机辅助设计软件开发_第4页
凸轮机构计算机辅助设计软件开发_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 本科毕业设计说明书(论文) 第 页 共 页目 次1 引言(或绪论) 12 凸轮机构的分析过程 12.1 计算机辅助设计方法 12.2 凸轮轮廓解析法方程的建立 12.2.1 尖顶直动从动件盘形机构解析法方程建立 22.2.2 滚子直动从动件盘形机构解析法方程建立 33 程序界面的设置 43.1 主界面form1的设计 53.2 主界面form2的设计 63.3 主界面form3的设计 74 程序的编辑 84.1 form1的主要程序 84.2 form2的主要程序 94.3 form3的主要程序185 实例应用19结论 23致谢 24参考文献25附录A form3程序 261 引言随着信息时

2、代和全球一体化进程的到来,我国的机械制造企业要在激烈的市场竞争中生存和发展,就必须具备产品的快速开发、研制及创新能力。凸轮机构因其独特的功能特性,在工业工程的各个领域得到极为广泛的应用。由凸轮机构特性决定,针对不同应用环境下凸轮机构都不相同。因此对单个凸轮机构进行重复设计与计算为设计人员增加大量重复性工作,使得产品设计周期延长、增加产品设计成本、降低企业竞争力。实践证明,CAD技术对加速产品开发、缩短产品设计周期、提高产品质量、降低成本起着关键作用,是支持企业增强创新设计,提高市场竞争力的强有力手段。2 凸轮机构的分析过程同一运动要求往往可以通过多种凸轮机构来实现,即使在凸轮机构类型确定的情况

3、下,实现运动要求的机构基本参数和结构参数也有较大的可取范围。这就存在如何根据使用场合和工作要求,合理选择凸轮机构类型和确定有关参数的问题,它们是建立在设计方案的定量评价基础上的最优化问题。由于凸轮机构类型选择属于概念设计范畴,目前尚无系统的评价理论和方法,在一般的工程设计中,此项工作主要依赖于设计者个人的经验和主观意愿,只有通过对专家设计经验的总结,并加以描述,构造类型设计知识库和定量评价系统,基于人工智能和专家系统技术,才能实现凸轮机构类型的智能设计和最优设计1。介于凸轮机构种类的广泛性,本次毕业设计选取典型的尖顶从动凸轮机构和滚子从动凸轮机构作为研究对象。21 计算机辅助设计的方法在传统的

4、凸轮轮廓设计中,大部分是采用图解法设计。由于图解法直观、简单,故对一些精度要求不高的凸轮机构仍采用。但图解法由于在等分过程中的有限性及人为的作图误差,致使所设计出来的轮廓曲线不能严格地按给定的运动规律运动2。因此,在现在精密的凸轮轮廓设计中,广泛采用解析法,并借助于计算机进行运算和绘图,这样可设计出较精确的凸轮轮廓曲线。22 凸轮轮廓解析法方程的建立由于本文的主要研究对象是尖顶直动盘形从动件凸轮机构和滚子直动从动件盘形凸轮机构,所以需要分别对两种机构进行解析方程的建立,从而使得更方便地在今后的编程中使用已建立起来的方程来解决问题。221 尖顶直动从动件盘形机构解析法方程建立在平面凸轮机构中,尖

5、顶直动从动件盘形是最基本的形式,故以该机构为例来设计。如图1为一正偏置尖顶直动从动件盘形凸轮机构,凸轮以等角顺时针方向旋转偏距为,基圆半径为 ,从动件运动规律,取凸轮中心为极点,与初始向径 重合的轴为极轴,当凸轮转过任意角后,从动件上升的位移可按求出。利用反转法原理,可作出从动件反转过角后的位置,如图中虚线所示,此时,从动件尖顶与凸轮轮廓在点接触。由图中可得点向径和向角为: 式(1) 式(2) (1)式中 式(3)(2)式中 式(4)(1)(2)两式是根据正偏置求得的,对负偏置机构,其表达也相同,只是在计算角和时,用负值代入(4)式即可。为使极坐标方程适用于不同转向的凸轮,向角应引入正负号,若

6、凸轮为顺时针方向转动,为正值,若凸轮逆时针方向转动,为负值。故偏置尖顶直动从动件盘形凸轮轮廓的极坐标方程为: 式(5) 式(6)图1 尖顶直动从动件盘形机构的解析法示意图222 滚子直动从动件盘形机构解析法方程建立除尖顶直动从动件盘形此基本形式以外,滚子直动从动件盘形机构也同样比较典型,原理上与尖顶直动从动件盘形机构有点相似却略有不同3。如图2所示,仍用反转法给整个机构一个绕凸轮轴心的公共角速度,这时凸轮将固定不动,而从动件将沿方向转过角度,滚子中心将位于点。在图示直角坐标系中,点坐标,即理论轮廓线的方程为: 式(7)为理论轮廓线上的点的直角坐标;为偏距,为凸轮的转角;为从动件的位移;为从动件

7、在起始位置时滚子中心的高度。,式中为理论轮廓的基圆半径,即,为滚子半径。对于对心从动件凸轮机构,因,所以,于是由式(7)可得理论轮廓线的参数方程为: 式(8)图2 滚子直动从动件盘形机构的解析法示意图3 程序界面的设置ActiveX Automation是一套微软标准,该标准允许通过外显的对象由一个Windows应用程序控制另一个Windows应用程序,这也是面向对象编程技术的精髓所在。ActiveX Automation服务器应用程序是通过自身对象的属性、方法、事件外显其功能4。对象是服务器应用程序的简单而抽象的代表。不管是用VB、VC、OFFICE VBA等从外部,还是用AutoCAD V

8、BA从内部对AutoCAD进行二次开发,都是通过调用AutoCAD的对象体系结构来进行的5。ActiveX Automation技术的完全面向对象化编程的特点,使其开发环境具备了强大的开发能力和简单易用的优良特点,开发工具的选择也具有很大的灵活性。所以,利用ActiveX Automation技术,是极具潜力的一种开发手段。用AutoCAD VBA从内部对AutoCAD进行二次开发是一种典型的手段,由于VBA具有通用性强,开发出的应用程序可编译为执行文件及打开包等优点6,这里将用VBA来进行程序的设计和编译。31 主界面form1的设计图3 form1界面设计form1用作欢迎界面,本文主要研

9、究第二章中所提出的两种凸轮机构且两种凸轮机构所需要确定的参数和方程建立均有所不同,需要用两个窗体form2、form3分别解决,故form1窗体清晰地将两个研究对象列出来并供使用者选择并进入,从而进行后面的操作,界面设计如图3。将form1中的各个控件的初始属性表17设定,此外form1的Caption属性设置为:“凸轮机构计算机辅助设计软件”,为了美化窗体,各个控件的文字字体均采用的“幼圆-常规-三号”。此时form1的就算基本完成,form1需要完成的功能是选择对应的凸轮机构的名称,点击“确定”后进入到对应的凸轮设计窗体,“结束”按钮用于结束。表1 form1中控件对象及初始属性值控件类型

10、Name属性值Caption属性值Enabled属性标签Label1选择所需绘制的凸轮机构True命令按钮CommandButton1确定False命令按钮CommandButton2结束True单选框OptionButton1尖顶直动从动件盘形凸轮True单选框OptionButton2滚子直动从动件盘形凸轮True32 界面form2的设计图4 form2界面设计根据章节221可知,需要输入的主要参数为推程运动角,远休止角,回程运动角,近休止角,由于,所以当,分别已经确定的时候,确定,不必使用者填写。此外,还需要使用者确定的有行程、偏心距、基圆半径、精度。凸轮的运动方式繁杂,不管多么精密的

11、软件也不能把各种运动方式都包罗其中,因为凸轮的运动甚至可以是一个完全没有规律的运动。在这里面,我只采用典型的几个运动方式供使用者选择:等速运动,等加速等减速运动和简谐运动。另外,需要有使用者将各个量输入完毕以后点击就绘图的 “绘制”按钮和用于退出的“结束”按钮。最后,用户可能同时需要设计两种机构,所以还需要一个“转到滚子机构”的按钮用于使用者切换进入form3,窗体设计如图4,各个控件的初始属性设计如表2。表2 form2中控件对象及初始属性值控件类型Name属性Caption属性控件类型Name属性Enabled属性标签Label1推程运动角文本框TextBox1True标签Label2远休

12、止角文本框TextBox2True标签Label3回程休止角文本框TextBox3True标签Label4近休止角文本框TextBox4False标签Label5行程h文本框TextBox5True标签Label6偏心距e文本框TextBox6True标签Label7基圆半径ro文本框TextBox7True标签Label8精度文本框TextBox8True标签Label9运动规律续表控件类型Name属性Style属性组合框Combobox10-fmStyleDropDownCombo命令按钮CommandButton1(无)命令按钮CommandButton2(无)命令按钮CommandBu

13、tton3(无)3.3 界面form3设计 此处省略 NNNNNNNNNNNN字。如需要完整说明书和设计图纸等.请联系 扣扣:九七一九二零八零零 另提供全套机械毕业设计下载!该论文已经通过答辩4 程序的编译41 form1的主要程序根据窗体1的功能,使用者选择对应的所设计的凸轮机构名称然后 “确定”,可进入对应的窗体2或者窗体3,但为防止使用者没有选择就“确定”,所以“确定”按钮的“Enable”属性值预设值为“False”,在这里需要语句将“Enable”属性恢复成“True”。Private Sub OptionButton1_Click()CommandButton1

14、.Enabled = TrueEnd SubPrivate Sub OptionButton2_Click()CommandButton1.Enabled = TrueEnd Sub在窗体1切换到窗体2或窗体3时,分别由“OptionButton1”和“OptionButton2”的“Value”属性来决定使用者的选择,当确定了对应窗体后,对应的窗体显示出来同时当前显示的窗体隐藏8。Private Sub CommandButton1_Click()If OptionButton2.Value = TURE Then UserForm1.Hide UserForm2.show End If I

15、f OptionButton1.Value = TURE Then UserForm1.Hide UserForm3.show End If End Sub最后,点击“结束”按钮,结束当前的窗体。Private Sub CommandButton2_Click() EndEnd Sub42 form2的主要程序根据前面的章节可以知道,窗体2的主要功能:使用者输入对应的参数量,然后点击“绘制”按钮,并在AutoCAD使用界面上任意确定凸轮的圆心,计算机自动生成所需要的图形。当确定了推程角,远休止角和回程角以后,近休止就相应的确定了,且近休止角的文本输入框的“Enable”属性值为“False”,

16、所以需要程序,将近休止角的大小自动生成并显示在对应的文本框内9,10。Dim u1, u2, u3 As DoublePrivate Sub TextBox3_Change() u1 = Val(TextBox1.Text) u2 = Val(TextBox2.Text) u3 = Val(TextBox3.Text) If TextBox1.Text <> "" And TextBox2.Text <> "" And TextBox3.Text <> "" Then u4 = 360 - u1 -

17、 u2 - u3 TextBox4.Text = u4 End If End Sub 使用者将凸轮的各个参数输入完成以后,点击“绘制”按钮。程序开始运行Private Sub CommandButton1_Click()首先隐藏当前的窗体,使得AutoCAD的操作界面置前 UserForm2.Hide 该图形除了使用实线以外还需要用作于中心线的点划线和用作于画凸轮基圆和偏心圆的虚线,所以需要先设置两个图层(myly和myly1)并在两个图层内加载相对应的线型(myly图层对应虚线,myly1图层对应点划线)11。 Dim entry As AcadLineType Dim found As B

18、oolean found = False For Each entry In ThisDrawing.Linetypes If StrComp(entry.Name, "ACAD_ISO02W100", 1) = 0 Then found = True Exit For End If Next If Not (found) Then ThisDrawing.Linetypes.Load "ACAD_ISO02W100", "acadiso.lin" End If Dim myly As AcadLayer Dim mylayer As

19、 String Set myly = ThisDrawing.Layers.Add("mylayer")myly.Linetype = ("ACAD_ISO02W100") Dim entry1 As AcadLineType Dim found1 As Boolean found1 = False For Each entry1 In ThisDrawing.Linetypes If StrComp(entry1.Name, "CENTER", 1) = 0 Then found1 = True Exit For End If Ne

20、xt If Not (found1) Then ThisDrawing.Linetypes.Load "CENTER", "acadiso.lin" End If Dim myly1 As AcadLayer Dim mylayer1 As String Set myly1 = ThisDrawing.Layers.Add("mylayer1") myly1.Linetype = ("CENTER") 定义变量,将需要使用的变量进行定义:e为偏心距,ro为基圆半径,incrim为精度, s0、beta0与beta为

21、计算中间量,分别表示“图1 尖顶直动从动件盘形机构的解析法示意图”中的、和的余角,rou为一个动态量,表示当前的尖顶位置与基圆圆心连线的距离,ceta表示尖顶位置与基圆圆心的连线当前偏转的角度,pi用作表示常量,用作下拉框的结果赋值,只有0,1,2三个值,pt用于作图时储存尖顶点,bp用于作图时储存基圆圆心,circleobj、circleobi用于作基圆和偏心圆。此外pt0用于保存轮廓线上实时得到的点,firstpt用于保存轮廓线上第一次得到的点。Dim e, ro, incrim, s0, beta0, beta, rou, ceta, pi As DoubleDim i As Integ

22、erDim ptpnts() As DoubleDim pt As VariantDim bp As VariantDim circleobj As AcadCircleDim circleobi As AcadCircleDim objpoly As AcadLWPolylineDim objline As AcadLineDim pt0 As VariantDim firstpt As Variant pi = 3.1415926 将TextBox5.Text、TextBox6.Text、TextBox7.Text、TextBox8.Text中的各个值分别赋值给h、e、ro和incrim。

23、根据ComboBox1的ListIndex属性对i进行赋值。h = Val(TextBox5.Text)e = Val(TextBox6.Text)ro = Val(TextBox7.Text)incrim = Val(TextBox8.Text)i = UserForm2.ComboBox1.ListIndex根据用户一开始的操作,将用户所确定的基圆圆心赋值给bp并以bp为交点做互相垂直的中心线,其中以CENTER为中心线的中心,两条中心线等别为line1和line2且他们的起点分别为pl1s、pl2s,终点分别为pl1e、pl2e,为了使中心线的长度足够,将长度初设为12。bp = Thi

24、sDrawing.Utility.GetPoint(, "请输入凸轮基圆中心:") Dim CENTER(0 To 2) As Double CENTER(0) = bp(0) CENTER(1) = bp(1) CENTER(2) = bp(2) Dim line1 As AcadLine Dim line2 As AcadLine Dim pl1s(0 To 2) As Double Dim pl1e(0 To 2) As Double Dim pl2s(0 To 2) As Double Dim pl2e(0 To 2) As Double pl1s(0) = CEN

25、TER(0) - ro - 2 * h pl1s(1) = CENTER(1) pl1s(2) = 0 pl1e(0) = CENTER(0) + ro + 2 * h pl1e(1) = CENTER(1) pl1e(2) = 0 pl2s(0) = CENTER(0) pl2s(1) = CENTER(1) - ro - 2 * h pl2s(2) = 0 pl2e(0) = CENTER(0) pl2e(1) = CENTER(1) + ro + 2 * h pl2e(2) = 0ThisDrawing.ActiveLayer = myly1Set line1 = ThisDrawing

26、.ModelSpace.AddLine(pl1s, pl1e)Set line2 = ThisDrawing.ModelSpace.AddLine(pl2s, pl2e) 再根据所确定的基圆中心点分别用虚线画基圆circleobj和偏心圆circleobj13。ThisDrawing.ActiveLayer = mylySet circleobj = ThisDrawing.ModelSpace.AddCircle(bp, ro)Set circleobi = ThisDrawing.ModelSpace.AddCircle(bp, e)赋值给u,u表示当前作图中,假象凸轮反方向转动的转角,从

27、u=0从开始进入循环,当u为某值时,利用几何关系得到此时刻尖顶所在的位置,并把该点保存到pt中,然后在用多段线将此次得到的尖顶的点与前一次所得到的尖顶的点相连得到许许多多小段的线段,每次循环结束用u+incrim给u重新赋值,并判断此时u与360的关系,若比360大则退出循环从而完成u从0到360的情况分析。u = 0Do While u <= 360无论凸轮当前的运动模式是什么(及无论i取何值),运动过程都分为推程角,远休止角,回程角和进休止角四个部分,这四个部分尖顶的几何关系是一致的,但是运动关系不同,所以所得到的(即程序中的s)不同,的具体赋值见表3,利用判断u与u1、u1+u2、

28、u1+u2+u3和360的关系进一步去判断当前假象的凸轮在哪一个运动模式中,从而用子程序调用的方法,调用合理的计算公式并计算出当前s的值,同时将s值用以随后的几何计算。当时,假象的凸轮尖顶的位置为推程运动中的位置,此时需要调用子程序isovelocity_up、isoacceleration_up或libration_up来计算s的值。 If u <= u1 Then Select Case i Case 0 Call isovelocity_up Case 1 Call isoacceleration_up Case 2 Call libration_up End Select用程序画

29、直线最简洁明了的方法是知道两点画直线,虽然计算出s后,可以通过切线等方法得到尖顶的位置,但是过于复杂且不易于用程序管理,所以用几何方法来求尖顶位置。 s0 = Sqr(ro 2 - e 2) beta0 = Atn(e / s0) beta = Atn(e / (s0 + s) rou = Sqr(s + s0) 2 + e 2) ceta = u * pi / 180 + beta beta通过这些几何方法的计算,可以得到尖顶位置与基圆圆心之间的距离和尖顶位置与基圆圆心的连线相对于水平线的夹角,再结合基圆圆心的坐标,从而确定该假象时刻尖顶的位置,并将其赋值于pt。 pt = ThisDraw

30、ing.Utility.PolarPoint(bp, ceta, rou)当时,假象的凸轮尖顶的位置为远休止运动中的位置,此时从动件位移始终为h常量。 ElseIf u > u1 And u <= (u1 + u2) Then s = h s0 = Sqr(ro 2 - e 2) beta0 = Atn(e / s0) beta = Atn(e / (s0 + s) rou = Sqr(s + s0) 2 + e 2) ceta = u * pi / 180 + beta - beta0 pt = ThisDrawing.Utility.PolarPoint(bp, ceta, r

31、ou)当时,假象的凸轮尖顶的位置为回程运动中的位置,此时需要调用子程序isovelocity_down、isoacceleration_down、libration_down来计算s的值。 ElseIf u > (u1 + u2) And u <= (u1 + u2 + u3) Then Select Case i Case 0 Call isovelocity_down Case 1 Call isoacceleration_down Case 2 Call libration_down End Select s0 = Sqr(ro 2 - e 2) beta0 = Atn(e

32、/ s0) beta = Atn(e / (s0 + s) rou = Sqr(s + s0) 2 + e 2) ceta = u * pi / 180 + beta - beta0 pt = ThisDrawing.Utility.PolarPoint(bp, ceta, rou)当时,假象的凸轮尖顶的位置为近休止运动中的位置,此时从动件位移始终为0。 ElseIf u > (u1 + u2 + u3) Then s = 0 beta0 = Atn(e / s0) beta = Atn(e / (s0 + s) rou = Sqr(s + s0) 2 + e 2) ceta = u *

33、 pi / 180 + beta - beta0 pt = ThisDrawing.Utility.PolarPoint(bp, ceta, rou) End If每次循环结束将所得到的pt点与之前一次循环所得到的pt0点相连成为一个非常短的多段线线段,凸轮即就是由这些线段组合而成的,若该点为所得到的第一个点,则直接赋值给firstpt,留以备用14。 If IsArray(firstpt) Then Set objline = ThisDrawing.ModelSpace.AddLine(pt0, pt) Else firstpt = pt End If每次循环结束,当线段画毕之后,将得到的

34、pt点赋值于pt0点,则让每次循环所得到的点成为下次循环中的“前一次循环得到的点”。Incrim为精度,根据使用者自己的需要来决定,在程序中表现为每次凸轮假象转动的角度,故而越小图形越精确。 pt0 = ptu = u + incrim LoopEnd Sub 组合框的设定只能在程序中完成,让下拉框的选项设为“等速运动”、“等加速和等减速运动”和“简谐运动”且对应的AddItem值分别为1、2、3,在默认情况下,显示为等速运动15。Private Sub UserForm_Initialize() UserForm2.ComboBox1.AddItem "等速运动", 0

35、UserForm2.ComboBox1.AddItem "等加速和等减速运动", 1 UserForm2.ComboBox1.AddItem "简谐运动", 2 UserForm2.ComboBox1.ListIndex = 0 UserForm2.TextBox1.SetFocusEnd Sub表3 凸轮各个运动模式下从动件位移公式推程等速运动从动件位移 回程等速运动从动件位移推程等加速等减速从动件位移 回程等加速等减速从动件位移推程简谐运动从动件位移回程简谐运动从动件位移注:以上各个公式中表示在对应的过程中转过的角度,而不是全局转过的角度,表示对应的

36、过程的角度,表示推程。分别建立子程序isovelocity_up、 isovelocity_down 来表示等速运动下的推程和回程从动件位移计算,建立子程序isoacceleration_up、 isoacceleration_down 来表示等加速等减速运动下推程和回程的从动件位移计算,建立子程序libration_up 、libration_down来表示简谐运动下推程和回程的从动件位移计算,各个位移计算方法如表3。Public Sub isovelocity_up()s = h * u / u1 '等速推程End SubPublic Sub isovelocity_down()s

37、 = h * (1 - (u - u1 - u2) / u3) '等速回程End SubPublic Sub isoacceleration_up() '等加速等减速推程 If u < (u1 / 2) Then s = 2 * h * u 2 / u1 2 Else s = h - 2 * h * (u - u1) 2) / (u1 2) End IfEnd SubPublic Sub isoacceleration_down() '等加速等减速回程 If (u - u1 - u2) < (u3 / 2) Then s = h - 2 * h * (u -

38、 u1 - u2) 2 / u3 2 Else s = 2 * h * (u3 - (u - u1 - u2) 2) / (u3 2) End IfEnd SubPublic Sub libration_up()s = h * (1 - Cos(pi * u / u1) / 2 '简谐推程End SubPublic Sub libration_down()s = h * (1 + Cos(pi * (u - u1 - u2) / u3) / 2 '简谐回程End Sub最后加辅助按钮“转到滚子机构”按钮让窗体2隐藏并让窗体3显示,“结束”按钮使当前窗体2退出。Private S

39、ub CommandButton2_Click() UserForm2.Hide UserForm3.showEnd SubPrivate Sub CommandButton3_Click() EndEnd Sub43 form3的主要程序虽然滚子机构和尖顶机构解析法的方法有差异,但是在程序思想上,两者只有少量的差异,最大的不同点在于窗体3中多一个rt参数(滚子半径),故在程序中只要把form2程序中对应的地方稍作修改,就可以得到form3的程序,具体的form3的编程请参照附录A。首先,定义上需要加上rt和ra两个变量。 Dim rt, ra As Double其次,在u=0进入循环后,需要

40、加上一句程序。ra = ro + rt且在此以后的计算里面都是用ra代替form2中各个几何计算中的ro。同时对于form3中出现“form3”、“textbox9”等字眼的程序需要从新编辑。如:1)将TextBox9.Text中的数值赋值给rt rt = Val(TextBox9.Text)2)定义form3中的组合框程序 Private Sub UserForm_Initialize() UserForm3.ComboBox1.AddItem "等速运动", 0 UserForm3.ComboBox1.AddItem "等加速和等减速运动", 1 U

41、serForm3.ComboBox1.AddItem "简谐运动", 2 UserForm3.ComboBox1.ListIndex = 0 UserForm3.TextBox1.SetFocusEnd Sub 3)“转到尖顶”按钮所实现的功能Private Sub CommandButton2_Click() UserForm3.Hide UserForm2.showEnd Sub5实例应用例如,现需要设计一个尖顶直动从动件盘形凸轮机构,推程角为120°,远休止角为30°,回程角为150°,近休止角为60°,行程为30,偏心距为10

42、,基圆半径为50,精度到1°,运动方式为等加速等减速运动,则使用该软件辅助设计并做出图形的步骤如下:1)打开AutoCAD,点击“工具宏VBA编辑器”打开“VBA编辑器”对话框,点击“加载”,在“打开VBA工程”对话框中选择该程序并打开。2)点击“运行”按钮或者按F5键运行程序。3)在form1中单击选择“尖顶直动从动件盘形机构”并单击“确定”,如图6。图6 实例操作步骤form1操作4)在弹出的窗体中输入参数,如图7所示5)点击“绘制”按钮后自动进入AutoCAD的编辑界面,会看到提示栏中显示“命令:请输入凸轮中心”。6)在预设为凸轮圆心的地方点击,所需图形就会自动生成,如图8所示

43、。图7 实例操作步骤form2操作图8 实例操作最终所得到的图形结 论完成该程序可以用VBA编程来设计和自动绘制凸轮轮廓曲线,既简单方便又有较高的精度,且易于修改,不失为一种理想的方法。通过运行该程序可自动弹出输人绘制图形参数对话框,在对话框中输人凸轮机构的各种参数后能自动生成工程实际应用的二维图形,该方法是绘制拓扑结构相同的二维图形的一种最有效的方法。此外,由于VBA是嵌入型的一种使用方式,所以使用者不用拘泥于刻意去打开这个软件,然后开始使用,再对生成的图形进行修改。使用者在一般画CAD图形的时候也可以根据需要,随时的调用该程序,随时使用该程序话凸轮轮廓图形并随时修改随时取消,在便捷性能方面

44、较为出色。但该程序对于所设计出的凸轮的力的分析方面没有太大的帮助,需要其他软件进行辅助并且做新的改进。致 谢经过3个月的忙碌和工作,本次毕业设计已经接近尾声,作为一个本科生的毕业设计,由于经验匮乏,难免有许多考虑不周全的地方,如果没有导师的督促指导,以及一起工作的同学们的支持,想要完成这个设计是很难的。在这里首先要感谢我的导师刘艳艳。刘艳艳平日里工作繁多,但在我做毕业设计的每个阶段,从查阅资料到设计草案的确定和修改,再到中期检查以及后期详细讲解,刘老师都给予了我悉心的指导,在我的论文的研究工作中倾注了辛勤的汗水和心血。刘老师严谨的治学态度、渊博的知识使我深受启迪,对于细节的重视尤其让我难忘。从

45、尊敬的导师身上,我不仅学到了扎实、宽广的专业知识,也学到了做人的道理。在此我要向我的导师致以最衷心的感谢和深深的敬意。我的设计虽然不怎么烦琐,但是所需要的知识面却很广泛,在这里我还要感谢肖猛老师,肖老师有着深厚专业知识水平,他的治学严谨和科学研究的精神也是我永远学习的榜样,并将积极影响我今后的学习和工作。其次要感谢我的同学对我无私的帮助,特别是在使用软件、编辑程序等方面,正因为如此我才能顺利的完成设计,另外,我要感谢我的母校南京理工大学紫金学院,是母校给我们提供了优良的学习环境,最后,我要感谢我们的年纪主任和那些曾给我授过课的每一位尊师,是你们教会我专业知识。在此,我再说一次谢谢!谢谢大家!参

46、 考 文 献1王华坤,范元勋.机械设计基础M.北京:兵器工业出版社,2001.2孙恒,陈作模。机械原理M.北京:高等教育出版社,2000.3卢耀祖. 机械结构设计M.上海:同济大学出版社,2004.4龙震工作室.AutoCAD VBA函数库查询辞典M.北京:中国铁道出版社,2003.5唐嘉平.AutoCAD2006实用教程M. 北京:清华大学出版社,2007.6程静.AutoCAD工程绘图及二次开发技术M.北京:国防工业出版社,2008.7曾鸿飞,张帆,卢泽临.AutoCAD VBA & VB.NET开发基础与实例教程M.北京:中国电力出版社,2008.8张帆,郑立楷,王华杰.Auto

47、CAD VBA开发精彩实例教程M.北京:清华大学出版社,2003.9叶以农,刘志刚,孙爱充,等.AutoCAD 2000 ActiveX与VBA参考手册M.北京:中国电力出版社,2001.10张晋西.Visual Basic与AutoCAD二次开发M.北京:清华大学出版社,2002.11王建东,李国昌.用VB对AutoCAD进行二次开发技术的研究J.河北科技大学学报,2006,27(2):169-172.12彭观明.基于ActiveX的AutoCAD二次开发技术的应用J.泰山学院学报,2006,28(6):30-33. 13佟士懋,刑芳芳,夏齐霄.AutoCAD ActiveX/VBA 二次开

48、发技术基础及应用实例M.北京:国防工业出版社,2006.14李政,梁海英,李昊.VBA应用基础与实例教程M.北京:国防工业出版社,2005.15王若慧. 基于VBA的AutoCAD二次开发及应用实例J.自动化技术与应用,2007,26(9):30-33.附录AForm3程序Dim u1, u2, u3 As DoublePrivate Sub TextBox3_Change() u1 = Val(TextBox1.Text) u2 = Val(TextBox2.Text) u3 = Val(TextBox3.Text) If TextBox1.Text <> ""

49、; And TextBox2.Text <> "" And TextBox3.Text <> "" Then u4 = 360 - u1 - u2 - u3 TextBox4.Text = u4 End IfEnd SubPrivate Sub CommandButton1_Click() UserForm3.Hide'加载线型 Dim entry As AcadLineType Dim found As Boolean found = False For Each entry In ThisDrawing.Linetyp

50、es If StrComp(entry.Name, "ACAD_ISO02W100", 1) = 0 Then found = True Exit For End If Next If Not (found) Then ThisDrawing.Linetypes.Load "ACAD_ISO02W100", "acadiso.lin" End If Dim myly As AcadLayer Dim mylayer As String Set myly = ThisDrawing.Layers.Add("mylayer&qu

51、ot;) myly.Linetype = ("ACAD_ISO02W100") Dim entry1 As AcadLineType Dim found1 As Boolean found1 = False For Each entry1 In ThisDrawing.Linetypes If StrComp(entry1.Name, "CENTER", 1) = 0 Then found1 = True Exit For End If Next If Not (found1) Then ThisDrawing.Linetypes.Load "CENTER", "acadiso.lin" End If Dim myly1 As AcadLayer Dim mylayer1 As String Set myly1 = ThisDrawing.Layers.Add("mylayer1") myly1.Linetype = ("CENTER")Dim e, ro, rt, r

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论