




已阅读5页,还剩55页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
目录一、序言11.1 数控(NC)技术简介1矚慫润厲钐瘗睞枥庑赖。1.2 数控(NC)编程技术的发展与国内外现状1聞創沟燴鐺險爱氇谴净。1.3 本设计的主要内容2残骛楼諍锩瀨濟溆塹籟。二、NC加工自动编程系统的总体设计3酽锕极額閉镇桧猪訣锥。2.1 开发方式的确定3彈贸摄尔霁毙攬砖卤庑。2.2 系统的基本功能模块3謀荞抟箧飆鐸怼类蒋薔。三、用户界面设计5厦礴恳蹒骈時盡继價骚。3.1 用户界面设计5茕桢广鳓鯡选块网羈泪。3.2 Visual C+6.0及MFC简介5鹅娅尽損鹌惨歷茏鴛賴。3.2.1 关于Visual C+6.05籟丛妈羥为贍偾蛏练淨。3.2.2 Visual C+6.0 MFC(Microsoft Foundation Classes)编程特点5預頌圣鉉儐歲龈讶骅籴。四、CAD功能模块的实现7渗釤呛俨匀谔鱉调硯錦。4.1 关于DXF文件的结构7铙誅卧泻噦圣骋贶頂廡。4.2 DXF文件的读取保存模块7擁締凤袜备訊顎轮烂蔷。4.3 原始轨迹的显示模块11贓熱俣阃歲匱阊邺镓騷。4.4 小结12坛摶乡囂忏蒌鍥铃氈淚。五、刀具半径补偿概念及原理13蜡變黲癟報伥铉锚鈰赘。5.1 刀具半径补偿的概念13買鲷鴯譖昙膚遙闫撷凄。5.2 数控系统中C功能刀具补偿功能的实现方法13綾镝鯛駕櫬鹕踪韦辚糴。5.3 C功能刀补中程序段间的转接14驅踬髏彦浃绥譎饴憂锦。5.4 C功能刀具半径补偿算法15猫虿驢绘燈鮒诛髅貺庑。5.4.1 刀具中心轨迹转接过渡类型15锹籁饗迳琐筆襖鸥娅薔。5.4.2 转接矢量的计算方法17構氽頑黉碩饨荠龈话骛。5.4.3 常用的典型转接交点矢量计算公式17輒峄陽檉簖疖網儂號泶。5.5 小结28尧侧閆繭絳闕绚勵蜆贅。六、刀补轨迹计算和显示模块29识饒鎂錕缢灩筧嚌俨淒。6.1 第一加工图元指定及排序模块29凍鈹鋨劳臘锴痫婦胫籴。6.2 刀补轨迹生成模块31恥諤銪灭萦欢煬鞏鹜錦。6.3 小结31鯊腎鑰诎褳鉀沩懼統庫。七、代码生成模块33硕癘鄴颃诌攆檸攜驤蔹。7.1 对于直线的输出34阌擻輳嬪諫迁择楨秘騖。7.2 对于圆弧的输出34氬嚕躑竄贸恳彈瀘颔澩。7.2.1 关于顺时针圆弧(G02)和逆时针圆弧(G03)的判断34釷鹆資贏車贖孙滅獅赘。7.2.2 关于优弧劣弧的判断35怂阐譜鯪迳導嘯畫長凉。7.3 小结36谚辞調担鈧谄动禪泻類。八、程序的运行37嘰觐詿缧铴嗫偽純铪锩。8.1 运行环境要求37熒绐譏钲鏌觶鷹緇機库。8.2 运行方法37鶼渍螻偉阅劍鲰腎邏蘞。九、总结与展望40纣忧蔣氳頑莶驅藥悯骛。9.1 总结40颖刍莖蛺饽亿顿裊赔泷。9.2 展望40濫驂膽閉驟羥闈詔寢賻。致谢41銚銻縵哜鳗鸿锓謎諏涼。参考文献42挤貼綬电麥结鈺贖哓类。附录 程序中部分代码43赔荊紳谘侖驟辽輩袜錈。INC加工自动编程技术的研究一、序言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-2。DXF文件读取保存模块原始轨迹显示模块刀补轨迹计算和显示模块包含次级模块代码生成模块图 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.2 Visual C+6.0 MFC(Microsoft Foundation Classes)编程特点灭嗳骇諗鋅猎輛觏馊藹。MFC 的英文全称是Microsoft Foundation Classes,即微软的基本类库,MFC 的本质就是一个包含了许多微软公司已经定义好的对象的类库。一般来讲要编写的程序在功能上是千差万别的,但从本质上来讲,都可以化归为用户界面的设计,对文件的操作,多媒体的使用,数据库的访问等等一些最主要的方面。这一点正是微软提供MFC 类库最重要的原因,在这个类库中包含了一百多个程序开发过程中最常用到的对象。在进行程序设计的时候,如果类库中的某个对象能完成所需要的功能,这时只要简单地调用已有对象的方法就可以了。还可以利用面向对象技术中很重要的“继承”方法从类库中的已有对象派生出我们自己的对象,这时派生出来的对象除了具有类库中的对象的特性和功能之外,还可以由我们自己根据需要加上所需的特性和方法,产生一个更专门的,功能更为强大的对象。当然,你也可以在程序中创建全新的对象,并根据需要不断完善对象的功能。正是由于MFC 编程方法充分利用了面向对象技术的优点,它使得编程时极少需要关心对象方法的实现细节,同时类库中的各种对象的强大功能足以完成程序中的绝大部分所需功能,这使得应用程序中程序员所需要编写的代码大为减少,有力地保证了程序的良好的可调试性。铹鸝饷飾镡閌赀诨癱骝。图3-2 VC主窗口 四、CAD功能模块的实现【1】由于本软件本身没有CAD模块,而是调用了DXF文件间接得到图形数据信息,那么为了实现该程序的预定功能,首先要将数据从DXF格式文件中读出来并以数组的形式(即代码中的自定义形CEntity数组arEntity)保存下来,以供后面的程序应用,这就需要一个从DXF文件中读取数据并保存的模块。然后则要调用绘图命令在操作界面上对图形信息进行绘制还原,这变需要原始图形绘制模块的支持。攙閿频嵘陣澇諗谴隴泸。4.1 关于DXF文件的结构DXF是“图形交换文件”的英文缩写,是一种图形文件交换格式。DXF有ASCII码、二进制等多种格式。其中ASCII码格式的DXF文件具有严密性、易读取性等显著特点,因而得到了广泛的应用。趕輾雏纨颗锊讨跃满賺。DXF文件的总体结构:一个完整的DXF文件由七个段(SECTION)和文件结尾组成,按顺序分别是: 1. 标题段(HEADER )标题段记录了图形系统的一般信息,有标题变量及其当前值或当前状态表示。 2.类段(DLASSES)类段句路了应用程序定义的类,这些类的实例可以出现在快段、实体段和对象段中。 3. 表段(TABLES)这一段包含的指定项的定义,它包括:a、视窗表(VPORT)b、线形表(LTYPE)c、图层表(LAYER)d、字样表(STYLE)e、视图表(VIEW)f、用户坐标系表(UCS)g、用户应用程序标识(APPID)g、尺寸式样(DIMSTYLE)h、块记录表(BLOCK_RECORD) 4. 块段(BLOCKS)块段顺序地记录了没个块的定义。没个块是由块的名字、类型、基点和该块的全体成员定义的,有关块的定义同实体段。夹覡闾辁駁档驀迁锬減。 5. 实体段(ENTITIES )实体段距离了没个实体的种类、所在图层的名字、线形、颜色、厚度、实体描述字及有关几何数据。 6.对象段(OBJECTS)对象行段包含了图形数据库所有非图形实体的定义数据。所有那些既不是实体、也不是符号表的记录、又不是符号表的实例出现在该段。视絀镘鸸鲚鐘脑钧欖粝。 7.预视图象段(THUMBNAILIMAGE)预视图象段以位图的形式描述了生成该DXF文件时显示在屏幕上的画面,这个画面是极小的,其大为读入DXF文件时对话框上“Preview(预视)”图象的大小。偽澀锟攢鴛擋緬铹鈞錠。 8.文件结尾文件以“0”和“EOF”两行结尾。“”表示空格。DXF文件由若干组构成,每个组占两行,第一组为组代码,第二行为跟随值。组代码相当于数据型的代码,跟随值是数据的具体值,这两行合起来才是一个完整的数据。緦徑铫膾龋轿级镗挢廟。 以上七个段中,【ENTITIES】段中包含图形中的相关信息,所要提取的图形信息就包含在该段中,因此,在从DXF文件中获取待加工零件信息时,只需要识别出【ENTITIES】段,进而读取这个段中图线的相关数据就可以了,而不需要关心其它各段的内容。騅憑钶銘侥张礫阵轸蔼。从DXF文件中ENTITIES段中的组码和组值的存放格式可知,在从DXF文件中提取图线信息时,首先,找到ENTITIES段,再判断是否有“LINE”或“ ARC ”。找到这两者之一后,就可以按照相关信息的存放顺序,跳过冗余行,来提取有用的图线信息。疠骐錾农剎貯狱颢幗騮。在本软件中,只对直线(LINE),圆(CIRCLE)及其圆弧(ARC)三种基本实体进行提取与识别。特别注意,在DXF文件中,对于圆弧ARC的数据存储都是以逆时针方向来识别的,故圆弧的起始角与中止角的记录与实际绘制图形时的起始角与中止角不一定吻合(逆时针绘制时相同)。镞锊过润启婭澗骆讕瀘。4.2 DXF文件的读取保存模块首先,根据从打开文件对话框中选定的文件,获得的文件名,打开该文件。读取文件内容,将内容按照行保存在字符数组中。程序流程图如图4-1所示。榿贰轲誊壟该槛鲻垲赛。等于文件大小行数不小于0不等于文件大小不等于0等于0开 始通过文件打开对话框,选取文件名并打开获取文件大小声明文件大小的内存空间显示消息框 “文件内容为空!”文件读取至内存解析文件内容,以回车换行作为分割,将每一行存入字符数组文件解析行数关 闭 文 件将字符数组中的文件内容解析,保存在实体数组结 束显示消息框 “文件读取错误!”行数小于0显示消息框 “文件不完全,可能被损坏!”关 闭 文 件图 4-1 从文件中读取数据并按行保存部分流程图邁茑赚陉宾呗擷鹪讼凑。其次,要将保存在字符数组中的文件内容解析为实体数组(函数StorageFileData())。考虑到DXF文件中包含的图线信息主要为直线、圆、圆弧等,对于直线,只需要提取其起点坐标和终点坐标即可;对于圆,则要得到其圆心坐标和半径;对于圆弧,要提取的信息为圆弧的圆心坐标、半径、圆弧的起始角度和终止角度。在储存这些图线信息时,要定义相应的结构体,最后为这些数据结构体创建一个类,以统一管理。下面为各结构体及类的说明:嵝硖贪塒廩袞悯倉華糲。/点的存储结构定义,用来存储图线中的点的坐标typedef struct target_pointdouble xAxes; /点的X坐标double yAxes; /点的Y坐标double zAxes; /点的Z坐标(在计算过程中不用,因为是平面图形,但读取数据时要考虑它) Cpt;/线的存储结构定义,用来存储直线的信息(起点和终点)typedef struct target_lineCpt pLStart; /直线起点Cpt pLEnd; /直线终点 Cln;/圆的存储结构定义,存储圆的信息和圆弧的部分信息typedef struct target_circleCpt pCCenter; /圆心(圆弧的圆心)坐标double rRadius; /圆的(圆弧的)半径Ccl; /圆弧的存储结构定义typedef struct target_arcCcl arcCircle;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 将保存在字符数组中的文件内容解析为实体数组部分流程图否否否否到文件结束标记,或者数组下标不小于文件总行数是是下标增1“LINE”“ARC”“CIRCLE”否否是保存直线实体至实体数组保存圆弧实体至实体数组保存圆实体至实体数组是是是结 束开 始该行是”ENTITIES”下标增1到”ENDSEC”或者数组下标小于文件总行数该栎谖碼戆沖巋鳧薩锭。4.3 原始轨迹的显示模块对于直线,从文件中得到其起点和终点,调用自定义的画直线的函数DrawLine(tmpEntity,pDC)将直线画出;对于圆弧,根据从文件中得到的圆弧的相关数据,用自定义的函数DrawArc(tmpEntity,pDC)将其画出。劇妆诨貰攖苹埘呂仑庙。这部分的程序比较简单,流程图如下图4-3所示。图4-3 原始轨迹显示模块流程图4.4 小结本部分通过DXF文件的读取保存模块和原始轨迹的显示模块实现了CAD模块的部分功能,使用户可以直观的从软件界面上看到在AutoCAD下绘制的零件图。这其间,DXF起到了桥梁的作用,它为图形信息在AutoCAD和第三方软件之间进行交换传输提供了一种简单而实用的解决办法。本部分主要代码见附录。臠龍讹驄桠业變墊罗蘄。五、刀具半径补偿概念及原理本章关于刀具半径补偿的算法参考了周晓东师兄关于C功能刀具半径补偿的研究中的算法。15.1 刀具半径补偿的概念刀具补偿包括刀具半径补偿和刀具长度补偿,这里讨论刀具半径补偿的相关问题。为了方便零件加工程序编制,程编轨迹为零件轮廓轨迹,而数控系统(CNC系统)控制刀具移动的轨迹为刀具中心轨迹。由于刀具半径的存在,零件的轮廓轨迹与刀具中心轨迹不相重合。为了加工出符合图纸要求的零件轮廓,必须进行刀具半径偏移。这个问题有两种解决办法:一种是由编程人员按照零件的几何形状尺寸及刀具半径大小人工计算刀具中心轨迹,然后再按刀具中心运动轨迹编制加工程序;另一种方法是由编程人员按照零件实际轮廓尺寸编制加工程序,并在程序中指明刀具参数及走刀方式,由数控系统自动完成刀具中心运动轨迹的计算。前一种方法繁琐、工作量大,已不采用。第二种方法具有很大的灵活性,既可以减轻编程人员的计算工作量,又允许实际加工中根据具体情况选择适宜的刀具,现代CNC系统都具有自动计算刀具中心运动轨迹的功能,这种功能称之为刀具半径补偿功能。鰻順褛悦漚縫冁屜鸭骞。5.2 数控系统中C功能刀具补偿功能的实现方法只有B刀具半径补偿功能的CNC系统,在数控加工时,采取读一段,算一段,走一段的控制方法。因此,无法估计由于刀具半径补偿所造成的下一段加工轨迹对本段加工轨迹的影响 。为了解决这一问题,需要在计算完本段程编轨迹之后,提前将下一段程序读入,然后根据它们之间转接的具体情况,求得本段程序的刀具中心轨迹。按照这一思路,具有C刀具半径补偿功能的CNC系统应设置多个数据寄存区。如图5-1所示:穑釓虚绺滟鳗絲懷紓泺。缓冲寄存器(BS)刀具补偿缓冲区( CS)输出寄存区(OS)工作寄存器(AS)图5-1带C功能刀补的CNC系统的工作流程图 系统起动后,第一段程序被读入BS中,并在BS中算出第一段程序的程编轨迹,然后将其送到CS暂存。再将第二段程序读入BS中,并计算出第二段程序的程编轨迹。接下来对第一、第二段程编轨迹的连接方式进行判别,根据判别结果确定CS中的第一段程序的刀具中心轨迹。将第一段程序的刀具中心轨迹数据由CS送入AS,第二段程编轨迹数据由BS送入CS。AS的内容送到OS中进行插补计算,并将计算结果送出,进行位置控制。利用插补间隙,将第三段程序数据送入BS,并计算其程编轨迹。随后,对第二、第三段程编轨迹的连接方式进行判别,并根据判别结果确定CS中第二段程序的刀具中心轨迹。如此依次进行下去。在C刀具半径补偿工作状态下,CNC装置内总是存有三个程序段的参数。隶誆荧鉴獫纲鴣攣駘賽。5.3 C功能刀补中程序段间的转接要实现C刀具半径补偿功能,首先要对相邻程编轨迹的转接线型和转接过渡类型进行判别,然后才能根据转接线型和转接过渡类型调用相应的计算公式,在已知原始程编轨迹的基础上,计算出刀具中心轨迹。对于具有直线、圆弧插补功能的CNC系统,其相邻两段程编轨迹不外乎有以下几种转接线型:浹繢腻叢着駕骠構砀湊。直线与直线转接;直线与圆弧转接;圆弧与直线转接;圆弧与圆弧转接。相邻两段程编轨迹矢量间夹角的不同,刀具半径补偿方式的不同,即左刀补或右刀补(G41或G42),对应的刀具中心轨迹的转接过渡类型也不同,概括起来有三种转接过渡类型,即缩短型、伸长型和插入型。鈀燭罚櫝箋礱颼畢韫粝。伸长型转接即是刀具中心轨迹相对于程编轨迹伸长了一定的长度。缩短型转接则是指刀具轨迹相对于程编轨迹缩短了一定长度。如图5-2所示情况,若仍按照伸长型转接那样,将SC、DC延长相交,势必会增加刀具非切削行程的时间。因此,采取如下做法:将前后程序段刀具中心轨迹分别延长BC和CD,且令BC=CD=AB=AD。再在中间插入过渡直线段CC。这样刀具中心除了沿原来的程编轨迹伸长一个刀具半径外,还增加了一个沿直线CC的移动。对于原来的程序段,等于中间再插入一个程序段。因此称这种转接形式为插入型转接。惬執缉蘿绅颀阳灣熗鍵。图5-2 直线接直线插入型左刀补示意图5.4 C功能刀具半径补偿算法5.4.1 刀具中心轨迹转接过渡类型设1为本程序程段编轨迹矢量与X轴的夹角,2为下一程序段程编轨迹矢量与X轴的夹角,1角和2角均为从X轴逆时针转到程编轨迹矢量形成的角,=2-1。将圆弧等效于直线后,完全可以按照角的正弦值、余弦值的大于、等于或小于零以及刀具半径补偿方式(即左刀补或右刀补)划分转接过渡形式。刀具中心轨迹转接过渡类型判别的规律如表5-3所示:贞廈给鏌綞牵鎮獵鎦龐。刀具半径补偿方向sin0cos0 转接过渡类型左刀补 是 缩短型 否 是 伸长型 否 否 插入型 右刀补 是 是 伸长型 是 否 插入型 否 缩短型表5-3 刀具中心轨迹转接过渡类型判别表 转接过渡类型判别程序框图如下:图5-4 刀具中心轨迹转接过渡类型判别表 5.4.2 转接矢量的计算方法 所谓转接矢量是指刀具半径矢量、及从零件程编轨迹交点指向刀具中心轨迹交点的矢量、(如图5-6所示)。不同线型,不同连接方式,不同刀具半径补偿方式,其转接交点矢量计算公式也不同。嚌鲭级厨胀鑲铟礦毁蕲。对于具体的转接矢量的计算方法,由于转接形式的不同而各有不同,考虑本次设计的重点在于刀补轨迹到G代码的生成方面,故对各种情况的转接矢量的计算方法不做具体推导,而直接给出结论公式,以提供给程序一个已知的确定的算法。薊镔竖牍熒浹醬籬铃騫。下图为转接矢量计算的一般流程图:对于下一程序段,刀心轨迹的起点计算刀具半径矢量的计算转接交点矢量的计算图5-5 转接矢量计算的一般流程图5.4.3 常用的典型转接交点矢量计算公式 直线接直线插入型转接矢量的计算:X图5-6 左刀补直线接直线插入型转接 如图5-6所示为左刀具半径补偿的情况,有: =,= ;=,= ;对于右刀具半径补偿的情况,有:= ,= ;= ,=;设、分别表示上一程序段结束时刀具中心所在位置相对于本程序段编程起点O在、轴上的投影,即=, =、在上一程序段刀具半径补偿计算中已经算出,为已知值。因此,相对于本程序段程编轨迹,本程序段刀心轨迹是、,其在、轴上的投影,即经刀具半径补偿后本程序段的实际增量值为:齡践砚语蜗铸转絹攤濼。=,=;=,=;而对于下一程序段程,刀心轨迹的起点为 =, =直线接直线伸长型转接交点矢量的计算:图5-7 左刀补直线接直线伸长型转接 X 如图5-7所示为左刀具半径补偿的情况,有: = =对于右刀具半径补偿的情况,有: = = 相对于本程序段程编轨迹轨迹为,其在、轴上的投影,即经刀具半径补偿后本程序段刀心轨迹的增量值为: = =对于下一程序段的程编轨迹AF,刀心轨迹的起点为: =,= 该、将参与下一程序段的刀具半径补偿计算。直线接直线缩短型转接交点矢量的计算:以上推导的直线接直线伸长型转接交点矢量计算公式完全可以用于直线接直线缩短型转接矢量计算。直线接圆弧缩短型转接矢量的计算: 如图5-8所示为左刀具半径补偿的情况,直线和圆弧相接。为了计算,先计算。图5-8 左刀补直线接圆弧缩短型转接 =-+(R+r) =(R+r)-矢量在轴上的投影分别为: =+,=+其中,,分别为圆弧圆心相对于圆弧起点的坐标分量。从而可得,相对于本程序段程编轨迹的刀心轨迹在、轴上的投影,即刀具半径补偿后刀心轨迹的增量为:绅薮疮颧訝标販繯轅赛。 = =对于下一程序段,刀心轨迹的起点为:=,=.直线接圆弧插入型转接交点矢量计算公式。图5-9 左刀补直线接圆弧插入型转接 如图5-9所示为左刀具半径补偿的情况,有: =, =; =, =; =, =;对于右刀具半径补偿的情况,有: =, =; =, =; =, =;因此,相对于本程序段程编轨迹的刀心轨迹是、及,其在、轴上的投影,即经过刀具半径补偿后本程序段的实际增量值为:饪箩狞屬诺釙诬苧径凛。 =,=; =,=; =-,=-;而对于下一程序段程编轨迹圆弧AF,有: =,=直线接圆弧伸长型转接交点矢量计算公式。图5-10 左刀补直线接圆弧伸长型转接 上图5-10为左刀具半径补偿的情况,有: = = =, =对于右刀具半径补偿情况,有: = = =, =因此,相对于本程序段程编轨迹的刀心轨迹是、,其在、轴上的投影,即经过刀具半径补偿后本程序段的实际增量值为:烴毙潜籬賢擔視蠶贲粵。 =,= =,=而对于下一程序段程编轨迹圆弧AF, 有: =,=圆弧接直线缩短型转接交点矢量计算公式。图5-11 左刀补圆弧接直线缩短型转接 上图为左刀具半径补偿的情况,有: =-+ =+对于右刀具半径补偿情况,有: =+ =-(Rcos+r)矢量AC在X、Y轴上的投影可用下两式求得: =+,=+其中,分别为圆弧相对于圆弧起点的、坐标分量。因此,相对于本程序段程编轨迹圆弧的刀心轨迹为,其在、轴上的投影,即经刀具半径补偿后本程序段的实际增量为:鋝岂涛軌跃轮莳講嫗键。 =,=而对于下一程序段程编轨迹圆弧AF,有: =,=圆弧接直线伸长型转接交点矢量的计算公式:如图5-12为左刀具半径补偿的情况,有: =, = = =图5-12 左刀补圆弧接直线伸长型转接 对于右刀具半径补偿情况,有: =, = = =因此,相对于本程序段程编轨迹圆弧的刀心轨迹为, 其在、轴上的投影,即经刀具半径补偿后本程序段的实际增量为:撷伪氢鱧轍幂聹諛詼庞。 =+-,=+- =-,=-而对于下一程序段程编轨迹AF,有: =,=圆弧接直线插入型转接交点矢量的计算公式:图5-13所示为左刀具半径补偿的情况,有: =, = = = =, =图5-13 左刀补圆弧接直线插入型转接 对于右刀具半径补偿情况,有: = , = = = = , = 因此,相对于本程序段程编轨迹圆弧的刀心轨迹为及,其在、轴上的投影,即经过刀具半径补偿后本程序段的实际增量值为:踪飯梦掺钓貞绫賁发蘄。 =+-,=+- =-,=- =,=而对于下一程序段程编轨迹AF,有: =,=圆弧接圆弧伸长型转接交点矢量的计算公式:下图5-14为左刀具半径补偿的情况,有: =, = = = =, =图5-14 左刀补圆弧接圆弧伸长型转接 对于右刀具半径补偿情况,有: = , = = = = , = 因此,相对于本程序段程编轨迹圆弧的刀心轨迹为及,其在、轴上的投影,即经过刀具半径补偿后本程序段的实际增量值为:婭鑠机职銦夾簣軒蚀骞。 =+-,=+- =-,=- =,=而对于下一程序段程编轨迹AF,有: =,=圆弧接圆弧插入型转接交点矢量的计算公式:如下图5-15,为左刀补时的情况,由图可得: =, = = = =, = =, =对于右刀具半径补偿情况,有: = , = =图5-15 左刀补圆弧接圆弧插入型转接 = =, = =, = 因此,相对于本程序段程编轨迹圆弧的刀心轨迹为、及,其在、轴上的投影,即经过刀具半径补偿后本程序段的实际增量值为:譽諶掺铒锭试监鄺儕泻。 =+-,=+- =-,=- =,= =-, =而对于下一程序段程编轨迹圆弧AF,有:=, =圆弧接圆弧缩短型转接交点矢量的计算公式:图5-16 左刀补圆弧接圆弧缩短型转接 图5-16为左刀具半径补偿顺圆弧的情况,矢量在、轴上的投影分别为: =+-+- +- =+-+-+ +-对于右刀具半径补偿逆圆弧的情况,有: =+-+-+ +- =+-+- +-矢量AC在X、Y轴上的投影可用下两式求得: =+-,=+- 其中 、及、分别为两圆弧圆心相对于圆弧起点的坐标分量及圆弧半径。 因此,相对于本程序段程编轨迹圆弧的刀心轨迹为,其在轴上的投影,即经刀具半径补偿后本程序段的实际增量为:俦聹执償閏号燴鈿膽賾。 =+-,=+-而对于下一程序段程编轨迹圆弧AF,有:=,=5.5 小结以上介绍了刀具补偿的概念及原理,是刀具轨迹生成的核心部分算法。在程序的编写过程中所用到的算法,就是在这一部分中推导出来的,所以,本章内容为下一章刀具轨迹计算和显示模块中的轨迹生成模块提供了理论根据。缜電怅淺靓蠐浅錒鵬凜。六、刀补轨迹计算和显示模块6.1 第一加工图元指定及排序模块程序在从DXF文件中读取并显示出的是CAD中的绘图对象链,这不一定是使用者想得到的实际加工对象链,这就需要对绘图对象链中的各元素进行调整并排序,继而得到实际加工对象链。骥擯帜褸饜兗椏長绛粤。对于这一过程,首先便是要指定第一加工图元,而后从第一加工图元和加工方向上对其他图元逐一判断,便得到一个线性的实际加工对象链。然而对于存在交叉图元的图形信息,这一过程会相对麻烦,还要判断交叉点的加工情况。本系统中,只对无交叉的情况作一讨论。癱噴导閽骋艳捣靨骢鍵。图6-1 排序示例图1对于第一图元的指定,本系统的做法是,通过鼠标在窗体中的点选,返回一个点的坐标(包括X和Y坐标),通过点到直线的距离公式,依次计算该点与绘图对象链中各元素的法向距离,这包括两种情况:鑣鸽夺圆鯢齙慫餞離龐。 图元为直线时,应用点到直线距离公式,直线两点式表示; 图元为圆弧时,计算点到圆心的距离,再与半径作差取其绝对值。用循环语句判断有最小法向间距的图元,并把其指定为第一图元元素写入数组,并顺势调整绘图对象链顺序。2对于实际加工对象链,在按第一加工图元重排绘图对象链顺序后,判断第一图元的结束点(由加工方向来确定),并把该点与各图元的始末点依次比较,相同则相连,这样就判出第二加工图元。以后,重复这一过程直到最后一个图元。当最后一个图元无与之末点相连的图元时,整个图形为一链型图;当与最后图元末点相连的图元为第一加工图元时,整个图形为一环型图。把图形是否封闭(环型与否)计入相应的变量fengbi中,以供下面刀补部分调用。榄阈团皱鹏緦寿驏頦蕴。图6-2 第一加工图元指定流程图 6.2 刀补轨迹生成模块这部分程序设计时应这样考虑:根据图线之间的转接类型的判断及相应的求点的坐标的算法,可以确定刀具的中心的转折点(一个或多个),这样,将图线中每相邻的两段依次进行组合,判断其转接类型并求得各转折点的坐标,将上一步求得的最后一个转折点的坐标作为下一步画第一段线的起点,将当前步所求得的第一个转折点这步画第一段线的终点,进行画线(直线或圆弧)。每步中间的相邻点用直线直接相连即可(这是按照算法来进行的)。对于第一段和最后一段,进行B刀补的专门处理就行了。逊输吴贝义鲽國鳩犹騸。对于第一段,调用InitiaSRxRy(const CEntity &ent, double &rx, double &ry)求得rx和ry。再根据是圆弧还是直线求得刀具中心轨迹上第一点(TrackSPoint)的坐标,然后从选定的入丝点至TrackSPoint点画直线,即可得到刀具中心轨迹上的第一段。幘觇匮骇儺红卤齡镰瀉。对于最后一段情况比较特殊:当图形为一链型图时,若是直线,仍调用InitiaSRxRy(const CEntity &ent, double &rx, double &ry)求得rx和ry,并求最后一点的坐标,将其作为终点,将前一步求得的最后一个转折点的坐标作为起点,画直线,即为刀心轨迹上最后一段,并从最后一段末点向出丝点连线;若为圆弧,则调用InitiaEARxRy(const CEntity &ent, double &rx, double &ry)求rx和ry,并求最后一点的坐标,将其作为终点,将前一步求得的最后一个转折点的坐标作为起点,画圆弧,得到刀心轨迹上最后一段,同样也要从最后一段末点向出丝点连线。誦终决懷区馱倆侧澩赜。当图形为一封闭图形时,仍要把最后一段图元与第一段图元做刀补,求出刀补轨迹,最后从刀补
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 偷钱自愿归还协议书范本
- 文化产业项目部分股权置换与转让实施合同
- 旅游景区开发项目诚意金支付及合作终止协议
- 产业园区物业管理与招商引资合作协议
- 仓储物流园区拆迁补偿及补偿款分配协议
- 生态工业园区绿色厂房租赁合同书
- 阿里巴巴平台消费者权益保护服务合同
- 中式快餐店跨区域联营管理协议
- 厂房搬迁及安全生产责任协议
- 施工记录填写培训
- 2025重庆水务环境控股集团有限公司招聘6人笔试参考题库附带答案详解
- 办公技能实操考试试题及答案
- 空调移机安装合同范本
- 水泥牌楼维护方案范本
- 中医药在气管炎治疗中的应用
- 银行人力资源发展计划
- 喷涂作业安全专项培训
- 危险性较大分部分项工程及建筑施工现场易发生重大事故的部位环节的预防监控措施和应应急处理预案
- 养老护理员四级试题含答案
- 全国寄生虫病防治技能知识竞赛参考试题(附答案)
- 高速公路改扩建工程监理投标方案(技术方案)
评论
0/150
提交评论