
NC加工自动编程技术设计说明.doc
55页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五、刀具半径补偿概念与原理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 小结36八、程序的运行378.1 运行环境要求378.2 运行方法37九、总结与展望409.1 总结409.2 展望40致41参考文献42附录程序中部分代码43 / 一、序言1.1 数控(NC)技术简介NC,即Numerical Control,数字控制。
它是利用数字化的信息对机床运动与加工过程进行控制的一种方法装备了数控系统的机床称为数控(NC)机床数控系统包括:数控装置(NC devices)、可编程控制器(PLC)、主轴驱动装置(Spindle drive)与进给驱动装置(Feeding Device)等部分数控机床是机、电、液、气、光高度一体化的产品要实现对机床的控制,需要用几何信息描述刀具和工件间的相对运动以与用工艺信息来描述机床加工必须具备的一些工艺参数例如:进给速度、主轴转速、主轴正反转、换刀、冷却液的开关等这些信息按一定的格式形成加工文件(即数控加工程序)存放在信息载体上(如磁盘、穿孔纸带、磁带等),然后由机床上的数控系统读入(或直接通过数控系统的键盘输入,或通过通信方式输入),通过对其翻译,从而使机床动作和加工零件现代数控机床 (CNC)是机电一体化的典型产品,是计算机集成制造系统的技术基础它采用计算机来实现对数字程序的控制由于采用计算机替代原先用硬件逻辑电路组成的数控装置,使输入数据的存贮、处理、运算、逻辑判断等各种控制机能的实现,均可通过计算机软件来完成在当今社会中,制造业(Manufacturing)依旧是各种产业的支柱,数控技术和数控装备是制造工业现代化的重要基础,直接影响到一个国家的经济发展和综合国力,关系到一个国家的战略地位。
数控技术的应用、数控机床的生产量成为衡量一个国家工业化程度和技术水平的重要标志由此数控技术的重要性可见一斑1.2 数控(NC)编程技术的发展与国外现状数控编程技术是随着数控机床的诞生而发展起来的一门技术,随着生产的要求而不断的发展完善起来的数控编程技术经过三个阶段:①手工编程阶段:直接由程序员通过待加工零件的外形信息逐行写出加工程序该种方法的效率很低,而且又容易产生错误特别是面对大型复杂零件时,手工编程变得几乎不可能②基于语言的计算机自动编程阶段:如APT(AutomaticallyProgrammedTool)语言,它采用一定的语言来定义几何形状,来向计算机描述零件的几何外形和工艺要求,继而通过计算机生成加工程序这种方法自动化程度都有所提高,但是该种方法需要专门的编程设备,编程人员也需专门的学习,无法从直观方式进行程序的校验,仍难完全避免错误③基于图形的自动编程阶段:也就是图形交互编程,是一种计算机辅助编程技术它是利用专用的计算机软件来实现的这种软件通常以计算机辅助设计 (CAD)软件为基础,利用CAD软件的图形编辑功能将零件的几何图形绘制到计算机上,形成零件的图形文件,然后调用数控编程模块,采用人机交互的方式在计算机屏幕上指定被加工的部位,再输入相应的加工参数,计算机便可自动编制出数控加工程序,同时在计算机屏幕上动态地显示出刀具地加工轨迹。
采用图形交互编程系统可大大提高编程效率,减少编程出错的可能现在数控技术的发展正处于第三阶段,基于图形的自动化编程也得到越来越广泛的应用,但还有许多技术要研究,使之不断的完善提高国外数控编程技术开发应用较早,出现数控机床自动编程系统较为先进,功能相当强大国外开发且应用较广有MasterCAM, EDS公司的UG、PTC公司的Pro/E , Cimatron , SOLIDEDGE, SolidWorks, I-DEAS系统、ICEM系统等国的数控编程起步较晚,较国外的落后,切割编程软件方面,它分三种情况:第一种就是自行开发的软件,如北航海尔自行开发的CAXAV2WEDM软件,以与Band5 WEDM这两个是基于Windows平台,运用PC直接进行控制软件这些系统具备比较完备的功能,但是都有自己的缺陷如CAXA,系统平台通用性差,操作比较复杂还有一种主流软件是基于DOS平台的系统,如YH等,人机界面较差,操作繁琐程序长度更是限制于640K存,已经不能适应于新时代的需要第二种是在现有大型国外数控软件(MasterCAM, UG等)下进行二次开发,生成适合本企业使用的系统第三种是在通用的CAD软件环境下(如AutoCAD)开发生成3B指令线切割自动编程软件。
如3B精灵等这些二次开发以与在通用CAD平台下进行开发的软件,功能小,难以推广1.3 本设计的主要容本次关于NC加工自动编程技术的研究是对自动编程技术原理所作的基础性研究,并编写了外形铣削机床的自动编程软件鉴于时间和条件上的限制,采用图形交互文件(DXF)作为数控系统的信息输入程序首先从中获取待加工零件的图形信息,并将原始图形显示在窗体上然后按照一定的算法对其进行刀具半径补偿处理,计算出刀具中心运动轨迹并将其显示出来通过对刀具中心轨迹的保存分析,最后输出程序代码,并以文本形式保存二、NC加工自动编程系统的总体设计本系统的总体设计思想是:以开放式思想开发面向外形铣削的二维自动编程软件系统,进而对NC加工自动编程技术进行研究并予以实现本软件系统不仅能实现外形铣削自动编程的基本功能,而且具有人机交互式界面因此在进行系统的平台选择,功能设计,数据设计和界面设计时应着眼于开放式结构体系,采用模块化结构,从而使系统易于扩展和移植,具有良好的通用性2.1 开发方式的确定在研究平台上,选择了外形铣削机床,同时不考虑线切割的锥度加工,进而抽象出一个二维的加工环境,同时要能兼顾外形铣削的加工特点进行参数的设置。
CAD模块的开发,鉴于短时间开发独立的CAD模块的难度很大,本系统采用基于AutoCAD的开发思想在AutoCAD下对零件外形信息进行表述,并以图形交互文件(DXF)的格式进行保存软件通过对DXF文件的读取从而获得图形加工信息,并对这些图形信息进行还原,以此形成一个CAD模块而对于CAM模块,开发工具选择微软的Visual C++6.0,应用Visual C++6.0可以方便的调用MFC(微软基础类库)进行开发编程语言则采用面向对象的C++语言系统的开发过程,发挥C++语言的面向对象编程的特点进行设计开发在代码输出模块上,本次设计采用G代码格式进行输出2.2 系统的基本功能模块作为一个基于AutoCAD的文件交互型线切割自动编程系统,应对DXF文件中的各图元信息进行准确的还原在CAM模块中,准确的刀具半径补偿轨迹的生成是最根本图2-1典型系统的功能模块的构成的,输出代码管理和加工轨迹链的仿真也是基本的功能组成在本系统中,由DXF文件读取保存、原始轨迹绘制、加工链编辑、刀具轨迹生成与编辑、代码生成与管理、铣削轨迹仿真等功能模块组成为了准确调用了DXF文件中的图形数据信息从而实现该程序的预定功能,首先要将数据从DXF格式文件中读出来并以数组的形式保存下来,以供后面的程序应用,这就需要一个从DXF文件中读取数据并保存的模块。
其次,根据从文件中获取的数据,用VC++中相关的函数或者自定义的函数将原始图形显示出来,即原始轨迹的显示模块然后,考虑上刀具半径、加工余量等刀补参数和刀补方式,并通过对整个加工链调整,调用相应C功能刀补计算函数,求出刀具中心轨迹并显示出来,这部分为刀具轨迹生成和显示模块其中包含如第一加工图元指定模块,加工链调整模块等子模块,他们嵌于主模块中而行使自身的功能最后自然是代码生成模块,在从刀补轨迹链中提取数组元素所需的图元参数后,把数组中的图元逐行输出到文本文件中保存,这就是代码生成模块通过以上这就完成了自动编程系统各的主要功能见图2-2DXF文件读取保存模块原始轨迹显示模块刀补轨迹计算和显示模块包含次级模块代码生成模块图 2-2 程序主要模块流程简图三、用户界面设计3.1 用户界面设计对于一个软件来说,用户界面首先要具有良好的人机交互功能用户界面是用户了解软件系统的接口,系统的功能完全是通过用户界面表现出来本系统采用了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环境下主要的应用开发系统之一,Visual C++不仅是C++语言的集成开发环境,而且与Win32紧密相连,所以,利用Visual C++开发系统可以完成各种各样的应用程序的开发,从底层软件直到上层直接面向用户的软件而且,Visual C++ 强大的调试功能也为大型复杂软件的开发提供了有效的排错手段进入20世纪90年代以来,随着多媒体技术和图形图像技术的不断发展,可视化(Visual)技术得到广泛的重视,越来越多的计算机专业人员和非专业人员都开始研究并应用可视化技术所谓可视化技术,一般是指软件开发阶段的可视化和对计算机图形技术和方法的应用Visual C++是一种很好的可视化编程工具,使用Visual C++ 环境来开发基于Windows的应用程序大大缩短了开发时间,而且它的界面更友好,便于程序员操作在没有可视化开发工具之前,程序员要花几个月时间来完成Windows程序的界面开发,而现在只需较少的时间就可完成。
3.2.2Visual C++6.0 MFC(Microsoft Foundation Classes)编程特点MFC 的英文全称是Microsoft Foundation Clas。
