数控课程设计.docx
《数控课程设计.docx》由会员分享,可在线阅读,更多相关《数控课程设计.docx(57页珍藏版)》请在冰点文库上搜索。
数控课程设计
数控技术课程设计任务书
题目名称
仿真数控自动编程系统
学生学院
机电工程学院
专业班级
08级机械微电子1班
姓名
黄晓艺
学号
3108000610
1.课程的性质和任务
数控机床课程设计是机电专业教学活动的一个重要的实践性环节,是对学生所学《数控机床》课程和其它有关课程知识和技能的一次综合性练习,旨在使之巩固、充实、系统化,并进一步扩展。
课程设计是培养学生理论联系实际、解决生产实际问题的机会。
通过对数控铣床典型部件的结构设计和零件编程的具体问题的解决,使学生对数控机床的结构原理、设计方法以及用编程方法处理实际问题的一般步骤和具体技巧得到训练,提高运用所学专业知识分析问题和解决问题的能力。
2.课程的基本要求
每个学生应在规定时间内,独立完成所选题目,对选择编程题目的学生,要求用编写计算机软件的方法解决数控过程中的一个问题。
可以用本人熟悉的一种编程语言,要求清楚地分析问题、提出算法、列出流程图,最后用程序验证,并且提交详细和规范的程序说明书。
3.数控课程设计任务
用计算机高级编程语言(如VB,VC++)来实现:
由任意的CAD 软件(如AutoCAD,Pro/E,UG,Soliderworks等)所生成的二维绘图DXF文件(限定DXF文件中几何元素只有直线和圆弧)到CNC代码的自动生成(亦即仿真数控自动编程系统)。
具体要求如下:
(1)从DXF文件中提取几何信息(只提取直线和圆弧的信息);
(2)在屏幕上显示所提取得到的二维几何图形。
(3)将提取得到的几何元素进行排序(由程序来实现);
(4)自动生成数控平面铣削(或数控线切割)的CNC代码。
发出任务书日期:
2011年06月16日指导教师签名:
计划完成日期:
2011年7月2日基层教学单位责任人签章:
主管院长签章:
一设计任务
用计算机高级编程语言(如VB,VC++等)来实现:
由任意的CAD软件(如AutoCAD、Pro/E、UG、Solidworks等)所生成的二维绘图DXF文件(限定DXF文件的几何元素只有直线和圆弧)到CNC代码的自动生成(亦即仿真数控自动编程系统)。
具体要求如下:
(1)从DXF文件中提取几何信息(只提取直线与圆弧的信息);
(2)在屏幕上显示所提取得到的二维几何图形;
(3)将提取的几何元素的进行排序(由程序来实现);
(4)自动生成数控平面铣削(或数控线切割)的CNC代码。
二内容摘要
据有关资料统计:
用手工编程时,一个零件的变成时间预计床的实际加工时间的平均比例约为:
30:
1.而数控机床无法启动进行加工的原因中,有20%-30%是由于加工程序不能及时编制出来造成的,由此可见,编程的自动化是当今制造业的一个必然的发展趋势.
所谓的自动编程,就是数控机床的程序编制由计算机自动完成的过程.在很多制造领域,尤其军事工业,航空航天工业,微观制造业等尖端科技领域,其产品的科技含量高,结构复杂,精度要求高,这造成了手工编程难度大,或者效率太低,甚至于无法完成.为了缩短编程时间,减少人为失误,编程后方便加工前的加工模拟,越来越多的常规制造领域业逐渐采用自动编程,因此,制造界业投入了越来越多的资源来进行自动编程技术的研究开发,使其迅速的发展成熟起来.可以说,自动编程技术是已经是一个发展趋势,有着非常美好的发展前景,所以对这方面的探讨有重大意义.
本课程设计的目的就是设计一个可以将AUTOCAD画出的DXF图形文件直接生成数控代码,实现自动编程目的.
Abstract:
Accordingtorelevantstatistics:
manualprogramming,aparts-isexpectedtobecometheactualprocessingtime,theaverageratioisabout:
30:
1.andthereasonNCmachinetoolscannotstartprocessing,20%-30%isduetothetimelyprocessingproceduresnotoutofthepreparation,itcanbeseenthatProgrammingautomationofmanufacturingtodayisaninevitabletrendofdevelopment.Theso-calledautomaticprogramming,NCmachineisthecomputerprogrammingdoneautomaticallybytheprocess.Manymanufacturersinthefield,particularlythedefenseindustry,aviationandaerospaceindustry,micro-manufacturingofadvancedscientificfields,thescientificandtechnologicalcontentofproducts,complexstructure,highaccuracy,Thisresultedinamanualprogrammingdifficult,ortoolowefficiency,orevenimpossible.Toshortenprogrammingtime,reducehumanerrors,programmingafterthepre-processingtofacilitateprocessingsimulation,Moreandmoreconventionalmanufacturingindustryistheintroductionofautomaticprogramming,therefore,Manufacturingindustryhasinvestedmoreandmoreresourcestoconductautomaticprogrammingtechnologyresearchanddevelopment,itsrapiddevelopmentmature.Itcanbesaidthatthetechnologyistheautomaticprogrammingisadevelopmenttrendhaveverygoodprospectsfordevelopment,thisareaisofgreatsignificance.
ThepurposeofthecoursedesignisadesigncanbepaintedinAutoCADDXFfilesdirectlygeneratedgraphicsNCcodeforautomaticprogrammingpurposes.
三 DXF文件结构
1DXF文件格式概述
DXF文件有两种格式:
ASCII和二进制。
前者较易阅读,后者则占较少的空间且装入速度较快。
DXF文件分成多个节(SECTION),每个节均由多个组(GROUP)组成。
Group:
GROUPCODE
GROUPVALUE
每一组都有一个组代码,后面是一个称为组值的数字或字符串。
在每个节中由一个组值为SECTION的0组开始,后跟组值为表示节名的字符串的2组,其后为组成该节的各个组,最后以组值为字符串SNDSEC的0组表示该节结束。
组码是一个ASCII整数(二进制DXF中为二进制),指示后面跟的值的类型。
组码的特定范围为特定类型的数值而保留。
例如,范围0-9的组码表示后面跟的是一个ASCII字符串;特定的码指该字符串用于什么。
组码和组值之间用一个回车ö换行字符对分开。
DXF文件中的数据按照下列方法组织:
HEADER节:
包括的大部分信息对非CAD应用软件来说没有任何价值,许多信息是与文本和定尺寸有关的。
TABLES节:
定义特定的通用常量,如绘图“层”(Layer)、观察角度和距离、坐标系统以及尺寸风格。
像HEADER节一样有时也可以忽略。
BLOCKS节:
按名字定义实体组,同时也可以包含实体。
现在它还没有得到广泛使用,但由于它允许绘声的模块化,所以正越来越流行。
ENTITIES节:
通过使用点、线、圆、弧等定义实际的三维或二维几何体(实体),并包括把实体的层或块连接的数据。
它是实体交换的主要节。
在DXF文件的最后是组值为字符串EOF(EndofFile)的0组作为文件的结束标志。
2DXF文件组成
(1)HEADER节
HEADER节定义头变量,在AutoCAD14版中就有160多个头变量。
因HEADER节对非CAD应用软件没有影响,这里仅举一例。
一个典型的DXF文件以HEADER节开始,如:
0
SECTION
2
HEADER
9
$CECOLOR
62
0
0
ENDSEC
(2)TABLES节
在DXF文件的TABLES节中,有各种不同类型的表,每个表又包含了可变数目的表项。
用于交换图形信息的主要有LTYPE(线型)、LAYER(图层)、STYLE(字样)、VIEW(视
图)表。
这些表可以有任意多个,而且他们可以以任何顺序出现。
TABLES节的结构如下:
0
SECTION
2
TABLES
⋯⋯
(各个单独的表)
⋯⋯
0
ENDSEC
单个表的结构如下:
0
TABLE
2
(表类型号,如LAYER)
70
(后跟表项的最大数目)
0
(又一个表类型名,如LAYER)
2
(用户赋值的名字或数字,如WIRING)
(各种组码和值)
⋯⋯
0
ENDTAB
(3)BLOCKS节
一个DXF文件的BLOCKS节,记录了定义每一个块时的块名、当前图层名、块的种类、块的插入基点及组成该块的所有成员。
块又可分为图形块、带有属性的块和无名块三种。
用HATCH命令生成的剖面线和用DIM命令生成的尺寸标注包含在无名块中。
一个BLOCKS节按下列方式组织:
0
SECTION
2
BLOCK
0
BLOCK
2
(用户赋值的块名)
70
(忽略)
⋯⋯
(单独实体)
⋯⋯
ENDBLOCK
0
ENDSEC
(4)ENTITIES节
这个节是实际几何信息存在的地方,并构成DXF文件的主题。
ENTITIES节记录了每个实体的名字,所有图层的名字、线型号、颜色号、基面高度、厚度以及有关的几何数据。
ENTITIES节按下列方式组织:
0
SECTION
2
⋯⋯
(单独实体)
⋯⋯
0
ENDSEC
几乎实体主要有:
POINT,LINE,CIRCLE,ARC,
TRACE,SOLID,POLYLINE,VERTEX和SEQUEND以及
3DFACE。
单个实体的格式为:
0
(实体名,如LINE)
8
(用ASCII表示的层名或数字,如0)
(相关的组码和值)
四软件具体实现方法
1软件设计思想
在WindowsXP的环境下,经过以下几个步骤来实现:
(1)将要加工的零件图形在AutoCAD中绘制出来,然后通过AutoCAD的DXFOUT命令将图形转换为文本文件格式的DXF文件存储;
(2)在VisualBasic6.0界面下,编制软件读取DXF文件中的有关图形的几何信息,按照数控加工软件标准,经过转换和工艺干预,生成加工零件的对应数控加工软件(即NC软件);
(3)在VisualBasic6.0界面下,读入自动生成的NC软件,经过转换,静态显示对应的加工刀具运动轨迹,从而校验NC软件正确否。
2软件具体实现方法
(1)图形几何信息提取
将AutoCAD图形转换为DXF文件存储后,分析DXF文件,从中可知:
①描述直线段的信息为
AcDbLine
1011
直线段起点的X值直线段终点的X值
2021
直线段起点的Y值直线段终点的Y值
3031
直线段起点的Z值直线段终点的Z值
②描述圆的信息为
AcDbCircle
1030
圆心的X值圆心的Z值
2040
圆心的Y值圆的半径R值
③描述圆弧的信息为
AcDbCircle
1040
圆心的X值圆弧的半径R值
2050
圆心的Y值圆弧的起始角θ1
3051
圆心的Z值圆弧的终止角θ2
对于一个加工零件来说,其轮廓无非是这三种几何元素的组合。
因此根据上述分析,可编制软件将DXF文件中的几何信息提取出来。
其流程图如图1所示。
参考用的一个流程图:
图4-1
由于知识有限,现在不能做出与此对应的仿真系统,这只是在网上找到的一些参考资料,希望对这设计有一定的帮助。
(2)NC软件自动生成
①NC软件结构。
按照ISO标准,NC软件由若干个软件段组成。
软件段的格式为
N G X Y Z F S T M
其中:
N后面跟四位数字,表示软件段号;G后面跟两位数字,表示准备功能;X、Y、Z后面跟数字,表示被加工段的终点坐标;F、S、T后面跟数字,分别表示加工时的进给速度、主轴转速及加工刀具号;M后面跟两位数字,表示辅助功能;软件段用;或LF结束。
②工艺参数确定。
在生成NC软件过程中,需要根据加工对象来确定F、S、T等值。
本系统中,用户不能选取F、S、T的值,需要在加工前依靠实际中的数控机床的NC软件的添加到软件段中。
③NC软件自动生成。
对照DXF文件的特征信息与NC软件中准备功能指令,可知
AcDbLine 对应 G01
AcDbCircle 对应 G02或G03
由此可编制一个完整的NC代码生成软件,由DXF文件内容直接转换为NC软件。
当然,在软件中需要人机交互来确定以下内容:
零件加工的起始点,确定G00的坐标;圆或圆弧的加工方向,确定G02或G03;加工的刀具补偿方向,确定G41或G42等信息。
其流程图如图2所示。
图4-2
下面为系统自动生成的眼镜模型的加工软件。
N10G92X0.00Y0.00D01
N20M03S450.000
N30G90G17G00G41X0.000Y0.000
N40G01X38.162Y-14.143F300.000
N50G01X108.946Y-105.764
N60G02X160.648Y-108.838I-25.851J1.537
N70G01X173.575Y-108.839
N80G02X217.276Y-111.298I-22.158J-4.238
N90G01X275.134Y-28.286
N100G01X308.372Y-14.143
N110G01X275.134Y-38.124
N120G01X217.891Y-121.137
N130G02X173.575Y-117.448I21.543J-9.238
N140G01X158.802Y-117.447
N150G02X108.330Y-113.144I24.928J-5.761
N160G01X30.775Y-18.447
N170G01X0.000Y0.000
N180G40G00X0.000Y0.000
N190M05M02
图4-3
五、流程图
5.1总的流程图:
图5-1
从这个流程图中可以清楚看到事整个由DXF文件到NC代码的一个大的过程,是从一个整的过程看,下面再分细一些来说明各个过程的一些细节。
5.2从DXF的图形读取直线与圆弧信息的流程图:
图5-2
在实体提取信息:
其总体提取步骤如下所示:
开始打开文件,找到“ENTITIES”代码,然后读组中所有实体信息读取完,碰到“ENDSEC”标志后结束提取。
接着就进行信息的处理。
下面一一介绍如何将直线和圆弧的信息提取步骤。
5.3提取直线信息的流程图
图5-3
5.4提取圆弧信息的流程图
图5-4
六、软件加工过程的实现
1排序功能介绍
这个软件只能实现由AutoCAD软件所生成的二级所生成的二维绘图DXF文件(限定DXF文件的几何元素只有直线和圆弧)到CNC代码的自动生成。
所以对于描述直线段的信息、圆弧的信息和圆的信息,只要各自考虑在X和Y平面的相关坐标值。
对于含有若干直线和圆弧组成的封闭圆形,DXF文件中描述直线段的信息、圆弧的信息是按在AutoCAD绘图的顺序来排列的。
在描述信息中,直线段的信息有直线段起点的X值、直线段起点的Y值和直线段终点的X值、直线段终点的Y值的描述;而对于圆弧有圆心的X值圆心的Y值、圆弧的半径R、值圆弧的起始角θ1和圆弧的终止角θ2,由圆弧的这些信息我们通过计算可以得到圆弧的起点的X值、起点的Y值和终点的X值、终点的Y值的描述;这样在软件中可以定义两个数组按照直线和圆弧信息出现的先后顺序来各自存放直线段和圆弧起点的X值、起点的Y值和终点的X值、终点的Y值。
另外,还定义五个数组来存放先后出现圆弧有圆心的X值圆心的Y值、圆弧的半径R、值圆弧的起始角θ1和圆弧的终止角θ2,以备在下面软件中计算两点间的距离中的算法时判断是否出现圆弧时,以及在出现圆弧时生成NC序列时和绘图时使用。
当所绘制的图形只有一个圆时可作为一个特殊情况来考虑,无须对元素进行排序。
这样便实现了将提取的几何元素的进行排序。
2加工起点的确定
在确定加工起点时,对于直线段或圆弧组成的封闭二维图形,这个软件按直线段或圆弧信息出现的先后顺序,选取两者中首先出现的段的起点作为加工起点,并开始加工第一段和生成相应的NC代码和图形。
在图形显示区域里面通过画圆的方式来确定
(1)对于第一段为直线段(如图4所示),可能按先后顺序用G01加工,并在图形显示区中绘制出第一段直线。
θ1
θ2
(2)对于第一段为圆弧的情况(如图5所示),有描述信息圆弧的起始角θ1、圆弧的终止角
θ2,可知计算出的X1,Y1和X2,Y2在圆弧中是逆时针方向的,这样我们可以确定一定是用G03来加工。
再加上在VB加圆弧的绘画是按逆时针方向的,这样可以在图形显示区中绘制出第一段圆弧。
图4图5
(3)对于只是一个圆的情况,可以选取如图6所示的点划线(X,Y)作为加工起点,可以用G02或G03进行加工和编写NC序列,并在图形显示区绘出圆。
图6
3加工过程的确定
(1)加工过程各段间连接的实现
在由直线段和圆弧的起点坐标和终点坐标组成的数组X(k),Y(k)中,从第一段的终点坐标开始,查找出与第一段终点坐标的距离的平方小于一个接近于0的很小的数的坐标,当满足这个条件的坐标出现时,这个坐标中的一段就是要加工的下一段。
读取出下一段的另一个坐标作为下一个加工工序的终点,由读入圆弧的半径R组成的数组相对应的值是否等于0来判断是下一段出现的是直线还是圆弧。
(2)读入的下段是直线时
如图7当由点(X3,Y3)读取到(X7,Y7)时,这时下一段直线的起点坐标对应的数组的下标K的值为奇数,排序数组中的下一个数X(k+1),Y(k+1)即点(X8,Y8)即为下一段直线的终点坐标,这样可以用G01加工下一段直线并生相应的NC代码,在图形显示区绘出直线。
如图8当由点(X3,Y3)读取到(X8,Y8)时,这时下一段直线的起点坐标对应的数组的下标K的值为偶数,排序数组中的下一个数X(k-1),Y(k-1)即点(X7,Y7)即为下一段直线的终点坐标,这样可以用G01加工下一段直线并生相应的NC代码,在图形显示区绘出直线。
图7
图8
(3)当读入的下段是圆弧时
如7图当由点(X4,Y4)读取到(X6,Y6)时,这时下一段圆弧的起点坐标对应的数组的下标K的值为偶数,排序数组中的下一个数X(k-1),Y(k-1)即点(X5,Y5)即为下一段圆弧的终点坐标,这样可以用G02加工下一段圆弧并生相应的NC代码,在图形显示区绘出圆弧。
同样在图7中,当由点(X2,Y2)读取到(X5,Y5)时,这时下一段圆弧的起点坐标对应的数组的下标K的值为奇数,排序数组中的下一个数X(k+1),Y(k+1)即点(X6,Y6)即为下一段圆弧的终点坐标,这样可以用G03加工下一段圆弧并生相应的NC代码,在图形显示区绘出圆弧.
如图8当由点(X2,Y2)读取到(X6,Y6)时,这时下一段圆弧的起点坐标对应的数组的下标K的值为偶数,排序数组中的下一个数X(k-1),Y(k-1)即点(X5,Y5)即为下一段圆弧的终点坐标,这样可以用G02加工下一段圆弧并生相应的NC代码,在图形显示区绘出圆弧。
同样在图8中,当由点(X4,Y4)读取到(X5,Y5)时,这时下一段圆弧的起点坐标对应的数组的下标K的值为奇数,排序数组中的下一个数X(k+1),Y(k+1)即点(X6,Y6)即为下一段圆弧的终点坐标,这样可以用G03加工下一段圆弧并生相应的NC代码,在图形显示区绘出圆弧.
综上可知,当读入的下段是圆弧时,当下一段圆弧的起点坐标对应的数组的下标K的值为偶数时,用G02加工下一段圆弧并生相应的NC代码,在图形显示区绘出圆弧;当下一段圆弧的起点坐标对应的数组的下标K的值为奇数用G03加工下一段圆弧并生相应的NC代码,在图形显示区绘出圆弧。
七、软件功能及操作介绍
1操作界面各按钮功能介绍
操作主界面如图9所示:
图9操作界面
“读入DXF文件”命令按钮打开由CAD软件生成的二维绘图DXF文件。
然后由软件自动生成NC代码并显示在NC序列区,同时在图形显示区显示二维图形。
“保存NC代码”命令按钮可以用来保存由DXF文件生成的图形NC代码,即是与NC序列显示区一样的代码。
此代码可以直接或稍加修改后用于或稍加修改后数控机床上的加工。
“退出程序”命令按钮用于退出软件。
当按下“退出程序”,自动退出程序。
起始点通过画圆的方式来确定,当点小于预先设定的值的时候就画圆,如下图所示:
图10
选择完对刀点之后,可以在右边选择加工方,
向,并且选择刀补。
可以在右边的输入主轴速度,默认为450r/min
进给速度也可以在右边框输入,默认300mm/min
输入完所有参数后,点击
:
,就会在下面的代码显示区显示NC代码。
图11
2 操作说明
首先,按下“读入DXF文件”按钮,图形显示区就会自动显示输入的图形,可以通过滚动条对图形显示进行调整。
然后输入起刀坐标,选择对刀点,选择加工方向,输入转速,进给速度。
输入完上面的加工参数后,才能生产NC代码,否则会出现提示: