版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、NC加工自动编程技术目录一、序言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 关于优弧劣弧的判断
3、357.3 小结36八、程序的运行378.1 运行环境要求378.2 运行方法37九、总结与展望409.1 总结409.2 展望40致41参考文献42附录程序中部分代码4353 / 56一、序言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, SolidWork
8、s, 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模块的难度很大,本系统采用基于AutoCAD的
11、开发思想。在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环境下主要的应用开发系统之一,Vi
15、sual C+不仅是C+语言的集成开发环境,而且与Win32紧密相连,所以,利用Visual C+开发系统可以完成各种各样的应用程序的开发,从底层软件直到上层直接面向用户的软件。而且,Visual C+ 强大的调试功能也为大型复杂软件的开发提供了有效的排错手段。进入20世纪90年代以来,随着多媒体技术和图形图像技术的不断发展,可视化(Visual)技术得到广泛的重视,越来越多的计算机专业人员和非专业人员都开始研究并应用可视化技术。所谓可视化技术,一般是指软件开发阶段的可视化和对计算机图形技术和方法的应用。Visual C+是一种很好的可视化编程工具,使用Visual C+ 环境来开发基于Win
16、dows的应用程序大大缩短了开发时间,而且它的界面更友好,便于程序员操作。在没有可视化开发工具之前,程序员要花几个月时间来完成Windows程序的界面开发,而现在只需较少的时间就可完成。3.2.2Visual 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 关于DXF文件的结构DXF是
19、“图形交换文件”的英文缩写,是一种图形文件交换格式。DXF有ASCII码、二进制等多种格式。其中ASCII码格式的DXF文件具有严密性、易读取性等显著特点,因而得到了广泛的应用。DXF文件的总体结构:一个完整的DXF文件由七个段(SECTION)和文件结尾组成,按顺序分别是: 1. 标题段(HEADER )标题段记录了图形系统的一般信息,有标题变量与其当前值或当前状态表示。 2.类段(DLASSES)类段句路了应用程序定义的类,这些类的实例可以出现在快段、实体段和对象段中。 3. 表段(TABLES)这一段包含的指定项的定义,它包括:a、视窗表(VPORT)b、线形表(LTYPE)c、图层表(
20、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文件中获取待加工零件信息时,只需要识别出ENTITIES段,进而读取这个段中图线的
22、相关数据就可以了,而不需要关心其它各段的容。从DXF文件中ENTITIES段中的组码和组值的存放格式可知,在从DXF文件中提取图线信息时,首先,找到ENTITIES段,再判断是否有“LINE”或“ ARC”。找到这两者之一后,就可以按照相关信息的存放顺序,跳过冗余行,来提取有用的图线信息。在本软件中,只对直线(LINE),圆(CIRCLE)与其圆弧(ARC)三种基本实体进行提取与识别。特别注意,在DXF文件中,对于圆弧ARC的数据存储都是以逆时针方向来识别的,故圆弧的起始角与中止角的记录与实际绘制图形时的起始角与中止角不一定吻合(逆时针绘制时一样)。4.2 DXF文件的读取保存模块首先,根据从
23、打开文件对话框中选定的文件,获得的文件名,打开该文件。读取文件容,将容按照行保存在字符数组中。程序流程图如图4-1所示。等于文件大小行数不小于0不等于文件大小不等于0等于0开 始通过文件打开对话框,选取文件名并打开获取文件大小声明文件大小的内存空间显示消息框 “文件内容为空!”文件读取至内存解析文件内容,以回车换行作为分割,将每一行存入字符数组文件解析行数关 闭 文 件将字符数组中的文件内容解析,保存在实体数组结 束显示消息框 “文件读取错误!”行数小于0显示消息框 “文件不完全,可能被损坏!”关 闭 文 件图 4-1 从文件中读取数据并按行保存部分流程图其次,要将保存在字符数组中的文件容解析
24、为实体数组(函数StorageFileData())。考虑到DXF文件中包含的图线信息主要为直线、圆、圆弧等,对于直线,只需要提取其起点坐标和终点坐标即可;对于圆,则要得到其圆心坐标和半径;对于圆弧,要提取的信息为圆弧的圆心坐标、半径、圆弧的起始角度和终止角度。在储存这些图线信息时,要定义相应的结构体,最后为这些数据结构体创建一个类,以统一管理。下面为各结构体与类的说明:/点的存储结构定义,用来存储图线中的点的坐标typedef struct target_pointdouble xAxes; /点的X坐标double yAxes; /点的Y坐标double zAxes; /点的Z坐标(在计算
25、过程中不用,因为是平面图形,但读取数据时要考虑它) Cpt;/线的存储结构定义,用来存储直线的信息(起点和终点)typedef struct target_lineCpt pLStart; /直线起点Cpt pLEnd; /直线终点 Cln;/圆的存储结构定义,存储圆的信息和圆弧的部分信息typedef struct target_circleCpt pCCenter; /圆心(圆弧的圆心)坐标double rRadius; /圆的(圆弧的)半径Ccl; /圆弧的存储结构定义typedef struct target_arcCcl arcCircle;double sAngle; /圆弧的起始
26、角度double eAngle; /圆弧的终止角度 Carc;/实体类型(将DXF文件中的每个图线看作是一个实体)typedef struct target_entityint entType;Cln entLine;Ccl entCircle;Carc entArc;Entity;/实体类的定义,这是C+中特有的,利用了C+的优点class CEntitypublic: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所示。图4-3 原始轨迹显示模块流程图4.4 小结本部分通
28、过DXF文件的读取保存模块和原始轨迹的显示模块实现了CAD模块的部分功能,使用户可以直观的从软件界面上看到在AutoCAD下绘制的零件图。这其间,DXF起到了桥梁的作用,它为图形信息在AutoCAD和第三方软件之间进行交换传输提供了一种简单而实用的解决办法。本部分主要代码见附录。五、刀具半径补偿概念与原理本章关于刀具半径补偿的算法参考了周晓东师兄关于C功能刀具半径补偿的研究中的算法。15.1 刀具半径补偿的概念刀具补偿包括刀具半径补偿和刀具长度补偿,这里讨论刀具半径补偿的相关问题。为了方便零件加工程序编制,程编轨迹为零件轮廓轨迹,而数控系统(CNC系统)控制刀具移动的轨迹为刀具中心轨迹。由于刀
29、具半径的存在,零件的轮廓轨迹与刀具中心轨迹不相重合。为了加工出符合图纸要求的零件轮廓,必须进行刀具半径偏移。这个问题有两种解决办法:一种是由编程人员按照零件的几何形状尺寸与刀具半径大小人工计算刀具中心轨迹,然后再按刀具中心运动轨迹编制加工程序;另一种方法是由编程人员按照零件实际轮廓尺寸编制加工程序,并在程序中指明刀具参数与走刀方式,由数控系统自动完成刀具中心运动轨迹的计算。前一种方法繁琐、工作量大,已不采用。第二种方法具有很大的灵活性,既可以减轻编程人员的计算工作量,又允许实际加工中根据具体情况选择适宜的刀具,现代CNC系统都具有自动计算刀具中心运动轨迹的功能,这种功能称之为刀具半径补偿功能。
30、5.2数控系统中C功能刀具补偿功能的实现方法只有B刀具半径补偿功能的CNC系统,在数控加工时,采取读一段,算一段,走一段的控制方法。因此,无法估计由于刀具半径补偿所造成的下一段加工轨迹对本段加工轨迹的影响 。为了解决这一问题,需要在计算完本段程编轨迹之后,提前将下一段程序读入,然后根据它们之间转接的具体情况,求得本段程序的刀具中心轨迹。按照这一思路,具有C刀具半径补偿功能的CNC系统应设置多个数据寄存区。如图5-1所示:缓冲寄存器(BS)刀具补偿缓冲区( CS)输出寄存区(OS)工作寄存器(AS)图5-1带C功能刀补的CNC系统的工作流程图系统起动后,第一段程序被读入BS中,并在BS中算出第一
31、段程序的程编轨迹,然后将其送到CS暂存。再将第二段程序读入BS中,并计算出第二段程序的程编轨迹。接下来对第一、第二段程编轨迹的连接方式进行判别,根据判别结果确定CS中的第一段程序的刀具中心轨迹。将第一段程序的刀具中心轨迹数据由CS送入AS,第二段程编轨迹数据由BS送入CS。AS的容送到OS中进行插补计算,并将计算结果送出,进行位置控制。利用插补间隙,将第三段程序数据送入BS,并计算其程编轨迹。随后,对第二、第三段程编轨迹的连接方式进行判别,并根据判别结果确定CS中第二段程序的刀具中心轨迹。如此依次进行下去。在C刀具半径补偿工作状态下,CNC装置总是存有三个程序段的参数。5.3C功能刀补中程序段
32、间的转接要实现C刀具半径补偿功能,首先要对相邻程编轨迹的转接线型和转接过渡类型进行判别,然后才能根据转接线型和转接过渡类型调用相应的计算公式,在已知原始程编轨迹的基础上,计算出刀具中心轨迹。对于具有直线、圆弧插补功能的CNC系统,其相邻两段程编轨迹不外乎有以下几种转接线型:直线与直线转接;直线与圆弧转接;圆弧与直线转接;圆弧与圆弧转接。相邻两段程编轨迹矢量间夹角的不同,刀具半径补偿方式的不同,即左刀补或右刀补(G41或G42),对应的刀具中心轨迹的转接过渡类型也不同,概括起来有三种转接过渡类型,即缩短型、伸长型和插入型。伸长型转接即是刀具中心轨迹相对于程编轨迹伸长了一定的长度。缩短型转接则是指
33、刀具轨迹相对于程编轨迹缩短了一定长度。如图5-2所示情况,若仍按照伸长型转接那样,将SC、DC'延长相交,势必会增加刀具非切削行程的时间。因此,采取如下做法:将前后程序段刀具中心轨迹分别延长BC和C'D,且令BC=C'D=AB=AD。再在中间插入过渡直线段CC'。这样刀具中心除了沿原来的程编轨迹伸长一个刀具半径外,还增加了一个沿直线CC'的移动。对于原来的程序段,等于中间再插入一个程序段。因此称这种转接形式为插入型转接。图5-2 直线接直线插入型左刀补示意图5.4 C功能刀具半径补偿算法5.4.1刀具中心轨迹转接过渡类型设1为本程序程段编轨迹矢量与X轴的
34、夹角,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-6 左刀补直线接直线插入型
36、转接 如图5-6所示为左刀具半径补偿的情况,有: =,= ;=,= ;对于右刀具半径补偿的情况,有:= ,= ;= ,=;设、分别表示上一程序段结束时刀具中心所在位置相对于本程序段编程起点O在、轴上的投影,即=, =、在上一程序段刀具半径补偿计算中已经算出,为已知值。因此,相对于本程序段程编轨迹,本程序段刀心轨迹是、,其在、轴上的投影,即经刀具半径补偿后本程序段的实际增量值为:=,=;=,=;而对于下一程序段程,刀心轨迹的起点为=, =直线接直线伸长型转接交点矢量的计算:图5-7 左刀补直线接直线伸长型转接 X如图5-7所示为左刀具半径补偿的情况,有:=对于右刀具半径补偿的情况,有:= = 相
37、对于本程序段程编轨迹轨迹为,其在、轴上的投影,即经刀具半径补偿后本程序段刀心轨迹的增量值为:=对于下一程序段的程编轨迹AF,刀心轨迹的起点为:=,= 该、将参与下一程序段的刀具半径补偿计算。直线接直线缩短型转接交点矢量的计算:以上推导的直线接直线伸长型转接交点矢量计算公式完全可以用于直线接直线缩短型转接矢量计算。直线接圆弧缩短型转接矢量的计算: 如图5-8所示为左刀具半径补偿的情况,直线和圆弧相接。为了计算,先计算。图5-8 左刀补直线接圆弧缩短型转接 =-+(R+r)=(R+r)-矢量在轴上的投影分别为:=+,=+其中,,分别为圆弧圆心相对于圆弧起点的坐标分量。从而可得,相对于本程序段程编轨
38、迹的刀心轨迹在、轴上的投影,即刀具半径补偿后刀心轨迹的增量为:=对于下一程序段,刀心轨迹的起点为:=,=.直线接圆弧插入型转接交点矢量计算公式。图5-9 左刀补直线接圆弧插入型转接 如图5-9所示为左刀具半径补偿的情况,有:=, =;=, =;=,=;对于右刀具半径补偿的情况,有:=,=;=, =;=,=;因此,相对于本程序段程编轨迹的刀心轨迹是、与,其在、轴上的投影,即经过刀具半径补偿后本程序段的实际增量值为:=,=;=,=;=-,=-;而对于下一程序段程编轨迹圆弧AF,有:=,=直线接圆弧伸长型转接交点矢量计算公式。图5-10 左刀补直线接圆弧伸长型转接上图5-10为左刀具半径补偿的情况,
39、有:=,=对于右刀具半径补偿情况,有:=,=因此,相对于本程序段程编轨迹的刀心轨迹是、,其在、轴上的投影,即经过刀具半径补偿后本程序段的实际增量值为:=,=,=而对于下一程序段程编轨迹圆弧AF, 有:=,=圆弧接直线缩短型转接交点矢量计算公式。图5-11 左刀补圆弧接直线缩短型转接上图为左刀具半径补偿的情况,有:=-+=+对于右刀具半径补偿情况,有:=+=-(Rcos+r)矢量AC在X、Y轴上的投影可用下两式求得:=+,=+其中,分别为圆弧相对于圆弧起点的、坐标分量。因此,相对于本程序段程编轨迹圆弧的刀心轨迹为,其在、轴上的投影,即经刀具半径补偿后本程序段的实际增量为:=,=而对于下一程序段程
40、编轨迹圆弧AF,有:=,=圆弧接直线伸长型转接交点矢量的计算公式:如图5-12为左刀具半径补偿的情况,有:=,=图5-12 左刀补圆弧接直线伸长型转接对于右刀具半径补偿情况,有:=,=因此,相对于本程序段程编轨迹圆弧的刀心轨迹为, 其在、轴上的投影,即经刀具半径补偿后本程序段的实际增量为:=+-,=+-=-,=-而对于下一程序段程编轨迹AF,有:=,=圆弧接直线插入型转接交点矢量的计算公式:图5-13所示为左刀具半径补偿的情况,有:=,=,=图5-13 左刀补圆弧接直线插入型转接对于右刀具半径补偿情况,有:= ,= ,= 因此,相对于本程序段程编轨迹圆弧的刀心轨迹为与,其在、轴上的投影,即经过
41、刀具半径补偿后本程序段的实际增量值为:=+-,=+-=-,=-=,=而对于下一程序段程编轨迹AF,有:=,=圆弧接圆弧伸长型转接交点矢量的计算公式:下图5-14为左刀具半径补偿的情况,有:=,= =,=图5-14 左刀补圆弧接圆弧伸长型转接对于右刀具半径补偿情况,有:= ,= ,= 因此,相对于本程序段程编轨迹圆弧的刀心轨迹为与,其在、轴上的投影,即经过刀具半径补偿后本程序段的实际增量值为:=+-,=+-=-,=-=,=而对于下一程序段程编轨迹AF,有:=,=圆弧接圆弧插入型转接交点矢量的计算公式:如下图5-15,为左刀补时的情况,由图可得:=,= =, =,=对于右刀具半径补偿情况,有:=
42、,=图5-15 左刀补圆弧接圆弧插入型转接=, =,= 因此,相对于本程序段程编轨迹圆弧的刀心轨迹为、与,其在、轴上的投影,即经过刀具半径补偿后本程序段的实际增量值为:=+-,=+-=-,=-=,=-, =而对于下一程序段程编轨迹圆弧AF,有:=, =圆弧接圆弧缩短型转接交点矢量的计算公式:图5-16 左刀补圆弧接圆弧缩短型转接图5-16为左刀具半径补偿顺圆弧的情况,矢量在、轴上的投影分别为:=+-+- +-=+-+-+ +-对于右刀具半径补偿逆圆弧的情况,有:=+-+-+ +-=+-+- +-矢量AC在X、Y轴上的投影可用下两式求得:=+-,=+- 其中 、与、分别为两圆弧圆心相对于圆弧起点
43、的坐标分量与圆弧半径。 因此,相对于本程序段程编轨迹圆弧的刀心轨迹为,其在轴上的投影,即经刀具半径补偿后本程序段的实际增量为:=+-,=+-而对于下一程序段程编轨迹圆弧AF,有:=,=5.5 小结以上介绍了刀具补偿的概念与原理,是刀具轨迹生成的核心部分算法。在程序的编写过程中所用到的算法,就是在这一部分中推导出来的,所以,本章容为下一章刀具轨迹计算和显示模块中的轨迹生成模块提供了理论根据。六、刀补轨迹计算和显示模块6.1 第一加工图元指定与排序模块程序在从DXF文件中读取并显示出的是CAD中的绘图对象链,这不一定是使用者想得到的实际加工对象链,这就需要对绘图对象链中的各元素进行调整并排序,继而
44、得到实际加工对象链。对于这一过程,首先便是要指定第一加工图元,而后从第一加工图元和加工方向上对其他图元逐一判断,便得到一个线性的实际加工对象链。然而对于存在交叉图元的图形信息,这一过程会相对麻烦,还要判断交叉点的加工情况。本系统中,只对无交叉的情况作一讨论。图6-1 排序示例图1对于第一图元的指定,本系统的做法是,通过鼠标在窗体中的点选,返回一个点的坐标(包括X和Y坐标),通过点到直线的距离公式,依次计算该点与绘图对象链中各元素的法向距离,这包括两种情况: 图元为直线时,应用点到直线距离公式,直线两点式表示; 图元为圆弧时,计算点到圆心的距离,再与半径作差取其绝对值。用循环语句判断有最小法向间
45、距的图元,并把其指定为第一图元元素写入数组,并顺势调整绘图对象链顺序。2对于实际加工对象链,在按第一加工图元重排绘图对象链顺序后,判断第一图元的结束点(由加工方向来确定),并把该点与各图元的始末点依次比较,一样则相连,这样就判出第二加工图元。以后,重复这一过程直到最后一个图元。当最后一个图元无与之末点相连的图元时,整个图形为一链型图;当与最后图元末点相连的图元为第一加工图元时,整个图形为一环型图。把图形是否封闭(环型与否)计入相应的变量fengbi中,以供下面刀补部分调用。图6-2 第一加工图元指定流程图6.2 刀补轨迹生成模块这部分程序设计时应这样考虑:根据图线之间的转接类型的判断与相应的求
46、点的坐标的算法,可以确定刀具的中心的转折点(一个或多个),这样,将图线中每相邻的两段依次进行组合,判断其转接类型并求得各转折点的坐标,将上一步求得的最后一个转折点的坐标作为下一步画第一段线的起点,将当前步所求得的第一个转折点这步画第一段线的终点,进行画线(直线或圆弧)。每步中间的相邻点用直线直接相连即可(这是按照算法来进行的)。对于第一段和最后一段,进行B刀补的专门处理就行了。对于第一段,调用InitiaSRxRy(const CEntity &ent, double &rx, double &ry)求得rx和ry。再根据是圆弧还是直线求得刀具中心轨迹上第一点(Trac
47、kSPoint)的坐标,然后从选定的入丝点至TrackSPoint点画直线,即可得到刀具中心轨迹上的第一段。对于最后一段情况比较特殊:当图形为一链型图时,若是直线,仍调用InitiaSRxRy(const CEntity &ent, double &rx, double &ry)求得rx和ry,并求最后一点的坐标,将其作为终点,将前一步求得的最后一个转折点的坐标作为起点,画直线,即为刀心轨迹上最后一段,并从最后一段末点向出丝点连线;若为圆弧,则调用InitiaEARxRy(const CEntity &ent, double &rx, double &a
48、mp;ry)求rx和ry,并求最后一点的坐标,将其作为终点,将前一步求得的最后一个转折点的坐标作为起点,画圆弧,得到刀心轨迹上最后一段,同样也要从最后一段末点向出丝点连线。当图形为一封闭图形时,仍要把最后一段图元与第一段图元做刀补,求出刀补轨迹,最后从刀补轨迹的末端向出丝点连线。这样就比不封闭的图形多做了一次刀补运算。在本系统中,这次刀补也是在求其它刀补轨迹的循环中完成的,用表示封闭与否的变量fengbi来控制循环的出口。 至此,刀心轨迹就完全确定了。这部分的程序流程图如下图6-3所示。6.3 小结本章容是对刀具中心实际运动轨迹的生成,它是数控程序代码的基础,也就是实际的加工路线。这些加工信息
49、生成后存储于数组加工链中,供代码生成模块调用,逐次输出。 图6-3 刀补轨迹生成模块流程图七、代码生成模块本模块是自动编程系统的最后部分,它是把刀补轨迹生成模块中的刀补轨迹链数组中的各元素加以判断输出的模块。本系统选用G代码形式输出。关于G代码,在此不再赘述,详见有关资料2。这部分的关键在于对顺逆时针圆弧的判断以与优弧劣弧的判断,从而正确的输出G代码。流程图如下:图7-1 代码生成模块流程图7.1 对于直线的输出由于直线在DXF文件中的保存模式带有方向性,故在刀具轨迹生成时所形成的直线段也具有方向性,这就为直线段的输出提供了便利。只要分别输出实体类下直线型的末点坐标的X和Y分量就可表示加工信息
50、,即N* G01 X X坐标的值 Y Y坐标的值 ;本部分比较简单,部分代码见附录。7.2 对于圆弧的输出对圆弧的输出较直线来说比较麻烦。由于在DXF文件中,对于圆弧ARC的数据存储都是以逆时针方向来识别的,故圆弧的起始角与中止角的记录与实际绘制图形时的起始角与中止角不一定吻合(逆时针绘制时一样),即是说无法单从一个圆弧图元信息来判断圆弧的顺逆,这就为G代码的生成带来了麻烦,输出前必然要先判断。N* G02(G03) X X坐标的值 Y Y坐标的值 R R的值;另外在G代码中优弧和劣弧的表达形式也是不同的,对于小于180度的圆弧(劣弧),R为正,大于180度的(优弧),R为负。7.2.1关于顺
51、时针圆弧(G02)和逆时针圆弧(G03)的判断图7-2 顺逆时针圆弧示意图本部分判断的主体思想沿用对实际加工链生成时的判断思想,即通过前一个图元的末点对相连圆弧的起点进行判断。由于DXF文件中,对于圆弧ARC的数据存储都是以逆时针方向来识别的,而在实际加工轨迹链生成时对图元信息的保存也沿用了这种方法。那么当本加工图元为圆弧时,只要看前一个图元的末点与本圆弧数据存储的起点是否一样就可,当这两点重合时,就是说圆弧的方向为默认的逆时针方向(G03),并把圆弧数据存储的终点作为图元末点存储,以供下一图元判断。反之当本圆弧数据存储的终点与前一个图元的末点一样时,圆弧为顺时针方向(G02),并把圆弧数据存
52、储的起点坐标作为图元末点存储。由上可知,只要知道前一个图元的末点信息就可对圆弧的方向进行判断,对于直线就是直线的终点,而对于圆弧则在判断后后可知。那么通过递推,只要知道第一加工图元的末点信息,其后所有图元的末点信息都可判断。而在本系统中,第一加工元素总是入丝点向首加工图元起点引的一条直线,其末点便是其终点。图7-3 顺逆时针圆弧判断示意图7.2.2关于优弧劣弧的判断如图7-4,由几何知识有,在给定圆弧起点、终点和半径的情况下,有两个圆弧与之对应。即小于180度的圆弧和大于180度的圆弧。那么在G代码中就规定对于小于180度的圆弧(劣弧),R为正,大于180度的(优弧),R为负。图7-4 优弧劣弧示意图由于优弧劣弧的判断不涉与圆弧的矢量方向,直接按其在加工链数组中的数据结构取值即可,故对顺逆圆弧都作如下的判断:设圆弧的起始角和终止角分别为和当时:如果,则为劣弧;否则为优弧。当时:如果,则为劣弧;如果,则为劣弧;其他情况为优弧。7.3 小结本章容是数控程序的生成
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 主要领导离职的感言(5篇)
- 新学期学习计划十篇
- DB12T 598.10-2015 天津市建设项目用地控制指标 第10部分:非营利性社会福利设施项目
- 中秋节学校致辞范文(13篇)
- 新学期学习计划范文汇编九篇
- 范文新学期学习计划模板合集7篇
- DB12∕T 879-2019 仓储企业诚信评价规范
- 电动叉车维修保养的安全与操作规范
- 影响水利工程施工质量控制的主要因素
- 移动通信笔试题
- 部编版四上《中国古代神话》整本书导读课教学设计
- 弗兰克-赫兹实验
- 九年级语文试卷讲评课
- 园艺与健康知到章节答案智慧树2023年金陵科技学院
- 知识点解析《方向向量与直线的参数方程》
- 老年社区获得性肺炎的几个热点问题专家讲座
- 建筑消防工程施工操作规程
- GB/T 42461-2023信息安全技术网络安全服务成本度量指南
- (完整word版)扣字词汇124
- 2023届广东省广州市高三一模语文现代文阅读小说《给我一枝枪》讲评课件
- 中职世界历史全一册教案
评论
0/150
提交评论