首页 理论教育 矩形网式点阵孔群的宏程序编程

矩形网式点阵孔群的宏程序编程

时间:2023-06-25 理论教育 版权反馈
【摘要】:图3-35是在一零件上进行矩形网式点阵孔群钻(铣)削加工,假设共有M行、H列,孔数为M×H,横向孔距为U,纵向孔距为V,A为X轴与斜线的夹角。图3-35 矩形网式点阵孔群钻削加工刀具路线示意图a)矩形网式点阵孔群零件图 b)效果图由图3-35分析,可画出该宏程序的结构流程框图,如图3-36所示。

矩形网式点阵孔群的宏程序编程

图3-35是在一零件上进行矩形网式点阵孔群钻(铣)削加工,假设共有M行、H列,孔数为M×H,横向孔距为U,纵向孔距为V,A为X轴与斜线的夹角。其中X0为工件上左下边第一个孔的横坐标绝对值,Y0为工件上左下边第一个孔的纵坐标绝对值。利用宏变量(或参数)编制此类零件的通用加工程序。

978-7-111-33271-8-Chapter03-64.jpg

图3-35 矩形网式点阵孔群钻削加工刀具路线示意图

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;宏程序号

978-7-111-33271-8-Chapter03-65.jpg

图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。利用宏程序编制加工程序。

978-7-111-33271-8-Chapter03-66.jpg

图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;子程序结束,返回主程序

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈