首页 理论教育 矩形框式点阵孔群宏程序编程优化技巧

矩形框式点阵孔群宏程序编程优化技巧

时间:2023-06-25 理论教育 版权反馈
【摘要】:图3-29是在一零件上进行矩形框式点阵孔群钻(铣)削加工。矩形框式点阵孔群共有二行二列,假设每行孔数为H,每列孔数为M,每行孔间距为U,每列孔间距为V,其中X0为工件左下角第一个孔的横坐标绝对值,Y0为工件左下角第一个孔的纵坐标绝对值,Z为垂向最终加工深度,R为刀具离开工件上表面的安全距离,A为矩形框式点阵孔群起始边与X轴的夹角。由图3-29分析,可画出该宏程序的结构流程框图,如图3-30所示。

矩形框式点阵孔群宏程序编程优化技巧

图3-29是在一零件上进行矩形框式点阵孔群钻(铣)削加工。矩形框式点阵孔群共有二行二列,假设每行孔数为H,每列孔数为M,每行孔间距为U,每列孔间距为V,其中X0为工件左下角第一个孔的横坐标绝对值,Y0为工件左下角第一个孔的纵坐标绝对值,Z为垂向最终加工深度,R为刀具离开工件上表面的安全距离,A为矩形框式点阵孔群起始边与X轴的夹角。

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

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

图3-29 矩形框式点阵孔群刀具路线示意图

a)矩形框式点阵孔群零件图 b)效果图

1.HNC—21/22M华中世纪星数控系统对矩形框式点阵孔群钻削的用户宏程序

局部变量含义:

#101=X0;第一个孔的X绝对坐标值

#102=Y0;第一个孔的Y绝对坐标值

#1=#101;将第一个孔的X绝对坐标值赋给变量#1

#2=#102;将第一个孔的Y绝对坐标值赋给变量#2

#27=1;框式点阵孔群行数初始值

#28=1;框式点阵孔群列数初始值

#29=A;旋转角度

#30=H;X轴孔数

#31=M;Y轴孔数

#32=U;X轴孔间距

#33=V;Y轴孔间距

#25=Z;最终钻孔深度

#17=R;安全间隙

%3322;宏程序号

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

图3-30 框式点阵孔群的宏程序结构流程框图

N010 WHILE #27LE#30;如果#27大于#30,则程序跳转到N040程序段

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

N025 G98 G81 Z[#25] R[#17] F[#5] K0;调用循环程序钻定位

N030 #101=#1+#32*COS[#29*PI/180];计算孔的X绝对坐标值

#102=#2+#32*SIN[#29*PI/180];计算孔的Y绝对坐标值

#1=#101;将X绝对坐标值赋给变量#1存储

#2=#102;将Y绝对坐标值赋给变量#2存储

#27=#27+1;孔数加1

N035 ENDW;返回循环体

N040 WHILE #28LE#31;如果#28大于#31,则程序跳转到N070程序段

N045 #101=#1-#33*SIN[#29*PI/180];计算孔的X绝对坐标值

#102=#2+#33*COS[#29*PI/180];计算孔的Y绝对坐标值

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

N055 G98 G81 Z[#25] R[#17] F[#5] K0;调用循环程序钻定位孔

N060 #1=#101;将X绝对坐标值赋给变量#1存储

#2=#102;将Y绝对坐标值赋给变量#2存储

#28=#28+1;孔数加1

N065 ENDW;返回循环体

N070 #27=1;赋初始值

N075 WHILE #27LE#30;如果#27大于#30,则程序跳转到N105程序段

N080 #101=#1-#32*COS[#29*PI/180];计算孔的X绝对坐标值

#102=#2-#32*SIN[#29*PI/180];计算孔的Y绝对坐标值

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

N090 G98 G81 Z[#25] R[#17] F[#5] K0;调用循环程序钻定位孔

N095 #1=#101;将X绝对坐标值赋给变量#1存储

#2=#102;将Y绝对坐标值赋给变量#2存储

#27=#27+1;孔数加1

N100 ENDW;返回循环体

N105 #28=1;赋初始值

N110 WHILE #28LE#31;如果#28大于#31,则程序跳转到N140程序段

N115 #101=#1+#33*SIN[#29*PI/180];计算孔的X绝对坐标值

#102=#2-#33*COS[#29*PI/180];计算孔的Y绝对坐标值

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

N125 G98 G81 Z[#25] R[#17] F[#5]K0;调用循环程序钻定位孔

N130 #1=#101;将X绝对坐标值赋给变量#1存储

#2=#102;将Y绝对坐标值赋给变量#2存储

#28=#28+1;孔数加1

N135 ENDW;返回循环体

N140 G80;取消固定循环

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

2.SINUMERIK802D数控系统对矩形框式点阵孔群钻削的用户R参数程序

R参数含义:

R101=X0;第一个孔的X绝对坐标值

R102=Y0;第一个孔的Y绝对坐标值

R2=R101;将第一个孔的X绝对坐标值赋给变量R2

R3=R102;将第一个孔的Y绝对坐标值赋给变量R3

R27=1;框式点阵孔群行数初始值

R28=1;框式点阵孔群列数初始值

R29=A;旋转角度

R30=H;X轴孔数

R31=M;Y轴孔数

R32=U;X轴孔间距

R33=V;Y轴孔间距

RTP=50;后退平面(绝对值)

REP=0;参考平面(绝对值)

SDIS=R;安全间隙(无符号)

DP=Z;最终钻孔深度(绝对值)

DPR=Z;相当于参考平面的最后钻孔深度(无符号输入)

L3322;R参数程序名

N015 MAREK1:G00 X=R101 Y=R102;将刀具移动到孔上方

N020 CYCL81(RTP,REP,SDIS,DP,DPR);调用循环程序钻定位孔

N025 R101=R2+R32*COS(R29);计算孔的X绝对坐标值

R102=R3+R32*SIN(R29);计算孔的Y绝对坐标值

R2=R101;将X绝对坐标值赋给变量R2存储

R3=R102;将Y绝对坐标值赋给变量R3存储

R27=R27+1;孔数加1

N030 IF R27<=R30 GOTOB MARKE1;如果R27小于或等于R30,则程序跳转到MARKE1

N035 MARKE2:R101=R2-R33*SIN(R29);计算孔的X绝对坐标值

R102=R3+R33*COS(R29);计算孔的Y绝对坐标值

N040 G00 X=R101 Y=R102;将刀具移动到孔上方

N045 CYCL81(RTP,REP,SDIS,DP,DPR);调用循环程序钻定位孔

N050 R2=R101;将X绝对坐标值赋给变量R2存储

R3=R102;将Y绝对坐标值赋给变量R3存储

R28=R28+1;孔数加1

N055 IF R28<=R31 GOTOB MARKE2;如果R28小于或等于R31,则程序跳转到MARKE2

N060 R27=1;孔数置初始值

N065 MARKE3:R101=R2-R32*COS(R29);计算孔的X绝对坐标值

R102=R3-R32*SIN(R29);计算孔的Y绝对坐标值

N070 G00 X=R101 Y=R102;将刀具移动到孔上方

N075 CYCL81(RTP,REP,SDIS,DP,DPR);调用循环程序钻定位孔

N080 R2=R101;将X绝对坐标值赋给变量R2存储

R3=R102;将Y绝对坐标值赋给变量R3存储

R27=R27+1;孔数加1

N085 IF R27<R30 GOTO MARKE3;如果R27小于R30,则程序跳转到MARKE3

N090 R28=1;孔数置初始值

N095 MARKE4:R101=R2+R33*SIN(R29);计算孔的X绝对坐标值

R102=R3-R33*COS(R29);计算孔的Y绝对坐标值

N100 G00 X=R101 Y=R102;将刀具移动到孔上方

N105 CYCL81(RTP,REP,SDIS,DP,DPR);调用循环程序钻定位孔

N110 R2=R101;将X绝对坐标值赋给变量R2存储

R3=R102;将Y绝对坐标值赋给变量R3存储

R28=R28+1;孔数加1

N115 IF R28<R31 GOTO MARKE4;如果R28小于R31,则程序跳转到MARKE4

N120 RET;程序结束并返回主程序

3.FANUC0i数控系统对矩形框式点阵孔群钻削的用户宏程序

自变量含义:

#101=X0;第一个孔的X绝对坐标值

#102=Y0;第一个孔的Y绝对坐标值

#2=#101;将第一个孔的X绝对坐标值赋给变量#2

#3=#102;将第一个孔的Y绝对坐标值赋给变量#3

#27=1;框式点阵孔群行数初始值

#28=1;框式点阵孔群列数初始值

#29=A;旋转角度

#30=H;X轴孔数

#31=M;Y轴孔数

#32=U;X轴孔间距

#33=V;Y轴孔间距

#26=Z;最终钻孔深度

#18=R;安全间隙

#9=F;进给速度

O3322;宏程序名

N010 WHILE [#27LE#30] D01;如果#27大于#30,则程序跳转到N040程序段

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

N025 G98 G81 Z#26 R#18 F#9 K0;调用循环程序钻定位孔(www.xing528.com)

N030 #101=#2+#32*cos(#29);计算孔的X绝对坐标值

#102=#3+#32*sin[#29];计算孔的Y绝对坐标值

#2=#101;将X绝对坐标值赋给变量#2存储

#3=#102;将Y绝对坐标值赋给变量#3存储

#27=#27+1;孔数加1

N035 END1;返回循环体

N040 WHILE [#28LE#31] DO2;如果#28大于#31,则程序跳转到N070程序段

N045 #101=#2-#33*SIN[#29];计算孔的X绝对坐标值

#102=#3+#33*COS[#29];计算孔的Y绝对坐标值

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

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

N060 #2=#101;将X绝对坐标值赋给变量#2存储

#3=#102;将Y绝对坐标值赋给变量#3存储

#28=#28+1;孔数加1

N065 END2;返回循环体

N070 #27=1;行孔数置初始值

N075 WHILE [#27LE#30] DO3;如果#27大于#30,则程序跳转到N105程序段

N080 #101=#2-#32*COS[#29];计算孔的X绝对坐标值

#102=#3-#32*SIN[#29];计算孔的Y绝对坐标值

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

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

N095 #2=#101;将X绝对坐标值赋给变量#2存储

#3=#102;将Y绝对坐标值赋给变量#3存储

#27=#27+1;孔数加1

N100 END3;返回循环体

N105 #28=1;列孔数置初始值

N110 WHILE [#28LE#31] DO3;如果#28大于#31,则程序跳转到N140程序段

N115 #101=#2+#33*SIN[#29];计算孔的X绝对坐标值

#102=#3-#33*COS[#29];计算孔的Y绝对坐标值

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

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

N130 #2=#101;将X绝对坐标值赋给变量#2存储

#3=#102;将Y绝对坐标值赋给变量#3存储

#28=#28+1;孔数加1

N135 END3;返回循环体

N140 G80;取消固定循环

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

4.编程举例

铣床或加工中心上钻削图3-31所示长方形零件上的矩形框式孔群。钻孔直径为ϕ6mm,主轴转速为800r/min,钻孔轴进给速度为150mm/min,钻孔深度为20.0mm,钻孔轴起始位置在工件上方50.0mm。利用宏程序编制加工程序。

解:

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

采用沿着方形零件的矩形框式孔群中心线逆时针位移钻削方式钻削孔群,选择ϕ6mm的麻花钻,取主轴转速为800r/min,钻削进给速度为150mm/min,主轴起始位置在零件上方50.0mm处,刀具起始切削高度4.0mm,最终加工深度Z-25.0mm。根据不同数控系统,运用变量(或参数)直接赋值编制宏程序。

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

图3-31 方形零件的矩形框式点阵孔群编程实例钻削位移路线示意图

a)方形零件的矩形框式点阵孔群编程实例零件尺寸图 b)效果图

(2)参考程序

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

O××××;文件名

%3322;程序号

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 #101=10.0;第一个孔的X绝对坐标值

#102=6.0;第一个孔的Y绝对坐标值

#1=#101;将第一个孔的X绝对坐标值赋给变量#1

#2=#102;将第一个孔的Y绝对坐标值赋给变量#2

#27=1;框式点阵孔群行数初始值

#28=1;框式点阵孔群列数初始值

#29=15.0;旋转角度

#30=6;X轴孔数

#31=4;Y轴孔数

#32=10;X轴孔间距

#33=10;Y轴孔间距

#25=-25.0;最终钻孔深度

#17=4.0;安全间隙

#5=150.0;进给速度

N35 M98 P3322;调用矩形框式点阵孔群钻削的用户宏程序

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

N45 G49;取消刀具长度补偿

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

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

%3322;矩形框式点阵孔群钻削用户宏程序(见前)

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

2)SINUMERIK 802D数控系统。

FZG×××××;主程序名

N005 R101=10.0;第一个孔的X绝对坐标值

R102=6.0;第一个孔的Y绝对坐标值

R2=R101;将第一个孔的X绝对坐标值赋给变量R2

R3=R102;将第一个孔的Y绝对坐标值赋给变量R3

R27=1;框式点阵孔群行数初始值

R28=1;框式点阵孔群列数初始值

R29=15.0;旋转角度

R30=6.0;X轴孔数

R31=4.0;Y轴孔数

R32=10.0;X轴孔间距

R33=10.0;Y轴孔间距

RTP=50.0;后退平面(绝对值)

REP=0;参考平面(绝对值)

SDIS=3;安全间隙(无符号)

DP=-25.0;最终钻孔深度(绝对值)

DPR=0;相当于参考平面的最后钻孔深度(无符号)

N010 T1 D1;调用1号刀,1号刀补

N015 G17 G90 G71 G94 G54 G40;工艺加工状态设置

N020 G00 Z50.0 S600 M03;建立刀具长度补偿,主轴正转,转速为600r/min

N025 X0.0 Y0.0 M07;刀具快速移动到工件坐标零点,打开切削液

N030 L3322;调用矩形框式点阵孔群钻削的用户R参数程序

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

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

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

L3322;矩形框式点阵孔群钻削用户R参数程序(见前)

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

3)FANUC 0i数控系统。

O××××;主程序名

N005# 101=10.0;第一个孔的X绝对坐标值

#102=6.0;第一个孔的Y绝对坐标值

#2=#101;将第一个孔的X绝对坐标值赋给变量#2

#3=#102;将第一个孔的Y绝对坐标值赋给变量#3

#27=1;框式点阵孔群行数初始值

#28=1;框式点阵孔群列数初始值

#29=15.0;旋转角度

#30=6.0;X轴孔数

#31=4.0;Y轴孔数

#32=10.0;X轴孔间距

#33=10.0;Y轴孔间距

#26=-25.0;最终钻孔深度

#18=4.0;安全间隙

#9=150.0;进给速度

N010 T01 M06;调用1号刀

N015 G17 G90 G21 G94 G54 G40 G49 G80;工艺加工状态设置

N020 G43 G00 Z50.0 H01 S600 M03;建立刀具长度补偿,主轴正转,转速为600r/min

N025 X0.0 Y0.0 M08;刀具快速移动到工件坐标零点,打开切削液

N030 G65 P3322;调用矩形框式点阵孔群钻削的用户宏程序

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

N040 G49;取消刀具长度补偿

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

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

O3322;矩形框式点阵孔群钻削用户宏程序(见前)

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

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

图3-32 平行四边形框式点阵孔群刀具走刀路线示意图

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

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

我要反馈