首页 理论教育 圆周孔群加工技巧大揭秘

圆周孔群加工技巧大揭秘

时间:2023-07-02 理论教育 版权反馈
【摘要】:图5-5 圆周孔群加工#18=R,接近点的坐标。②调用宏指令的程序:O0002;G90 G54 G00 X0 Y0;G43 H08 Z100.M08;M03 S800;G65 P0089 X100.Y50.R2.Z-30.F200 I100.A0 B45.H5;M30;各变量的含义:#1=A:第1个孔孔

圆周孔群加工技巧大揭秘

创建一个宏指令,它自开始角度A沿半径为I的一个圆的圆周上每隔角度B钻H个孔。

如图5-5所示,圆的中心位置是(X,Y),可在绝对方式或增量方式下指定指令。另外,为了沿顺时针方向钻孔,为B指定一个负值。

1.调用格式

G65 P9100 X_Y_Z_R_F_I_A_B_H_;

变量赋值说明:

#1=A,钻孔开始角度。

#2=B,增量角度(当负值被指定时,按顺时针方向旋转)。

#4=I,圆半径。

#9=F,切削进给速度。

#11=H,孔数目。

978-7-111-52218-8-Chapter05-77.jpg

图5-5 圆周孔群加工

#18=R,接近点的坐标。

#24=X,圆心的X坐标(绝对或增量指令)。

#25=Y,圆心的Y坐标(绝对或增量指令)。

#26=Z,孔深度。

2.调用宏指令的程序。

O0002;

G90 G54 G00 X0 Y0;

G43 H08 Z100.M08;

M03 S800;

G65 P9100 X100.Y50.R2.Z-30.F200 I100.A0 B45.H5;

M30;

3.宏指令(被调用的程序)

O9100;

N1#3=#4003; 存储03组的G代码

N2 G81 Z#26 R#18 F#9 K0; 钻孔循环

N3 IF[#3 EQ 90]GOTO 6; 在G90方式下转移到N6

N4#24=#24+#5001; 计算G91方式下孔心X轴绝对坐标值

N5#25=#25+#5002; 计算G91方式下孔心Y轴绝对坐标值

N6 WHILE[#11 GT 0]DO 1; 直到剩余孔的数目为0

N7#5=#24+#4∗COS[#1]; 计算X轴的钻孔位置

N8#6=#25+#4∗SIN[#1]; 计算Y轴的钻孔位置

N9 G90 X#5 Y#6; 移动到孔上方后钻孔

N10#1=#1+#2; 更新角度

N11#11=#11-1; 每次减少孔的数目

N12 END 1; 结束循环体1

N13 G#3 G80; 释放03组原来的G90/G91模态信息

N14 M99;

这是一个非常经典的宏程序,在FANUC Series 0i-MD车床系统/加工中心系统通用用户手册B-64304CM/01、FANUC 0i-MC操作说明书B-64124CM/01等多本说明书里都有介绍,它被用来加工直角坐标系下共圆、如参数描述的多孔位的加工,它实现了用户宏指令和机床已有的G81固定循环指令很好地结合。为了便于阅读,略作修改。

4.注释

N1,存储了当前的G90/G91代码;N2,存储了G81循环的Z、R、F信息,但未钻孔;N3,如果是G90方式,就转移到N6程序段继续执行(言外之意,如果不是G90方式,就顺序执行,即执行N4);N4,(在G91方式下)孔心所共圆的圆心的X轴坐标为原X轴坐标位置与工件坐标系X轴程序段终点位置的和,即在G54坐标系中的绝对位置;N5,(在G91方式下)孔心所共圆的圆心的Y轴坐标为原Y轴坐标位置与工件坐标系Y轴程序段终点位置的和,即在G54坐标系中的绝对位置。

N4和N5表明,即使主程序编写如下也能无误地加工:

978-7-111-52218-8-Chapter05-78.jpg

此时,计算得出的孔心所共圆的圆心的X坐标值为(20.0+100.0),Y坐标值为(30.0+50.0),而如果没有N3~N5,指定G91方式就会钻错位置。

N6,直到剩余孔数>0,才结束循环1,孔总数为5,每次孔数递减1个,即剩余孔数依次为5、4、3、2、1,如果这里的GT改为GE,就会多钻1个孔。如果程序为“WHILE[#11 GE 1]DO 1;”,会钻5个孔。

这个经典的钻孔宏程序有多个其他版本。

①宏程序中将用到以下变量:

#1:第1个孔的起始角度A,在主程序中用对应的文字变量A赋值

#3:孔加工固定循环中R点平面值,在主程序中用对应的文字变量C赋值。

#9:孔加工的进给量F,在主程序中用对应的文字变量F赋值。

#11:要加工的孔数H,在主程序中用对应的文字变量H赋值。

#18:被加工孔群所共圆的半径值R,在主程序中用对应的文字变量R赋值。

#26:孔深坐标值Z,在主程序中用对应的文字变量Z赋值。

#30:基准点,即被加工孔群所共圆圆心X坐标值X0

#31:基准点,即被加工孔群所共圆圆心Y坐标值Y0

#32:当前加工的孔的序号i

#33:当前加工的第i孔在孔群所共圆心上所对应的角度。

#100:已加工的孔的数量。

#101:当前加工的孔的X坐标值,初始值设为孔群所共圆心的X坐标值X0

#102:当前加工的孔的Y坐标值,初始值设为孔群所共圆心的Y坐标值Y0

调用宏指令的程序:

O0009;

G90 G54 G00 X0 Y0;

G43 H08 Z100.M08;

M03 S800;

G65 P8000 X100.Y50.A0 C2.F200 H5 R100.Z-30.;

M30;

用户宏程序编写如下:

O8000;

#30=#101; 基准点保存(www.xing528.com)

#31=#102; 基准点保存

#32=1; 计数器置1

WHILE[#32 LE ABS[#11]]DO 1; 进入孔加工循环体

#33=#1+360.0∗[#32-1]/#11; 计算第i孔的角度

#101=#30+#18∗COS[#33]; 计算第i孔的X坐标值

#102=#31+#18∗SIN[#33]; 计算第i孔的Y坐标值

G90 G81 G98 X#101 Y#102 Z#26 R#3 F#9; 钻削第i

#32=#32+1; 计数器对孔序号i计数累加

#100=#100+1; 计算已加工孔数

END 1; 孔加工循环体结束

#101=#30; 返回X坐标初值X0

#102=#31; 返回Y坐标初值Y0

M99; 宏程序结束

分析:这个宏程序的通用性差一些,原因如下:

a.这里的第1个孔孔心与第1轴正方向的夹角α,和第1个到第n个孔间每相邻两个孔心间的所夹的圆心角β是相等的,如果不相等,是不能用这个程序的,比如当α=60°,β=40°时。

b.不适合在G91方式下运用。

②调用宏指令的程序:

O0002;

G90 G54 G00 X0 Y0;

G43 H08 Z100.M08;

M03 S800;

G65 P0089 X100.Y50.R2.Z-30.F200 I100.A0 B45.H5;

M30;

各变量的含义:

#1=A:第1个孔孔心与第1轴正方向的夹角α

#2=B:第1个到第n个孔间,每相邻两个孔心间的所夹的圆心角β

#4=I:孔心所共圆的半径。

#9=F:切削进给速度。

#11=H:孔数。

#18=R:固定循环中R点平面的坐标,绝对或相对值。

#24=X:孔心所共圆的圆心X坐标。

#25=Y:孔心所共圆的圆心Y坐标。

#26=Z:孔深坐标,绝对或相对值。

宏指令(被调用的程序):

O0089;宏程序

#3=1;孔序号计数器置1(即从第1个孔开始加工)

WHILE[#3 LE#11]DO 1; 如果孔序号#3≤孔数#11,执行循环体1

#5=#1+[#3-1]∗#2; 第#3个孔中心所对应的角度

#6=#24+#4∗COS[#5]; 计算第#3个孔中心的X坐标值

#7=#25+#4∗SIN[#5]; 计算第#3个孔中心的Y坐标值

G98 G81 X#6 Y#7 Z#26 R#18 F#9; 以G81方式加工第#3个孔

#3=#3+1; 孔序号更新,递增1

END 1; 循环1结束

G80; 取消固定循环

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

分析:这个程序对孔序号计数器和每个孔心所对应角度的理解直白明了,但是,其缺点也很明显,不适合在G91方式下运行。如果能把这种编程方法和说明书上的方法相互结合,使宏程序和机床原有的钻孔循环结合,编写简单,应用起来更加得心应手。程序如下:

O1012;

G90 G54 G00 X0 Y0;

G43 H08 Z100.M08;

M03 S800;

G65 P7100 X100.Y50.R2.Z-30.F200 I100.A0 B45.H5;

M30;

宏指令(被调用的程序):

O7100;

N1#8=#4003; 存储03组的G代码

N2 G81 Z#26 R#18 F#9 K0; 钻孔循环

N3 IF[#8 EQ 90]GOTO 6; 在G90方式下转移到N6

N4#24=#24+#5001; 计算G91方式下孔心X轴绝对坐标值

N5#25=#25+#5002; 计算G91方式下孔心Y轴绝对坐标值

N6#3=1; 孔序号计数器置1(即从第1个孔开始加工)

N7 WHILE[#3 LE#11]DO 1 ;如果孔序号#3≤孔数#11,执行循环体1

N8#5=#1+[#3-1]∗#2; 第#3个孔中心所对应的角度

N9#6=#24+#4∗COS[#5]; 计算第#3个孔中心的X坐标值

N10#7=#25+#4∗SIN[#5]; 计算第#3个孔中心的Y坐标值

N11 G90 X#6 Y#7; 移动到孔上方后钻孔

N12#3=#3+1; 孔序号更新,递增1

N13 END1; 结束循环1

N14 G#8 G80; 恢复03组模态代码,取消钻孔循环

M99;

注意:这里的N2可以在去掉“K0”后,合并在N11程序段里吗?当然不可以。如果在调用宏指令前是G91方式,G65程序段中的R、Z也是G91方式,如果N2、N11合在一起编写,原来G91方式的R、Z到N11这里就变成G90方式了。N9、N10,如果该例题用G16极坐标方式编写,就是把极坐标系下的极径、极角转化为右手直角坐标系下的XY坐标值。

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

我要反馈