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