图3-47是在一长方形零件上进行交错排列的网格点阵孔群钻(铣)削加工。假设点阵孔群排列成行,共有行m,每行孔数交替n与(n-1)个,孔位交错排列,相邻各行孔的位置在X坐标上偏移半个孔距。
设孔距为a,行距为b,左下角的第一个孔与工件坐标系原点的距离为X0、Y0,XT为偶数行内最右边那个孔的X坐标值,则
XT=X0+(n-1)a-(a/2)=X0+(n-1.5)a
为了减少空行程时间,第1行从左至右逐个加工,第2行则从右至左逐个加工,这样交替进行,空行程时间最短。为此,在框图中要对行数作奇偶判别。令每行的序数减1等于j,当j为偶数时(包括0),从左至右逐个加工;当j为奇数时,从右至左逐个加工。
由以上分析,可画出该宏程序的结构流程框图,如图3-48所示。
a)交错排列的网格点阵孔群类零件图 b)效果图
图3-48 交错排列的网格点阵孔群的用户宏程序结构流程框图
1.HNC—21/22M华中世纪星数控系统对交错排列的网格点阵孔群零件的用户宏程序
#1=X0;左下角孔的X绝对坐标值(即X0)
#2=Y0;左下角孔的Y绝对坐标值(即Y0)
#3=XT;图3-47中的XT值
#4=b;各行的距离(即b)
#5=a;孔距(即a)
#6=n;孔数(即n)
#7=m;行数(即m)
#8=Z;最终钻孔深度
#9=R;刀具离工件表面的安全距离
#10=F;进给速度
#107=#6;
%××××;程序号
N010 #100=0;行计数器置零
N015 WHILE#100LT#7;当#100大于或等于#7时,则程序跳转到N105程序段
N020 #101=#100*#4;第i个行距和
N025 #102=#2+#101;当前Y的坐标值
N030 #104=0;列计数器置零
N035 WHILE#104LT#107;当#104大于或等于#107时,则程序跳转到N095程序段
N040 #105=#104*#5;第j个列距和
N045 #111=#100-2*TRUNC[#100/2];取余数
N050 IF#111EQ0;当#111=0时,则程序转移到N070程序段
N055 #106=#3-#105;计算第j个孔的X坐标值
N060 #107=#6-1;孔数减1
N065 ELSE;
N070 #106=#1+#105;第j个孔的X坐标值
#107=#6;将孔数(即n)值赋给中间变数#107
N075 ENDIF;
N080 G90 G99 G81 X[#106] Y[#102] Z[#8] R[#9] F[#10];执行孔加工固定循环
N085 #104=#104+1;列计数器加1
N090 ENDW;返回循环体
N095 #100=#100+1;行计数器加1
N100 ENDW;返回循环体
N105 G80;取消固定循环
N110 M99;返回主程序
2.SINUMERIK802D数控系统对交错排列的网格点阵孔群零件的用户R参数程序
R参数含义:
R1=X0;左下角孔的X绝对坐标值(即X0)
R2=Y0;左下角孔的Y绝对坐标值(即Y0)
R3=XT;图3-47中的XT值
R4=b;各行的距离(即b)
R5=a;孔距(即a)
R6=n;孔数(即n)
R7=m;行数(即m)
R8=Z;最终钻孔深度
R9=R;刀具离工件表面的安全距离
R10=F;进给速度
R107=R6;
RTP=50;后退平面(绝对值)
REP=0;参考平面(绝对值)
SDIS=0;安全间隙(无符号)
DP=Z;最终钻孔深度(绝对值)
DPR=Z;相当于参考平面的最后钻孔深度(无符号)
L3328.SPF;R参数子程序名
N010 R100=0;行计数器置零
N020 MARKE3:R101=R100*R4;第i个行距和
N025 R102=R2+R101;当前Y的坐标值
N030 R104=0;列计数器置零
N035 MARKE2:R105=R104*R5;第j个列距和
N040 R111=R100-2*TRUNC(R100/2);取余数
N045 IF R111==0 GOTOF MARKE1;当R111=0时,则程序转移到N065MARKE1程序段
N050 R106=R3-R105;计算第j个孔的X坐标值
N055 R107=R6-1;孔数减1
N060 GOTOF MARKE0;无条件转移到N075程序段
N065 MARKE1:R106=R1+R105;第j个孔的X坐标值
N070 R107=R6;将孔数(即n)值赋给中间变数R107
N075 MARKE0:G90 G99 G81 X=R106 Y=R102;执行孔加工
N078 CYCL81(RTP,REP,SDIS,DP,DPR);调用固定循环程序钻定该孔
N080 Z=R9;快速下降到安全高度
N085 Z=R8 F=R10;以工进速度R10切削进给到最终深度
N090 G00 Z=R9;快速退回到安全高度
N095 R104=R104+1;列计数器加1
N100 IF R104<R107 GOTOB MARKE2;当R104<R107时,则程序转移到标志符MARKE2
N105 R100=R100+1;行计数器加1
N110 IF R100<R7 GOTOB MARKE3;当R100<R7时,则程序转移到标志符MARKE3
N120 RET;R参数子程序结束,返回主程序
3.FANUC0i数控系统对该零件的用户宏程序
自变量含义:
#1=X0;左下角孔的X绝对坐标值(即X0)
#2=Y0;左下角孔的Y绝对坐标值(即Y0)
#3=XT;图3-47中的XT值
#4=b;各行的距离(即b)
#5=a;孔距(即a)
#6=n;孔数(即n)
#7=m;行数(即m)
#8=Z;最终钻孔深度
#9=R;刀具离工件表面的安全距离(www.xing528.com)
#10=F;进给速度
O3328;宏程序名
N010 #100=0;行计数器置零
N020 #101=#100*#4;第i个行距和
N025 #102=#2+#101;当前Y的坐标值
N030 #104=0;列计数器置零
N035 #105=#104*#5;第j个列距和
N040 #111=#100-2*TRUNC(#100/2);取余数
N045 IF[#111EQ0] GOTO 065;当#111=0时,则程序转移到N065程序段
N050 #106=#3-#105;计算第j个孔的X坐标值
N055 #107=#6-1;孔数减1
N060 GOTO 075;无条件转移到N075程序段
N065 #106=#1+#105;第j个孔的X坐标值
N070 #107=#6;将孔数(即n)值赋给中间变数#107
N075 G90 G99 G81 X#106 Y#102 Z#8 R#9 F#10;执行孔加工固定循环
N080 #104=#104+1;列计数器加1
N085 IF[#104LT#107] GOTO 035;当#104小于#107时,则程序转移到N035程序段
N090 #100=#100+1;行计数器加1
N095 IF[#100LT#7] GOTO 020;当#100小于#7时,则程序转移到N020程序段
N100 G80;取消固定循环
N105 M99;返回主程序
4.编程举例
在铣床或加工中心上钻削图3-49所示一长方形零件上交错排列的网格点阵孔群。交错
图3-49 交错排列的网格点阵孔群编程实例零件走刀路线示意图
a)零件尺寸图 b)效果图
排列的网格点阵孔群排列共有6行,每行孔数交替10与(10-1)个,孔位交错排列,相邻各行孔的位置在X坐标上偏移半个孔距。孔距为10.0mm,行距为10.0mm,左下角的第1个孔与工件坐标系原点的距离为(10,10),偶数行内最右边那个孔距离工件坐标原点的X坐标值为95.0mm。试编写出其宏程序。
解:
(1)工艺设计 建立工件坐标系,工件左下角为工件坐标系X、Y轴的零点,工件表面为工件坐标系Z轴的零点,机床坐标系偏置值设置在G54寄存器中。
为了减少空行程时间,采用第1行从左至右逐个钻削加工,第2行则从右至左逐个钻削加工,这样交替进行交错排列的网格点阵孔群的加工。选择ϕ5mm的麻花钻,取主轴转速为800r/min,钻削进给速度为150mm/min,主轴起始位置在零件上方50.0mm处,刀具起始切削高度为4.0mm,最终钻孔深度为Z-20.0mm。根据不同数控系统,运用变量(或参数)直接赋值编制宏程序。
(2)参考程序
1)HNC—21/22M华中世纪星数控系统。
O××××;文件名
%××××;主程序号
N10 T01 M06;调用1号刀
N15 G17 G90 G21 G94 G54 G40 G49 G80;工艺加工初始状态设置
N20 G43 G00 Z50.0 H01 S800 M03;建立刀具长度补偿,主轴正转,转速为800r/min
N25 X0.0 Y0.0 M07;刀具快速移动到工件坐标零点,打开切削液
N30#1=10.0;左下角孔的X绝对坐标值(即X0)
#2=10.0;左下角孔的Y绝对坐标值(即Y0)
#3=95.0;图3-47中的XT值
#4=10.0;各行的距离(即b)
#5=10.0;孔距(即a)
#6=10.0;孔数(即n)
#7=6.0;行数(即m)
#8=-20.0;最终钻孔深度
#9=4.0;刀具离工件表面的安全距离
#10=150.0;进给速度
#107=#6;孔数初始值赋给中间变量#107
N35 M98 P3328;调用钻削交错排列的网格点阵孔群的用户宏程序
N40 G00 Z100.0 M09;刀具退到工件上表面100mm处,切削液关闭
N45 G49;取消刀具长度补偿
N50 X0 Y0 M05;刀具退回工件坐标零点,主轴停止
N55 M30;程序结束并返回程序开头
%3328;交错排列的网格孔群钻削用户宏程序(见前面)
︙
M99;子程序结束,返回主程序
2)SINUMERIK 802D数控系统。
FZG×××××;主程序名
N05 R1=10.0 R2=10.0 R3=95.0 R4=10.0 R5=10.0 R6=10 R7=6.0 R8=-20.0 R9=4.0 R10=150.0 R107=R6;参数设置
N10 T1 D1;调用1号刀,1号刀补
N15 G17 G90 G71 G94 G54 G40;工艺加工状态设置
N20 G00 Z50.0 S800 M03;建立刀具长度补偿,主轴正转,转速为800r/min
N25 X0.0 Y0.0 M07;刀具快速移动到工件坐标零点,打开切削液
N30 L3328;调用钻削交错排列的网格点阵孔群的用户R参数子程序
N35 G00 Z100.0 M09;刀具退到工件上表面100mm处,切削液关闭
N40 X0 Y0 M05;刀具退回工件坐标零点,主轴停止
N45 M02;程序结束并返回程序开头
L3328;交错排列的网格孔群钻削用户R参数子程序(见前面)
︙
RET;R参数子程序结束,返回主程序
3)FANUC 0i数控系统。
O××××;主程序名
N05 #1=10.0;左下角孔的X绝对坐标值(即X0)
#2=10.0;左下角孔的Y绝对坐标值(即Y0)
#3=95.0;图3-47中的XT值
#4=10.0;各行的距离(即b)
#5=10.0;孔距(即a)
#6=10.0;孔数(即n)
#7=6.0;行数(即m)
#8=-20.0;最终钻孔深度
#9=4.0;刀具离工件表面的安全距离
#10=150.0;进给速度
#107=#6;孔数初始值赋给中间变量#107
N10 T01 M06;调用1号刀
N15 G17 G90 G21 G94 G54 G40 G49 G80;工艺加工状态设置
N20 G43 G00 Z50.0 H01 S800 M03;建立刀具长度补偿,主轴正转,转速为800r/min
N25 X0.0 Y0.0 M07;刀具快速移动到工件坐标零点,打开切削液
N30 G65 P3328;调用钻削交错排列的网格点阵孔群的用户宏程序
N35 G00 Z100.0 M09;刀具退到工件上表面100mm处,切削液关闭
N40 G49;取消刀具长度补偿
N45 X0 Y0 M05;刀具退回工件坐标零点,主轴停止
N50 M30;程序结束并返回程序开头
O3328;交错排列的网格孔群钻削用户宏程序(见前面)
︙
M99;子程序结束,返回主程序
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。