首页 理论教育 编写平行四边形网式点阵孔群宏程序

编写平行四边形网式点阵孔群宏程序

更新时间:2025-01-09 工作计划 版权反馈
【摘要】:利用宏变量(或参数)编制此类零件的通用程序。图3-38 平行四边形网式点阵孔群类零件钻削加工刀具路线示意图a)平行四边形网式点阵孔群类零件图 b)效果图由图3-38分析,可画出该宏程序的结构流程框图,如图3-39所示。

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

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

图3-38 平行四边形网式点阵孔群类零件钻削加工刀具路线示意图

a)平行四边形网式点阵孔群类零件图 b)效果图

由图3-38分析,可画出该宏程序的结构流程框图,如图3-39所示。

1.HNC—21/22M华中世纪星数控系统对平行四边形网式点阵孔群零件的用户宏程序

自变量含义:

#2=X0;X基准点存储

#3=Y0;Y基准点存储

#8=1;取值次数初始值

#17=1;行程次数初始值

#18=M;行孔数M

#19=A;平行四边形起始边与X轴的夹角A

#20=U;孔行间距U

#11=B;平行四边形起始边与终边的夹角B

#9=N;列孔数N

#7=V;孔列距V

%3325;宏程序名

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

图3-39 平行四边形网式点阵孔群钻削加工用户宏程序结构流程框图

N005#101=#2;X基准点存储值赋给#101

#102=#3;Y基准点存储值赋给#102

#31=#18;行孔数M赋给中间变量#31

#32=#19;平行四边形起始边与X轴的夹角A赋给中间变量#32

#33=#20;孔行间距U赋给中间变量#33

#100=1;计数器置1

N010 WHILE #100LT [#18*#9];如果#100大于M×N,则程序跳转到N095程序段

N020 WHILE #31GT0;如果#31小于0,则程序跳转到N050程序段

N025 G00 X[#101] Y[#102];将刀具移动到孔上方

N030 G98 G81 Z[#26] R[#18] F[#9] K0;调用循环程序钻定位孔

N035 #101=#2+#33*COS[#32*PI/180];计算坐标值X=X0+Tcos(S)

#102=#3+#33*SIN[#32*PI/180];计算坐标值Y=Y0+Tsin(S)

N040 #2=#101;X坐标存储

#3=#102;Y坐标存储

#31=#31-1;孔数减1

#100=#100+1;计数器计数

N045 ENDW;返回循环体2

N050 #8=#8+1;取值次数加1

N055 IF[#8/#17] EQ2;如果(#8/#17)不等于2,则程序转移到N065程序段

N060 #31=1;取第二组数据

#32=#19+#11;平行四边形终边与X轴的夹角

#30=#7:孔列间距V赋给中间变量#30

#17=#17+1;行程次数值+1

ELSE;

N065 IF#30EQ#19;如果#30不等于#19,则程序转移到N070程序段

#31=#18-1;孔数减1

#32=#19;取第一组数据

#33=#20;

#30=0;

ELSE

N070 IF#8EQ[2*#17-1];如果#8不等于(2*#17-1),则程序转移到N075程序

#18=#18-1;取第三组数据

#32=#19+180;

#32=#20;

#30=#32-180;

N075 ENDIF;

N080 ENDIF;

N085 ENDIF;

N090 ENDW;返回循环体1

N095 M99;子程序结束并返回主程序

2.SINUMERIK802D数控系统对平行四边形网式点阵孔群零件的用户R参数程序

R参数含义:

R2=X0;X基准点存储

R3=Y0;Y基准点存储

R8=1;取值次数初始值

R17=1;行程次数初始值

R18=M;行孔数M

R19=A;平行四边形起始边与X轴的夹角A

R20=U;孔行间距U

R11=B;平行四边形起始边与终边的夹角B

R9=N;列孔数N

R7=V;孔列间距V

L3325;R参数程序名

N010 R101=R2;X基准点存储值赋给R101

R102=R3;Y基准点存储值赋给R102

R31=R18;行孔数M赋给中间变量R31

R32=R19;平行四边形起始边与X轴的夹角A赋给中间变量R32

R33=R20;孔行间距U赋给中间变量R33

R100=1,计数器置1

R105=R18*R9;孔加工总数

N015 MARKE1:IF R33<=0 GOTOF MARKE0;如果R33小于或等于0,则程序跳转到MARKE0标志符

N025 MARKE7:R101=R2+R33*COS[R32];计算坐标值X=X0+TCOS(S)

R102=R3+R33*SIN[R32];计算坐标值Y=Y0+TSIN(S)

N030 G00 X=R101 Y=R102;指令机床移动X、Y坐标

N032 CLYC81(RTP,REP,SDIS,DP,DPR);调用固定循环程序钻定位孔

N034 R2=R101;X坐标存储

R3=R102;Y坐标存储

R31=R31-1;孔数减1

N035 IF R31>0 GOTOB MARKE7;如果R31大于零,则程序跳转到MARKE7标志符

N040 R8=R8+1;取值次数加1

N045 IF(R8/R17)==2 GOTOF MARKE2;如果(R8/R17)等于2,则程序跳转到MARKE2标志符

N050 IF R30==R19 GOTOF MARKE3;如果R30等于R19,则程序跳转到MARKE3标志符

N055 IF R8==(2*R17-1)GOTOF MARKE4;如果R8等于(2*R17-1),则程序跳转到MARKE4标志符

N060 MARKE3:R31=R8-1;孔数减1

R32=R19 R33=R20 R30=0;取第一组数据

N065 MARKE2:IF R32==R19 GOTOF MARKE5;如果R32等于R19,则程序跳转到MARKE5标志符

N070 R31=1 R32=R19+R11 R30=R7 R17=R17+1;取第二组数据

N075 IF R31==1 GOTOF MARKE5;如果R31等于1,则程序跳转到MARKE5标志符

N080 MARKE4:R31=R18-1 R32=R19+180 R32=R20 R30=R32-180;取第三组数据

N085 IF R33==R20 GOTOF MARKE5;如果R33等于R20,则程序跳转到MARKE5标志符

N090 MARKE5:IF(R8/2)==R9 GOTOF MARKE0;如果(R8/2)等于R9,则程序跳转到MARKE0标志符

N095 R100=R100+1;计数器计数

N100 MARKE0:RET;R参数程序结束并返回调用程序

3.FANUC0i数控系统对平行四边形网式点阵孔群零件的用户宏程序

自变量含义:

#2=X0;X基准点存储

#3=Y0;Y基准点存储

#8=1;取值次数初始值

#17=1;行程次数初始值

#18=M;行孔数M

#19=A;平行四边形起始边与X轴的夹角A

#20=U;孔行间距U

#11=B;平行四边形起始边与终边的夹角B

#9=N;列孔数N

#7=V;孔列间距V

O3325;宏程序名

N005 #101=#2;X基准点存储值赋给#101

#102=#3;Y基准点存储值赋给#102

#31=#18;行孔数M赋给中间变量#31(www.xing528.com)

#32=#19;平行四边形起始边与X轴的夹角A赋给中间变量#33

#33=#20;孔行间距U赋给中间变量#33

#100=1;计数器置1

N010 WHILE [#100LE[#18*#9]] DO1;如果#100大于M×N,则程序跳转到N115程序段

N015 IF[#33LE0] GOTO115;如果#33小于或等于0,则程序跳转到N115程序段

N020 WHILE [#31GE0] DO2;如果#31小于0,则程序跳转到N050程序段

N025 G00 X#101 Y#102;将刀具移动到孔上方;

N030 G98 G81 Z#26 R#18 F#9 K0;调用循环程序钻定位孔

N035 #101=#2+#33*COS[#32];计算坐标值X=X0+TCOS(S)

#102=#3+#33*SIN[#32];计算坐标值Y=Y0+TSIN(S)

N040#2=#101;X坐标存储

#3=#102;Y坐标存储

#31=#31-1;孔数减1

#100=#100+1;计数器计数

N045 END2;返回循环体2

N050 #8=#8+1;取值次数加1

N055 IF [#8/#17EQ2] GOTO80;如果#8/#17等于2,则程序转移到N080程序段

N060 IF [#30EQ#19] GOTO70;如果#30等于#19,则程序转移到N070程序段

N065 IF [#8EQ(2*#17-1)] GOTO90;如果#8等于(2*#17-1),则程序转移到N090 程序段

N070 #31=#18-1;孔数减1

#32=#19;取第一组数据

#33=#20;

#30=0;

N075 IF [#32EQ#19] GOTO100;如果#32等于#19,则程序转移到N100程序段

N080 #31=1;取第二组数据

#32=#19+#11;平行四边形终边与X轴的夹角

#30=#7;孔列间距V赋给中间变量#30

#17=#17+1;行程次数值+1

N085 IF [#31EQ1] GOTO100;如果#31等于1,则程序转移到N100程序段

N090 #31=#18-1;取第三组数据

#32=#19+180;

#33=#20;

#30=#32-180;

N095 IF [#33EQ#20] GOTO100;如果#33等于#20,则程序转移到N100程序段

N100 IF [#8/2EQ#9] GOTO115;如果#8/2等于#9,则程序转移到N115程序段

N110 END1;返回循环体1

N115 M99;子程序结束并返回主程序

4.编程举例

在铣床或加工中心上钻削图3-40所示一长方形零件平行四边形网式点阵孔群。平行四边形网式点阵孔群排列共有5行6列,每行孔数6个,每列孔数5个,相邻各行孔的列距为40.0mm,行距为45.0mm,左下角的第一个孔中心与工件坐标系原点的绝对坐标为(30,20),平行四边形的起始边与X轴的夹角为15°,平行四边形的起始边与终边的夹角为60°。试编写出其宏程序。

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

图3-40 平行四边形网式点阵孔群编程实例钻削加工走刀路线图

a)平行四边形网式点阵孔群编程实例尺寸图 b)效果图

解:

(1)工艺设计 建立工件坐标系,工件左下角为工件坐标系X、Y轴的零点,工件表面为工件坐标系Z轴的零点,机床坐标系偏置值设置在G54寄存器中。

采用每一行从左至右逐个钻削加工,再逐行递增从左至右逐个钻削加工,这样逐行递增进行平行四边形网式点阵孔群的加工。选择ϕ8mm的麻花钻,取主轴转速为800r/min,钻削进给速度为150mm/min,主轴起始位置在零件上方50.0mm处,刀具起始切削高度为4.0mm,最终钻孔深度Z-20.0mm。根据不同数控系统,运用变量(或参数)直接赋值编制宏程序。

(2)参考程序

1)HNC—21/22M华中世纪星数控系统。

O××××;文件名

%××××;程序号

N05 #2=30.0;X基准点存储

#3=20.0;Y基准点存储

#8=1;取值次数初始值

#17=1;行程次数初始值

#18=6;行孔数

#19=8;平行四边形起始边与X轴的夹角

#20=40;孔行间距

#11=50;平行四边形起始边与终止边的夹角

#9=5;列孔数

#7=45;孔列距

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 Y0 M07;刀具快速移动到工件坐标零点,打开切削液

N35 M98 P3325;调用钻削平行四边形网式点阵孔群的用户宏程序

N40 G00 Z100.0 M09;刀具退到工件上表面100mm处,切削液关闭

N45 G49;取消刀具长度补偿

N50 X0 Y0 M05;刀具退回工件坐标零点,主轴停止

N55 M30;程序结束并返回程序开头

%3325;平行四边形网式点阵孔群钻削用户宏程序(见前面)

M99;子程序结束,返回主程序

2)SINUMERIK 802D数控系统。

FZG×××××;主程序名

N05 R2=30.0;X基准点存储

R3=20.0;Y基准点存储

R8=1;取值次数初始值

R17=1;行程次数初始值

R18=6;行孔数

R19=8;平行四边形起始边与X轴的夹角

R20=40;孔行间距

R11=50;平行四边形起始边与终止边的夹角

R9=5;列孔数

R7=45;孔列距

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 M08;刀具快速移动到工件坐标零点,打开切削液

N30 L3325;调用钻削平行四边形网式点阵孔群的用户R参数程序

N35 G00 Z100.0 M09;刀具退到工件上表面100mm处,切削液关闭

N40 X0 Y0 M05;刀具退回工件坐标零点,主轴停止

N45 M02;程序结束并返回程序开头

L3325;平行四边形网式点阵孔群钻削用户R参数程序(见前面)

RET;R参数子程序结束,返回主程序

3)FANUC 0i数控系统。

O××××;主程序名

N05 #2=30.0;X基准点存储

#3=20.0;Y基准点存储

#8=1;取值次数初始值

#17=1;行程次数初始值

#18=6;行孔数

#19=8;平行四边形起始边与X轴的夹角

#20=40;孔行间距

#11=50;平行四边形起始边与终止边的夹角

#9=5;列孔数

#7=45;孔列距

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 Y0 M07;刀具快速移动到工件坐标零点,打开切削液

N35 G65 P3325;调用钻削平行四边形网式点阵孔群的用户宏程序

N40 G00 Z100.0 M09;刀具退到工件上表面100mm处,切削液关闭

N45 G49;取消刀具长度补偿

N50 X0 Y0 M05;刀具退回工件坐标零点,主轴停止

N55 M30;程序结束并返回程序开头

O3325;平行四边形网式点阵孔群钻削用户宏程序(见前面)

M99;子程序结束,返回主程序

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

我要反馈