广东工业大学数控课程设计说明书.docx
《广东工业大学数控课程设计说明书.docx》由会员分享,可在线阅读,更多相关《广东工业大学数控课程设计说明书.docx(26页珍藏版)》请在冰豆网上搜索。
广东工业大学数控课程设计说明书
一、课程设计的内容
分析凸轮的曲线规律,设计一个软件能够用于平面凸轮的参数化绘图和生成数控加工的代码。
二、课程设计的要求与数据
设有凸轮如图1所示。
凸轮转角t与从动件位移s的关系即凸轮轮廓的展成平面图如图2所示。
要求:
(1)有一个凸轮设计的友好的界面;
(2)能够按照用户要求生成凸轮的曲线轮廓,对于非圆几何形状可采用直线或圆弧逼近的方式生成曲线;
(3)能够生成数控代码;
凸轮设计中设及的有关参数可自行设定,或参考图2中的参数。
三、课程设计应完成的工作
每个学生应在规定时间内,独立完成所选题目。
运用VB编程语言,编写计算机软件在WINDOWS实现数控装置的计算机仿真。
要求清楚地分析问题、提出算法、确定人机界面、列出流程图,最后用程序验证,完成软件测试,并且提交程序说明书。
对选择典型零件编程题目的学生,要求用编写计算机软件的方法解决数控过程的一个问题。
可以任选用本人熟悉的一种编程语言,要求清楚地分析问题、提出算法、列出流程图,最后用程序验证,并且提交程序说明书。
四、课程设计进程安排
序号
设计各阶段内容
地点
起止日期
1
1、布置任务,领取课程设计任务书,了解课程设计的目的、内容和要求;了解课程设计的步骤;
2、理解本课程设计题目的具体内容要求,根据各自不同情况选择题目;
教室
第18周~第20周
2
了解和掌握有关软件开发的知识,如VB编程、VC编程、软件工程、软件开发的常用技巧及注意事项;
3
调查研究,收集资料,查阅文献。
学生对所选题目进行论证及确定设计方案,
4
掌握数控结构设计要求,具体技术指标和计算要求;进行机械结构设计或者软件设计;
5
进行数控系统和算法的软件编程与开发,初步实现系统的基本功能
6
通过多个实例来验证和改进系统功能,完善软件界面
7
对所开发的软件程序进行标识和说明
8
按要求的格式编制课程设计说明书
9
课程设计答辩
五、应收集的资料及主要参考文献
1《机床设计手册》第三分册
2廖效果.数字控制机床.武汉:
华中理工大学出版社.1992.9
3廖效果.数控技术.武汉:
湖北科学技术出版社.2000.7
4刘又午.数字控制机床.北京:
机械工业出版社
5龚浦泉.机床电气控制.重庆:
重庆大学出版社
6谭浩强.Basic语言结构化程序设计教程.北京:
中国科学技术出版社.1990
7杨林,李继良.VisualBasic编程高手.北京:
北京大学出版社.2000
8一组专用凸轮的计算机辅助设计.机械工程师1998,(4):
p58-59
9凸轮曲线的快速画法.机械工程师1998,(6):
p22-23
10平面凸轮机构CAD系统的研究与开发.机械设计与制造2000,(5):
p12-13
11圆柱非圆曲线槽凸轮的数控加工.制造技术与机床2000,(8):
p34
12圆柱凸轮的参数化设计及数控加工.精密制造及自动化2001,11:
p28
13参数化凸轮轮廓转换及NC代码自动生成.机床与液压2001,6,p29~31
基层教学单位责任人签章:
指导教师签名:
主管院长签章:
发出任务书日期:
年月日
计划完成日期:
年月日
1.内容摘要
相对应传统的凸轮加工方式,CAM技术可以更容易地对其进行加工。
但是前提是程序设计人员必须对凸轮从动件的运动规律进行了解分析,才能在CAM上对其进行编制加工程序。
本论文则是基于这个问题,阐述通过分析凸轮的曲线规律,用VisualBasic高级语言开发设计一个能够用于平面凸轮的参数化绘图和生成数控加工的代码的软件的过程。
Abstract
CorrespondingtothetraditionalwayofCAMmachining,CAMtechnologymakesiteasiertocarryontheprocessing.Butthepremiseisthatprogrammershavetounderstandtheanalysis,themovementruleoftheCAMfollowercanbeonCAMontheprocessingprogram.Arebasedonthisproblem,thispaperexpoundedthroughtheanalysisofCAMcurvelawofdevelopmentanddesignwithVisualBasicseniorlanguageacanbeusedforplanarCAMparameterizeddrawingandgenerateNCcodeofthesoftwareprocess.
2.引言
数控机床课程设计是机电专业教学活动的一个重要的实践性环节,是对学生所学《数控技术》课程和其它有关课程知识和技能的一次综合性练习,旨在使之巩固、充实、系统化,并得到进一步扩展。
课程设计是培养学生理论联系实际、解决生产实际问题的机会。
通过对数控装置的计算机仿真,使学生对数控机编程方法处理实际问题的一般步骤和具体技巧、数控装置设计及使用得到训练,提高运用所学专业知识分析问题和解决问题的能力。
通过分析凸轮的曲线规律,用VisualBasic高级语言开发设计一个能够用于平面凸轮的参数化绘图和生成数控加工的代码的软件。
3.正文
3.1凸轮设计原理
3.1.1凸轮概述
凸轮是一个具有曲线轮廓或凹槽的构件。
凸轮通常为主动件作等速转动,但也有作往复摆动或移动,被凸轮直接推动的构件称为推杆。
凸轮机构的类型很多,常见的凸轮和推杆的形状及其运动形式的不同来分类。
按形状分类可以分为盘形凸轮和圆柱凸轮;按推杆形状分可以分为尖顶推杆、滚子推杆、平底推杆;根据推杆的运动形式不同,有作往复直线运动的直动推杆和作往复摆动推杆,在直动推杆中,若其轴线通过凸轮的回转轴心,则称其为对心直动推杆,否则称为偏置直动推杆。
凸轮机构设计的基本任务,是根据工作要求选定合适的凸轮机构的型式、推杆的运动规律和有关的基本尺寸,然后根据选定的推杆运动规律设计出凸轮应有的轮廓曲线。
推杆运动规律的选择,关系到凸轮的工作质量。
如下图所示为一对心直动尖顶推杆盘形凸轮机构。
图中,以凸轮的回转轴心O为圆心,以凸轮半径的最小半径r0为半径所作的圆称为凸轮的基圆,r0为基圆半径。
图示凸轮的轮廓由AB、BC、CD及DA四段曲线组成。
凸轮与推杆在A点接触时,推杆处于最低位置。
当凸轮沿逆时针转动时,推杆在凸轮廓线AB段的推动下,将由最低位置A被推到最高位置B,推杆运动的这一过程称为推程,而相应的凸轮转角称为推程运动角。
当推杆与凸轮廓线的BC段接触时,由于BC段为以凸轮轴心O为圆心的圆弧,所以推杆将处于最高位置而静止不动,这一过程称为远休止,与其相对应的凸轮转角称为远休止角。
当推杆与凸轮廓线的CD段接触时,它又由最高位置回到最低位置,这一过程称为回程,相应的凸轮转角称为回程运动角。
最后当推杆与凸轮廓线DA段接触时,由于DA段为以凸轮轴心O为圆心的圆弧,所以推杆将在最低位置静止不动,这一过程称为近休止,相应的凸轮转角称为近休止角。
凸轮再继续转动时,推杆又重复上述过程。
凸轮的设计方法主要有作图法和解析法两种。
无论是采用作图法还是解析法设计凸轮轮廓曲线,所依据的基本原理都是反转法原理。
下面就对此原理加以介绍。
当凸轮以角速度w绕轴O转动时,推杆在凸轮的推动下实现预期的运动。
现设想给整个凸轮机构加上一个公共角速-w,使其绕轴心O转动。
这时凸轮与推杆之间的相对运动并未改变,但此时凸轮将静止不动,而推杆则一方面随其导轨以角速度-w绕轴心O转动,一方面又在导轨内作预期的往复移动。
这样,推杆在这种复合运动中,其尖顶的运动轨迹即为凸轮轮廓曲线。
根据上述分析,在设计凸轮廓线时,可假设凸轮静止不动,而使推杆相对于凸轮作反转运动;同时又在其导轨内作预期运动,作出推杆在这种复合运动中的一系列位置,则其尖顶的轨迹就是所要求的凸轮廓线。
这就是凸轮廓线设计方法的反转法原理。
推杆的运动规律
3.1.2凸轮廓线方程
(1)通过对推杆运动规律的分析,我们可以得到推杆位移与凸轮转角的关系,即有了方程s=ƒ(δ)。
但要绘出凸轮的廓线,需要廓线上各点的坐标。
为此,需采用解析法来求廓线上各点的坐标。
所谓用解析法设计凸轮廓线,就是根据工作所要求的从动件的运动规律和已知的机构参数,求出凸轮廓线的方程,并精确地计算出凸轮廓线上各点的坐标值。
理论廓线方程本论文只讨论对心移动从动件,由于e=0,,故理论廓线方程可写成
(2)实际廓线方程
理论廓线方程只能求出尖顶推杆廓线,但实际生产中,更多的是需要滚子推杆,因此,我们更需要知道实际廓线方程。
如前所述,在滚子从动件盘形凸轮机构中,凸轮的实际廓线是以理论廓线上各点为圆心、作一系列滚子圆,然后作该圆族的包络线得到的。
因此,实际廓线与理论廓线在法线方向上处处等距,该距离均等于滚子半径。
所以,如果已知理论廓线上任一点的坐标(x,y)时,只要沿理论廓线在该点的法线方向取距离为,即可得到实际廓线上相应点的坐标值(x′,y′)。
此即为凸轮的工作廓线方程式。
式中“-”用于内等距曲线,“+”号用于外等距曲线。
运用上述的凸轮基本原理及运动规律,可以设计相关的算法来用计算实现画参数化的凸轮,需要知道的参数分别有:
基圆半径r0,升程h,推程运动角,回程运动角,远休止角,近休止角及推程、回程的运动曲线。
3.2逼近非圆曲线方法
数控系统一般都只有直线和圆弧插补的功能,对于非圆曲线轮廓,只有用直线或圆弧去逼
近它,此方法同样适用于本程序的凸轮绘制。
在数控编程的学习中,我们已学习过几种非圆
曲线逼近的方法:
1)等弦长直线逼近法
等弦长法就是使所有逼近直线段长度相等,如图所示。
由于零件轮廓曲线
y=f(x)的曲率各处不等,因此首先应求出该曲线的最小曲率半径Rmin,由Rmin及δ允确定允许的步长l,然后从曲线起点a开始,按等步长l依次截取曲线,得b、c、d、…点,则ab=bc=…=l即为所求各直线段。
此种方法比等间距法的程序段数少一些。
但当曲线曲率半径变化较大时,所求节点数将增多,所以,此法适用于曲率变化不大的情况。
2)
等误差直线逼近法
等误差法是使逼近线段的误差相等,且等于δ允,所以此法较上两种方法合理,特别适合曲率变化较大的复杂曲线轮廓。
如右图所示。
3)
圆弧逼近法
用圆弧逼近非圆曲线,目前常用的算法有曲率圆法、三点圆法和相切圆法等。
三点圆法是在等误差直线段逼近求出各节点的基础上,通过连续三点作圆弧,并求出圆心点的坐标或圆的半径。
4)等间距直线逼近法
等间距直线逼近法是使每一个程序段中的某一个坐标的增量相等。
如图图表示加工一个凸轮时,x坐标按等间距分段时节点的分布情况。
将x1~x7的值代入程y=f(x),可求得y1~y14的值,从而得到节点A1~A14的坐标值。
把A1~A2、A2~A3…A14~A1用直线连起来,即可得到曲线图形。
间距大小一般根据零件加工精度要求凭经验选取。
求出节点坐标后再验算逼近误差是否小于允许值。
由于等距的直线逼近法是最简单的方法,为了演示方便,我在本程序中使用的逼近非圆曲线的方法是等距直线逼近法。
通过生成各段轨迹的点的X轴坐标按等间距获取,根据公式相应生成Y轴坐标值。
3.3、VB编程语言概述
VisualBasic是一种由微软公司开发的包含协助开发环境的事件驱动编程语言。
从任何标准来说,VB都是世界上使用人数最多的语言——不仅是盛赞VB的开发者还是抱怨VB的开发者的数量。
它源自于BASIC编程语言。
VB拥有图形用户界面(GUI)和快速应用程序开发(RAD)系统,可以轻易的使用DAO、RDO、ADO连接数据库,或者轻松的创建ActiveX控件。
程序员可以轻松的使用VB提供的组件快速建立一个应用程序。
VB是相对简单的高级编程语言,可以在较短的时间入门并且应用到实际,解决一些简单的编程问题。
由于我们的课程设计的时间安排只有两周时间,相对比较仓促,所以编写程序最好使用入门相对简单,而且能在较短时间掌握的编程软件,所以才选择了VB编程语言对本课程设计的软件进行开发。
事实证明这个选择非常明智,可以在限定的时间里面掌握该软件而且可以很快具备开发简单程序的能力!
3.4、算法及流程
本软件系统主要有以下几个难题:
1、设定相关参数后,如何让计算机生成凸轮并显示在软件的相应位置;2、使用合适的逼近非圆曲线方法;3、如何将在计算机软件上生成NC代码并导出生成相关文件。
为了解决以上问题,设计了以下的算法。
3.4.1凸轮算法
根据前面分析的凸轮从动件的运动规律,可以知道凸轮从动件的运动规律所用数学表达式的形式的不同常用的主要有多项式运动规律和三角函数运动规律两大类。
1.多项式运动规律
(1-1)
式中
为凸轮的转角;s为凸轮从动件位移;
、
、
、…为待定系数。
而常用的有以下几种多项式运动规律。
(1)一次多项式运动规律(速度为常数),即等速运动规律
设凸轮以等角速度ω转动,在运动角δο为时,推杆完成行程h,则有:
(1-2)
设取边界条件为
在起点处
,
.
在终点处
,
.
则由式(1-2)可得
,
,故从动件推程的运动方程为
,回程时h取负值。
如下图:
相对应的VB程序代码为:
s=(h/t1)*i'推杆在等速运动过程中的运动方程
Picture1.PSet(i,s),RGB(0,255,0)'画推杆运动规律函数曲线
Ptx(Low)=(c1+s)*Sin(i*(PI/180))'用数组Ptx存储凸轮的横坐标点
Pty(Low)=(c1+s)*Cos(i*(PI/180))'用数组Pty存储凸轮的纵坐标点
Picture2.PSet(Ptx(Low),Pty(Low)),RGB(0,255,0)
(2)二次多项式运动规律(加速度为常数),即等加(减)速运动规律
(1-3)
可见,这时推杆的加速度为常数。
这时,推程加速段的边界条件为
在始点处
=0,s=0,v=0
在终点处
s=h
将其代入式(1-3),可求得
等加速运动方程:
(1-4)
图形如下:
等减速运动方程:
(1-5)
对应的VB程序代码为:
等加速运动:
s=2*h*(i^2)/(t1^2)
Picture1.PSet(i,s),RGB(0,255,0)
Ptx(Low)=(c1+s)*Sin(i*(PI/180))
Pty(Low)=(c1+s)*Cos(i*(PI/180))
Picture2.PSet(Ptx(Low),Pty(Low)),RGB(0,255,0)
等减速运动:
s=h-2*h*((t1-i)^2)/(t1^2)
Picture1.PSet(i,s),RGB(0,255,0)
Ptx(Low)=(c1+s)*Sin(i*(PI/180))
Pty(Low)=(c1+s)*Cos(i*(PI/180))
Picture2.PSet(Ptx(Low),Pty(Low)),RGB(0,255,0)
2.三角函数运动规律
(1)余弦加速度运动规律(简谐运动规律)从动件的加速度
余弦规律变化,其运动方程为
(1-6)
其图形如下:
对应的VB程序代码为:
s=h*(1-Cos(PI*i/t1))/2
Picture1.PSet(i,s),RGB(0,255,0)
Ptx(Low)=(c1+s)*Sin(i*(PI/180))
Pty(Low)=(c1+s)*Cos(i*(PI/180))
Picture2.PSet(Ptx(Low),Pty(Low)),RGB(0,255,0)
(2)正弦加速度运动规律(摆线运动规律)从动件的加速度按
正弦规律变化,其运动方程为
(1-7)
如下图:
对应的VB程序代码为:
对应的VB程序代码为:
s=h*(i/t1-Sin(2*PI*i/t1)/(2*3.1415926))
Picture1.PSet(i,s),RGB(0,255,0)
Ptx(Low)=(c1+s)*Sin(i*(PI/180))
Pty(Low)=(c1+s)*Cos(i*(PI/180))
Picture2.PSet(Ptx(Low),Pty(Low)),RGB(0,255,0)
3.4.2等间距直线逼近法算法
如图3表示加工一个凸轮时,x坐标按等间距分段时节点的分布情况。
将x1~x7的值代入程y=f(x),可求得y1~y14的值,从而得到节点A1~A14的坐标值。
把A1~A2、A2~A3…A14~A1用直线连起来,即可得到曲线图形。
间距大小一般根据零件加工精度要求凭经验选取。
求出节点坐标后再验算逼近误差是否小于允许值。
算法的流程图见下图。
由于程序做演示用,故精度是固定值,即每一步取0.1步长。
等间距直线逼近法
3.3.3生成NC代码
本软件在设计的时候采用等距逼近非圆曲线法,在算法运算过程中生成的横坐标点和纵坐标点分别用数组ptx和pty记录。
当需要生成NC代码的时候,可以调用数组ptx、pty以获得各点的坐标值。
用VB相关控件将NC代码的固定语句显示出来即可。
如果需要导出程序,则可以使用VB的文件处理函数实现文件的创建和保存。
详见附录。
3.4.3软件流程图,如下图所示。
3.5、开发软件介绍
本软件主要有三个窗口,分别是:
欢迎界面、主界面、推出界面。
(1)欢迎界面,设计得比较简洁,主要介绍软件系统的名称及软件的必要信息,只有一个按钮,安放位置明显,为用户带来便捷。
(2)主界面。
主要包括五个部分,分别是:
凸轮参数设置区、推杆运动方式选择区、按键控制区、凸轮廓线显示区及推杆位移角函数显示区,代码生成界面。
其中凸轮参数设置去主要包括基圆半径设置、升程设置、推程运动角设置、回程运动角设置、远休止角设置(近休止角可以通过算法求得),推杆运动方式选择区则是选择推程和回程的推杆运动方式。
通过设置凸轮参数和推杆运动方式即可确定凸轮的廓线。
按下“生成代码”即可以在代码区生成代码。
通过设置进给速度、主轴转速、加工深度、刀具半径、安全高度、刀具补偿和坐标系便可以确定NC代码,。
“导出”按键可以通过设置正确路径及文件格式储存代码,“重置”会将参数清零。
使用“退出系统”按钮可以退出系统,而“参数重置”则会将当前的凸轮参数清零。
(3)推出界面,采用简洁设计,突出人性化。
有两项选择,“退出,取消”,退出直接退出程序,取消继续留在第二界面。
4.设计总结
为期两个星期的《数控技术基础》课程设计已经结束了。
在这短暂的两个星期里面,通过学习VB软件和设计程序的算法让我受益匪浅!
本次课程设计的两个重要环节,一是要掌握好凸轮的相关知识,二是要学会如何在计算机上实现。
在设计界面的时候,力求简洁,操作简单有序,功能齐全。
本软件的不足之处很多,其中一个就是有时生成的凸轮曲线之间连接处并非圆滑过渡。
会带来很大的冲击力,因此要进行后处理才能使用。
在判断输入参数是否合理,还有很多地方需要改进的。
对于一些常见的错误进行了一些报警处理,用VB语言中的MsgBox函数进行报警。
为了使程序更加的具有灵活性,加工精度可以自行设置,加工方向也可能进行设置。
我在程序中增加了一些参数,对于这些参数的控制,就可以实现加工精度和加工方向的改变了。
这些工作也是在一些空闲时间里完成的,过得很充实,很累。
不过也可以收获很多宝贵的东西,对于如何把实际中的问题转换成算法进行处理。
我觉得这种能力是很重要的,在这个课程设计中,我能够学习并训练了这种能力。
还有对于问题进行分析解决的能力,其中也可以与同组的人进行交流,也可以增加对于团队合作能力一定的培养。
这次课程设计一开始真的很可怕,什么也不知道。
到了做出来的时候,我才觉得原来只要把问题一点一点的解决,到最后也是可以办到的。
参考文献
[1]《机床设计手册》第三分册
[2]廖效果.数字控制机床.武汉:
华中理工大学出版社.1992.9
[3]廖效果.数控技术.武汉:
湖北科学技术出版社.2000.7
[4]刘又午.数字控制机床.北京:
机械工业出版社
[5]龚浦泉.机床电气控制.重庆:
重庆大学出版社
[6]谭浩强.Basic语言结构化程序设计教程.北京:
中国科学技术出版社.1990
[7]杨林,李继良.VisualBasic编程高手.北京:
北京大学出版社.2000
[8]一组专用凸轮的计算机辅助设计.机械工程师1998,(4):
p58-59
[9]凸轮曲线的快速画法.机械工程师1998,(6):
p22-23
[10]平面凸轮机构CAD系统的研究与开发.机械设计与制造2000,(5):
p12-13
[11]圆柱非圆曲线槽凸轮的数控加工.制造技术与机床2000,(8):
p34
[12]圆柱凸轮的参数化设计及数控加工.精密制造及自动化2001,11:
p28
[13]参数化凸轮轮廓转换及NC代码自动生成.机床与液压2001,6,p29~31
[14]新编VisualBasic程序设计教程.广州中山大学出版社
附录:
源代码
第一部分:
欢迎界面
PrivateSubCommand1_Click()
Frmview.Show
frmEnter.Hide
EndSub
第二部分:
主界面
PublicrAsDouble
PublichAsDouble
PublicsAsDouble
Publicq1AsDouble,q2AsDouble,q3AsDouble,q4AsDouble
Publict1AsDouble,t2AsDouble,t3AsDouble
PublicxAsDouble,yAsDouble
PubliccAsDouble,c1AsDouble,c2AsDouble
DimLowAsDouble'数组下标
ConstPIAsDouble=3.1415926
DimaaAsInteger'作为msgbox返回值
PrivateSubCommand1_Click()
DimjAsDouble,iAsDouble
q1=Val(Text4.Text)'推程角
q2=Val(Text5.Text)'远休程角
q3=Val(Text6.Text)'回程角
t1