图3-35是在一零件上进行矩形网式点阵孔群钻(铣)削加工,假设共有M行、H列,孔数为M×H,横向孔距为U,纵向孔距为V,A为X轴与斜线的夹角。其中X0为工件上左下边第一个孔的横坐标绝对值,Y0为工件上左下边第一个孔的纵坐标绝对值。利用宏变量(或参数)编制此类零件的通用加工程序。
a)矩形网式点阵孔群零件图 b)效果图
由图3-35分析,可画出该宏程序的结构流程框图,如图3-36所示。
1.HNC—21/22M华中世纪星数控系统对矩形网式点阵孔群钻削的用户宏程序
局部变量含义:
#2=X0;将X0赋值给#2
#3=Y0;将Y0赋值给#3
#4=1;矩形网式点阵孔群行计数器置1
#5=1;矩形网式点阵孔群列计数器置1
#30=M;将行数M赋值给#30
#31=H;将列数H赋值给#31
#32=A;将角度A赋值给#32
#33=U;将列孔距U赋值给#33
#34=V;将行孔距V赋值给#34
#10=Z;最终加工深度
#11=R;安全距离
#12=F;切削进给速度
%3324;宏程序号
图3-36 矩形网式点阵孔群钻削加工用户宏程序结构流程框图
N010 WHILE #5LE#31;如果#5(孔列计数值)大于#31(孔列数),则跳转到N120程序段
N015 WHILE #4LE#30;如果#4(孔行计数值)大于#30(孔行数),则跳转到N050程序段
N020 #101=[#4-1]*#33;计算当前孔与第1个孔的孔中心行间距值
N025 #102=[#5-1]*#34;计算当前孔与第1个孔的孔中心列间距值
N030 G01 X[#101*COS[#32*PI/180]+#102*SIN[#32*PI/180]+#2]Y[#102*COS[#32*PI/180]+#101*SIN[#32*PI/180]+#3]F1000;指令机床移动到当前加工孔中心的X、Y坐标
N035 G81 Z[-#10] R[#11] F[#12] K0;调用固定循环程序钻定位孔
N040 #4=#4+1;行孔数加1
N045 ENDW;返回循环体
N050 #4=#30;将孔行数赋给变量#4
N055 WHILE #4GE1;如果#4小于1,则跳转到N100程序段
N060 #101=[#4-1]*#33;计算当前孔与第1个孔的孔中心行间距值
N065 #102=#5*#34;计算当前孔与第1个孔的孔中心列间距值
N070 #103=[#31-1]*#34;孔中心列间距值计算
N075 IF ABS[#102]GT ABS[#103];如果ABS[#102]大于ABS[#103],则跳转到N115程序段
N080 G01 X[#101*COS[#32*PI/180]+#102*SIN[#32*PI/180]+#2]Y[#102*COS[#32*PI/180]+#101*SIN[#32*PI/180]+#3]F1000;指令机床移动到当前加工孔中心的X、Y坐标
N085 G81 Z[-#10]R[#11]F[#12]K0;调用固定循环程序钻定位孔
N090 #4=#4-1;行孔数减1
N095 ENDW;返回循环体
N100 #5=#5+2;列孔数加2
N105 #4=1;行计数器置1
N110 ENDIF;条件满足结束,执行下条语句
N115 ENDW;返回循环体,执行下条语句
N120 M99;子程序结束并返回主程序
2.SINUMERIK802D数控系统对矩形网式点阵孔群钻削的用户R参数程序
R参数含义:
R2=X0;将X0赋值给R2
R3=Y0;将Y0赋值给R3
R4=1;矩形网式点阵孔群行计数器置1
R5=1;矩形网式点阵孔群列计数器置1
R30=M;将行数M赋值给R30
R31=H;将列数H赋值给R31
R32=A;将角度A赋值给R32
R33=U;将列孔距U赋值给R33
R34=V;将行孔距V赋值给R34
R12=F;切削进给速度
RTP=50;后退平面(绝对值)
REP=0;参考平面(绝对值)
SDIS=R;安全间隙(无符号)
DP=Z;最终钻孔深度(绝对值)
DPR=Z;相当于参考平面的最后钻孔深度(无符号)
L3324;参数程序名
N010 MARKE1:IF R5>R31 GOTOF MARKEO
N015 MARKE2:R101=[R4-1]*R33;计算当前孔与第1个孔的孔中心行间距值
R102=[R5-1]*R34;计算当前孔与第1个孔的孔中心列间距值
N020 G01 X=[R101*COS[R32]+R102*SIN[#32]+R2]Y=[R102*COS[R32]+R101*SIN[R32]+R3]F1000;指令机床移动到当前加工孔中心的X、Y坐标
N025 CYCL81(RTP,REP,SDIS,DP,DPR);调用循环程序钻定位孔
N030 R4=R4+1;行孔数加1
N035 IF R4<=R30 GOTOB MARKE2;如果R4(孔行计数值)小于或等于R30(孔行数),则程序跳转到标志符MARKE2
N040 R4=R30;将孔行数赋给变量R4
N045 MARKE3:R101=[R4-1]*R33;计算当前孔与第1个孔的孔中心行间距值
N050 R102=R5*R34;计算当前孔与第1个孔的孔中心列间距值
N055 R103=[R31-1]*R34;孔中心列间距值计算
N060 IF ABS(R102)>ABS(R103)GOTOF MARKE0;如果R102(孔列计数值)小于R103(孔列数)时,则程序跳转到标志符MARKE0
N065 G01 X=[R101*COS[R32]+R102*SIN[#32]+R2]Y=[R102*COS[R32]+R101*SIN[R32]+R3]F1000;指令机床移动到当前加工孔中心的X、Y坐标
N070 CYCL81(RTP,REP,SDIS,DP,DPR);调用循环程序钻定位孔
N075 R4=R4-1;行孔数减1
N080 IF R4<=1 GOTOB MARKE3;如果R4(孔行计数值)小于或等于1时,则程序返回到标志符MARKE3程序段
N085 R5=R5+2;孔列计数器值加2
N090 R4=1;孔行计数器置1
N095 IF R5<=R31 GOTOB MARKE1;如果R5(孔列计数值)小于或等于R31时,则程序返回到标志符MARKE1
N100 MARKE0:RET;R参数子程序结束并返回主程序
3.FANUC0i数控系统对矩形网式点阵孔群钻削的用户宏程序
自变量含义:
#2=X0;将X0赋值给#2
#3=Y0;将Y0赋值给#3
#4=1;矩形网式点阵孔群行计数器置1
#5=1;矩形网式点阵孔群列计数器置1
#30=M;将行数M赋值给#30
#31=H;将列数H赋值给#31
#32=A;将角度A赋值给#32
#33=U;将列孔距U赋值给#33
#34=V;将行孔距V赋值给#34
#10=Z;最终加工深度
#11=R;安全距离
#12=F;切削进给速度
O3324;宏程序名
N010 WHILE [#5LE#31]DO1;如果#5(孔列计数值)>#31(孔列数)时,则程序跳转到N115程序段
N015 WHILE [#4LE#30]DO2;如果#4(孔行计数值)>#30(孔行数)时,则程序跳转到N050程序段
N020 #101=[#4-1]*#33;计算当前孔与第1个孔的孔中心行间距值
N025 #102=[#5-1]*#34;计算当前孔与第1个孔的孔中心列间距值
N030 G01 X[#101*COS[#32]+#102*SIN[#32]+#2]Y[#102*COS[#32]+#101*SIN[#32]+#3]F1000;指令机床移动到当前加工孔中心的X、Y坐标
N035 G81 Z-#10 R#11 F#12 K0;调用固定循环程序钻定位孔
N040 #4=#4+1;行孔数加1
N045 END2;返回循环体2(www.xing528.com)
N050 #4=#30;将孔行数赋给变量#4
N055 WHILE [#4GE1] DO3;如果#4小于1,则跳转到N100程序段
N060 #101=[#4-1]*#33;计算当前孔与第1个孔的孔中心行间距值
N065 #102=#5*#34;计算当前孔与第1个孔的孔中心列间距值
N070 #103=[#31-1]*#34;孔中心列间距值计算
N075 IF[ABS[#102]GT ABS[#103]]GOTO 095;如果ABS[#102]大于ABS[#103],则跳转到N100程序段
N080 G01 X[#101*COS[#32]+#102*SIN[#32]+#2]Y[#102*COS[#32]+#101*SIN[#32]+#3]F1000;指令机床移动到当前加工孔中心的X、Y坐标
N085 G81 Z-#10 R#11 F#12 K0;调用固定循环程序钻定位孔
N090 #4=#4-1;行孔数减1
N095 ENDW3;返回循环体
N100 #5=#5+2;列孔数加2
N105 #4=1;行计数器置1
N110 END1;返回循环体
N115 M99;子程序结束并返回主程序
4.编程举例
在铣床或加工中心上钻削图3-37所示长方形零件上的矩形网式群孔。钻孔直径为ϕ6.8mm,主轴转速为800r/min,钻孔轴进给速度为150mm/min,钻孔深度为20.0mm,钻孔轴起始位置在工件上方50.0mm。利用宏程序编制加工程序。
图3-37 矩形网式点阵孔群钻削加工刀具走刀路线图
a)刀具走刀路线图 b)效果图
解:
(1)工艺设计 建立工件坐标系,工件左下角为工件坐标系X、Y轴的零点,工件表面为工件坐标系Z轴的零点,机床坐标系偏置值设置在G54寄存器中。
采用图3-37a所示刀具位移路线图钻削矩形网式孔群,选择ϕ6.8mm的麻花钻,取主轴转速为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 #2=20.0;将20.0赋值给#2
#3=10.0;将10.0赋值给#3
#4=1;矩形网式点阵孔群行计数器置1
#5=1;矩形网式点阵孔群列计数器置1
#30=4.0;将行数4.0赋值给#30
#31=6.0;将列数6.0赋值给#31
#32=15.0;将角度15°赋值给#32
#33=10.0;将列孔距10.0赋值给#33
#34=10.0;将行孔距10.0赋值给#34
#10=-20.0;最终加工深度
#11=4.0;安全距离
#12=150.0;切削进给速度
N35 M98 P3324;调用钻削矩形网式点阵孔群的用户宏程序
N40 G00 Z100.0 M09;刀具退到工件上表面100mm处,切削液关闭
N45 G49;取消刀具长度补偿
N50 X0 Y0 M05;刀具退回工件坐标零点,主轴停止
N55 M30;程序结束并返回程序开头
%3324;矩形网式点阵孔群钻削用户宏程序(见前面)
︙
M99;子程序结束,返回主程序
2)SINUMERIK 802D数控系统。
FZG×××××;主程序名
N05 R2=20.0;将20.0赋值给R2
R3=10.0;将10.0赋值给R3
R4=1;矩形网式点阵孔群行计数器置1
R5=1;矩形网式点阵孔群列计数器置1
R30=4.0;将行数4.0赋值给R30
R31=6.0;将列数6.0赋值给R31
R32=15.0;将角度15°赋值给R32
R33=10.0;将列孔距10赋值给R33
R34=10.0;将行孔距10赋值给R34
R12=150.0;切削进给速度
RTP=50.0;后退平面(绝对值)
REP=0;参考平面(绝对值)
SDIS=4.0;安全间隙(无符号)
DP=-20.0;最终钻孔深度(绝对值)
DPR=0;相当于参考平面的最后钻孔深度(无符号)
N10 T1 D1;调用1号刀,1号刀补
N15 G17 G90 G71 G94 G54 G40;工艺加工状态设置
N20 G00 Z50.0 S600 M03;建立刀具长度补偿,主轴正转,转速为600r/min
N25 X0.0 Y0.0 M07;刀具快速移动到工件坐标零点,打开切削液
N30 L3324;调用钻削矩形网式点阵群孔的用户R参数程序
N35 G00 Z100.0 M09;刀具退到工件上表面100mm处,切削液关闭
N40 X0 Y0 M05;刀具退回工件坐标零点,主轴停止
N45 M02;程序结束并返回程序开头
L3324;矩形网式点阵孔群钻削用户R参数程序(见前面)
︙
RET;R参数子程序结束,返回主程序
3)FANUC 0i数控系统。
O××××;主程序名
N05 #2=20.0;将20.0赋值给#2
#3=10.0;将10.0赋值给#3
#4=1;矩形网式点阵孔群行计数器置1
#5=1;矩形网式点阵孔群列计数器置1
#30=4.0;将行数4.0赋值给#30
#31=6.0;将列数6.0赋值给#31
#32=15.0;将角度15°赋值给#32
#33=10.0;将列孔距10.0赋值给#33
#34=10.0;将行孔距10.0赋值给#34
#10=-20.0;最终加工深度
#11=4.0;安全距离
#12=150.0;切削进给速度
N10 T01 M06;调用1号刀
N15 G17 G90 G21 G94 G54 G40 G49 G80;工艺加工状态设置
N20 G43 G00 Z50.0 H01 S600 M03;建立刀具长度补偿,主轴正转,转速为600r/min
N25 X0.0 Y0.0 M07;刀具快速移动到工件坐标零点,打开切削液
N30 G65 P3324;调用钻削矩形网式点阵孔群的用户宏程序
N35 G00 Z100.0 M09;刀具退到工件上表面100mm处,切削液关闭
N40 G49;取消刀具长度补偿
N45 X0 Y0 M05;刀具退回工件坐标零点,主轴停止
N50 M30;程序结束并返回程序开头
O3324;矩形网式点阵孔群钻削用户宏程序(见前面)
︙
M99;子程序结束,返回主程序
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。