nc加工自动编程技术本科论文

上传人:沈*** 文档编号:203054036 上传时间:2023-04-24 格式:DOC 页数:58 大小:1.71MB
收藏 版权申诉 举报 下载
nc加工自动编程技术本科论文_第1页
第1页 / 共58页
nc加工自动编程技术本科论文_第2页
第2页 / 共58页
nc加工自动编程技术本科论文_第3页
第3页 / 共58页
资源描述:

《nc加工自动编程技术本科论文》由会员分享,可在线阅读,更多相关《nc加工自动编程技术本科论文(58页珍藏版)》请在装配图网上搜索。

1、目录一、序言11.1 数控(NC)技术简介11.2 数控(NC)编程技术的发展与国内外现状11.3 本设计的主要内容2二、NC加工自动编程系统的总体设计32.1 开发方式的确定32.2 系统的基本功能模块3三、用户界面设计53.1 用户界面设计53.2 Visual C+6.0及MFC简介53.2.1 关于Visual C+6.053.2.2 Visual C+6.0 MFC(Microsoft Foundation Classes)编程特点5四、CAD功能模块的实现74.1 关于DXF文件的结构74.2 DXF文件的读取保存模块74.3 原始轨迹的显示模块114.4 小结12五、刀具半径补偿

2、概念及原理135.1 刀具半径补偿的概念135.2 数控系统中C功能刀具补偿功能的实现方法135.3 C功能刀补中程序段间的转接145.4 C功能刀具半径补偿算法155.4.1 刀具中心轨迹转接过渡类型155.4.2 转接矢量的计算方法175.4.3 常用的典型转接交点矢量计算公式175.5 小结28六、刀补轨迹计算和显示模块296.1 第一加工图元指定及排序模块296.2 刀补轨迹生成模块316.3 小结31七、代码生成模块337.1 对于直线的输出347.2 对于圆弧的输出347.2.1 关于顺时针圆弧(G02)和逆时针圆弧(G03)的判断347.2.2 关于优弧劣弧的判断357.3 小结

3、36八、程序的运行378.1 运行环境要求378.2 运行方法37九、总结与展望409.1 总结409.2 展望40致谢41参考文献42附录 程序中部分代码43INC加工自动编程技术的研究一、序言1.1 数控(NC)技术简介NC,即Numerical Control,数字控制。它是利用数字化的信息对机床运动及加工过程进行控制的一种方法。装备了数控系统的机床称为数控(NC)机床。数控系统包括:数控装置(NC devices)、可编程控制器(PLC)、主轴驱动装置(Spindle drive)及进给驱动装置(Feeding Device)等部分。数控机床是机、电、液、气、光高度一体化的产品。要实现

4、对机床的控制,需要用几何信息描述刀具和工件间的相对运动以及用工艺信息来描述机床加工必须具备的一些工艺参数。例如:进给速度、主轴转速、主轴正反转、换刀、冷却液的开关等。这些信息按一定的格式形成加工文件(即数控加工程序)存放在信息载体上(如磁盘、穿孔纸带、磁带等),然后由机床上的数控系统读入(或直接通过数控系统的键盘输入,或通过通信方式输入),通过对其翻译,从而使机床动作和加工零件。现代数控机床(CNC)是机电一体化的典型产品,是计算机集成制造系统的技术基础。它采用计算机来实现对数字程序的控制。由于采用计算机替代原先用硬件逻辑电路组成的数控装置,使输入数据的存贮、处理、运算、逻辑判断等各种控制机能

5、的实现,均可通过计算机软件来完成。在当今社会中,制造业(Manufacturing)依旧是各种产业的支柱,数控技术和数控装备是制造工业现代化的重要基础,直接影响到一个国家的经济发展和综合国力,关系到一个国家的战略地位。数控技术的应用、数控机床的生产量成为衡量一个国家工业化程度和技术水平的重要标志。由此数控技术的重要性可见一斑。1.2 数控(NC)编程技术的发展与国内外现状数控编程技术是随着数控机床的诞生而发展起来的一门技术,随着生产的要求而不断的发展完善起来的。数控编程技术经过三个阶段:手工编程阶段:直接由程序员通过待加工零件的外形信息逐行写出加工程序。该种方法的效率很低,而且又容易产生错误。

6、特别是面对大型复杂零件时,手工编程变得几乎不可能。基于语言的计算机自动编程阶段:如APT(AutomaticallyProgrammedTool)语言,它采用一定的语言来定义几何形状,来向计算机描述零件的几何外形和工艺要求,继而通过计算机生成加工程序。这种方法自动化程度都有所提高,但是该种方法需要专门的编程设备,编程人员也需专门的学习,无法从直观方式进行程序的校验,仍难完全避免错误。基于图形的自动编程阶段:也就是图形交互编程,是一种计算机辅助编程技术。它是利用专用的计算机软件来实现的。这种软件通常以计算机辅助设计 (CAD)软件为基础,利用CAD软件的图形编辑功能将零件的几何图形绘制到计算机上

7、,形成零件的图形文件,然后调用数控编程模块,采用人机交互的方式在计算机屏幕上指定被加工的部位,再输入相应的加工参数,计算机便可自动编制出数控加工程序,同时在计算机屏幕上动态地显示出刀具地加工轨迹。采用图形交互编程系统可大大提高编程效率,减少编程出错的可能。现在数控技术的发展正处于第三阶段,基于图形的自动化编程也得到越来越广泛的应用,但还有许多技术要研究,使之不断的完善提高。国外数控编程技术开发应用较早,出现数控机床自动编程系统较为先进,功能相当强大。国外开发且应用较广有MasterCAM, EDS公司的UG、PTC公司的Pro/E , Cimatron , SOLIDEDGE, SolidWo

8、rks, I-DEAS系统、ICEM系统等。国内的数控编程起步较晚,较国外的落后,在线切割编程软件方面,它分三种情况:第一种就是自行开发的软件,如北航海尔自行开发的CAXAV2WEDM软件,以及Band5 WEDM。这两个是基于Windows平台,运用PC直接进行控制软件。这些系统具备比较完备的功能,但是都有自己的缺陷。如CAXA,系统平台通用性差,操作比较复杂。还有一种主流软件是基于DOS平台的系统,如YH等,人机界面较差,操作繁琐。程序长度更是限制于640K内存,已经不能适应于新时代的需要。第二种是在现有大型国外数控软件(MasterCAM, UG等)下进行二次开发,生成适合本企业使用的系

9、统。第三种是在通用的CAD软件环境下(如AutoCAD)开发生成3B指令线切割自动编程软件。如3B精灵等。这些二次开发以及在通用CAD平台下进行开发的软件,功能小,难以推广。1.3 本设计的主要内容本次关于NC加工自动编程技术的研究是对自动编程技术原理所作的基础性研究,并编写了外形铣削机床的自动编程软件。鉴于时间和条件上的限制,采用图形交互文件(DXF)作为数控系统的信息输入。程序首先从中获取待加工零件的图形信息,并将原始图形显示在窗体上。然后按照一定的算法对其进行刀具半径补偿处理,计算出刀具中心运动轨迹并将其显示出来。通过对刀具中心轨迹的保存分析,最后输出程序代码,并以文本形式保存。二、NC

10、加工自动编程系统的总体设计本系统的总体设计思想是:以开放式思想开发面向外形铣削的二维自动编程软件系统,进而对NC加工自动编程技术进行研究并予以实现。本软件系统不仅能实现外形铣削自动编程的基本功能,而且具有人机交互式界面。因此在进行系统的平台选择,功能设计,数据设计和界面设计时应着眼于开放式结构体系,采用模块化结构,从而使系统易于扩展和移植,具有良好的通用性。2.1 开发方式的确定在研究平台上,选择了外形铣削机床,同时不考虑线切割的锥度加工,进而抽象出一个二维的加工环境,同时要能兼顾外形铣削的加工特点进行参数的设置。CAD模块的开发,鉴于短时间内开发独立的CAD模块的难度很大,本系统采用基于Au

11、toCAD的开发思想。在AutoCAD下对零件外形信息进行表述,并以图形交互文件(DXF)的格式进行保存。软件通过对DXF文件的读取从而获得图形加工信息,并对这些图形信息进行还原,以此形成一个CAD模块。而对于CAM模块,开发工具选择微软的Visual C+6.0,应用Visual C+6.0可以方便的调用MFC(微软基础类库)进行开发编程。语言则采用面向对象的C+语言。系统的开发过程,发挥C+语言的面向对象编程的特点进行设计开发。在代码输出模块上,本次设计采用G代码格式进行输出。 2.2 系统的基本功能模块作为一个基于AutoCAD的文件交互型线切割自动编程系统,应对DXF文件中的各图元信息

12、进行准确的还原。在CAM模块中,准确的刀具半径补偿轨迹的生成是最根本 图2-1典型系统的功能模块的构成的,输出代码管理和加工轨迹链的仿真也是基本的功能组成。在本系统中,由DXF文件读取保存、原始轨迹绘制、加工链编辑、刀具轨迹生成及编辑、代码生成及管理、铣削轨迹仿真等功能模块组成。如上图。为了准确调用了DXF文件中的图形数据信息从而实现该程序的预定功能,首先要将数据从DXF格式文件中读出来并以数组的形式保存下来,以供后面的程序应用,这就需要一个从DXF文件中读取数据并保存的模块。其次,根据从文件中获取的数据,用VC+中相关的函数或者自定义的函数将原始图形显示出来,即原始轨迹的显示模块。然后,考虑

13、上刀具半径、加工余量等刀补参数和刀补方式,并通过对整个加工链调整,调用相应C功能刀补计算函数,求出刀具中心轨迹并显示出来,这部分为刀具轨迹生成和显示模块。其中包含如第一加工图元指定模块,加工链调整模块等子模块,他们内嵌于主模块中而行使自身的功能。最后自然是代码生成模块,在从刀补轨迹链中提取数组元素所需的图元参数后,把数组中的图元逐行输出到文本文件中保存,这就是代码生成模块。通过以上这就完成了自动编程系统各的主要功能。见图2-2。DXF文件读取保存模块原始轨迹显示模块刀补轨迹计算和显示模块包含次级模块代码生成模块图 2-2 程序主要模块流程简图三、用户界面设计3.1 用户界面设计对于一个软件来说

14、,用户界面首先要具有良好的人机交互功能。用户界面是用户了解软件系统的接口,系统的功能完全是通过用户界面表现出来。本系统采用了Visual C+6.0的MFC(microsoft foundation class)单文档模式作为用户界面的基础,借用MFC的可视化设计方法,加载了线切割自动编程系统的几个基本功能设置菜单,如机床参数的设置菜单、后置处理菜单等。而图形元素的绘制以及加工链轨迹的显示则在单文档的工作区进行实时绘制显示。图3-1用户界面菜单项3.2 Visual C+6.0及MFC简介3.2.1 关于Visual C+6.0Visual C+ 自诞生以来,一直是Windows环境下主要的应

15、用开发系统之一,Visual C+不仅是C+语言的集成开发环境,而且与Win32紧密相连,所以,利用Visual C+开发系统可以完成各种各样的应用程序的开发,从底层软件直到上层直接面向用户的软件。而且,Visual C+ 强大的调试功能也为大型复杂软件的开发提供了有效的排错手段。进入20世纪90年代以来,随着多媒体技术和图形图像技术的不断发展,可视化(Visual)技术得到广泛的重视,越来越多的计算机专业人员和非专业人员都开始研究并应用可视化技术。所谓可视化技术,一般是指软件开发阶段的可视化和对计算机图形技术和方法的应用。Visual C+是一种很好的可视化编程工具,使用Visual C+

16、环境来开发基于Windows的应用程序大大缩短了开发时间,而且它的界面更友好,便于程序员操作。在没有可视化开发工具之前,程序员要花几个月时间来完成Windows程序的界面开发,而现在只需较少的时间就可完成。3.2.2 Visual C+6.0 MFC(Microsoft Foundation Classes)编程特点MFC 的英文全称是Microsoft Foundation Classes,即微软的基本类库,MFC 的本质就是一个包含了许多微软公司已经定义好的对象的类库。一般来讲要编写的程序在功能上是千差万别的,但从本质上来讲,都可以化归为用户界面的设计,对文件的操作,多媒体的使用,数据库的

17、访问等等一些最主要的方面。这一点正是微软提供MFC 类库最重要的原因,在这个类库中包含了一百多个程序开发过程中最常用到的对象。在进行程序设计的时候,如果类库中的某个对象能完成所需要的功能,这时只要简单地调用已有对象的方法就可以了。还可以利用面向对象技术中很重要的“继承”方法从类库中的已有对象派生出我们自己的对象,这时派生出来的对象除了具有类库中的对象的特性和功能之外,还可以由我们自己根据需要加上所需的特性和方法,产生一个更专门的,功能更为强大的对象。当然,你也可以在程序中创建全新的对象,并根据需要不断完善对象的功能。正是由于MFC 编程方法充分利用了面向对象技术的优点,它使得编程时极少需要关心

18、对象方法的实现细节,同时类库中的各种对象的强大功能足以完成程序中的绝大部分所需功能,这使得应用程序中程序员所需要编写的代码大为减少,有力地保证了程序的良好的可调试性。图3-2 VC主窗口 四、CAD功能模块的实现【1】由于本软件本身没有CAD模块,而是调用了DXF文件间接得到图形数据信息,那么为了实现该程序的预定功能,首先要将数据从DXF格式文件中读出来并以数组的形式(即代码中的自定义形CEntity数组arEntity)保存下来,以供后面的程序应用,这就需要一个从DXF文件中读取数据并保存的模块。然后则要调用绘图命令在操作界面上对图形信息进行绘制还原,这变需要原始图形绘制模块的支持。4.1

19、关于DXF文件的结构DXF是“图形交换文件”的英文缩写,是一种图形文件交换格式。DXF有ASCII码、二进制等多种格式。其中ASCII码格式的DXF文件具有严密性、易读取性等显著特点,因而得到了广泛的应用。DXF文件的总体结构:一个完整的DXF文件由七个段(SECTION)和文件结尾组成,按顺序分别是: 1. 标题段(HEADER )标题段记录了图形系统的一般信息,有标题变量及其当前值或当前状态表示。 2.类段(DLASSES)类段句路了应用程序定义的类,这些类的实例可以出现在快段、实体段和对象段中。 3. 表段(TABLES)这一段包含的指定项的定义,它包括:a、视窗表(VPORT)b、线形

20、表(LTYPE)c、图层表(LAYER)d、字样表(STYLE)e、视图表(VIEW)f、用户坐标系表(UCS)g、用户应用程序标识(APPID)g、尺寸式样(DIMSTYLE)h、块记录表(BLOCK_RECORD) 4. 块段(BLOCKS)块段顺序地记录了没个块的定义。没个块是由块的名字、类型、基点和该块的全体成员定义的,有关块的定义同实体段。 5. 实体段(ENTITIES )实体段距离了没个实体的种类、所在图层的名字、线形、颜色、厚度、实体描述字及有关几何数据。 6.对象段(OBJECTS)对象行段包含了图形数据库所有非图形实体的定义数据。所有那些既不是实体、也不是符号表的记录、又不

21、是符号表的实例出现在该段。 7.预视图象段(THUMBNAILIMAGE)预视图象段以位图的形式描述了生成该DXF文件时显示在屏幕上的画面,这个画面是极小的,其大为读入DXF文件时对话框上“Preview(预视)”图象的大小。 8.文件结尾文件以“0”和“EOF”两行结尾。“”表示空格。DXF文件由若干组构成,每个组占两行,第一组为组代码,第二行为跟随值。组代码相当于数据型的代码,跟随值是数据的具体值,这两行合起来才是一个完整的数据。 以上七个段中,【ENTITIES】段中包含图形中的相关信息,所要提取的图形信息就包含在该段中,因此,在从DXF文件中获取待加工零件信息时,只需要识别出【ENTI

22、TIES】段,进而读取这个段中图线的相关数据就可以了,而不需要关心其它各段的内容。从DXF文件中ENTITIES段中的组码和组值的存放格式可知,在从DXF文件中提取图线信息时,首先,找到ENTITIES段,再判断是否有“LINE”或“ ARC ”。找到这两者之一后,就可以按照相关信息的存放顺序,跳过冗余行,来提取有用的图线信息。在本软件中,只对直线(LINE),圆(CIRCLE)及其圆弧(ARC)三种基本实体进行提取与识别。特别注意,在DXF文件中,对于圆弧ARC的数据存储都是以逆时针方向来识别的,故圆弧的起始角与中止角的记录与实际绘制图形时的起始角与中止角不一定吻合(逆时针绘制时相同)。4.

23、2 DXF文件的读取保存模块首先,根据从打开文件对话框中选定的文件,获得的文件名,打开该文件。读取文件内容,将内容按照行保存在字符数组中。程序流程图如图4-1所示。等于文件大小行数不小于0不等于文件大小不等于0等于0开 始通过文件打开对话框,选取文件名并打开获取文件大小声明文件大小的内存空间显示消息框 “文件内容为空!”文件读取至内存解析文件内容,以回车换行作为分割,将每一行存入字符数组文件解析行数关 闭 文 件将字符数组中的文件内容解析,保存在实体数组结 束显示消息框 “文件读取错误!”行数小于0显示消息框 “文件不完全,可能被损坏!”关 闭 文 件图 4-1 从文件中读取数据并按行保存部分

24、流程图其次,要将保存在字符数组中的文件内容解析为实体数组(函数StorageFileData())。考虑到DXF文件中包含的图线信息主要为直线、圆、圆弧等,对于直线,只需要提取其起点坐标和终点坐标即可;对于圆,则要得到其圆心坐标和半径;对于圆弧,要提取的信息为圆弧的圆心坐标、半径、圆弧的起始角度和终止角度。在储存这些图线信息时,要定义相应的结构体,最后为这些数据结构体创建一个类,以统一管理。下面为各结构体及类的说明:/点的存储结构定义,用来存储图线中的点的坐标typedef struct target_pointdouble xAxes; /点的X坐标double yAxes; /点的Y坐标d

25、ouble zAxes; /点的Z坐标(在计算过程中不用,因为是平面图形,但读取数据时要考虑它) Cpt;/线的存储结构定义,用来存储直线的信息(起点和终点)typedef struct target_lineCpt pLStart; /直线起点Cpt pLEnd; /直线终点 Cln;/圆的存储结构定义,存储圆的信息和圆弧的部分信息typedef struct target_circleCpt pCCenter; /圆心(圆弧的圆心)坐标double rRadius; /圆的(圆弧的)半径Ccl; /圆弧的存储结构定义typedef struct target_arcCcl arcCircl

26、e;double sAngle; /圆弧的起始角度double eAngle; /圆弧的终止角度 Carc;/实体类型(将DXF文件中的每个图线看作是一个实体)typedef struct target_entityint entType; Cln entLine; Ccl entCircle;Carc entArc;Entity;/实体类的定义,这是C+中特有的,利用了C+的优点class CEntity public:CEntity();virtual CEntity();public:/实体变量定义Entity m_Entity;程序的流程图如图4-2所示。图4-2 将保存在字符数组中的

27、文件内容解析为实体数组部分流程图否否否否到文件结束标记,或者数组下标不小于文件总行数是是下标增1“LINE”“ARC”“CIRCLE”否否是保存直线实体至实体数组保存圆弧实体至实体数组保存圆实体至实体数组是是是结 束开 始该行是”ENTITIES”下标增1到”ENDSEC”或者数组下标小于文件总行数4.3 原始轨迹的显示模块对于直线,从文件中得到其起点和终点,调用自定义的画直线的函数DrawLine(tmpEntity,pDC)将直线画出;对于圆弧,根据从文件中得到的圆弧的相关数据,用自定义的函数DrawArc(tmpEntity,pDC)将其画出。这部分的程序比较简单,流程图如下图4-3所示

28、。图4-3 原始轨迹显示模块流程图4.4 小结本部分通过DXF文件的读取保存模块和原始轨迹的显示模块实现了CAD模块的部分功能,使用户可以直观的从软件界面上看到在AutoCAD下绘制的零件图。这其间,DXF起到了桥梁的作用,它为图形信息在AutoCAD和第三方软件之间进行交换传输提供了一种简单而实用的解决办法。本部分主要代码见附录。五、刀具半径补偿概念及原理本章关于刀具半径补偿的算法参考了周晓东师兄关于C功能刀具半径补偿的研究中的算法。15.1 刀具半径补偿的概念刀具补偿包括刀具半径补偿和刀具长度补偿,这里讨论刀具半径补偿的相关问题。为了方便零件加工程序编制,程编轨迹为零件轮廓轨迹,而数控系统

29、(CNC系统)控制刀具移动的轨迹为刀具中心轨迹。由于刀具半径的存在,零件的轮廓轨迹与刀具中心轨迹不相重合。为了加工出符合图纸要求的零件轮廓,必须进行刀具半径偏移。这个问题有两种解决办法:一种是由编程人员按照零件的几何形状尺寸及刀具半径大小人工计算刀具中心轨迹,然后再按刀具中心运动轨迹编制加工程序;另一种方法是由编程人员按照零件实际轮廓尺寸编制加工程序,并在程序中指明刀具参数及走刀方式,由数控系统自动完成刀具中心运动轨迹的计算。前一种方法繁琐、工作量大,已不采用。第二种方法具有很大的灵活性,既可以减轻编程人员的计算工作量,又允许实际加工中根据具体情况选择适宜的刀具,现代CNC系统都具有自动计算刀

30、具中心运动轨迹的功能,这种功能称之为刀具半径补偿功能。5.2 数控系统中C功能刀具补偿功能的实现方法只有B刀具半径补偿功能的CNC系统,在数控加工时,采取读一段,算一段,走一段的控制方法。因此,无法估计由于刀具半径补偿所造成的下一段加工轨迹对本段加工轨迹的影响 。为了解决这一问题,需要在计算完本段程编轨迹之后,提前将下一段程序读入,然后根据它们之间转接的具体情况,求得本段程序的刀具中心轨迹。按照这一思路,具有C刀具半径补偿功能的CNC系统应设置多个数据寄存区。如图5-1所示:缓冲寄存器(BS)刀具补偿缓冲区( CS)输出寄存区(OS)工作寄存器(AS)图5-1带C功能刀补的CNC系统的工作流程

31、图 系统起动后,第一段程序被读入BS中,并在BS中算出第一段程序的程编轨迹,然后将其送到CS暂存。再将第二段程序读入BS中,并计算出第二段程序的程编轨迹。接下来对第一、第二段程编轨迹的连接方式进行判别,根据判别结果确定CS中的第一段程序的刀具中心轨迹。将第一段程序的刀具中心轨迹数据由CS送入AS,第二段程编轨迹数据由BS送入CS。AS的内容送到OS中进行插补计算,并将计算结果送出,进行位置控制。利用插补间隙,将第三段程序数据送入BS,并计算其程编轨迹。随后,对第二、第三段程编轨迹的连接方式进行判别,并根据判别结果确定CS中第二段程序的刀具中心轨迹。如此依次进行下去。在C刀具半径补偿工作状态下,

32、CNC装置内总是存有三个程序段的参数。5.3 C功能刀补中程序段间的转接要实现C刀具半径补偿功能,首先要对相邻程编轨迹的转接线型和转接过渡类型进行判别,然后才能根据转接线型和转接过渡类型调用相应的计算公式,在已知原始程编轨迹的基础上,计算出刀具中心轨迹。对于具有直线、圆弧插补功能的CNC系统,其相邻两段程编轨迹不外乎有以下几种转接线型:直线与直线转接;直线与圆弧转接;圆弧与直线转接;圆弧与圆弧转接。相邻两段程编轨迹矢量间夹角的不同,刀具半径补偿方式的不同,即左刀补或右刀补(G41或G42),对应的刀具中心轨迹的转接过渡类型也不同,概括起来有三种转接过渡类型,即缩短型、伸长型和插入型。伸长型转接

33、即是刀具中心轨迹相对于程编轨迹伸长了一定的长度。缩短型转接则是指刀具轨迹相对于程编轨迹缩短了一定长度。如图5-2所示情况,若仍按照伸长型转接那样,将SC、DC延长相交,势必会增加刀具非切削行程的时间。因此,采取如下做法:将前后程序段刀具中心轨迹分别延长BC和CD,且令BC=CD=AB=AD。再在中间插入过渡直线段CC。这样刀具中心除了沿原来的程编轨迹伸长一个刀具半径外,还增加了一个沿直线CC的移动。对于原来的程序段,等于中间再插入一个程序段。因此称这种转接形式为插入型转接。图5-2 直线接直线插入型左刀补示意图5.4 C功能刀具半径补偿算法5.4.1 刀具中心轨迹转接过渡类型设1为本程序程段编

34、轨迹矢量与X轴的夹角,2为下一程序段程编轨迹矢量与X轴的夹角,1角和2角均为从X轴逆时针转到程编轨迹矢量形成的角,=2-1。将圆弧等效于直线后,完全可以按照角的正弦值、余弦值的大于、等于或小于零以及刀具半径补偿方式(即左刀补或右刀补)划分转接过渡形式。刀具中心轨迹转接过渡类型判别的规律如表5-3所示:刀具半径补偿方向sin0cos0 转接过渡类型左刀补 是 缩短型 否 是 伸长型 否 否 插入型 右刀补 是 是 伸长型 是 否 插入型 否 缩短型表5-3 刀具中心轨迹转接过渡类型判别表 转接过渡类型判别程序框图如下:图5-4 刀具中心轨迹转接过渡类型判别表 5.4.2 转接矢量的计算方法 所谓

35、转接矢量是指刀具半径矢量、及从零件程编轨迹交点指向刀具中心轨迹交点的矢量、(如图5-6所示)。不同线型,不同连接方式,不同刀具半径补偿方式,其转接交点矢量计算公式也不同。对于具体的转接矢量的计算方法,由于转接形式的不同而各有不同,考虑本次设计的重点在于刀补轨迹到G代码的生成方面,故对各种情况的转接矢量的计算方法不做具体推导,而直接给出结论公式,以提供给程序一个已知的确定的算法。下图为转接矢量计算的一般流程图:对于下一程序段,刀心轨迹的起点计算刀具半径矢量的计算转接交点矢量的计算图5-5 转接矢量计算的一般流程图5.4.3 常用的典型转接交点矢量计算公式 直线接直线插入型转接矢量的计算:X图5-

36、6 左刀补直线接直线插入型转接 如图5-6所示为左刀具半径补偿的情况,有: =,= ;=,= ;对于右刀具半径补偿的情况,有:= ,= ;= ,=;设、分别表示上一程序段结束时刀具中心所在位置相对于本程序段编程起点O在、轴上的投影,即=, =、在上一程序段刀具半径补偿计算中已经算出,为已知值。因此,相对于本程序段程编轨迹,本程序段刀心轨迹是、,其在、轴上的投影,即经刀具半径补偿后本程序段的实际增量值为:=,=;=,=;而对于下一程序段程,刀心轨迹的起点为 =, =直线接直线伸长型转接交点矢量的计算:图5-7 左刀补直线接直线伸长型转接 X 如图5-7所示为左刀具半径补偿的情况,有: = =对于

37、右刀具半径补偿的情况,有: = = 相对于本程序段程编轨迹轨迹为,其在、轴上的投影,即经刀具半径补偿后本程序段刀心轨迹的增量值为: = =对于下一程序段的程编轨迹AF,刀心轨迹的起点为: =,= 该、将参与下一程序段的刀具半径补偿计算。直线接直线缩短型转接交点矢量的计算:以上推导的直线接直线伸长型转接交点矢量计算公式完全可以用于直线接直线缩短型转接矢量计算。直线接圆弧缩短型转接矢量的计算: 如图5-8所示为左刀具半径补偿的情况,直线和圆弧相接。为了计算,先计算。图5-8 左刀补直线接圆弧缩短型转接 =-+(R+r) =(R+r)-矢量在轴上的投影分别为: =+,=+其中,,分别为圆弧圆心相对于

38、圆弧起点的坐标分量。从而可得,相对于本程序段程编轨迹的刀心轨迹在、轴上的投影,即刀具半径补偿后刀心轨迹的增量为: = =对于下一程序段,刀心轨迹的起点为:=,=.直线接圆弧插入型转接交点矢量计算公式。图5-9 左刀补直线接圆弧插入型转接 如图5-9所示为左刀具半径补偿的情况,有: =, =; =, =; =, =;对于右刀具半径补偿的情况,有: =, =; =, =; =, =;因此,相对于本程序段程编轨迹的刀心轨迹是、及,其在、轴上的投影,即经过刀具半径补偿后本程序段的实际增量值为: =,=; =,=; =-,=-;而对于下一程序段程编轨迹圆弧AF,有: =,=直线接圆弧伸长型转接交点矢量计

39、算公式。图5-10 左刀补直线接圆弧伸长型转接 上图5-10为左刀具半径补偿的情况,有: = = =, =对于右刀具半径补偿情况,有: = = =, =因此,相对于本程序段程编轨迹的刀心轨迹是、,其在、轴上的投影,即经过刀具半径补偿后本程序段的实际增量值为: =,= =,=而对于下一程序段程编轨迹圆弧AF, 有: =,=圆弧接直线缩短型转接交点矢量计算公式。图5-11 左刀补圆弧接直线缩短型转接 上图为左刀具半径补偿的情况,有: =-+ =+对于右刀具半径补偿情况,有: =+ =-(Rcos+r)矢量AC在X、Y轴上的投影可用下两式求得: =+,=+其中,分别为圆弧相对于圆弧起点的、坐标分量。

40、因此,相对于本程序段程编轨迹圆弧的刀心轨迹为,其在、轴上的投影,即经刀具半径补偿后本程序段的实际增量为: =,=而对于下一程序段程编轨迹圆弧AF,有: =,=圆弧接直线伸长型转接交点矢量的计算公式:如图5-12为左刀具半径补偿的情况,有: =, = = =图5-12 左刀补圆弧接直线伸长型转接 对于右刀具半径补偿情况,有: =, = = =因此,相对于本程序段程编轨迹圆弧的刀心轨迹为, 其在、轴上的投影,即经刀具半径补偿后本程序段的实际增量为: =+-,=+- =-,=-而对于下一程序段程编轨迹AF,有: =,=圆弧接直线插入型转接交点矢量的计算公式:图5-13所示为左刀具半径补偿的情况,有:

41、 =, = = = =, =图5-13 左刀补圆弧接直线插入型转接 对于右刀具半径补偿情况,有: = , = = = = , = 因此,相对于本程序段程编轨迹圆弧的刀心轨迹为及,其在、轴上的投影,即经过刀具半径补偿后本程序段的实际增量值为: =+-,=+- =-,=- =,=而对于下一程序段程编轨迹AF,有: =,=圆弧接圆弧伸长型转接交点矢量的计算公式:下图5-14为左刀具半径补偿的情况,有: =, = = = =, =图5-14 左刀补圆弧接圆弧伸长型转接 对于右刀具半径补偿情况,有: = , = = = = , = 因此,相对于本程序段程编轨迹圆弧的刀心轨迹为及,其在、轴上的投影,即经过

42、刀具半径补偿后本程序段的实际增量值为: =+-,=+- =-,=- =,=而对于下一程序段程编轨迹AF,有: =,=圆弧接圆弧插入型转接交点矢量的计算公式:如下图5-15,为左刀补时的情况,由图可得: =, = = = =, = =, =对于右刀具半径补偿情况,有: = , = =图5-15 左刀补圆弧接圆弧插入型转接 = =, = =, = 因此,相对于本程序段程编轨迹圆弧的刀心轨迹为、及,其在、轴上的投影,即经过刀具半径补偿后本程序段的实际增量值为: =+-,=+- =-,=- =,= =-, =而对于下一程序段程编轨迹圆弧AF,有:=, =圆弧接圆弧缩短型转接交点矢量的计算公式:图5-1

43、6 左刀补圆弧接圆弧缩短型转接 图5-16为左刀具半径补偿顺圆弧的情况,矢量在、轴上的投影分别为: =+-+- +- =+-+-+ +-对于右刀具半径补偿逆圆弧的情况,有: =+-+-+ +- =+-+- +-矢量AC在X、Y轴上的投影可用下两式求得: =+-,=+- 其中 、及、分别为两圆弧圆心相对于圆弧起点的坐标分量及圆弧半径。 因此,相对于本程序段程编轨迹圆弧的刀心轨迹为,其在轴上的投影,即经刀具半径补偿后本程序段的实际增量为: =+-,=+-而对于下一程序段程编轨迹圆弧AF,有:=,=5.5 小结以上介绍了刀具补偿的概念及原理,是刀具轨迹生成的核心部分算法。在程序的编写过程中所用到的算

44、法,就是在这一部分中推导出来的,所以,本章内容为下一章刀具轨迹计算和显示模块中的轨迹生成模块提供了理论根据。六、刀补轨迹计算和显示模块6.1 第一加工图元指定及排序模块程序在从DXF文件中读取并显示出的是CAD中的绘图对象链,这不一定是使用者想得到的实际加工对象链,这就需要对绘图对象链中的各元素进行调整并排序,继而得到实际加工对象链。对于这一过程,首先便是要指定第一加工图元,而后从第一加工图元和加工方向上对其他图元逐一判断,便得到一个线性的实际加工对象链。然而对于存在交叉图元的图形信息,这一过程会相对麻烦,还要判断交叉点的加工情况。本系统中,只对无交叉的情况作一讨论。图6-1 排序示例图1对于

45、第一图元的指定,本系统的做法是,通过鼠标在窗体中的点选,返回一个点的坐标(包括X和Y坐标),通过点到直线的距离公式,依次计算该点与绘图对象链中各元素的法向距离,这包括两种情况: 图元为直线时,应用点到直线距离公式,直线两点式表示; 图元为圆弧时,计算点到圆心的距离,再与半径作差取其绝对值。用循环语句判断有最小法向间距的图元,并把其指定为第一图元元素写入数组,并顺势调整绘图对象链顺序。2对于实际加工对象链,在按第一加工图元重排绘图对象链顺序后,判断第一图元的结束点(由加工方向来确定),并把该点与各图元的始末点依次比较,相同则相连,这样就判出第二加工图元。以后,重复这一过程直到最后一个图元。当最后

46、一个图元无与之末点相连的图元时,整个图形为一链型图;当与最后图元末点相连的图元为第一加工图元时,整个图形为一环型图。把图形是否封闭(环型与否)计入相应的变量fengbi中,以供下面刀补部分调用。图6-2 第一加工图元指定流程图 6.2 刀补轨迹生成模块这部分程序设计时应这样考虑:根据图线之间的转接类型的判断及相应的求点的坐标的算法,可以确定刀具的中心的转折点(一个或多个),这样,将图线中每相邻的两段依次进行组合,判断其转接类型并求得各转折点的坐标,将上一步求得的最后一个转折点的坐标作为下一步画第一段线的起点,将当前步所求得的第一个转折点这步画第一段线的终点,进行画线(直线或圆弧)。每步中间的相

47、邻点用直线直接相连即可(这是按照算法来进行的)。对于第一段和最后一段,进行B刀补的专门处理就行了。对于第一段,调用InitiaSRxRy(const CEntity &ent, double &rx, double &ry)求得rx和ry。再根据是圆弧还是直线求得刀具中心轨迹上第一点(TrackSPoint)的坐标,然后从选定的入丝点至TrackSPoint点画直线,即可得到刀具中心轨迹上的第一段。对于最后一段情况比较特殊:当图形为一链型图时,若是直线,仍调用InitiaSRxRy(const CEntity &ent, double &rx, double &ry)求得rx和ry,并求最后一

48、点的坐标,将其作为终点,将前一步求得的最后一个转折点的坐标作为起点,画直线,即为刀心轨迹上最后一段,并从最后一段末点向出丝点连线;若为圆弧,则调用InitiaEARxRy(const CEntity &ent, double &rx, double &ry)求rx和ry,并求最后一点的坐标,将其作为终点,将前一步求得的最后一个转折点的坐标作为起点,画圆弧,得到刀心轨迹上最后一段,同样也要从最后一段末点向出丝点连线。当图形为一封闭图形时,仍要把最后一段图元与第一段图元做刀补,求出刀补轨迹,最后从刀补轨迹的末端向出丝点连线。这样就比不封闭的图形多做了一次刀补运算。在本系统中,这次刀补也是在求其它刀

49、补轨迹的循环中完成的,用表示封闭与否的变量fengbi来控制循环的出口。 至此,刀心轨迹就完全确定了。这部分的程序流程图如下图6-3所示。6.3 小结本章内容是对刀具中心实际运动轨迹的生成,它是数控程序代码的基础,也就是实际的加工路线。这些加工信息生成后存储于数组加工链中,供代码生成模块调用,逐次输出。 图6-3 刀补轨迹生成模块流程图七、代码生成模块本模块是自动编程系统的最后部分,它是把刀补轨迹生成模块中的刀补轨迹链数组中的各元素加以判断输出的模块。本系统选用G代码形式输出。关于G代码,在此不再赘述,详见有关资料2。这部分的关键在于对顺逆时针圆弧的判断以及优弧劣弧的判断,从而正确的输出G代码

50、。流程图如下:图7-1 代码生成模块流程图7.1 对于直线的输出由于直线在DXF文件中的保存模式带有方向性,故在刀具轨迹生成时所形成的直线段也具有方向性,这就为直线段的输出提供了便利。只要分别输出实体类下直线型的末点坐标的X和Y分量就可表示加工信息,即N* G01 X X坐标的值 Y Y坐标的值 ;本部分比较简单,部分代码见附录。7.2 对于圆弧的输出对圆弧的输出较直线来说比较麻烦。由于在DXF文件中,对于圆弧ARC的数据存储都是以逆时针方向来识别的,故圆弧的起始角与中止角的记录与实际绘制图形时的起始角与中止角不一定吻合(逆时针绘制时相同),即是说无法单从一个圆弧图元信息来判断圆弧的顺逆,这就

51、为G代码的生成带来了麻烦,输出前必然要先判断。N* G02(G03) X X坐标的值 Y Y坐标的值 R R的值;另外在G代码中优弧和劣弧的表达形式也是不同的,对于小于180度的圆弧(劣弧),R为正,大于180度的(优弧),R为负。7.2.1 关于顺时针圆弧(G02)和逆时针圆弧(G03)的判断图7-2 顺逆时针圆弧示意图本部分判断的主体思想沿用对实际加工链生成时的判断思想,即通过前一个图元的末点对相连圆弧的起点进行判断。由于DXF文件中,对于圆弧ARC的数据存储都是以逆时针方向来识别的,而在实际加工轨迹链生成时对图元信息的保存也沿用了这种方法。那么当本加工图元为圆弧时,只要看前一个图元的末点

52、与本圆弧数据存储的起点是否相同就可,当这两点重合时,就是说圆弧的方向为默认的逆时针方向(G03),并把圆弧数据存储的终点作为图元末点存储,以供下一图元判断。反之当本圆弧数据存储的终点与前一个图元的末点相同时,圆弧为顺时针方向(G02),并把圆弧数据存储的起点坐标作为图元末点存储。由上可知,只要知道前一个图元的末点信息就可对圆弧的方向进行判断,对于直线就是直线的终点,而对于圆弧则在判断后后可知。那么通过递推,只要知道第一加工图元的末点信息,其后所有图元的末点信息都可判断。而在本系统中,第一加工元素总是入丝点向首加工图元起点引的一条直线,其末点便是其终点。图7-3 顺逆时针圆弧判断示意图7.2.2

53、 关于优弧劣弧的判断如图7-4,由几何知识有,在给定圆弧起点、终点和半径的情况下,有两个圆弧与之对应。即小于180度的圆弧和大于180度的圆弧。那么在G代码中就规定对于小于180度的圆弧(劣弧),R为正,大于180度的(优弧),R为负。图7-4 优弧劣弧示意图由于优弧劣弧的判断不涉及圆弧的矢量方向,直接按其在加工链数组中的数据结构取值即可,故对顺逆圆弧都作如下的判断:设圆弧的起始角和终止角分别为和当时:如果,则为劣弧;否则为优弧。当时:如果,则为劣弧;如果,则为劣弧;其他情况为优弧。7.3 小结本章内容是数控程序的生成和输出模块,通过对实际加工链的分析,逐个把加工命令向外输出,最后以文本形式进

54、行保存。八、程序的运行8.1 运行环境要求硬件环境:奔腾350MHz以上多媒体计算机。软件环境:Windows 2000 或Windows XP;Microsoft Visual C+ 6.0。8.2 运行方法程序运行时,选择“文件-打开”菜单,在弹出的文件打开对话框中选择要打开的“.dxf”文件,此时原始轨迹会显示在窗体上,程序运行效果如下图8-1所示:图8-1打开选定“.dxf”文件界面文件打开后,选择参数及代码生成菜单项下的参数设置,首先对机床参数和图形的一些基本参数进行设定,以提供加工链生成的一些必要信息,如图8-2所示:图8-2 参数设置界面图中设置界面上除文本形式的参数输入栏外,位

55、于上半部分的三个按钮用来返回主窗体上点取的所需图元或是返回点区坐标值。待全部参数设定完毕后,单击确定按钮,则生成从入丝点到出丝点之间的图元左刀补(右刀补)轨迹,并在窗体上仿真出轨迹。如图8-3所示:首加工轨迹第一加工图元图8-3 加工轨迹生成界面注:图中红色线表示第一加工图元,绿色线表示第一加工轨迹,虚线为加工轨迹链。加工轨迹生成后,选择参数及代码生成菜单项下的后置处理,对一些代码生成时的后置参数进行设置,这里本程序仅演示了该模块的作用,设置的参数较少。如图8-4所示:图8-4 后置处里参数设置界面最后就到了代码生成阶段,选择参数及代码生成菜单项下的代码生成,弹出保存界面,制定文件路径和文件名

56、以保存,默认的保存类型为.TXT(文本格式),如图8-5。图8-5 代码保存界面在保存路径目录下,便可生成包含指定加工信息的文本文件。图8-6 代码展示以上为本程序的运行情况,具体情况见程序的运行。九、总结与展望9.1 总结本设计通过对数控线切割机床自动编程软件的编制,初步讨论了NC加工中自动编程系统的实现方法,完成了一下几方面工作:1用VC+6.0编写了数控线切割机床自动编程系统;2通过运行该程序,我们可以清楚地看到待加工的原始图形和实际加工中的刀心运动轨迹;3生成了G代码的文本文件,为后续开发打下了基础。9.2 展望数控机床CAD/CAM系统研发是一个涉及数控技术、机床的加工工艺过程、计算

57、机图形学、曲线曲面等学科,同时需要熟练的掌握计算机编程语言以及开发工具。本系统仅是在原理层实现了NC自动编程系统,功能和算法都比较薄弱,在操作性上更有很大不足,在下一步的研究中,可以从以下几个方面入手:1实现一个初级或完善的CAD模块,是原始数据不只能从DXF文件中读入,更能在本系统中完成表述;2本系统中加工链调整模块比较薄弱,日后的研究中可添加如加工方向选取、交叉点方向判断等子模块,使加工链的生成更为自用和灵活。3由于时间关系,本系统仅实现了小部分实体元素的识别(主要直线、圆弧),而CAD软件提供了多种实体类型,通过相应的识别,可完善系统;4可从2坐标自动编程向多坐标自动编程发展,同时对于曲线、曲面的识别和补偿也是一个

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!