基于FANUC宏程序的矩形型腔加工指令开发
圆形、矩形等规则型腔的加工在实际生产加工中应用广泛。并经常遇到在整体工件材料上去除加工余量分层加工。针对FANUC系统,若采用传统的手工编程方法,程序较长,且容易出错;宏指令编程,具有很好的灵活性、通用性,其在使用过程中,占用机床内存小,可以大大简化程序的编写,降低编程人员的劳动强度,提高工作效率。
其中矩形型腔的加工方式有很多,可以以Z字形走刀,也可以由内而外环形走刀。其中环形走刀方式由于加工余量均匀,而被广泛应用。矩形型腔铣削指令的调用方法如下:
G70 X__ Y__ Z__ I__ J__ K__ R__ H__ Q__ D__ F__;
指令中
X__ Y__ ——矩形中心坐标,如省略则为当前位置;
Z__ ——型腔底面深度(绝对坐标);
I__ ——型腔长度;
J__ ——型腔宽度;
K__ ——轴向快速接近的平面高度(绝对坐标);
R__ ——型腔圆角半径,如省略则为刀具半径;
H__ ——径向间距,如省略则为0.8倍刀具直径;
Q__ ——轴向每次切削深度,如省略则为0.7倍刀具直径;
D__ ——刀具半径,如不赋值则为当前刀具半径补偿值;
F__ ——径向进给速度。
首先用户可先在机床参数NO.220中设置70(自定义),即,G70等同于G65 P9010。然后建立9010号程序,程序内容如下:
O9010;
IF[#26 EQ #0] GOTO900;深度不赋值报警
IF[#6 EQ #0] GOTO900;未定义下刀平面报警
IF[#4 EQ #0] GOTO900;未定义型腔长度报警
IF[#5 EQ #0] GOTO900;未定义型腔宽度报警
IF[#7 EQ #0] GOTO1;
#7=#[2000+#4107]; 若不赋值用当前刀补值
N1 IF[#7 LE 0] GOTO900;刀具半径若小于或等于零,报警
IF[#11 NE #0] GOTO2;
#11=1.6*#7; 径向间距若省略则为0.8倍刀具直径
N2 IF[#17 NE #0] GOTO3;
#17=1.4*#7;每次切削深度若省略则为0.7倍刀具直径
N3 IF[#9 NE #0] GOTO4;
#9=#4109;
N4 #33=#4003;保存03组G代码
#32=#5003;保存初始平面
#31=#5/2-#7;
#30=#4/2-#7;
#8=#4/2-#18;
IF[#8 LT 0] GOTO900;若圆角大于边长报警
#10=#5/2-#18;圆角圆心至型腔中心的距离
IF[#10 LT 0] GOTO900;圆角不得大于边长
IF[#4 EQ #5] GOT07;正方形型腔
#12=[ABS[#4-#5]]/2;
IF[#4 GT #5] GOTO6;
#1=0;刀心X坐标初值
#2=#12;刀心Y坐标初值
GOTO8;
N6 #1=#12;宽度大于高度
#2=0;
GOTO8;
N7 #1=0;正方形
#2=0;
N8 G00 X#24 Y#25;快速定位到型腔中心
Z#6; 定位到下刀平面
IF[#33 EQ 90] GOTO10;
#27=-#26;
GOTO 11;
N10 #27=#6-#26;
N11 #16=#17;
#27=#27-#16;切削深度
WHILE[#27 GE 0] DO1;分层切削循环
G91 G01 Z-#16 F]#9/2];Z向进刀
#3=#11;刀间距
IF[#18 EQ #0] GOTO100;
IF[#4 GT [#18*2]] GOTO 15;
IF[#5 GT [#18*2]] GOTO200;
GOTO300;
N100 G01 X#1 Y#2;
X-[2*#1] Y-[2*#2];中心铣一刀
#1=#1+#3;
#2=#2+#3;
IF[#1 LT #30] GOTO10;
#3=#3+[#30-#1];变更间距
#1=#30;
#2=#31;
N10 WHILE[#1 LE #30] DO2;径向切削循环
IF[#4 LE #5] GOTO120;
G01 X-#3;
Y-#2;
X[2*#1];
Y[2*#2];
X-[2*#1];
Y-#2;
GOTO130;
N120 G01 Y-#3;
X#1;
Y[2*#2];
X-[2*#1];
Y-[2*#2];
X#1
N130 IF[#1 EQ #30] GOTO150;跳出循环
#1=#1+#3;
#2=#2+#3;
IF[#1 LT #30] GOTO140;
#3=#3+[#30-#1];
#1=#30;
#2=#31;
N140 END2;
N150 IF[#4 LT #5] GOTO160;
G01 X#30 F[2*#9];回到型腔中心
GOTO500;
N160 G01 Y#31 F[2*#9];
GOTO500;
N200 G01 X#1 Y#2;带圆角方腔nextpage
X-[2*#1] Y-[2*#2];
#1=#1+#3;
#2=#2+#3;
WHILE[#1 LT #8] DO2;
IF[#4 LT #5] GOTO210;
G01 X-#3;
Y-#2;
X[2*#1];
Y[2*#2];
X-[2*#1];
Y-#2;
GOTO220;
N210 G01 Y-#3;
X#1;
Y[2*#2];
X-[2*#1];
Y-[2*#2];
X#1;
N220 #1=#1+#3;
#2=#2+#3;
END2;
IF[#1 LT #30] GOTO230;
#3=#3+[#30-#1];
#1=#30;
N230 WHILE[#1 LE #30] DO2;
#13=#1-#8;圆角半径
IF[#4 LT #5] GOTO240;
G01 X-#3;
Y-#10;
G03 X#13 Y-#13 I#13;
G01 X[2*#8];
G03 X#13 Y#13 J#13;
G01 Y[2*#10];
G03 X-#13 Y#13 I-#13;
G01 X-[2*#8];
G03 X-#13 Y-#13 J-#13;
G01 Y-#10;
GOTO250;
N240 G01 Y-#3;
X#8;
G03 X#13 Y#13 J#13;
G01 X-#13 Y#13;
G03 X-#13 Y#13 I#13;
G01 X-[2*#8];
G03 X-#13 Y-#13 J-#13;
G01 Y-[2*#10];
G03 X#13 Y-#13 I#13;
G01 X#8;
N250 IF [#1 EQ #30] GOTO270;
#1=#1+#3;
IF [#1LT #30] GOTO260;
#3=#3+[#30-#1];
#1=#30;
N260 END2;
N270 IF[#4 LT #5] GOTO280;
G01 X#30 F[#9*2]; 回到型腔中心
GOTO500;
N280 G01 Y#31 F[#9*2]; 回到型腔中心
GOTO500;
N300 #1=#1+#3;
IF [#1 LT #30] GOTO310;
#1=#30;
N310 WHILE[#1 LE #30] DO2;
#13=#1-#8;
G01 X-#3;
G03 X#13 Y-#13 I#13;
G01 X[2*#8];
G03 Y[2*#13] J#13;
G01 X-[2*#8];
G03 X-#13 Y-#13 J-#13;
IF [#1 EQ #30] GOTO330;
#1=#1+#3;
IF[#1 LT #30] GOTO320;
#3=#3+[#30-#1];
#1=#30;
N320 END2;
N330 G01 X#30 F[2*#9]; 回到型腔中心
GOTO500;
N400 #2=#2+#3;
IF[#2 LT #3] GOTO410;
#2=#31;
WHILE[#2 LT #31] DO2;
#13=#2-#10;
G01 Y-#3;
G03X#13 Y#13 J#13;
G01 Y[2*#10];
G03 X-[2*#13] I-#13;
G01 Y-[2*#10];
G03 X#13 Y-#13 I#13;
IF[#2 EQ #31] GOTO420;
#2=#2+#3;
IF[#2 LE #31] GOTO410;
#3=#3+[#31-#2];
#2=#31;
N410 END2;
N420 G01 Y#31 F[2*#9]; 回到型腔中心
N500 IF[#27 EQ 0] GOTO520;跳出循环
#27=#27-#16;
IF[#27 GT 0] GOTO510;
#16=#16+#27;
#27=0;
N510 END1;
N520 G90 G00 Z#32;返回到初始平面
GOTO910;
N900 #3000=1;未赋值或赋值不正确,报警
N910 M99;
运用上面的指令可以方便快捷的编制矩形型腔的数控加工程序,在一定程度上提高程序编制的准确性及生产效率。
, ? mso-bidi-font-size: 宋体; FONT-FAMILY: black; ?COLOR:>N510 END1;
N520 G90 G00 Z#32;返回到初始平面
GOTO910;
N900 #3000=1;未赋值或赋值不正确,报警
N910 M99;
运用上面的指令可以方便快捷的编制矩形型腔的数控加工程序,在一定程度上提高程序编制的准确性及生产效率。
作者:西部车床,如若转载,请注明出处:https://www.lathe.cc/2022/05/7490.html