ImageVerifierCode 换一换
格式:DOCX , 页数:21 ,大小:301.68KB ,
资源ID:6810399      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/6810399.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(广东工业大学数控课程设计报告书.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

广东工业大学数控课程设计报告书.docx

1、广东工业大学数控课程设计报告书广东工业大学“数控技术”课程设计任务书题目名称针对非圆曲线的CAM软件开发学生学院机电工程学院专业班级机械设计制造及其自动化/微电子姓 名学 号一、课程设计的内容用计算机高级编程语言(如VB,VC+等)来实现非圆曲线的计算机辅助制造(CAM)软件的开发,针对不同的非圆曲线,可任选(1)直线逼近(如等间距法、等弦长法、等误差法等)、或(2)圆弧逼近的方法产生节点。要求在满足允许误差的前提下,使得逼近的直线段或圆弧段的数量最少(即最优解), 根据加工曲线轮廓自动生成刀具中心轨迹,自动生成加工NC代码,并能模拟实际加工走刀过程。二、课程设计的要求与数据具体的要求如下:(

2、1)列出一般的直线或圆弧逼近的算法(流程图)。(2)列出改进的直线或圆弧逼近的算法(流程图)即优化算法。比较改进前与改进后的两种算法结果。(3)针对给定的某一由非圆曲线所构成的平面轮廓,根据指定的走刀方向、起刀点,自动生成CNC代码。(4)有刀具自动补偿功能,根据给定的补偿量和进给方向自动计算刀具中心轨迹,有过切报警功能。(5)在屏幕上显示该非圆曲线所构成的平面轮廓。根据给定的进给速度能模拟加工过程,并在屏幕上留下刀具所走中心轨迹。一、概述2二、凸轮机构的发展概况3三、课程设计任务 3四、软件设计71、程序设计语言的选择72、程序算法的简述73、设计的流程图74、设计过程 75、调试结果和界面

3、15五、总结16附:参考资料17一、概述:首先介绍了凸轮机构的特点和在国内外目前的应用发展情况,介绍了凸轮仿真设计的系统的主要设计任务,包括在编程时所采用的曲线的类型及对函数式的分析情况。接着,介绍软件程序设计的各个过程,包括算法说明、流程图介绍。还介绍了软件测试结果。最后,对这次设计过程的心得体会。 Summary of the Contents:Introduce cam organization present development at home and abroad at first , introduce cam main design task of system that e

4、mulation design, including the types of the curves adopted and situation of analysis on function type while programming. Then , introduce each course that the software designs program , including the algorithm is stated , flow chart introduction. Have also introduced the test result of the software.

5、 Finally, the gains in depth of comprehension to this design process.二、凸轮机构的发展概况 凸轮机构是一个具有曲线轮廓或凹槽的构件.凸轮通常作等速转动,但也有做往复摆动或移动的.被凸轮直接推动的构件称为推杆.凸轮机构就是又凸轮,推杆和机架三个主要构件所组成的高副机构.凸轮的最大优点是:只要适当地设计出凸轮的轮廓曲线,就可以使推杆得到各种预期的运动规律,而且机构简单紧凑.凸轮机构是间歇运动的常用机构之一,广泛用于轻工机械、纺织机械、包装机械、印刷机械、内燃机等各种自动机械中。凸轮机构之所以能在各种自动机械中获得广泛的应用,除了

6、它的最大优点外,还因为它兼有传动、导引及控制机构的各种功能。当凸轮机构用于传动机构时,可以产生复杂的运动规律,包括变速范围较大的非等速运动,以及暂时停留或各种步进运动;凸轮机构也适宜于用作导引机构,使工作部件产生复杂的轨迹或平面运动;当凸轮机构用作控制机构时,可以控制执行机构的自动工作循环。人类对凸轮机构的认识由来已久,但直到十九世纪末,对凸轮机构还未曾有过系统地研究。随着工业化的发展,对高效的自动机械的需求大大增加,需要改善内燃机配气机构的工作性能,所以直到二十世纪初,凸轮机构的研究才开始受到重视。在二十世纪四十年代以后,由于内燃机转速增加,引起故障增多,才开始对配气凸轮机构进行深入研究,并

7、从经验设计过渡到有理论根据的运动学与动力学分析。现代机械日益向高速发展,凸轮机构的运动速度也愈来愈高。因此,高速凸轮的设计及其动力学问题的研究已引起普通重视,提出了许多适于在高速条件下采用的推杆运动规律,以及一些新型的凸轮机构。另一方面,随着计算机的发展,凸轮机构的计算机辅助设计和制造已获得普遍地应用,从而提高了设计和加工的速度及质量,这也为凸轮机构的更广泛应用创造了条件。三、课程设计任务(1)平面凸轮的数控加工程序的编制设有凸轮如图1所示。凸轮转角t与从动件位移s的关系即凸轮轮廓的展成平面图如图2所示。要求分析凸轮的曲线规律,设计一个软件 图1能够用于平面凸轮的参数化绘图和生成数控加工的代码

8、。即: 1.有一个凸轮设计的友好界面; 图12.能够按照用户要求生成凸轮的曲线轮廓,对于非圆几何形状可采用直线或圆弧逼近的方法生成曲线;3.能够生成数控代码; 图2凸轮设计中涉及的有关参数可自行设定,或参考图2中的参数。(2)曲线的类型及函数式的分析所谓推杆的运动规律,是指推杆在运动时,其位移s 速度v和加速度a随时间t的变化的规律.又因为凸轮一般为等速运动,即其转角&与与时间成正比,所以推杆的运动规律更常表示为推杆的运动参数随凸轮转角&变化的规律.例如图2就是推杆位移随凸轮转角变化的运动线图.下面分析各种设计凸轮的数学表达式:首先,采用机械原理中的一般凸轮设计的几种运动方程式,并对此作了修改

9、:1、多项式运动规律 (1-1)式中为凸轮的转角;s为凸轮从动件位移;、为待定系数,可以利用边界条件等来确定。而常用的有以下几种多项式运动规律。(1)一次多项式运动规律(速度为常数) 设取边界条件为在起点处 ,.在终点处 ,.则由式(1-2)可得,故从动件推程的运动方程为 ,回程时h取负值。(2)二次多项式运动规律(加速度为常数) 等加速运动方程:等减速运动方程:由于等加速等减速的曲线图形都是由两部分组成,而为方便曲线的分类,固对其进行修改。其中原等加等减加速度函数为:“” 和“”。两段曲线的范围分别为h/2, o/2,,以h/2, o/2,代入原式中,即可得到求出单独等加速或等减速的函数式。

10、由于采用的h值是相对的,所以回程时,只把h取负值即可。2、三角函数运动规律(1)余弦加速度运动规律(简谐运动规律) 从动件的加速度余弦规律变化,其运动方程为 (2)正弦加速度运动规律(摆线运动规律) 从动件的加速度按正弦规律变化,其运动方程为 其中,等速运动:极大的冲击;等加速、等减速:冲击较大;余弦加速度运动:冲击力较小;正弦加速度运动:没冲击。由于凸轮的曲线函数还有很多,如五项式、高次方、谐波等,而且由于凸轮的具体运用场合不同,如对心直推,偏置直动推杆盘状凸轮机构,摆动推杆,平底推杆等。这些情况不在考虑的范围内,同时也忽略了对设计完成的凸轮的冲击力。二、软件设计1、程序设计语言的选择目前流

11、行的开发工具有C+Builder、VC、VB和Delphi,每一种开发语言都其特点。在这次程序设计中,我选择了Visual Basic(VB)程序开发工具。因为其设计语言简单易用,在编程系统中引入了面向对象的机制,提供了一种可视界面的设计方法。用户可直接使用窗体和控件设计应用程序界面,极大地提高了应用程序开发的效率。在程序中,我采用了多个应用窗口依次询问的方法,逐步完成凸轮的仿真设计。每个窗体按照不同的功能而划分为:登陆界面,基本参数选择界面,主窗体,NC加工窗体,还有帮助界面。2、程序算法的简述数控系统一般只有直线和圆弧插补的功能,对于非圆曲线轮廓,只有用直线和圆弧去逼近它,“节点”就是逼近

12、线段与非圆曲线的交点。一个已知曲线方程的节点数主要取决于所用逼近线段形状、曲线方程的特征以及允许的逼近误差。在本程序中,由于时间的关系,我采用的逼近方法是直线逼近方法,简单易编程,容易检查出错误。虽然会在某些线段中会产生较大的误差,但由于每段逼近线段的长度较小,因此,产生的误差都在允许的范围之内。但是,也由于这个原因,使节点过多,这是无法避免的。3、设计的流程图初步构想 界面确定 确定逼近算法 模块编写 程序调制4、设计过程(1)程序流程图 (2)主要程序分析1、初始坐标系绘制 Private Sub cmdOK_Click() 坐标初始化Dim c1 As Double, c2 As Dou

13、ble, c As Double, a As IntegerIf IsNumeric(TxtRise1.Text) And IsNumeric(Txtr.Text) And IsNumeric(TxtNum.Text) Then 判断输入的R,H,N是否是数字 m1 = TxtNum.Text: m2 = Txtr.Text: m3 = TxtRise1.Text TxtNum.Enabled = False: Txtr.Enabled = False: TxtRise1.Enabled = False Form1.Labfun.Caption = If m1 = 1 And m2 0 And

14、 m3 = 0 Then a = Val(TxtNum): c1 = Val(Txtr): c2 = Val(TxtRise1) c = 1.2 * (c1 + c2) Form1.Label15.Caption = Y: Form1.Label12.Caption = 0: Form1.Lbls.Caption = c2 Form1.Label13.Caption = s: Form1.Label14.Caption = : Form1.Label11.Caption = X Form1.Label3.Caption = 90: Form1.Label4.Caption = 0: Form1

15、.Label8.Caption = 180 Form1.Label9.Caption = 270: Form1.Label10.Caption = 360 绘制PicView的坐标 Form1.PicView.Scale (-c, c)-(c, -c) Form1.PicView.Line (0, -1.2 * (c1 + c2)-(0, 1.2 * (c1 + c2), RGB(0, 0, 255) Form1.PicView.Line (-1.2 * (c1 + c2), 0)-(1.2 * (c1 + c2), 0), RGB(0, 0, 255) For i = 1 To 10 For

16、m1.PicView.Line (0 + i * (c1 + c2) / 10), 0)-(0 + i * (c1 + c2) / 10), c / 50), RGB(0, 0, 255) Form1.PicView.Line (0 - i * (c1 + c2) / 10), 0)-(0 - i * (c1 + c2) / 10), c / 50), RGB(0, 0, 255) Form1.PicView.Line (0, 0 + i * (c1 + c2) / 10)-(c / 30, 0 + i * (c1 + c2) / 10), RGB(0, 0, 255) Form1.PicVi

17、ew.Line (0, 0 - i * (c1 + c2) / 10)-(c / 30, 0 - i * (c1 + c2) / 10), RGB(0, 0, 255) Next i 考虑升程和曲线段数的输入值的两种情况 一,当升程为0和曲线段数为1时If c2 0 And a 1 Then Form1.Cmbsel.Enabled = True Form1.PicView1.ScaleHeight = -1.2 * c2 Form1.PicView1.ScaleTop = c2 绘制PicView1的坐标 Form1.PicView1.Line (0, 0)-(360, 0), RGB(0,

18、 0, 0) For i = 1 To 4 Form1.PicView1.Line (0, 0 + i * (c2 / 4)-(5, 0 + i * (c2 / 4), RGB(0, 0, 0) Next i Form1.PicView1.Line (0, 0)-(0, c2), RGB(0, 0, 0) For i = 1 To 8 Form1.PicView1.Line (0 + i * (360 / 8), 0)-(0 + i * (360 / 8), c2 / 24), RGB(0, 0, 0) Next iElse 二,当升程为0或曲线段数为 Val(Numstr) And Val(

19、Numend) = 360 And Val(Numstr) 360 Then 检查终止角度(end1)是否大于初If Val(Dialog1.TxtRise1) = 0 Or Val(Dialog1.TxtNum) = 1 Then 如果升程H=0或曲线段数N=1 Call forend: Call case0: CmdOK.Enabled = False ElseIf Val(Numh) = 0 And cn = 1 And _ Val(Numend) 360 Then Call caseall ElseIf high + h = 0 And cn 1 And _ Val(Numend) 3

20、60 And Numend.Enabled = True Or Val(Numend) = 360 _ And Numend.Enabled = False Then Call caseall ElseIf Val(Numend) = 360 And Numend.Enabled = True Then MsgBox 范围出错! Numend.SetFocus Else MsgBox 范围出错! Numh.SetFocus End If End IfElse MsgBox (范围出错!) CmdOK.Enabled = True Numend.SetFocus End IfElseMsgBox

21、 (输入为空或有非法字符,请重新输入!) 如果输入的起始角度和终止角度不是数字,则出现警告Numend.SetFocusEnd IfEnd Sub3、函数式生成曲线的程序: 以正弦曲线为例,先定义数组pcx(low),pcy(low)下标范围,每次取0.1个单位角度,每次在picview上绘制一小段直线,直至结束为止。并且判断是否为休程,假如为休程时,则生成圆弧的NC加工代码;否则,直接生成直线的NC加工代码。 每次绘制逼近线段时,其开始都是以上一次的逼近线段的终点为起点的,因此能够保证曲线顺利的过度连接。Sub case3()low = 10 * Val(Numstr)For i = 0 T

22、o (end1 - str) Step 0.1X = iY = h * (i / (end1 - str) - Sin(2 * P * i / (end1 - str) / (2 * P)PicView1.PSet (X, Y), RGB(0, 0, 220)pcx(low) = (r + (high + Y) * Sin(wide + i) * P / 180)pcy(low) = (r + (high + Y) * Cos(wide + i) * P / 180)PicView.PSet (pcx(low), pcy(low), RGB(0, 0, 220)low = low + 1Nex

23、t iIf Val(Numh) = 0 ThenCall NCyhElseList1.AddItem a1 & & a2 & h= & a3 & & 正弦加速度运动Call NCzxEnd IfEnd Sub4、直线逼近加工代码: 每一段逼近线段的角度为1度,也就是说每一次加工1度的逼近线段,并且判断前一段是否为圆弧。Sub NCzx() i = str * 10 + 1 List2.AddItem G01 & X & Format$(pcx(str * 10 + 1), #0.000) & _ Y & Format$(pcy(str * 10 + 1), #0.000) 绝对坐标编程 Lis

24、t3.AddItem G01 & X & Format$(pcx(str * 10 + 1) - _ pcx(str * 10), #0.000) & Y & Format$(pcy(str * 10 + 1) - pcy(str * 10), #0.000) 相对坐标编程 j = j + 1 For i = str * 10 + 2 To end1 * 10 - 1 List2.AddItem X & Format$(pcx(i), #0.000) & _ Y & Format$(pcy(i), #0.000) List3.AddItem X & Format$(pcx(i) - pcx(i - 1), #0.000) & _ Y & Format$(pcy(i) - pcy(i - 1), #0.000) j = j + 1 Next i List2.AddItem X & Format$(Val(Dialog1.Txtr) + high + h) * _ Cos(90 - Val(Numend) * P / 180), #

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1