DFX仿真数控设计.docx
《DFX仿真数控设计.docx》由会员分享,可在线阅读,更多相关《DFX仿真数控设计.docx(34页珍藏版)》请在冰豆网上搜索。
![DFX仿真数控设计.docx](https://file1.bdocx.com/fileroot1/2023-2/28/27f4adec-6f1d-4935-a23d-76696721eeea/27f4adec-6f1d-4935-a23d-76696721eeea1.gif)
DFX仿真数控设计
广东工业大学数控技术课程设计任务书
题目名称
仿真实现数控自动编程系统
学生学院
机电工程学院
专业班级
姓名
学号
一、课程设计的内容
用计算机高级编程语言(如VB,VC++等)来实现:
由任意的CAD软件(如AutoCAD,Pro/E、UG、Solidworks等)所生成的二维绘图DXF文件(限定DXF文件中的几何元素只有直线和圆弧)到CNC代码的自动生成(亦即仿真数控自动编程系统)。
二、课程设计的要求与数据
具体的要求如下:
(1)从DFX文件中提取几何信息(只提取直线与圆弧的信息);
(2)在屏幕上显示所提取得到的二维几何图形。
(3)将提取得几何元素的进行排序(由程序来实现);
(4)针对指定的走刀方向、起刀点,自动生成数控平面铣削(或数控线切割)的CNC代码。
三、课程设计应完成的工作
每个学生应在规定时间内,独立完成所选题目。
运用VB编程语言,编写计算机软件在WINDOWS实现数控装置的计算机仿真。
要求清楚地分析问题、提出算法、确定人机界面、列出流程图,最后用程序验证,完成软件测试,并且提交程序说明书。
对选择典型零件编程题目的学生,要求用编写计算机软件的方法解决数控过程的一个问题。
可以任选用本人熟悉的一种编程语言,要求清楚地分析问题、提出算法、列出流程图,最后用程序验证,并且提交程序说明书。
四、课程设计进程安排
序号
设计各阶段内容
地点
起止日期
1
1、布置任务,领取课程设计任务书,了解课程设计的目的、内容和要求;了解课程设计的步骤;
2、理解本课程设计题目的具体内容要求,根据各自不同情况选择题目;
教室
教室
第17周~第18周
18~19周
2
了解和掌握有关软件开发的知识,如VB编程、VC编程、软件工程、软件开发的常用技巧及注意事项;
3
调查研究,收集资料,查阅文献。
学生对所选题目进行论证及确定设计方案,
4
掌握数控结构设计要求,具体技术指标和计算要求;进行机械结构设计或者软件设计;
5
进行数控系统和算法的软件编程与开发,初步实现系统的基本功能
6
通过多个实例来验证和改进系统功能,完善软件界面
7
对所开发的软件程序进行标识和说明
8
按要求的格式编制课程设计说明书
9
课程设计答辩
五、应收集的资料及主要参考文献
1廖效果.数字控制机床.武汉:
华中理工大学出版社.1992.9
2廖效果.数控技术.武汉:
湖北科学技术出版社.2000.7
3刘又午.数字控制机床.北京:
机械工业出版社
4龚浦泉.机床电气控制.重庆:
重庆大学出版社
5谭浩强.Basic语言结构化程序设计教程.北京:
中国科学技术出版社.1990
6杨林,李继良.VisualBasic编程高手.北京:
北京大学出版社.2000[5]
7陈浩.陈宏.解读AUTOCAD的DXF文件.贵阳:
《贵州科学》.2002.4.20
8聂学俊.数控机床自动编程及仿真系统.北京:
《机床与液压》.2001.3
9张成才.孙喜梅朱陶业.AutoCAD的DXF文件格式及其转换接口研究.长沙:
《技术交流》.2001.8
发出任务书日期:
2011年6月20日
计划完成日期:
20011年7月6日
指导教师签名:
基层教学单位责任人签章:
主管院长签章:
一设计任务………………………………………………………………………1
二内容摘要……………………………………………………………………2
三 DXF文件结构………………………………………………………………4
1DXF文件格式概述………………………………………………………………4
2DXF文件组成…………………………………………………………………5
四软件具体实现方法……………………………………………………………5
1软件设计思想……………………………………………………………………6
2软件具体实现方法………………………………………………………………6
五软件加工过程的实现…………………………………………………………9
1排序功能介绍……………………………………………………………………9
2加工起点的确定……………………………………………………………9
3加工过程的确定………………………………………………………………10
六软件功能及操作介绍…………………………………………………………12
1操作界面各按钮功能介绍……………………………………………………12
2操作说明…………………………………………………………………………12
七设计小结………………………………………………………………………15
八参考文献………………………………………………………………………15
九附录(软件代码及相关功能注释)…………………………………………16
摘要
数控加工仿真是利用计算机来模拟实际的加工过程。
利用计算机高级语言对DXF文件进行读取,再到分析DXF文件,将里面的内容进行提取。
提取后,进行排序,再由所编写的程序实再轨迹的生成,在这同时可以进行NC代码的生成,并可将其保存下来,来进行数控的自动化加工。
这样的过程是要AutoCAD软件支持DXF文件文本格式的和二进制格式的DXF文件,DXF的全称为图形转换文件(DrawingInterchangeFile),主要用于与其它CAD系统及用户应用程序间的图形信息交换。
主要是将AutoCAD图保存为DFX的格式,再在控制介面中将所要打开的DFX文件进行打开,这样就能提取其中的有关图形的信息,再将信息进行转换,这要就可以实现数控编程的系统仿真。
关键词:
仿真、模拟实际、图形转换、数控编程
Abstract
Thenumericalcontrolprocessingsimulationistousethecomputertosimulatetheactualprocessingprocess.ReadtheDXFdocumentbyusingthecomputerhigherorderlanguagefirstly;Then,analyzetheDXFdocumentandextracttheinsidecontent.Aftertheextraction,carryonthesortingandchangetheproceduretotheproducingpath.Atthesametime,theNCcodewillbeshowed.Inordertomakethenumericalandautomatedcontrolprocessing,preserveit.ThisprocessneedstheAutoCADsoftwaretosupporttheDXFdocumenttextformatandthebinaryformDXFdocument.TheDXF’sfullnameisDrawingInterchangeFile.ItismainlyusedtoexchangethegraphicinformationbetweenotherCADsystemandtheusers'applicationprocedureandpreservetheAutoCADchartandchangethecharttotheDFXform;Then,opentheDFXdocumentwhichwillhavetobeopenedinthecontrolinterface.Inthisway,thegraphicinformationcanbeextracted.Exchangetheinformationagain.Thatwillmakethenumericalcontrolprogrammingsystemtofinishthesimulation.
Keywords:
simulation、simulatetheactual、DrawingInterchange、thenumericalcontrolprogramming
三 DXF文件结构
1DXF文件格式概述
DXF文件有两种格式:
ASCII和二进制。
前者较易阅读,后者则占较少的空间且装入速度较快。
DXF文件分成多个节(SECTION),每个节均由多个组(GROUP)组成。
每一组都有一个组代码,后面是一个称为组值的数字或字符串。
在每个节中由一个组值为SECTION的0组开始,后跟组值为表示节名的字符串的2组,其后为组成该节的各个组,最后以组值为字符串SNDSEC的0组表示该节结束。
组码是一个ASCII整数(二进制DXF中为二进制),指示后面跟的值的类型。
组码的特定范围为特定类型的数值而保留。
例如,范围0-9的组码表示后面跟的是一个ASCII字符串;特定的码指该字符串用于什么。
组码和组值之间用一个回车ö换行字符对分开。
DXF文件中的数据按照下列方法组织:
HEADER节:
包括的大部分信息对非CAD应用软件来说没有任何价值,许多信息是与文本和定尺寸有关的。
TABLES节:
定义特定的通用常量,如绘图“层”(Layer)、观察角度和距离、坐标系统以及尺寸风格。
像HEADER节一样有时也可以忽略。
BLOCKS节:
按名字定义实体组,同时也可以包含实体。
现在它还没有得到广泛使用,但由于它允许绘声的模块化,所以正越来越流行。
ENTITIES节:
通过使用点、线、圆、弧等定义实际的三维或二维几何体(实体),并包括把实体的层或块连接的数据。
它是实体交换的主要节。
在DXF文件的最后是组值为字符串EOF(EndofFile)的0组作为文件的结束标志。
2DXF文件组成
图形交换文件(*dxf)是一个具有专门格式的ASCⅡ码文本文件,可以用文本编辑软件对它进行修改,它包含有与之对应的图形文件的全部信息。
一个完整的
DXF文件由四个段(SECTION)和一个文件结尾组成。
他们的排列顺序依次为:
标题(HEADER)段,标题段记录了系统的所有标题变量的当前值或状态,也就是系统的当前工作环境;表(TABLES)段,表段包含了四个表,每个表又包含了可变数目的表项,这些表在文件中出现的顺序是:
线型表,图层表,字样表和视图表;块(BLOCK)段,块段记录了定义每一个块时的块名、当前图层名、块的种类及块的插入基点等;实体(ENTITIES)段,实体段记录了每个实体的名称、所在图层的名字、线型名、颜色号、基面高度、厚度以及有关的几何数据;结尾(EOF),表示图层交换文件的结束。
图形交换文件的每一个段中包含着若干组(group),每组两行。
第一行称为组代码(groupcode),是三个右对齐非负整数(不足三位时补空),组代码相当于数据类型代码,每个组代码的含义是由AUTOCAD系统约定好的;第二行称为组值(groupvalue),组值是组代码所代表内容的数值表示,组代码和组值结合起来表示一个数据的含义和它的值。
可以说,组是DXF文件的一个基本组成部分。
四软件具体实现方法
1软件设计思想
在WindowsXP的环境下,经过以下几个步骤来实现:
(1)将要加工的零件图形在AutoCAD中绘制出来,然后通过AutoCAD的DXFOUT命令将图形转换为文本文件格式的DXF文件存储;
(2)在VisualBasic6.0界面下,编制软件读取DXF文件中的有关图形的几何信息,按照数控加工软件标准,经过转换和工艺干预,生成加工零件的对应数控加工软件(即NC软件);
(3)在VisualBasic6.0界面下,读入自动生成的NC软件,经过转换,静态显示对应的加工刀具运动轨迹,从而校验NC软件正确否。
2软件具体实现方法
(1)图形几何信息提取
将AutoCAD图形转换为DXF文件存储后,分析DXF文件,从中可知:
①描述直线段的信息为
AcDbLine
直线段起点的X值
10
直线段起点的Y
20
直线段起点的Z值
30
直线段终点的X值
11
直线段终点的Y值
21
直线段终点的Z值
31
②描述圆的信息为
AcDbCircle
圆心的X值
10
圆心的Y值
20
圆心的Z值
30
圆的半径R值
40
③描述圆弧的信息为
AcDbCircle
圆心的X值
10
圆心的Y值
10
圆心的Z值
20
圆弧的半径R值
30
圆弧的起始角θ1
40
圆弧的终止角θ2
50
DXF文件一般由7个段(SECTION)和文件结尾组成,按顺序是:
HEADER,CLASSES,TABLES,BLOCKS,ENTITIES,OBJECTS,THUMBNAILIMAGE,EOF。
针对由AutoCAD生成的DXF文件,圆弧及直线的实体描述字及其有关几何数据
都放在ENTITIES部分,故只须提取其ENTITIES部分即可。
通过对DXF文件的分析,可以编写程序将几何元素(仅限于直线和圆弧)提取出来。
在编程过程中,DXF文件通过循环LineInput语句逐行读取。
当读到圆弧或直线的实体描述字(AcDbCircle/AcDbLine)时调用相应的子程序将各几何数据组中的数据提取出来,直到DXF文件结束(“ENDSEC”)
对于一个加工零件来说,其轮廓无非是这三种几何元素的组合。
因此根据上述分析,可编制软件将DXF文件中的几何信息提取出来。
其流程图如图所示
(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所示。
下面为系统自动生成的盖板零件的加工软件。
%0000
N10G92X0Y0ZM03LF
N20G17G90G00G42D01X1204.84Y572.97S1500LF
N40G01X1171.81Y691.40F100LF
N50G01X1004.48Y819.74LF
N60G02X712.74Y682.37R211.79LF
N70G01X682.97Y519.34LF
N80G02X825.98Y377.58R178.20LF
N90G01X1044.52Y419.48LF
N100G02X1204.84Y572.97R235.07LF
N110G00G40X0Y0ZM30LF
%
五软件加工过程的实现
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代码和图形。
由读入圆弧的半径R组成的数组相对应的值是否等于0来判断是下一段出现的是直线还是圆弧.
(1)对于第一段为直线段(如左下图所示),可能按先后顺序用G01加工,并在图形显示区中绘制出第一段直线。
(2)对于第一段为圆弧的情况(如右下图所示),有描述信息圆弧的起始角θ1、圆弧的终止角θ2,可知计算出的X1,Y1和X2,Y2在圆弧中是逆时针方向的,这样我们可以确定一定是用G03来加工。
再加上在VB加圆弧的绘画是按逆时针方向的,这样可以在图形显示区中绘制出第一段圆弧。
(3)对于只是一个圆的情况,可以选取如下图所示的点划线(X,Y)作为加工起点,可以用G02或G03进行加工和编写NC序列,并在图形显示区绘出圆。
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所示:
“读入DXF文件”命令按钮打开由CAD软件生成的二维绘图DXF文件。
然后由软件自动生成NC代码并显示在NC序列区,同时在图形显示区显示二维图形。
“保存NC代码”命令按钮可以用来保存由DXF文件生成的图形NC代码,即是与NC序列显示区一样的代码。
此代码可以直接或稍加修改后用于或稍加修改后数控机床上的加工。
“退出程序”命令按钮用于退出软件。
当按下“退出程序”,自动退出程序。
可以在右图的方框内输入起刀点坐标。
与加工时切削深度
输入DXF文件后,要从右图方框内选
择其中一个对刀点,对刀点有程序找到,为导
入DXF图像的直线或圆弧的起点。
点击其中一
点,则为选中,在对刀点框内显示选择的对刀
点序号。
选择完对刀点之后,可以在右边选择加工方,
向,可以选择顺时钟,和逆时针。
可以在右边的输入主轴速度,默认为1500r/min
进度速度也可以在右边框输入,默认100mm/min
输入完所有参数后,点击:
,就会在下面的代码显示区显示NC代码
图像显示框如下:
可以通过顶滚条跟竖直滚条完成图像的滚动。
底滚条为图形的大小调整:
2 操作说明
首先,按下“读入DXF文件”按钮,图形显示区就会自动显示输入的图形,可以通过滚动条对图形显示进行调整。
然后输入起刀坐标,选择对刀点,选择加工方向,输入转速,进给速度。
输入完上面的加工参数后,才能生产NC代码,否则会出现提示:
输入完所有的加工参数,就可以点击生成数控代码,代码框会显示加工代码。
生成的NC代码可以保存,点击保存NC代码,现在保存路径就可以。
按“保存文件”按钮,生成NC文件(*.txt)
如果需要继续输入其他的DXF文件,可以直接点击输入DXF文