杨顺田
(四川工程职业技术学院,德阳 618000)
在大多数情况下,先是由直线与圆弧构成的平面轮廓,再由平面轮廓、槽、孔等元素构成机器零件实体,加工过程中,又是在毛坯的基础上以减少实体材料(金属切削)的方式加工出零件的,因此,无论是什么数控系统都是以直线与圆弧作为基本的编程元素,如G01、G02、G03则是直线与圆弧的编程指令,若零件不是由直线或圆弧而是由非圆曲线构成的话,就无法用基本的编程指令完成编程。非圆曲线有许多种[1],大体可分成能够用数学表达的方程曲线如椭圆、抛物线、星型曲线等和不能用数学表达的列表曲线如蚌线、心脏线等。在此仅以能够用数学表达的方程曲线构成的平面曲线轮廓与立体曲面进行数控加工R参数化编程的研究。
非圆曲线在进行数控编程之前,需要插补处理。所谓插补是指按一定的算法,计算出轮廓曲线上某些中间点坐标值的过程[2]即“数据密化”。从本质上讲,插补处理也就是数学上连续曲线的离散化处理过程,它是将一个连续的曲线分割成若干个微小的线段,每段用直线或圆弧(即逼近线)去逼近轮廓曲线以此代替原有的非圆曲线,逼近线与轮廓曲线的交点或切点称为节点。显然,当节点的数量足够多时,密化程度就越高,拟合出的曲线越光滑,所得到的轮廓曲线精度即插补精度就越高,但加工指令自然也就越长,降低了数控系统的运算速度,从而影响零件加工的效率,因此,数据密化的程度要适当。
离散化处理有多种方法。在数控加工离散化处理中,主要有积分插补法、数据采样法、等误差插补法与等距切片插补法等,但无论哪种方法,均以零件加工精度为标准。
实际零件的轮廓形状,除了由直线、圆弧或其他方程曲线组成的连续光滑轮廓之外,有些轮廓形状是由实验或测量获得的若干数据点。通常,这些点是用表格形式给出的坐标点,由此形成的曲线常称为列表曲线[3],列表曲线形成的轮廓是非光滑的。为了获得比较光滑的零件轮廓,常在两个点之间插入一些点,称为插值计算,常用的方法有牛顿插值法、二次样条曲线拟合、圆弧样条拟合等,目前常是用二次拟合法。
从逼近方法上看,常有两种,即直线段逼近法与圆弧逼近法。所谓算法就是要根据不同的逼近方法找出节点的相应计算方法[4],用直线段逼近非圆曲线,目前常用的节点计算方法有等间距法、等弦长法、等误差法和等圆心角法;用圆弧段逼近非圆曲线,常用的节点计算方法有曲率圆法、三点圆法、相切圆法等。
图1 四种逼近方式
1)等间距直线段逼近法:等间距法就是将某一坐标轴划分成相等的间距,间距两点之间用直线段代替原有曲线,如图1(a)所示。等间距法的显著优点是计算方便,特别适合于程序循环编程,其特点是在曲率半径大小直接影响插补精度。2)等弦长直线逼近法:用长度相等的线段去逼近轮廓曲线,如图1(b)所示,其优点是程序段的线段长度相等,缺点是插补误差δ与曲率半径R关系密切,且坐标值不易计算。3)“三点圆”圆弧逼近法:该方法是在等误差直线段逼近求出各节点的基础上,通过不在同一条直线上的连续三点作圆弧,用这样的圆弧逼近非圆曲线,其缺点是要计算出圆心点坐标或圆的半径值,计算困难且工作量大,如图1(c)所示。对于无法用方程表示的列表曲线,利用“三点圆”圆弧编程指令CIP,编程可大大简化,该方法具有明显的优势。4)等圆心角直线段逼近法:等圆心角法就是将某一弧线所对应的圆心角分成若干等分,每一等分圆心角(即步距角)所对应的弧用弦代替即“弦逼弧”。如图1(d)所示。该方法的显著优点是计算方便,特别适合于曲线方程变量为角度的情况,如椭圆、多边形等轮廓的循环编程。除此之外,还有等误差法直线段逼近法、相切圆圆弧逼近法等,它们各有优缺点。
利用事物间的相似性,将许多具有相似信息的研究对象归并成组,并利用大致相同的方法去解决相似组中的生产技术问题,以达到规模生产的效果,这种技术称为成组技术。在机械加工中,零件形状相似,则制造工艺相似、数控程序相似[4]。对于能够用数学表达的方程曲线构成的平面曲线轮廓或立体曲面,当其方程相同时,则其形状相似,就可以构建同类或同族零件的数学模型即主样件,再编写主样件R参数子程序并存贮于计算机中[5]。使用时,只需输入具体零件实际参数,用实参代替形参,达到零件与程序的“一对一”效果,最后输出该零件的数控加工程序。
SINUMERIK R参数具有算术运算与逻辑运算的强大功能,还能够运用C语言等高级计算机语言构成复杂的功能模块,应用十分方便、灵活[6,7]。
如2图所示的键槽零件族,可编制通用的R参数子程序,再通过主程序调用,实现键槽同族零件中任意键槽的加工,设参数R01=槽的长度,R02=槽的宽度,R03=槽的深度,R04=过度圆半径,R05=刀具半径,键槽R参数子程序如下:
JANCAO.SPF;键槽加工子程序
N05 G90 G01 X0 Y0;槽的中间先加工一刀(1-2点)
N10 G41 D02 X=-R04 Y=-(R02/2-R04);建立刀补(2-3点)
N15 G03 X0 Y=-R02/2 CR=R04 ;圆弧切入(3-4点)
N20 G01 X=R01-R02 Y=-R02/2 ;加工下直边(4-5点)
N25 G03 X=R01-R02 Y=R02/2 CR=R02/2;加工右半圆
N30 G01 X=0 Y=R02/2;加工上直边(6-7点)
N35 G03 X=0 Y=-R02/2 CR=R02/2;加工左半圆(7-4点)
N40 G03 X=R04 Y=R04 CR=R04 ;圆弧切出(4-8点)
N45 M17
图2 尺寸参数化的键槽零件族
加工某一键槽,其长度为120、宽度为70、深度15,则只需要对每个R参数赋值即可,若选用Φ32的键槽铣刀,则过度圆半径取28,再调用键槽加工子程序,其主程序设计如下:
键槽加工主程序
DIAOYONG.MPF;调用子程序
N05 G90 G54 G00 X0 Y0 Z25;到达起始点
N10 M03 S600 F80;选取,下刀
N15 R01=120 R02=70 R03=15;给各R参数赋值
N20 R05=16 R04=25 JANCAO ;调用R参数子程序
N25 G00 Z25 M05
N30 M30
由此可见,只要有了同族零件R参数子程序,就可以加工同族中的每一个零件,无需“一对一”地去编写每个零件的程序,极大地提高编程效率。
图3 椭圆平面轮廓凸台
现在分析平面曲线轮廓的参数编程,如图3所示,它由椭圆构成的平面曲线轮廓凸台零件,椭圆的参数方程是:X=R02*COS(R01),Y=R03*SIN(R01),其中R02为长半径,R03为短半径,R01为圆心角,用于控制插补精度与边界:整椭圆0º~360º,四分之一椭圆0º~90º,应用参数及循环功能来编写椭圆参数子程序,其关键点归纳为:
1)设定初始值,如下面程序片段中的N25;2)采用等圆心角直线段逼近法,步距角R01=1º控制插补精度,如N30;3)边插补计算边走刀加工,如N35;4)通过控制边界判断循环的结束。即N40程序段的“IF----GOTOB”循环条件控制语句。
程序片段如下:
……
N25 R01=0;初始角度为0
N30 MM:R01=R01+1;设定步长为1
N35 G01 X=R02*COS(R01)Y=R03*SIN(R01);
计算坐标完成直线插补:
N40 IF R01<=360 GOTOB MM;循环判断,直到等于360度与切入点重合
……
同样,只要有了椭圆族零件R参数子程序,就可以加工一个任意尺寸的具体椭圆零件。
对于其他平面曲轮廓的R参数编程,均可采取类似的方法进行。
图4 立体半椭球的曲面
选题意义:图4所示的零件,其外形是立体半椭球的规则曲面,它在三个轴线的截平面均为椭圆,体现出真正意义上的立体曲面,其参数编程具有通用性,典型性及推广价值。
装夹方案:可根据零件尺寸大小及实际情况选择通用夹具或设计专用夹具进行工件的装夹。
零件设定:XY坐标零点设在工件的中心位置。工件的上表面是执行刀具长度补偿后的Z轴零点。
刀具选择:视椭圆大小选用合适的平底键槽铣刀(粗加工)与球头铣刀(精加工)加工椭圆外形轮廓,达到尺寸要求,铣刀半径参数为R05,采用刀心编程,P点坐标等于轮廓尺寸加铣刀半径。
设R01、R02、R03分别是椭球XYZ各轴所对应的半径,R05平底铣刀半径,采用“刀心”方式编程,研究表明,椭球程序编制的四个关键步骤如下:
1)椭球如何分层及层数的循环与控制;2)每层椭圆的加工循环与控制;3)各轴的坐标计算;4)加工方向的确定。
由此可见,要用内外两层循环才能实现立体半椭球的编程,外层循环R01控制椭球的层间循环,内层循环R02控制某一层椭圆的加工循环。
走刀路线可选择逐层向下或逐层向上。从图5中可以看出,无论哪种走刀,加工余量都是不均匀的,经过粗加工后,半椭球的大体形状初步成形,余量不均匀状况有所改善,采用逐层向下加工,开始加工的宽度余量较宽,需要较大直径的刀具;采用逐层向上加工,开始加工的深度余量较深,需要较大刃长的刀具[8],这就要根据椭球长短径比来确定了,现采取逐层向上加工的方法编写数控R参数子程序。
图5 椭球上P点椭圆截面层
设P点为半椭球上的任意一点,过P点的水平截平面所截得的椭圆轮廓如图虚线所示,在主视图上是一条直线,另两个视图上的投影,如虚线椭圆(或半椭圆)所示,通过变量R01求得不同水平截平面所截得椭圆轮廓,不同层的椭圆由R01角度变量控制,步距角R01=1º,取值范围为0º~90º,同一层椭圆轮廓的任意位置是K点,K的位置由R02变量控制,步距角R02=0.5º,取值范围为0º~360º。
BANTUOQIU.SPF;立体半椭球的子程序名
N05 R01=0:R01层变量,从底层开始逐层向上加工
N10 KP1:R30=(R10+R05)*COS(R01);计算P点X坐标
N15 R31=(R11+R05)*COS(R01);计算P点Y坐标,
N20 R32=R12*SIN(R01);计算P点Z坐标
……
N60 IF R01<=90 GOTOB KP2;外层循环结束,刀具到顶部
N65 Z=INC(10);抬刀10mm
N70 RET;子程序结束
平面非圆曲线轮廓特别是立体曲面的数控编程向来复杂,尽管可采用UG一类的编程软件来解决,但毕竟都是针对某一个具体零件“一一对应”去编写程序的,零件造型及生成的程序也只能用在某个具体的零件上,比较费工费时,而且成本又高,是一次性的,无重复使用可言!通过建立成组零件的参数模型,编写成组零件的参数子程序,同组零件只需赋予相应的变量值,就可用同样的R参数子程序加工,无需“一对一”地去编写每个零件的程序,可以说是以“成组零件的参数子程序”的不变应“同组具体零件”的万变的,一个参数子程序可无限次重复使用!极大地提高编程效率。
因此,该项成果具有积极的现实意义与推广价值。
[1] 鞠华.逆向工程中自由曲面的数据处理与误差补偿研究[D].浙江大学.2003.
[2] 彭美武,杨顺田.计算机数控技术[M].化学工业出版社.2011.
[3] 陈海舟.数控铣削加工宏程序及应用实例[M].机械工业出版社.2006.
[4] 蔡建国,许香穗.成组技术[M].机械工业出版社.1997.
[5] 周茂书.宏程序在数控编程中的应用[A].中国工程物理研究院科技年报(2000).2000.101-108.
[6] 吴大中.五轴联动数控加工非线性误差控制及后置处理[D].上海交通大学.2007.
[7] 杨顺田.新编数控编程100例.从蓝领走向金领[M].机械工业出版社.2011.
[8] 杨静云,石玉宝.数控编程与工艺对椭圆曲面加工精度的影响[J].制造业自动化.2010.15.44-47.