洛天示例供大家参考学习1由浅入深宏程序1-宏程序入门基础之销轴加工对于没有接触过宏程序人,觉得它很神秘,其实很简单,只要掌握了各类系统宏程序的基本格式,应用指令代码,以及宏程序编程的基本思路即可。对于初学者,尤其是要精读几个有代表性的宏程序,在此基础上进行模仿,从而能够以此类推,达到独立编制宏程序的目的。本教程将分步由浅入深的将宏程序讲解给大家,作者水平有限,也希望各位同仁提供更好的思路。下面大家先看一个简单的车床的程序,图纸如下:要求用外圆刀切削一个短轴,这里只列举程序的前几步:T0101M3S800G0X82Z5G0X76G1Z-40F0.2X82G0Z5G0X72G1Z-40F0.2X82G0Z5G0X68洛天示例供大家参考学习2G1Z-40F0.2X82G0Z5G0X68G1Z-40F0.2X82G0Z5........G0X40G1Z-40F0.2X82G0Z5G0X150Z150M5M30从上面程序可以看出,每次切削所用程序都只是切削直径X有变化,其他程序代码未变。因此可以将一个变量赋给X,而在每次切削完之后,将其改变为下次切削所用直径即可。T0101M3S800G0X82Z5#1=76赋初始值,即第一次切削直径N10G0X[#1]将变量赋给X,则X方向进刀的直径则为#1变量中实际存储值。N10是程序G1Z-40F0.2段的编号,用来标识本段,为后面循环跳转所用。X82G0Z5#1=#1-4每行切深为2mm,直径方向递减4mmIF[#1GE40]GOGO10如果#1=40,即此表达式满足条件,则程序跳转到N10继续执行。G0X150Z150当不满足#1=40,即#140,则跳过循环判断语句,由此句继续向后执行。M5M30洛天示例供大家参考学习3由浅入深宏程序2-宏程序之销轴粗精加工本篇文章利用宏程序简单模仿数控系统的外圆车削循环功能。在此用前一篇的图纸与程序原程序:T0101M3S800G0X82Z5粗加工开始#2=0.05Z向的加工余量#3=0.5外圆方向的加工余量#4=0.3每层切削后的回退量#1=76+2*#3考虑了精加工余量的第一次切削直径N10G0X[#1]将变量赋给X,则X方向进刀的直径则为#1变量中实际存储值。N10是程序G1Z[-40+#2]F0.2段的编号,用来标识本段,为后面循环跳转所用。X[#1+#4]每次切削只回退#4的值G0Z5#1=#1-4单边切深为2mm,直径方向每次递减4mmIF[#1GE40]GOGO10如果#1=40,即此表达式满足条件,则程序跳转到N10继续执行。M03S1200当不满足#1=40,即#140,则跳过循环判断语句,由此句继续向后执行。G0X40由此开始精加工G1Z-40F0.1X82G0X150Z150M5M30洛天示例供大家参考学习4由浅入深宏程序3-宏程序车半球面在不使用循环切削加工圆弧时,可以有几种不同的方式来安排走刀轨迹,本篇文章采用将圆弧段沿X方向偏移,由外籍内的加工方式进行。如图所示R20圆弧,假设刀具每次单边切深2mm,直径每刀吃4mm,则由端面切入的位置可以计算出需要切削:40/4=10刀每条圆弧起点和终点的Z坐标不变,但X坐标都同时向+X方向偏移一个相同的值,因此可设偏移量为#1,初始值为#1=36圆弧起点X坐标为#2=0+#1圆弧终点X坐标为#3=40+#1宏程序编制如下:T0101M3S800G0X42Z5#1=36赋初始值,即第一个圆弧直径偏移量N10#2=0+#1计算圆弧起点的X坐标#3=40+#1计算圆弧终点的X坐标G0X[#2]快速到达切削直径G1Z0F0.1直线切至圆弧起点G3X[#3]Z-20R20F0.1切削圆弧G1X42直线插补切削至外圆G0Z5退至端面外侧#1=#1-4直径方向递减4mmIF[#1GE0]GOGO10如果#1=0,即此表达式满足条件,则程序跳转到N10继续执行。G0X150Z150当不满足#1=0,即#10,则最后一条圆弧已经切完,跳出循环。M5M30洛天示例供大家参考学习5由浅入深宏程序4-圆的标准方程编制宏程序车半球面我们知道无论什么样的曲线,数控系统都是CAD/CAM软件在处理时都会将其按照内部的算法划分成小段的直线进行加工,接下来我们利用圆的方程来将直线划分成小段直线在利用宏程序对其加工。下图为圆的标准方程X*X+Y*Y=R*R,若将X和Y用参数变量代替可改写为#1*#1+#2*#2=R*R圆弧可沿#1方向划分成无数小段直线,然后求出其相应端点坐标,再求出相对的数控车床中的坐标,再按直线进行编程加工。如下图所示:则此段圆弧精加工轨迹为:G0X0G1Z0F0.1#1=0洛天示例供大家参考学习6N10#2=SQRT[20*20-#1*#1]SQRT表示开平方#3=#1-20圆的原点在工件坐标左侧20,所以圆弧上所有点坐标Z要减20#4=2*#2圆的方程计算出的为半径值,需转化为直径值才能与直径编程对应。G1X[#4]Z[#3]F0.1沿小段直线插补加工#1=#1-0.5递减一小段距离,此值越小,圆弧越光滑。IF[#1GE0]GOTO10条件判断是否到达终点。G1X42直线切出外圆如果要再加上分层的粗加工,设偏移量为#5,则程序改为T0101M3S800G0X42Z5#5=36N5G0X[#5]G1Z0F0.1#1=20N10#2=SQRT[20*20-#1*#1]SQRT表示开平方#3=#1-20圆的原点在工件坐标左侧20,所以圆弧上所有点坐标Z要减20#4=2*#2+#5圆的方程计算出的为半径值,需转化为直径值才能与直径编程对应。G1X[#4]Z[#3]F0.1沿小段直线插补加工#1=#1-0.5递减一小段距离,此值越小,圆弧越光滑。IF[#1GE0]GOTO10条件判断是否到达终点。G1X42直线插补切出外圆G0Z5#5=#5-4IF[#5GE0]GOTO5G0X150Z150M5M30以上程序分内外二层循环,外层循环为分层加工,内层循环为小段直线插补一条圆弧。洛天示例供大家参考学习7由浅入深宏程序5-圆的参数方程编制宏程序车半球面圆的标准方程为:X=R*COSθY=R*SINθ可改写为:#1=20*cos[#3]#3为参数方程对应图纸中角度#2=20*sin[#3]使用参数方程比圆的标准方程具有一个优点,从下图中可以看出,使用标准方程式,在工件最右端,划分直线坡度较大,从右至左划分线段不均匀,而使用圆的参数方程所划分的直线段是按照圆周方向划分的,因此分布均匀,从而使用零件表面加工质量好。相应程序修改如下:T0101M3S800G0X42Z5#6=36洛天示例供大家参考学习8N5G0X[#6]G1Z0F0.1#3=0N10#1=20*COS[#3]#2=20*SIN[#3]#4=2*#2+#6圆的方程计算出的为半径值,需转化为直径值才能与直径编程对应。#5=#1-20G1X[#4]Z[#5]F0.1沿小段直线插补加工#1=#1+3递减3度,此值越小,圆弧越光滑。IF[#1LE90]GOTO10条件判断是否到达终点。G1X42直线插补切到工件外圆之外G0Z5#6=#6-4IF[#6GE0]GOTO5G0X150Z150M5M30洛天示例供大家参考学习9由浅入深宏程序6-利用椭圆标准方程编制数控车宏程序如果看了前几篇,那么接下来这两篇加工椭圆的宏程序应该很容易理解。椭圆标准方程X*X/a*a+Y*Y/b*b=1,其中a为长半轴,b为短半轴,若将X和Y用参数变量代替可改写为#1*#1/a*a+#2*#2/b*b=1椭圆可沿长半轴#1方向划分成无数小段直线,然后求出其相应端点坐标,再求出相对的数控车床中的坐标,再按直线进行编程加工。如下图所示:假设椭圆a=30,b=20,只加工半个椭圆,则此段椭圆精加工轨迹为:G0X0G1Z0F0.1#1=30N10#2=20*SQRT[1-30*30/#1*#1]SQRT表示开平方#3=#1-30椭圆的原点在工件坐标左侧30,所以椭圆上所有点坐标Z要减20#4=2*#2方程计算出的为半径值,需转化为直径值才能按直径编程。G1X[#4]Z[#3]F0.1沿小段直线插补加工#1=#1-1递减一小段距离,此值越小,椭圆越光滑。IF[#1GE0]GOTO10条件判断是否到达终点。G1X42直线切出外圆如果要再加上分层的粗加工,设偏移量为#5,则程序改为T0101M3S800G0X42Z5#5=36N5G0X[#5]G1Z0F0.1#1=30洛天示例供大家参考学习10N10#2=20*SQRT[1-30*30/#1*#1]SQRT表示开平方#3=#1-30椭圆的原点在工件坐标左侧30,所以椭圆上所有点坐标Z要减20#4=2*#2方程计算出的为半径值,需转化为直径值才能按直径编程。G1X[#4]Z[#3]F0.1沿小段直线插补加工#1=#1-1递减一小段距离,此值越小,椭圆越光滑。IF[#1GE0]GOTO10条件判断是否到达终点。G1X42直线插补切出外圆G0Z5#5=#5-4IF[#5GE0]GOTO5G0X150Z150M5M30以上程序分内外二层循环,外层循环为分层加工,内层循环为小段直线插补一条四分之一椭圆弧。由浅入深宏程序7-椭圆的参数方程编制宏程序车椭球面洛天示例供大家参考学习11椭圆的参数方程为:X=a*COSθY=b*SINθ可改写为:#1=30*cos[#3]#3为参数方程对应的中角度#2=20*sin[#3]相应程序修改如下:T0101M3S800G0X42Z5#6=36N5G0X[#6]G1Z0F0.1#3=0N10#1=30*COS[#3]#2=20*SIN[#3]#4=2*#2+#6计算出的为半径值,需转化为直径值才能与直径编程对应。#5=#1-30G1X[#4]Z[#5]F0.1沿小段直线插补加工#1=#1+3递减3度,此值越小,工件表面越光滑。IF[#1LE90]GOTO10条件判断是否到达终点。G1X42直线插补切到工件外圆之外G0Z5#6=#6-4IF[#6GE0]GOTO5G0X150Z150M5M30由浅入深宏程序8-车床任意位置椭圆宏程序的编制洛天示例供大家参考学习12不在轴线上的椭圆宏程序编制也没有什么特殊的,只是改下偏置的数值罢了。椭圆的参数方程为:X=a*COSθY=b*SINθ可改写为:#1=30*cos[#3]#3为参数方程对应的中角度#2=20*sin[#3]图中椭圆长半轴30mm,短半轴20mm,椭圆中心位置如图所示,不在轴线上,因此在计算编程所用的坐标值时,X方向要再加上40,Z方向要减去30+10=30相应程序如下:T0101M3S800G0X82Z5#6=36N5G0X[#6+40]G1Z-10F0.1#3=0N10#1=30*COS[#3]#2=20*SIN[#3]#4=2*#2+#6+40计算出的为半径值,需转化为直径值才能与直径编程对应。#5=#1-30-10G1X[#4]Z[#5]F0.1沿小段直线插补加工#1=#1+3递减3度,此值越小,工件表面越光滑。IF[#1LE90]GOTO10条件判断是否到达终点。G1X82直线插补切到工件外圆之外洛天示例供大家参考学习13G0Z5#6=#6-4IF[#6GE0]GOTO5G0X150Z150M5M30由浅入深宏程序9-车床旋转椭圆宏程序的编制洛天示例供大家参考学习14要对斜椭圆进行编程,首先要知道单个坐标点旋转所用的公式。如下图所示,单个点逆时针旋转一定角度,公式推导如下:s=rcos(a+b)=rcos(a)cos(b)–rsin(a)sin(b)(1.1)t=rsin(a+b)=rsin(a)cos(b)+rcos(a)sin(b)(1.2)其中x=rcos(a),y=rsin(a)代入(1.1),(1.2),s=xcos(b)–ysin(b)(1.3)t=xsin(b)+ycos(b)(1.4)根据下图,原来的点(#1,#2),旋转后的点(#4,#5),则公式:#4=#1*COS[30]-#2*SIN[30]#5=#1*SIN[