GSK928数控车削仿真系统的研究与开发NC代码插补功能的设计带CAD图
收藏
资源目录
压缩包内文档预览:
编号:22018918
类型:共享资源
大小:597.54KB
格式:ZIP
上传时间:2019-09-16
上传人:QQ24****1780
认证信息
个人认证
王**(实名认证)
浙江
IP属地:浙江
50
积分
- 关 键 词:
-
gsk928
数控
车削
仿真
系统
研究
钻研
开发
nc
代码
功能
设计
cad
- 资源描述:
-
GSK928数控车削仿真系统的研究与开发NC代码插补功能的设计带CAD图,gsk928,数控,车削,仿真,系统,研究,钻研,开发,nc,代码,功能,设计,cad
- 内容简介:
-
摘要数控机床是当今机械制造业的工作母机,在我国的应用越来越广泛。对数控操作人员的培训已经成为一个非常重要的问题。该文详细阐述了数控车床的功能、特点和广州数控车床操作过程。利用VB6. 0作为开发工具,设计出基于网络的数控车床操作仿真软件。该仿真软件具有基于Windows全中文的操作环境,良好的人机交互界面,便于学生学习。同时该软件能实现数控车床的基本操作过程。包括各级子界面操作,同时能完成程序的打开输入、保存、选择,图形界面显示区的范围设定,刀具偏置参数输入等功能,并在仿真过程中实现数据的动态显示和轨迹的动态显示。同时本文还对下一步的工作做出展望,为以后的工作指出方向。关键词 计算机数控;模拟仿真;图形界面;VB6.0AbstractNumerical control machine tool is working master in machine-made industry in the current time, which is used more and more in China. It became a very important that train themanipulatorof CNCmachinetool. This paper amply discusses the CNC lathes fuNction, characteristics and the operating process of CNC lathe of guangzhou after the LANs composing technologies and basic ideas.It schemes out operating simulation of CNC lathe basing on network using the tool of VB6.0.Thesimulation software has Chinese operating condition based on windows and well man-machine interface convenient for students to study.Alsothe simulation can actualize all process about CJK6032 CNC lathe operating,including the operating of primary interface and every sub interface, and it can achieve such function as programopen -ing,input,save,choice, design of size range,of graphical interfaces, eNtering parameter of tool wrap ,also it can dynamic show the data and track in the process of simulation. Finally this paper makes way and expectation to point out next work.Keywords Computer Numerical Control Operating Simulation GUI VB6.0II目录1绪论11.1数控仿真技术的概述11.1.1数控加工仿真的发展现状11.1.2数控加工仿真存在的问题11.2选题背景与意义21.3数控仿真系统的研究现状及其发展趋势32系统开发工具及运行环境52.1面向对象技术52.1.1面向对象程序中的基本概念52.1.2面向对象的三大特征52.2面向对象的Visual Basic6.062.2.1VB语言概述62.2.2可视化设计基本控件72.2.3可视化设计高级控件72.2.4常见的用户触发事件82.2.5窗体的设计82.2.6控件设计82.2.7交互界面设计92.2.8系统界面的整体布局102.3本章小结113数控车削加工及NC代码的处理123.1数控车床加工工件的成形原理123.2程序设计的任务123.3车削仿真系统的设计123.3.1车削加工仿真的任务123.3.2工件毛坯的模型设计133.3.3刀库的建立143.4NC代码的处理153.4.1仿真接口的设计和实现153.4.2NC代码编译器的设计原理163.4.3NC代码的翻译流程163.4.4NC代码的修改与确认173.4.5NC代码翻译与仿真系统的集成193.5本章小结194数控插补原理和模拟仿真加工204.1插补仿真系统的设计204.2插补仿真系统的实现224.3仿真数据的记录224.4零件加工过程干涉碰撞检查224.4.1干涉检查算法234.4.3产生干涉报告254.5数控仿真系统的模拟车削实例254.6综合加工零件314.7 本章小结325结论与展望335.1结论335.2展望33致谢35参考文献36附录37附录137附录247附录348附录453II1绪论1.1数控仿真技术的概述1.1.1数控加工仿真的发展现状 数控加工仿真一般包括以下几个过程;(1)对图样进行分析,确定需要数控加工的部位;(2)利用图形软件对需要数控加工的部分进行几何造型;(3)根据加工条件,选择合适的加工参数,生成刀具轨迹;(4)仿真检验;(5)生成NC代码并传给机床。 由此可见,上述工作需要人与计算机相互配合、共同完成。其中,需要大量的计算和重复性的工作,而人只需指定加工部位与工艺条件。优秀的计算机仿真数控加工软件可以让用户方便地建立其工件的几何模型(曲面与实体模型),同时只要用户在系统的引导下输入少量数据(工艺参数等),就可以迅速地完成相关的加工编程工作,而且系统具有相当的柔性,可以适应不同类型的情况,对切削加工过程进行仿真,快速检验NC程序,避免发生碰撞和干涉。 目前,流行的计算机数控加工仿真系统主要有以下几种:UNiGraphics是高档CAM软件的代表,其加工方式完备,计算准确,实用性强,是航空、汽车、造船行业的首选CAM软件。CIMATRON90SHI中档CAM软件的代表,该软件产自以色列,其实用性强,也是航空、汽车、电子、模具行业广泛应用的CAM软件。MasterCAM是低档CAM软件的代表,主要应用在中小企业的模具行业。CAXA-ME是国内CAM软件的代表,主要面向中小企业。由于市场的国际化,全球竞争要求产品的制造过程具有高速度和低成本。产品更新的速度越来越快,市场需求朝着小批量、个性化方向发展。传统的小而全的企业模式已越来越丧失竞争力,各种形式的合作开发、生产和销售方式应运而生。因此,异地设计、异地编程、异地加工越来越被众多企业采用,虚拟制造技术也应运而生。虚拟制造是应用计算机技术,对产品的设计、加工、装配等工序统一建模,形成虚拟的生产过程,从而产生了虚拟产品、虚拟企业。虚拟制造技术使厂家可以在不同的城市甚至不同可国家通过Internet/Intranet进行设计、加工,共享同一产品模型,从而大大提高效率,降低成本。虚拟制造技术实际上使一种软技术,其中,产品建模、数据共享和加工过程仿真是虚拟制造技术的基础。 数控加工仿真软件的主要特点是具有CAD/CAM的系统集成性,比较成熟的CAM系统主要以两种形式实现CAM/CAM系统集成:一体化的CAD/CAM系统(如:UGII,Euclid,Pro/ENGINEER等)和相对独立的CAM系统(如:Mastercam, Surfcam等)。前者以内部统一的数据格式直接从CAD系统获取产品几何模型,而后者主要通过中性文件从其它CAD系统获取产品几何模型。1.1.2数控加工仿真存在的问题 进行机械加工过程仿真,主要存在以下两种情况。一种是从研究金属切削的角度出发,仿真某具体切削过程内部各因素的变化过程,即研究其切削机理,供生产设计与研究应用。另一种是将加工过程仿真作为系统的一部分,重点在于构造完整的虚拟制造系统。但这两种方式的仿真方法是相同的,即对机械加工工艺系统建立连续变化的模型,然后用数学离散方法将连续模型离散为断续点,通过分析这些离散点的物理因素变化情况来仿真加工过程。由于机械加工过程仿真还处于起步阶段,目前存在以下几方面的问题: 仿真的加工形式少,研究范围窄。在切削加工众多的种类与形式中,目前的仿真加工主要集中于车削、铣削和磨削等。同时这些加工方法的仿真也局限在很窄的范围内。如铣削仿真多是仿真立铣刀与端铣刀,而这种仿真系统对其他种类的铣刀(如加工成形表面用的成形铣刀)就无能为力.一方面是因为铣削加工种类繁多,存在着铣平面、铣外圆、铣外形、铣型腔。铣螺旋槽、铣齿轮等多种铣削形式;另一方面是因为铣削加工理论复杂,不同的加工方法、刀具形状的加工模型有较大的差别。目前的仿真系统大多数只能进行几何仿真,即到位轨迹仿真、工件与刀具的干涉校验等,有人称之为NC校验。但在机械加工过程中,几何校验只是前提条件,更为重要的是切削力、刀具振动及刀具磨损等在切削过程中其决定因素的各物理量。 物理仿真考虑理想状态,与实际有较大差距。在目前的仿真系统中预先设定了大量的假设因素,如设定工艺系统刚性满足要求、无振动,加工材料结构统一、无硬点等缺陷,刀具无磨损,切削要素不发生变化等。这种假定的理想状态不能将切削过程中的随即干扰如工件硬点造成的材质变化、振动造成的切深变化等因素考虑进去,是仿真系统不能真实地反映实际切削过程。仿真手段限制仿真系统的发展。仿真技术的发展与计算机技术紧密相连。过去由于计算机软、硬件的限制,造成仿真时间长,编码工作量大,程序可读性、维护性差等,这些都为仿真工作带来许多困难。目前应用C+语言及面向对象的方法(00P)开发仿真系统己成为发展潮流。以上问题己引起研究人员的重视,今后的仿真制造系统将朝着快速运行、面向多种加工方式,更加符合实际状况的方向发展。1.2选题背景与意义 选题背景:随着数控技术的发展与广泛应用,各行各业在设备方面普遍采用数字控制己成为当前工业生产领域的一大主流。对于学校和技能培训部门来说,使自己培养的技术人员具有一定的数控知识和操作经验,是其人才顺利走向市场、具有更强的竞争力和适应现代制造业发展的当务之急4。在目前如何培养适应社会需求的数控操作技工人才主要存在两方面的问题:一方面培养的对象多,另一方面资金设备受到严格的限制且安全系数低。所以说学生多设备少危险性大始终是困扰着数控培训的一个严重问题。虽然目前市场上有不少先进的仿真软件,但它们所能解决的大都是些共性的问题,并且价格昂贵。在大量采用半手工数控编程的我国制造业,研究开发基于NC代码的仿真加工软件具有十分重要的意义。 鉴于上述原因,再加上数控教学本身的特点:编程难,操作容易。因此,开发合适的数控教学仿真软件,将手工编写的数控程序在计算机上屏幕上较真实地显示出每一个程序段执行时所留下的轨迹、执行过程和执行结果成为了一种需要,将这样的教学手段用在数控编程和操作的教学及培训中,可以很好地解决上述问题,达到良好的教学效果与生产需要。意义:本课题主要研究基于网络的数控车床实训操作仿真系统,实现系统的意义如下:(1)可以减少实际使用的数控设备。学生在学完理论课之后就要进行生产实践,这就需要大量的数控设备。然而数控设备价格昂贵,学校的条件非常有限,不可能购买大量的数控设备供学生进行生产实习。而通过网络进行数控实训操作练习,学生可以熟练掌握数控车床的大量操作界面,而且还能进行NC程序的语法校验及刀具轨迹校验,避免在试切过程中既浪费材料,损耗机床,又可避免由于NC程序的语法错误而造成的机床或刀具的损伤。 (2)利用网络传输NC程序,避免人为输入误操作,缩短程序输入时间。 随着课题研究的进一步深入,为后续软件仿真的其它功能实现打好基础。(3)本研究为我们提供一次设计仿真软件的机会,可以提高教师的科研水平。本文介绍基于Windows界面的VB6.0软件设计包开发出的人机界面友好,操作简便的数控教学仿真系统软件的情况。1.3数控仿真系统的研究现状及其发展趋势国外在数控加工过程仿真方面做了许多工作。美国Maryland大学开发了用于培训数控操作人员的虚拟数控机床仿真器。日本东京大学开发了KOSMO柔性制造系统仿真器。美国CGTech公司开发VERICUT软件,可仿真数控车床、铣床、加工中心、线切割机床和多轴机床等多种加工设备的数控加工过程,既能仿真刀位文件,又能仿真CAD/CAM后置处理的NC程序。韩国Turbo-TEK公司开发出面向培训的虚拟数控车削及铣削加工环境,能够实现数控的几何仿真并配有声音信息。日本SONY公司研制的FREDAM系统可对球头铣刀加工自由曲面进行三维仿真,并进行干涉检查。意大利Bologna大学用B样条曲面建立端铣刀与工作台模型,采用真实感图形显示铣床精加工过程。国内在这方面也开展了诸多研究工作,并取得了重要成果。比如由北京市斐克科技有限责任公司研制开发的VNUC仿真软件、由南京宇航自动化技术研究所研制开发的宇航仿真软件、由上海宇龙软件工程有限公司研制开发的宇龙仿真软件等都是近年来比较知名的国内数控仿真软件,被用于全国数控技能大赛和数控人才的培训中。这些软件都能实现对数控铣和数控车加工全过程的仿真,其中包括毛坯定义与夹具,刀具定义与选用,零件基准测量和设置,数控程序输入、编辑和调试,加工仿真以及各种错误加检测功能。又如清华大学、华中理工大学CAD中心联合开发的“通用加工过程仿真器GMPS”,在SGI工作站及高档微机上能实现三种典型的加工中心(立式、卧式、车削)加工过程的仿真;仿真过程由NC代码驱动,可进行刀具与成品零件、夹具、机床工作台的碰撞、干涉检验:仿真过程具有三维动画,画面可放大缩小,视角可360任意改变:用户可利用该软件提供的交互式建模环境,定义刀具、工件、夹具及其装夹、甚至加工中心的模型。华中理工大学开发的NCPVS系统,具有数控铣削加工过程仿真功能,即通过生成刀具轨迹,由三维动画显示数控加工过程,以此发现数控程序错误。同济大学研制的数控程序微机动画仿真系统,以二维图形方式动态模拟加工过程,能满足生产现场实时性要求。西北工业大学和德国柏林工业大学联合研制的五坐标数控加工仿真系统,采用压缩形式的体素模型构造各种刀具扫描体和工件模型,在三维空间进行动态数控加工仿真,计算材料切削量,进行切削过程动态分析及加工程序优化,并可以进行虚拟五坐标数控加工。国内对于数控机床加工仿真的研究主要在具体应用对象方面,在具体的技术实现上也主要是应用OpeNGL显示动画技术,也有少量是应用部分CAD/CAM系统的仿真模块实现的。按需开发切削加工仿真技术软件是数控仿真技术的发展趋势。目前,许多科技人员正在进行生产工程中最基础的切削加工技术的研究,其中多数研究的目的是在弄清楚加工现象的同时,对加工过程进行预测。如果这些研究内容实现了系统的计算机软件化,就意味着能形成一个切削仿真技术软件。如东京农工大学机械学院的实验室就正在进行几种预测性的有关切削加工仿真技术软件的研究。目前仿真系统在试切环境的模型化、仿真计算和图形显示等方面取得了重要的进展,正向提高模型的精确度、仿真计算实时化和改善图形显示的真实感等方向发展。2系统开发工具及运行环境2.1面向对象技术所谓面向对象就是基于对象概念,以对象为中心,以类和继承为构造机制,来认识、理解、刻画客观世界和设计、构建相应的软件系统。面向对象设计首先强调来自域的对象,然后围绕对象设置属性和操作,具有很高的软件生产率,可靠性,易重用性、易维护性等特点。2.1.1面向对象程序中的基本概念(1)对象对象是由数据和容许的操作组成的封装体,与客观实体有直接对应关系,它不仅能表示具体的事物,还能表示抽象的规则、计划或事件。(2)类具有相同或相似性质的对象的抽象就是类。因此,对象的抽象是类,类的具体化就是对象,也可以说类的实例是对象。类具有属性,它是对象的状态的抽象,用数据结构来描述类的属性。类具有操作,它是对象的行为的抽象,用操作名和实现该操作的方法来描述。(3)消息和方法对象之间进行通信的结构叫做消息。在对象的操作中,当一个消息发送给某个对象时,消息包含接收对象去执行某种操作的信息。发送一条消息至少要包括说明接受消息的对象名、发送给该对象的消息名(即对象名、方法名)。一般还要对参数加以说明,参数可以是认识该消息的对象所知道的变量名,或者是所有对象都知道的全局变量名。类中操作的实现过程叫做方法,一个方法有方法名、参数、方法体。2.1.2面向对象的三大特征(1)封装性封装机制将数据和代码捆绑到一起,避免了外界的干扰和不确定性。它允许创建对象,简单的说,一个对象就是一个封装了数据和操作这些数据的代码的逻辑实体。在一个对象内部,某些代码和或某些数据可以是私有的,不能被外界访问。通过这种方式,对象对内部数据提供了不同级别的保护,以防止程序中无关的部分意外的改变或错误的使用了对象的私有部分。(2)继承性继承性是子类自动共享父类数据结构和方法的机制,这是类之间的一种关系。在定义和实现一个类的时候,可以在一个己经存在的类的基础之上来进行,把这个己经存在的类所定义的内容作为自己的内容,并加入若干新的内容。(3)多态性多态性使指相同的操作或函数、过程可作用于多种类型的对象上并获得不同的结果。不同的对象,收到同一消息可以产生不同的结果,这种现象称为多态性。2.2面向对象的Visual Basic6.02.2.1VB语言概述VB是基于对象的可视化程序开发工具,它的优点在于能够快捷、简易地建立Windows应用程序。所谓“可视化”就是支持该语言的IDE ( IntegratedDevelopment Environment,即集成开发环境,通俗点说就是编程工具)所提供的功能,无须编程,仅通过直观的操作方式即可完成界面的设计工作。可视化编程语言的特点主要表现在两个方面:一是基于面向对象的思想,引入了控件的概念和事件驱动;二是程序开发过程一般遵循以下步骤,即先进行界面的绘制工作,再基于事件编写程序代码,以响应鼠标、键盘的各种动作12。虽然IDE为我们提供了便捷的开发环境,但VB是一个基于对象的开发工具,而不同于传统的基于过程的编程工具,所以我们必须明确以下几个概念。(1)对象:是指可以被当作一个单元的代码和数据的组合,它可以是程序中的窗体或控件,也可以是整个程序。(2)属性:就是对象具有的性质,以表明对象的状态。(3)事件:是指发生在对象上的事情。Windows应用程序属于“事件驱动”模式,即只有当事件发生时,程序才会运行。(4)方法:对象本身包含的函数和过程。(5)过程:指事件发生时要执行的代码。(6)面向对象编程(OOP ):以对象为核心,支持对象的封装机制、多态机制和继承机制。(7)事件驱动模式:通过事件的发生来触发不同过程中的代码,以推动程序的进程。基于事件编程是通过VB创建软件系统时的最主要手段之一。2.2.2可视化设计基本控件(1)命令按钮控件(Command)命令按钮控件可以开始、中断或者结束一个进程。本文系统利用命令按钮控件设计了主轴修调、快速修调、进给修调、循环启动和进给保持等功能键的命令控制。(2)标签控件(Label)标签控件是VB中最简单的控件,用于显示文本说明信息。本文系统中多处采用标签控件显示系统信息,如“加工方式”、“机床实际坐标”、“辅助机能”等文字的显示。(3)文本框控件(TextBox)文本框控件用于显示设计时输入的或运行时在代码中赋予的控件信息。本文系统中坐标值、主轴转速、进给速度、辅助机能、运行程序段、报警信息等内容的显示都是用该控件完成的,毛坯尺寸、MDI方式下运行的程序段也是利用该控件输入的。(4)图片框控件(PictureBox)图片框控件是用来显示图形的,但同时它又可以作为其它控件的容器。可以在图片框中显示的图片文件有:位图、图标、图元文件、增强型图元文件、JPEG或GIF文件。本文系统利用图片框控件可以容纳其它控件的特点,设计了仿真图形显示区、刀具类型展示区、MDI运行界面、坐标系G54的参数设置界面、刀偏表界面和刀补表界面。(5)图像控件(Image )图像控件是用来显示图形的,在使用上和图片框类似,但是使用的系统资源要比图片框控件少,而且重新绘图的速度快。图像控件不能用做容器。本文系统利用图像控件在仿真图形显示区中载入了四个工位的刀架图片。(6)定时器控件(Timer)定时器是一个响应时间的控件。它们独立于用户,编程后可用来在一定的时间间隔中周期性地执行某项操作。在本文系统中,比如显示系统时间、刀具沿各坐标轴移动、卡盘转动、自动加工数控程序等各项操作都是命令给定后,独立于用户周期性地执行的操作,都是由定时器控件完成的。2.2.3可视化设计高级控件(1)公共对话框控件(CommonDialog)公共对话框控件是一种ActiveX控件(VB内部控件集合的扩充),是外部控件,能够提供一组标准的Windows常规操作对话框,例如打开文件对话框、保存文件对话框等。在本文系统中,自动加工时选择的“磁盘程序”及程序编辑中选择的“磁盘程序”、文件管理中的“新建文件”子菜单就使用了公共对话框控件。(2)RichTextBox控件RichTextBox控件也是外部控件,和标准文本框相似,但具有更广泛的用途。它没有64K字符容量的限制,并具有对文本指定格式的功能。本文系统利用RichTextBox控件实现了显示加工程序、编辑加工程序和显示帮助文件的功能。2.2.4常见的用户触发事件当用户和系统进行直接交流的时候,鼠标、键盘是最可能使用的交互工具。本文系统使用的用户触发事件有:Click, DbClick, MouseDown, MouseUp,KeyPress, GotFocus等13。2.2.5窗体的设计整个交互界面由一个个窗体按一定的位置,以一定形状组成。窗体本身是一个容器,主要作用是为各种控件提供框架载体,窗体一般只响应系统事件而不直接处理用户的仿真操作所激发的事件。幻加载和卸载是窗体所响应的两种最主要的系统事件。窗体在加载时不仅设置自身的大小位置,同时也初始化与其上控件相关的变量;卸载时,将其上一些控件所获取的用户输入及其它一些参数值记忆下来,一部分传入相应的系统初始化文件中保存,以备下次加载时调入,一部分传入到全局变量或模块变量中,以使其他加载窗体上的控件可以获取这些信息。如前所述,操作面板上的窗体可分为固定的和变换的两种,如操作键区窗体和功能键区窗体,它们在整个交互过程中始终可见且位置固定,在设计时必须保证其大小位置始终不会随用户的操作或系统的响应而发生变化,并且要始终处于操作面板的最前面。而对于一些变化型窗体,如轨迹显示窗体,一方面要随用户的操作而加载、卸载或变为不可见,另一方面还要完成相关参数信息的接收和传递,在设计时应保证这些窗体的位置始终处于模拟显示屏内,并协调好窗体的前后位置关系。还有一类窗体是在程序运行时由于用户的某种特殊功能操作而加载的,如程序检错过程中提示用户错误信息的窗体等,这些窗体的加载与卸载有其特定的条件,并且主要是提供某种信息供用户参考,因此将它们设计成活动的,让用户可根据需要随意拖放关闭。2.2.6控件设计控件是窗体上用于接收和反馈信息的直接交互窗口,控件接收的信息一部分来自于用户的键盘输入或鼠标点击,如文本框接收用户键入的符合或数字,按钮响应用户的鼠标点击事件;另一部分则来自于其他控件传来的信息,如在程序列表窗体的程序名文本框中输入程序名后进入程序编辑窗体,该窗体上部的程序名标签框就接收了这一程序名信息并显示出来,以提示用户正在对哪一个程序进行编辑。控件反馈的信息也相应分为向用户反馈的和系统反馈的两种。向系统反馈的主要是其它一些控件所需的参数或标志信息,向用户反馈的主要是仿真操作中的加工参数信息或图形信息,如轨迹仿真进行过程中,标签控件实时显示刀具中心坐标点的变化及正在加工的程序代码,而图片框则动态显示走刀轨迹。对于一些在外形和功能上相同或相似的控件,采用控件数组的方式统一设计事件相应过程,不仅结构清晰而且极大地提高了设计效率。2.2.7交互界面设计交互界面(如图2-1)是用户与应用程序进行交互时的可视部分,在VB程序设计中,利用窗体设计器进行窗体设计可以得到很好的界面。NC图形仿真系统的界面主要包括:标题栏、菜单栏、工具栏、NC程序编辑区和绘图区,可分别通过VB程序中的菜单编辑器,ToolBar与ImageList控件、RichTextbox等控件进行创建,绘图区用Picture-scale()函数建立。(1)菜单介绍菜单项“文件”主要包括打开、创建、保存、另存、打印子菜单,完成对NC加工程序的输入及输出。“编辑”主要包括修改、删除、插入、列表等,可对NC加工程序进行编辑。点击“运行”菜单,出现对话框,询问控制机型及图形输出是工件轮廓还是刀心轨迹(同时输入刀具半径),点击确定后便在绘图区绘图。菜单项“设置”主要包括字体、颜色设置,用于NC程序字体选择及轮廓图形、刀心轨迹的区分。菜单项“查看”则主要包括放大、缩小,可对图形中的细节进行查看。(2)工具栏给用户提供了一个直观的图形界面,用户可通过它直接使用应用程序中,最常见的功能和命令。图2-1 交互界面设计2.2.8系统界面的整体布局数控车床加工环境由四个部件库构成,它们分别是夹具库、刀架库、刀具库和工件库。在VB系统中形成车削加工环境,就是要在模拟动态加工前先将上述各部件库中的部件用VB语言进行描述,使得各部件能够以其二维图形的概貌(车削主视图)显现在屏幕上。由于加工环境是多变的,所以各部件库中的部件理论上都是可以无限扩充的,但为了界面的简洁并考虑能够说明问题,本系统对于不同的部件库仅以2至4个不同数目的部件作为实例进行描述。如图2-2是用VB语言编写的界面和在其环境下调用部件库中的部件后形成的加工环境实例。图2-2 系统界面及加工环境描述 如图所示,菜单由文件、编辑、视图、帮助和数控加工仿真5个子菜单构成。其中,数控加工仿真子菜单由部件库、加工程序选择、加工过程选择3个菜单项组成。部件库就是用来生成加工环境的,其结构层次也是根据加工环境的构成设置的。2.3本章小结本章介绍了面向对象技术及其三大特点,结合本文系统枚举了几种VisualBasic 6.0的常用内部控件、外部控件以及用户触发事件及其系统界面的整体布局和窗体控件的相关设计等。3数控车削加工及NC代码的处理3.1数控车床加工工件的成形原理数控车床加工过程是典型的回转体成形过程。工件绕主轴作旋转运动,刀架沿车床纵向导轨和横向导轨作直线运动,形成刀具的运动轨迹,从而在工件上加工出要求的回转面。数控程序控制刀架的运动轨迹,实现零件的各种表面加工。在仿真加工过程中,车刀刀尖的Z坐标同工件被加工回转表面所处Z坐标(回转体轴线)相对应,刀尖所处的X坐标取绝对值就是被加工工件在该处的半径值。仿真程序通过将数控程序中的加工信息翻译并进行插补运算,得到加工过程任意时刻的X, Z坐标信息,利用它们改变工件上对应点的显示坐标位置,就可实现动态变化的加工过程,即实现了动态加工过程的仿真。3.2程序设计的任务由于本课题是对数控加工教学仿真系统进行研究,在此基础上提出了基于Visual Basic语言环境的总体设计思路一一“界面总体设计,功能单独实现”的模块化设计方案,分析了设计步骤,给出了功能的扩充方法。数控加工教学仿真系统的设计目标,是要设计出与机床数控系统操作面板完全相同的交互界面,并实现界面上所有按钮的功能以及由此引起的显示状态画面的变化及切换。整个设计过程涉及多达几十个窗口的切换及其上各种控件的状态变化,还有面板上数十个按钮功能代码的编写。为了使设计能有条不紊地进行,采用“界面总体设计,功能单独实现”的模块化设计方案。先按照操作面板上所有按键及显示屏显示的所有状态以及每个显示状态下控件的变化或变化规律设计出交互界面,并同时完成实现不同窗体间转换这部分基本代码的编写,从而构造出教学仿真系统的基本框架。然后针对不同类型功能按钮,分别编写代码。代码完成后以独立模块的形式依次添加进教学仿真系统框架中对应功能按钮的位置,同时进行协调性的测试和调试,直至这部分功能稳定运行。随着功能代码的不断加入,教学仿真系统功能不断扩充直到全部功能得以实现。3.3车削仿真系统的设计3.3.1车削加工仿真的任务车削加工仿真要完成以下几项任务:毛坯数据模型的建立、刀具库的建立、刀尖轨迹数据结构的建立、工件截面数据结构的建立、仿真数据的记录、切削加工仿真和仿真结果检查。刀具是系统的另一个重要组成部分,它是仿真系统的后勤保障。刀具容纳大量的刀具数据并且做到有效的管理。车刀对零件的加工主要设计到圆柱面、圆锥面、球面、螺纹、端面、切槽、切断等表面的加工。无论加工什么样的零件一律是工件做回转运动;而刀具做直线、圆弧或其它轨迹的运动(即进给运动)。在数控加工程序中这些运动可以通过GO1, G02, G03等指令完成。由于该仿真系统是对NC程序在PC机中的模拟,在仿真中为了能够在PC机屏幕上动态显示刀具的运动轨迹或切削过程,就必须将数控程序指令翻译过来。完成对NC程序进行语法分析,坐标转换等工作,其过程如下:(1)对数控程序进行处理使之成为一个NC坐标信息文件。该文件是对NC程序进行语法分析与坐标变换的结果。数控程序由GAPT自动编程系统自动产生或手工编程由人工键盘输入。(2)首先,从NC代码文件中读取刀具信息并从刀库文件中读取相应的刀具信息。然后,从NC代码文件中读取刀具运动指令及坐标信息,并调用相应的加工仿真算法使之可以完成对刀具的运动轨迹仿真、切削加工仿真。(3)对仿真进行干涉检验,生成检验报告,供分析。(4)将仿真结果与轨迹实际进行比较。如果不正确,修改NC代码,重新进行仿真。3.3.2工件毛坯的模型设计车削仿真系统所建立的回转体类工件模型具有以下特点:工件模型间断,容易实现加工过程仿真,计算效率高;工件模型的拓扑关系容易保持和修改;数据充分,能满足工件加工精度预测的需要:显示效率高,能以圆柱面、圆锥面、圆环面等组合来显示整个工件。 尽管零件种类繁多,但是在实际加工过程中,大多数车削零件是由棒料加工而成的。因此,根据上述分析,用直径和长度尺寸来建立棒料毛坯的几何模型。建立毛坯模型的数据结构如下:struct TurnBoard / 棒料或盘套类double m_fStickDimension: / 毛坯直径double m_fStickLength: / 毛坯长度 ; TurnBoard stick;这个数据结构用来保存毛坯尺寸的重要参数。根据上面的数据结构,就可以建立回转体类零件毛坯模型。3.3.3刀库的建立刀具数据库是系统的一个重要组成部分,是仿真系统的后勤保障,能容纳大量的刀具数据并且做到有效的管理。刀具数据管理包括数据的输入、删除、浏览、查找等。刀具数据库仅仅完成刀具数据管理,在仿真中还要完成刀具库配置,为此建立一个刀具文件,刀具文件是对数控车床刀架(或称刀具库)的模范,仿真系统从刀具数据库中选择刀具组并转化为文件的形式完成刀具库配置,再从刀具文件中选择刀具作仿真切削加工。刀具模型主要包括三项数据信息:(1)刀号,同刀库中的刀号一致。(2)刀具类型,描述该刀具所加工的表面类型,如外圆左端面、右端面、内孔等。(3)在加工仿真中显示的刀具儿何模型所有的刀具均放入刀库中以备调用,刀库由刀具文件支持。刀库中,描述刀具模型的数据结构如下: int m_iCutterNumber; / 车刀组合框中的刀号 struct TurnCutter double dMainangle;/车刀的主偏角double dMainCutEdge;/车刀的主切削刃double dDeputyAngle;/车刀的副偏角double dDeputyEdge;/车刀的副切削刃int CutterNumber;/记录车刀在“可选用刀具”框中的位置TurnCutter cutterl;TurnCutter cutter2;为了保存刀库内的所有刀具,定义了两个模板集合类的数组对象:Carraym_TurnCutterList;Carraym_UsableTurnCutterList;m TurnCutterList保存被选用的刀具数据,NC程序执行时按此数组中保存的刀具顺序依次选用。m UsableTurnCutterList保存所有可选的刀具数据,改变刀具参数时,此数组中的参数发生相应的变化。当鼠标单击“选入刀库”按钮时,在相应的消息处理函数中首先建立一个TurnCutter cutte:结构变量并将“刀具主要参数”分组框内的参数值赋给结构变量的相应成员,然后将该结构变量放入m_TurnCutterList中保存起来。在程序对“删除指定刀具”按钮或“删除所有刀具”按钮的消息作出响应时,从m_ TurnCutterList中删除指定元素或所有元素,从而将元素代表的刀具从刀库中删除。在NC代码执行时也是从m TurnCutterList中提取刀具信息,根据NC程序中的刀号数决定画什么刀具。3.4NC代码的处理3.4.1仿真接口的设计和实现通过对数控机床数控系统的分析可以发现,各种NC代码指令不同的原因,归根结底在于在现实加工环境中CNC控制器的设计和实现的不同。而对于数控机床来讲,CNC控制器的设计必然要根据机床的硬件功能。对于同类机床,比如车床、铣床等,它们的基本功能都大同小异。如无论哪个厂家生产的数控车床,其车床主体功能必然支持快速定位、直线插补、圆弧插补、螺纹加工及换刀等。同时,各种NC代码指令集的不同点主要体现在以下两方面:1.由于CNC生产厂家对其产品的改进,往往将几个基本功能指令集成在一个指令当中,从而提出新的指令。如FANUC-6T车床数控系统中的G92螺纹切削循环指令,就可以分解为三条有序的基本的机床指令:G00(快速定位)、G32(单行程螺纹切削)、G00(快速返回),这几个指令的循环使用就完成了G92指令的工作。2.为了在编程时可以缩短程序段的长度,减少程序所占的内存,数控系统指令集中又引进了一些精加工中使用的循环指令,而在世界解释和执行时则时多条简单的基本指令的重复执行,如FANUC-6T车床数控系统,为了实现精加工形状的信息,在粗加工中途可以自动改变刀具轨迹的功能,引进了复合型固定循环指令(G71-G76)。为实现仿真系统的通用性,首先要解决NC代码识别的通用性。通过以上的分析,需要设计一个基于基本功能的通用接口,即基于仿真的虚拟数控系统所支持的某种类型的CNC系统的指令有所更改(往往时由于相应的机床功能有所增强和改进)或要支持新的CNC系统,只需对指令集进行必要的扩充,不会对整个系统有根本性的改动。采取C语言的结构方式,指令集表示如下: typedef struct tagSYSFORMATint b; /当前NC代码行号的信息enum g;刀数控机床的基本加工功能Double x;Double z;Double i;Doubla k;int y;刀控制机床加工的几何信息int t;/机床的换刀功能int s;/机床的换刀功能int f;/机床的进给速度int s;/主轴转速enum m;刀主轴状态enum c;/冷却液的开和关SYSFORMAT;在系统具体实现时,除T代码外,F, S, M, G代码的作用只是在NC程序仿真状态栏中显示相关信息,但这些代码后面加上必要的数字信息才能真正体现NC程序在实际加工中对机床的控制。建立虚拟数控系统的接口指令集后,不同格式的NC程序就可以根据所表达的控制信息,与仿真系统的接口指令集一一对应起来。通过代码翻译模块,转化为虚拟数控系统所能识别的通用指令格式文件。由于仿真系统的接口指令集时最基本功能的集合,因此,翻译后的通用指令格式文件比原NC代码文件长。3.4.2NC代码编译器的设计原理NC代码编译是仿真系统的主程序。它的主要功能就是对读入的工SO标准NC代码进行识别,并按照ISO代码规定的用途产生动作信息。因为图形仿真主要解决的是刀尖轨迹的控制,所以,仿真主程序主要是进行插补运算、刀补运算以及数控车床特有的自动螺纹切削运算。本系统以逐点比较原理作为数学运算模型。设计思想是按照可以支持G00, G01, G02,G03, G04, G33, G40, G41, G42, G90, G91, G92等12种准备加工指令、所有需要两坐标联动的指令都能对四个象限自动识别、一个程序段中最多可以存在3条不同类别的G指令进行考虑的。3.4.3NC代码的翻译流程系统给出的通用仿真接口是基于数控机床的功能和状态的。因此,在代码翻译过程中,也存在着一个系统定义的“虚拟机床”,它和仿真系统中所要模拟的虚拟数控系统有很多的相似之处。根据NC代码,将虚拟机床运行一次,把基本功能的状态变化过程记录下来,存储在系统定义的通用格式文件中。经过转化而存储的虚拟机床状态信息,指导虚拟数控系统控制仿真系统模拟加工过程如图2.3所示,整个翻译过程通过预处理后有三遍扫描。采用类似的方法,可以将不同格式的NC代码文件(即不同型号的数控系统能够识别的NC代码)转化为以统一的仿真接口指令为标准的系统可识别的指令格式。3.4.4NC代码的修改与确认NC代码的解释分析是和检查同步进行的。本系统提出了“层叠法”来解释NC代码。首先在进行第一次处理代码时,主要进行词法、语法的错误检查及简单的词意解释,但一般不进行数据处理。当代码的词法和语法都已基本正确时,再进行第二次处理,即扫描代码整体进行译码和数据处理工作。这种方法节约系统资源,只需要一般配置即可,不需要额外开销,同时它适应于大程序的译码和复杂数据处理不会降低系统的数据处理性能。程序在解释代码同时检查代码的正确性并指出错误代码行,以及错误类型如:程序的格式是否符合现今广泛使用的地址可变程序段格式、未定义F指令和S指令,含有非法字符等,根据指出的错误对代码进行修改。然而这样只能检查出代码中的词法、语法等格式上的错误。对于程序中的加工形状、加工结果错误了只能利用刀位文件仿真实际的加工过程,检测仿真结果才能知道,然后再按情况对代码进行修改。数控代码的检查时一个反复的过程,不停的修改发现的错误直到代码正确为止,其处理流程如图3-1所示。图3-1 NC代码处理流程将仿真结构与工件的实际图形进行比较,如果结构与工件实际图形不合,则说明输入的NC程序不能实现零件的正确加工,需要对程序作出修改。将修改后的NC代码重新输入,进行解释、编译等,再次进行仿真加工。如此,循环往复,直到仿真结果与工件实际图形相符合为止。最后,根据比较结果将正确的NC代码存入系统的NC文件中。 图3-2 基本翻译流程图3.4.5NC代码翻译与仿真系统的集成为了使系统能适应SuperMan - 200L型多功能数控机床NC指令的翻译,需要针对该机床数控系统的指令格式开发出相应的翻译模块。仿真系统提供标准的接口,对该机床的CNC系统开发出翻译模块。为了使系统具有柔性,在翻译模块中,设计出一个通用NC指令翻译子模块,对通用的NC指令进行了翻译,如G01, G02, G03等;同时,针对SuperMan - 200L型多功能数控机床系统的具体情况,设计出一个专用翻译子模块,该模块用来翻译在SuperMan - 200L型多功能数控机床系统中出现,而在其他数控系统中不出现或作用不一样的NC指令,如G12(顺时针椭圆插补)、G13(逆时针椭圆插补)。3.5本章小结本章主要通过对数控车床加工工件的成形原理的研究和程序设计任务的描述来加深对NC代码的理解。4数控插补原理和模拟仿真加工4.1插补仿真系统的设计NC代码通过编译后,将编译成功的NC代码文件存储在数据库中。然后系统根据计算出刀具直线行走的起点及终点坐标、刀具圆弧行走的起点、终点及圆心坐标,并将机器坐标换算成屏幕坐标存为文件,这个文件就成为后面切削仿真的依据。插补一般是指己知曲线上的某些数据,按照某种算法计算已知点之间的中间点的方法,也称为“数据点的密化”。插补是数控技术的重要组成内容,在数控系统中,插补过程是根据曲线段已知的几何数据以及相应工艺数据中的速度信息,计算出曲线起、终点之间的一系列中间点,分别向各个坐标轴发出方向、大小和速度都确定的协调的运动序列命令,通过各个轴运动的合成,产生数控加工程序要求的工件轮廓的刀具运动轨迹。插补方法主要分为基准脉冲插补方法(或者脉冲增量插补方法)和数据采样插补方法两大类,逐点比较法和数字积分法均属于脉冲增量插补方法。脉冲增量插补方法的特点是每次插补结束,数控装置向每个运动坐标输出基准脉冲序列9。本系统主要是针对数控技术的教学进行设计,因此系统只对逐点比较法这种数控插补方法设计,插补对象以直线和圆弧为主;逐点比较法的基本思路是每走一步都要将加工点瞬间坐标与规定的图形轨迹相比较,判断其偏差,然决定下一步的走向。逐点比较法运算直观,插补误差大不超过一个脉冲当量,而且输出脉冲均匀,在两坐数控系统应用较为普遍。系统可以实现不同象限以及过象限情况下直线或者圆弧的逐点比较插补,给定直线的起点和圆弧的圆心可以是非坐标原点;系统可以实现不同插补方法和不同精度下的单步和连续插补仿真计算,还可以实现针对同一对象的同步插补计算和插补轨迹仿真。另外,在插补计算过程中还可以对坐标进行动态显示。系统以Visual Basic语言进行设计,系统主要包括参数输入、坐标平移、过象限判断、插补类型判断和插补计算及仿真等主要模块,如图4-1所示为系统流程图。(1)参数输入用于输入直线或者圆弧的有关参数,如直线的起点及终点坐标,圆弧的起点、终点、圆心或者半径等数据,另外还有插补方向(如逆圆或者顺圆插补)、插补方式(如手动插补或者连续插补)、插补方法(逐点比较法或者数字积分法)、插补精度、插补时间间隔(即对插补仿真的速度进行设置)等参数。由于本系统中圆弧的圆心不一定在坐标原点,因此,在给出圆弧的起点、终点、圆心或者半径等数据后,还需要给出圆弧为优弧或者劣弧的判断,从而唯一确定需要进行插补计算的圆弧对象。(2)坐标平移一般的数控插补计算中,直线的起点或者圆弧的圆心均在坐标原点,为了使所设计的系统具有一定的通用性,本系统中直线的起点和圆弧的圆心是任意给定的,并非一定与坐标原点重合,因此为了方便计算,本系统采用坐标平移的方法,即在判断直线起点和圆弧的圆心为非坐标原点后,在插补计算前将坐标原点移到需要进行插补计算的直线的起点或者圆弧的圆心处,这也为下一步的插补类型判断和圆弧的过象限判断提供了方便。(3)过象限判断当插补对象为圆弧时,存在过象限问题,而不同象限圆弧的插补计算方法也不同,因此需要对圆弧进行过象限判断。(4)插补类型判断无论插补对象是直线还是圆弧,不同象限的插补对象存在不同的插补计算方法,直线存在四个象限的不同插补情况,而圆弧存在四个象限A种不同插补情况。在系统中将直线或者圆弧的不同插补计算方法设置为不同的子模块,对插补类型进行判断后,直接调用相应的插辛卜子模块进行计算。(5)插补计算及仿真该模块除完成相应的插补计算外,还完成对插补轨迹的仿真显示。图4-1 直线和圆弧插补仿真流程图4.2插补仿真系统的实现数据程序对零件的描述所给出的是直线的起点和终点,圆弧的起点和终点,是逆圆还是顺圆,圆弧插补的圆弧半径,螺纹的起点和终点以及螺纹的螺距等信息。插补就是在轮廓起点和终点之间计算出若干个中间点的坐标值,将各个中间值保存下来。将插补所得到的所有坐标,按顺序显示出来,就得到刀尖的轨迹。设计车削部分时,将插补中间值保存在自己定义的结构体TurnPoint中。在车削加工中,一方面工件绕自身回转轴旋转,另一方面刀具沿X,Z轴方向移动,使其相对于工件处于预定的位置,两者共同合成切削运动,去除工件上多余的材料。在切削加工中,刀具相对于工件的运动轨迹时比较简单的空间螺旋线,可以很方便地表示出来。所以,开发软件时,采用了刀具轨迹表示法,来记录插补节点值。4.3仿真数据的记录仿真数据的记录就是刀具相对于工件的轨迹数据和工件各截面数据的记录。在记录刀具轨迹时,对刀具轨迹进行离散采样,即只记录在刀具轨迹上的一些离散点一一采样点。根据刀具轨迹的特点,为了数据处理的方便,应在圆周方向上选取采样点。记录的采样点数据应包括采样点理想位置坐标和位置角度、采样点的实际位置和刀具姿态角等,采样点的实际位置和刀具姿态角可通过建模来计算加工系统若干误差源,一然后把这些数据依刀具运动轨迹添加到m _Trajectory指定的文件中。这样,当前节点的m _Trajectory就存储了当前节点到下一个节点间已加工表面的刀具轨迹。在记录零件各截面的信息时,当每一个程序执行完后即把截面信息记录在Shape中,Shape称为工件形状链表。每执行一个程序段,工件形状链表就会发生变化,必须进行更新操作,删除重合的界面,增加新截面。4.4零件加工过程干涉碰撞检查对于数控车削而言,零件表面轮廓形状复杂,尤其在零件表面曲率变化较大,刀具在切削运动时,如果刀具参数选择不当,可能会产生刀具和己加工过的表面发生干涉和碰撞。在实际加工中,干涉段轮廓的计算和检测对于设计人员进行刀具轨迹调整具有重要的参考价值。同时具体加工环境的限制也是实际加工中进行数控代码有效性检验所要考虑的因素。4.4.1干涉检查算法干涉碰撞检查算法是,在任意加工时刻,将切削刀具包围轮廓和静止件(机床和夹具等)作布尔运算,如有相交情况,则说明该加工工步位置有碰撞情况发生,需修改加工指令。干涉与碰撞检查方法是,在插值点将刀具的主偏角和副偏角分别与纵向和横向的合成进给角进行比较。对于圆弧段轮廓,则与该插值点在圆弧轮廓的切线的倾角进行比较,并区分顺圆和逆圆两种情况。以右偏刀切外轮廓为例,其对于直线和圆弧的干涉检查如图4-2所示。图4-2加工过程刀具的干涉碰撞检查示意图4.4.2干涉检查流程零件加工过程干涉碰撞检查是刀具在切削加工过程中,刀具与已加工过的表面或待加工的表面间的干涉与碰撞检查,其具体检查算法流程如图4-3所示。解释程序从NC坐标信息文件中顺序读取加工指令,如为直线加工指令,则进行直线插补运算,如为圆弧加工指令,则进行圆弧插补运算,并在插补点求圆弧的切线,然后在各插补点进厅角度比较。 图4-3 干涉检查算法流程4.4.3产生干涉报告当发现干涉现象时,不仅可以从计算机显示器上直观地反映出来,而且还要生成干涉检查报告,以便精确地反映干涉情况。在这里,干涉报告是一个文件。每当产生干涉时,就将干涉点的坐标写入文件。零件加工过程干涉碰撞检查是对数控代码正确性俭测的一个重要环节,因为干涉碰撞检查不仅要检查加工刀具在走刀加工中的干涉情况,还应考虑实际加工环境的影响。目前的加工过程干涉检验多见于三维加工,有矢量法、区域干涉检验法等。而对于车削加工过程干涉碰撞检查所见到的有关研究报告较少,本方法则适合车削加工过程干涉碰撞检查。4.5数控仿真系统的模拟车削实例数控图形仿真的目的就是模拟实际数控加工,产生真实感效果图,检验数控代码的正确性,校验数控程序。开发一个数控仿真系统的成功与否在于是否能够以图形显示的方法再现实际切削加工过程,产生和实际加工相同的效果。下面以一实例演示数控加工过程,检验本仿真系统的适用性。例如加工如下图4-4所示零件,实现由粗加工到精加工的成形过程图4-4 零件根据以上零件图选择加工刀具并设定刀位8:一号刀:端面刀二号刀:割刀棒料直径:20mm材料:铸铜件加工准备:l.加工前根据前面所讲设好刀具长度补偿,选用端面刀精车一下端面,记下该端面处的ZO值,再精车一下外圆,记下刀尖于外圆处的XO值,测出外圆直径为D,可计算出起刀点纵向坐标X: XO-D-f-50,横向坐标Z:Z0+100,即将工作台移到绝对坐标X, Z处即可进入自动运行菜单执行加工程序了。2.根据上述刀具的选定情况在坐标设定菜单中设定对应的刀形并将刀具的起刀点设在对坐标(50, 100)处。NC程序编制如下:N0010 g92 x50 zl00设工件编程坐标原点N0015 t10换端面刀N0020 g00 z0N0030 g01 x30 f300N0040 g01 x-2 f30车端面N0050 g01 zl f200N0060 g00 x20N0070 g01 z-50 f50N0080 g01 ul w1 f100N0090 g00 z2N0100 g01 x18 f200N0110 g01 z-50 f50N0120 g01 u1 w1 f50N0130 g00 z2N0140 g01 x17 f200N0150 g01 z-45 f50N0160 g1 u1 w1 f50N0170 g00 z2N0180 g01 x14N0190 g01 x14 f200N0200 g01 z-15 f50N0210 g00 z2N0200 g01 x13 f200N0230 g01 z-15 f50N0240 g01 u1 w1N0250 g00 z2N0260 g01 x10 f200N0280 g01 z-5 f50N0290 g01 u1 w1N0300 g00 z2N0310 g01 x7 f200N0320 g01 z-5 f50N0330 g01 u1 w1N0340 g00 z2N0350 g00 x11.5N0000 g22 12N0000 g01 u-2.5 f100N0360 g01 z-5 f50N0370 g01 u4 f50N0380 g01 z-15 f50N0390 g01 u2N0400 g01 u4 w-8 f50N0410 g01 u-4 z-40 f50N0430 g02 u4 w-2 r2 f50N0440 g01 z-45N0450 g01 u1N0460 g01 z-50 f50N0470 g01 u1 w1N0480 g00 z2N0490 g01 u-12 f200N0500 g80 以上程序为粗车外轮廓N0510 g00 x50N0020 g00 z0N0000 g01 x6.2 f100N0360 g01 z-5 f50N0370 g01 u4 f50N0380 g01 z-15 f50N0390 g01 u2N0400 g01 u4 w-8 f50N0410 g01 z-40 f50N0430 g02 u4 w-2 r2 f50N0440 g01 z-45N0450 g01 u1N0460 g01 z-50 f50N0470 g01 u1 w1N0480 g00 z2N0490 g01 x6 f100N0360 g01 z-5 f50N0370 g01 u4 f50N0380 g01 z-15 f50N0390 g01 u2N0400 g01 u4 w-8 f50N0410 g01 u-4 z-40 f50N0430 g02 u4 w-2 r2 f50N0440 g01 z-45N0450 g01 u1N0460 g01 z-50 f50N0470 g01 u1 w1N0480 g00 z2N0490 g00 x50 z100N0500 t2N0510 g00 z-15N0520 g00 x20N0530 g01 x8 f20N0540 g01 x20 f30N0550 g00 x50N0560 g00 z100N0600 g00 z-50N0610 g00 x30N0620 g01 x20 f300N0630 g01 x-1 f15N0700 g01 u1 w1 f30N0710 g00 x50N0720 g00 z100N0800 m02说明:在本程序中起刀点、换刀点,及加工完后的终刀点为同一点,这样的程序编制对应零件的批量加工比较合适。在编程时一般将换刀点设成同一点。程序在编制完成后应通过系统的运行功能反复调试,看看是否与编程要求吻合,如不吻合应退回编辑窗口重新编辑后再调试,直至满足加工要求后方可进入自动允许菜单中进行加工。编译好的NC程序如4-5,4-6运行所示:图 4-5模拟车削仿真过程图4-6 模拟车削仿真过程如图4-5所示,车削长度为12mm的外圆,仿真过程中工件加工余量的去除由“走刀子程序”控制,仿真主程序主要是进行插补运算,而在每步插补运算后都将产生新的刀具坐标信息。按照逐点比较法原理,这将使刀具朝坐标方向走一步。在实际系统中,就是向某个方向发一脉冲以驱动刀具切掉工件上的加工余量。模拟系统中虚拟刀具的移动就是受主程序中这个“发脉冲”信息控制的。只要将仿真主程序中的新点坐标值赋给刀尖基点,然后调用刀具子过程,使虚拟刀具图形呈现在新的刀尖基点位置,最后用窗体背景色覆盖虚拟刀具移动过的部位,就可以完成一步“走刀”。另外,由于虚拟刀具只处在虚拟工件的一侧,刀尖基点只有一个,但车削工件图形应该是对称的,所以在Z (VB中是X)轴对称位置上还应有一个假想刀尖基点,然后,另设一把假想刀具,它的填充颜色应和背景色一致。只要把新坐标的X (VB中是Y)值取反,再赋给假想刀具基点,然后调用假想刀具子过程,那么从屏幕效果上看,工件两侧(即圆周)的加工余量就都被去除了。图4-7 车削实例演示结果4.6综合加工零件(1)主程序:%03G90G00X90Z30F0.3M03S600T1D1G00X50Z1M08G01X45Z-35G00Z2G01X35Z-15G00Z0F0.1X15.8_%04 P3G90G00X90Z30T3D1F0.1G96G00X5Z0_%04G90G97G00X90Z30T4D1G00X33Z-30F0.25G01X20G04P2G00X31Z-28G01X20G04P2G00X31G00X90Z30M09M05M30 (2)子程序:%04S750F0.05G90Z0G91G01X-5G03X20Z-10I0K-10G01Z-5X10Z-15G02X15Z-7.5I7.5K0G01Z-12.5G00X15Z50X-60RETURN4.7 本章小结本章主要介绍了数控插补原理,深刻阐述了工件已加工表面和刀具的碰撞问题,并通过两个实例仿真模拟车削演示,进一步加深对数控仿真车削的理解。5结论与展望5.1结论本文进行的主要工作如下:(1)对数控车削模拟编程器的结构和关键技术进行了认真的分析,确定了系统的整体结构、功能模块,并且选择了系统的开发工具以及开发方法。(2)采用面向对象编程思想,利用VB语言易学易会及可视化的优势。(3)进行了关于系统界面的设计以及NC代码解析等模块的开发工作。(4)深入研究了数控系统的工作过程,针对车削加工的是回转零件的特点对毛坯采用了二维建模方法,实现了刀具和工件形状的动态变化,完成了车削加工过程的动态仿真,包括圆柱面、圆锥面、圆弧面、螺纹及孔的加工仿真16。从实例中可以看到,本文系统能够实现G00, GO1, G02, G03, G32,M03, M04, M05, M98, M99, T指令等一定功能,但是由于时间关系、编程水平较低和实际经验不足,离一个成熟的数控教学软件仍有很大的距离。对于本软件今后的发展,还需在以下方面做进一步的工作:(1)目前软件实现的功能有限,需作进一步开发扩充,比如固定循环指令和宏程序编程功能等,使其能够基本取代实际机床,在NC程序检验、加工工序安排、工件精度控制等方面发挥巨大的作用。(2)通过改善数据结构、优化算法进一步改善模型仿真真实感与实时性问题,提高系统的整体性能。(3)完成其它数控系统的数控车削模拟编程器的集成。(4)目前软件加工过程的碰撞检验算法既简单又粗略,需作进一步研究。5.2展望由于计算机软件和硬件的飞速发展,人们对图形学、分形技术、动画技术和科学可视化技术的研究也进一步地深入,数控加工仿真技术也将日益发展和完善。为此,对本系统的进一步开发提出建议:(1)本系统只做了数控仿真领域方面的基础性工作,系统界面以及工件库、刀具库、夹具库等模块还可以进一步完善。为了适应更加复杂加工的需要(如螺纹加工),应采用更加复杂的算法结构来描述工件模型。(2)基于客观条件与时间原因,本课题只进行了基于VB的二维图形仿真,今后可考虑基于OpenGL, PorE, Vrml等三维图形制作技术,采用面向对象的Visual C+编程软件,研究开发数控加工过程的三维动态几何仿真系统。(3)在数控仿真系统中,不但要能检测出数控程序的错误,还应具有能够自动更正数控程序的功能。(4)系统的仿真只是几何仿真,即在仿真过程中将刀具和工件看作是刚体,没有考虑切削力、刀具变形和工件变形等物理因素的影响。以后的开发应考虑力学仿真,把切削力、刀具变形和工件变形等物理因素计算在内。致谢本论文是在滕凯导师的悉心指导下完成的。滕老师治学态度严谨,为人和蔼可亲。在整个毕业设计过程中,滕老师不断地给我关怀和指导,善于提出新问题,使我的毕业设计课题能够深入进行下去,也使我接触到了许多理论和实际上的新问题,并做了许多有益的思考。滕老师学识渊博,尤其在数控方面具有很深的造诣,对我的设计工作给予了很多的指导和帮助,使我能够将理论中的结果与实际相结合。另外,他对待问题的严谨作风也给我留下了深刻的印象。在此表示深深的敬意!同时,感谢大学四年中栽培我的所有老师!感谢校方给予我这样一次机会,能够独立地完成一个课题,能够更多学习一些实践运用知识,增强了我实践操作和动手能力,提高了独立思考能力。感谢评委老师的指正!再次表示感谢!参考文献1 葛研军.虚拟数控车削加工系统研究M.东北大学博士论文,1998. 2 赵继政,魏生民,杨彭基.数控加工的图形仿真与验证技术研究N.西北工业大学学报,1998.3 韩向利,袁哲俊,肖田元,温秀梅.直线与刀具扫描体求交算法及其应用研究P.计算机辅助设计与图形学报,1997.4 蒲志新,林贵瑜,陈维红,熊永超.数控程序的编制及刀具轨迹仿真的实现.煤矿机械,2002.5 王玲,王晓春.实用数控与编程技术M.国防工业出版社,1993.6 李浙昆,樊瑜瑾.零件加工轨迹计算机仿真M.机械设计与研究,1999.7 郑堤,张建,王春海,陈廉清.数控机床与编程M.机械工业出版社,2005.8 刘书华.数控机床与编程M.机械工业出版社,2001.9 魏志强.车削加工数控自动编程及数控程序仿真系统的研究R.哈尔滨工业大学硕士论文1995.10 杨合明.数控加工过程仿真A.华中理工大学博士论文,1994.11 高华,李进京.基于VB的数控加工图形仿真M.农机化研究,2005.12 李春葆,刘圣才,张植民.Visual Basic程序设计M.北京:清华大学出版社,2005.13 牛又奇,孙建国.新编Visual Basic程序设计教程M.苏州大学出版社,2003.14 张翠华,李进京,陈兴.数控仿真系统技术的研究现状N.山东农机,2005.15 严爱珍.机床数控原理与系统M.机械工业出版社,1999.16 原彬.数控车削加工仿真系统的研究与实现(硕士学位论文)D.大连铁道学院,2002.17 郑爱军.关于数控编程与仿真系统的探讨N.黑龙江纺织,2000.18 谢明红.基于PC的数控系统编译及图形仿真研究A.现代制造工程,2003.19 赵瑾,周来水,张臣,余湛悦.数控仿真中的实时碰撞检测算法的研究C.计算机工程与应用,2005.20 张建钢,胡大泽.数控技术M.华中科技大学出版社,2000.21 章富元,方江龙,汤季安.对我国数控技术发展的思考A.中国机械工程,2001.22 任玉田,焦振学,王宏甫.机床计算机数字控制技术C.北京理工大学出版社,1996.23 孟凡力.数控车削几何仿真系统研究D.大连铁道学院工学硕士学位论文,2003.24 朱晓春.数控技术M.机械工业出版社,2001.附录附录1关于如何实现插补运算的源程序相关代码如下:Private Sub Timer7_Timer() -G02插补If fangshi = 0 Or fangshi = 1 Or fangshi = 2 Then 单段或自动方式Timer10.Enabled = FalseTimer7.Interval = 5If pdgs = 0 Then f =0 If xmbz * zmbz 0 Then SR3 x方向走 Select Case jingeibeilv 进给率调整速率50,100,150。 Case 1 ZouDaoX = 2 Case 2 ZouDaoX = 5 Case 3 ZouDaoX = 10 End Select ZouDaoZ = 0 ElseIf xmbz 0 Then SR2,SR4 If zmbz 0 Then SR2 Z方向走 ZouDaoX = 0 Select Case jingeibeilv 进给率调整速率50,100,150。 Case 1 ZouDaoZ = 2 Case 2 ZouDaoZ = 5 Case 3 ZouDaoZ = 10 End Select ElseIf zmbz 0 Then SR4-Z方向走 ZouDaoX = 0 Select Case jingeibeilv 进给率调整速率50,100,150。 Case 1 ZouDaoZ = -2 Case 2 ZouDaoZ = -5 Case 3 ZouDaoZ = -10 End Select End If pdgs = pdgs - 2 * Abs(JZS) + 1 Select Case jingeibeilv 进给率调整速率50,100,150。 Case 1 JZS = Abs(JZS) - 0.04 Case 2 JZS = Abs(JZS) - 0.1 Case 3 JZS = Abs(JZS) - 0.2 End Select End IfElseIf pdgs 0 Then f0 If xmbz * zmbz 0 Then SR3-Z方向走 ZouDaoX = 0 Select Case jingeibeilv 进给率调整速率50,100,150。 Case 1 ZouDaoZ = -2 Case 2 ZouDaoZ = -5 Case 3 ZouDaoZ = -10 End Select ElseIf xmbz 0 Then SR2, SR4 If zmbz 0 Then SR2 X方向走 Select Case jingeibeilv 进给率调整速率50,100,150。 Case 1 ZouDaoX = 2 Case 2 ZouDaoX = 5 Case 3 ZouDaoX = 10 End Select ZouDaoZ = 0 ElseIf zmbz 0 Then SR4 -X方向走 Select Case jingeibeilv 进给率调整速率50,100,150。 Case 1 ZouDaoX = -2 Case 2 ZouDaoX = -5 Case 3 ZouDaoX = -10 End Select ZouDaoZ = 0 End If pdgs = pdgs + 2 * Abs(JXS) + 1 Select Case jingeibeilv 进给率调整速率50,100,150。 Case 1 JXS = Abs(JXS) + 0.04 Case 2 JXS = Abs(JXS) + 0.1 Case 3 JXS = Abs(JXS) + 0.2 End Select End IfEnd IfPianDao1 90偏刀(粗)MDIForm1.UserC21.Move MDIForm1.UserC11.Left + ZouDaoZ, MDIForm1.UserC21.Top - ZouDaoXPianDao2 90偏刀(粗)隐形刀具 If Form1.Picture11.BackColor = &H80FF80 Then Form1.Text3(0).Text = (MDIForm1.Image01.Top - 8000) * 0.02 * 2 + Val(Form1.Text11(1).Text) - Val(Form1.Text11(0).Text) 工件直径=X机床坐标+X磨损-X偏置 Form1.Text3(0).Text = Format(Form1.Text3(0).Text, #0.000) Form1.Text3(1).Text = (MDIForm1.Image01.Left - 9000) * 0.02 + Val(Form1.Text11(3).Text) - Val(Form1.Text11(2).Text) 工件长度=Z机床坐标+Z磨损-Z偏置 Form1.Text3(1).Text = Format(Form1.Text3(1).Text, #0.000) End IfEnd IfIf Form4.Option3(1).Value = True ThenMDIForm1.UserC31.Move MDIForm1.UserC31.Left + ZouDaoZ, MDIForm1.UserC31.Top + ZouDaoX 螺纹刀LuoWenDao1 螺纹刀MDIForm1.UserC41.Move MDIForm1.UserC31.Left + ZouDaoZ, MDIForm1.UserC41.Top - ZouDaoXLuoWenDao2 螺纹刀隐形刀具 If Form1.Picture11.BackColor = &H80FF80 Then Form1.Text3(0).Text = (MDIForm1.Image01.Top - 8000) * 0.02 * 2 + Val(Form1.Text12(1).Text) - Val(Form1.Text12(0).Text) 工件直径=X机床坐标+X磨损-X偏置 Form1.Text3(1).Text = (MDIForm1.Image01.Left - 9000) * 0.02 + Val(Form1.Text12(3).Text) - Val(Form1.Text12(2).Text) 工件长度=Z机床坐标+Z磨损-Z偏置 Form1.Text3(1).Text = Format(Form1.Text3(1).Text, #0.000) End IfEnd IfIf Form4.Option3(2).Value = True ThenMDIForm1.UserC51.Move MDIForm1.UserC51.Left + ZouDaoZ, MDIForm1.UserC51.Top + ZouDaoX 精车刀JingCheDao1 精车刀MDIForm1.UserC61.Move MDIForm1.UserC51.Left + ZouDaoZ, MDIForm1.UserC61.Top - ZouDaoX 隐形刀具JingCheDao2 精车刀隐形刀具 If Form1.Picture11.BackColor = &H80FF80 Then Form1.Text3(0).Text = (MDIForm1.Image01.Top - 8000) * 0.02 * 2 + Val(Form1.Text14(1).Text) - Val(Form1.Text14(0).Text) 工件直径=X机床坐标+X磨损-X偏置 Form1.Text3(1).Text = (MDIForm1.Image01.Left - 9000) * 0.02 + Val(Form1.Text14(3).Text) - Val(Form1.Text14(2).Text) End IfEnd IfIf Form4.Option3(3).Value = True ThenMDIForm1.UserC71.Move MDIForm1.UserC71.Left + ZouDaoZ, MDIForm1.UserC71.Top + ZouDaoX 切槽刀QieCaoDao1 切槽刀MDIForm1.UserC81.Move MDIForm1.UserC71.Left + ZouDaoZ, MDIForm1.UserC81.Top - ZouDaoX 隐形刀具QieCaoDao2 切槽刀隐形刀具 If Form1.Picture11.BackColor = &H80FF80 Then Form1.Text3(0).Text = (MDIForm1.Image01.Top - 8000) * 0.02 * 2 + Val(Form1.Text15(1).Text) - Val(Form1.Text15(0).Text) 工件直径=X机床坐标+X磨损-X偏置 Form1.Text3(0).Text = Format(Form1.Text3(0).Text, #0.000) Form1.Text3(1).Text = (MDIForm1.Image01.Left - 9000) * 0.02 + Val(Form1.Text15(3).Text) - Val(Form1.Text15(2).Text) End IfEnd IfIf Form4.Option3(4).Value = True ThenMDIForm1.UserC91.Move MDIForm1.UserC91.Left + ZouDaoZ, MDIForm1.UserC91.Top + ZouDaoX 镗刀TangDao1 镗刀MDIForm1.UserC101.Move MDIForm1.UserC101.Left + ZouDaoZ, MDIForm1.UserC101.Top - ZouDaoX 隐形刀具TangDao2 镗刀隐形刀具 If Form1.Picture11.BackColor = &H80FF80 Then Form1.Text3(0).Text = (MDIForm1.Image01.Top - 8000) * 0.02 * 2 + Val(Form1.Text16(1).Text) - Val(Form1.Text16(0).Text) End IfEnd Ifzdpd = zdpd - 1If zdpd = 0 Then f =0If xmbz * zmbz 0 Then NR2、NR4If xmbz 0 Then NR4 x方向走 Select Case jingeibeilv 进给率调整速率50,100,150。 Case 1 ZouDaoX = 2 Case 2 ZouDaoX = 5 Case 3 ZouDaoX = 10 End SelectZouDaoZ = 0 Select Case jingeibeilv 进给率调整速率50,100,150。 Case 1 xmbz = xmbz - 0.04 Case 2 xmbz = xmbz - 0.1 Case 3 xmbz = xmbz - 0.2 End SelectElseIf xmbz 0 Then NR2 -x方向走 Select Case jingeibeilv 进给率调整速率50,100,150。 Case 1 ZouDaoX = -2 Case 2 ZouDaoX = -5 Case 3 ZouDaoX = -10 End SelectZouDaoZ = 0 Select Case jingeibeilv 进给率调整速率50,100,150。 Case 1 xmbz = xmbz + 0.04 Case 2 xmbz = xmbz + 0.1 Case 3 xmbz = xmbz + 0.2 End SelectEnd Ifpdgs = pdgs - 2 * Abs(JXS) + 1 Select Case jingeibeilv 进给率调整速率50,100,150。 Case 1 JXS = Abs(JXS) - 0.04 Case 2 JXS = Abs(JXS) - 0.1 Case 3 JXS = Abs(JXS) - 0.2 End SelectElseIf xmbz * zmbz 0 Then NR3 Z方向走ZouDaoX = 0 Select Case jingeibeilv 进给率调整速率50,100,150。 Case 1 ZouDaoZ = 2 Case 2 ZouDaoZ = 5 Case 3 ZouDaoZ = 10 End Select Select Case jingeibeilv 进给率调整速率50,100,150。 Case 1 zmbz = zmbz - 0.04 Case 2 zmbz = zmbz - 0.1 Case 3 zmbz = zmbz - 0.2 End SelectElseIf zmbz 0 Then NR1一Z方向走ZouDaoX = 0Select Case jingeibeilv 进给率调整速率50,100,150。 Case 1 ZouDaoZ = -2 Case 2 ZouDaoZ = -5 Case 3 ZouDaoZ = -10 End Select Select Case jingeibeilv 进给率调整速率50,100,150。 Case 1 zmbz = zmbz + 0.04 Case 2 zmbz = zmbz + 0.1 Case 3 zmbz = zmbz + 0.2 End SelectEnd Ifpdgs = pdgs - 2 * Abs(JZS) + 1 Select Case jingeibeilv 进给率调整速率50,100,150。 Case 1 JZS = Abs(JZS) - 0.04 Case 2 JZS = Abs(JZS) - 0.1 Case 3 JZS = Abs(JZS) - 0.2 End SelectEnd IfElseIf pdgs 0 Then f 0 Then NR2、NR4If xmbz 0 Then NR4 +Z方向走ZouDaoX = 0 Select Case jingeibeilv 进给率调整速率50,100,150。 Case 1 ZouDaoZ = 2 Case 2 ZouDaoZ = 5 Case 3 ZouDaoZ = 10 End Select Select Case jingeibeilv 进给率调整速率50,100,150。 Case 1 zmbz = zmbz - 0.04 Case 2 zmbz = zmbz - 0.1 Case 3 zmbz = zmbz - 0.2 End SelectElseIf xmbz 0 Then NR2 -Z方向走ZouDaoX = 0 Select Case jingeibeilv 进给率调整速率50,100,150。 Case 1 ZouDaoZ = -2 Case 2 ZouDaoZ = -5 Case 3 ZouDaoZ = -10 End Select Select Case jingeibeilv 进给率调整速率50,100,150。 Case 1 zmbz = zmbz + 0.04 Case 2 zmbz = zmbz + 0.1 Case 3 zmbz = zmbz + 0.2 End SelectEnd Ifpdgs = pdgs + 2 * Abs(JZS) + 1 Select Case jingeibeilv 进给率调整速率50,100,150。 Case 1 JZS = Abs(JZS) + 0.04 Case 2 JZS = Abs(JZS) + 0.1 Case 3 JZS = Abs(JZS) + 0.2 End SelectElseIf xmbz * zmbz 0 Then NR3 -X方向走 Select Case jingeibeilv 进给率调整速率50,100,150。 Case 1 ZouDaoX = -2 Case 2 ZouDaoX = -5 Case 3 ZouDaoX = -10 End SelectZouDaoZ = 0 Select Case jingeibeilv 进给率调整速率50,100,150。 Case 1 xmbz = xmbz + 0.04 Case 2 xmbz = xmbz + 0.1 Case 3 xmbz = xmbz + 0.2 End SelectElseIf zmbz 0 Then NR1 +X方向走Select Case jingeibeilv 进给率调整速率50,100,150。 Case 1 ZouDaoX = 2 Case 2 ZouDaoX = 5 Case 3 ZouDaoX = 10 End SelectZouDaoZ = 0 Select Case jingeibeilv 进给率调整速率50,100,150。 Case 1 xmbz = xmbz - 0.04 Case 2 xmbz = xmbz - 0.1 Case 3 xmbz = xmbz - 0.2 End SelectEnd Ifpdgs = pdgs + 2 * Abs(JXS) + 1 Select Case jingeibeilv 进给率调整速率50,100,150。 Case 1 JXS = Abs(JXS) + 0.04 Case 2 JXS = Abs(JXS) + 0.1 Case 3 JXS = Abs(JXS) + 0.2 End SelectEnd IfEnd IfEnd Sub附录2软件测试分析报告本系统实现了用二维图形模拟实心或空心毛坯的技术;能提供七种常用的车削刀具,并通过刀具图片背景色透明处理达到了隐藏一边刀具的效果,实现双边车削的真实感;译码、插补、毛坯和刀具动画模拟等各个主要模块的功能基本实现。通过研究数控系统的工作过程,由于以上各个模块功能的基本实现,刀具和工件形状的动态变化和车削加工过程的动态仿真满足了本仿真系统的需要。从仿真加工圆柱面、圆锥面、圆弧面、螺纹及孔的实例中可以看到,本系统能够实现G00, G01, G02, G03, G32,M03, M04, M05, M98, M99, T等指令。但是由于编程水平较低和实际经验不足、时间关系,离一个成熟的数控教学软件仍有很大的距离。对于本软件今后的发展,在以下方面仍需要做一定的改进和完善:(1)本系统已经可以实现的功能并不全面,需作进一步补充,使本系统在比如NC程序检验,固定循环指令和宏程序编程功能等方面发挥更大作用。 (2)本系统目前数据结构并不是很完善,主要采用简单的、耗内存较
- 温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

人人文库网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。