如图5-6所示,一平行四边形网格点阵列的孔群有5行6列,相邻各列、同行孔间的中心距为40mm,相邻各行、同列孔间的中心距为48mm,左下角的孔的坐标为(35,25),平行四边形网格点阵列加工起始行所在的边沿其加工方向与+X轴的夹角为15°;该阵列加工起始行所在的边沿其加工方向逆时针旋转、与加工列所在的边的夹角为60°,试编写其宏程序。
图5-6 平行四边形网格点阵列的孔群加工
分析:这道典型的平行四边形网格点阵列孔群的宏程序的编写方法有多种,但空行程最短、加工效率最高的就是各行间首尾衔接加工,使整个加工轨迹呈蛇形“S”状。
#1=A,平行四边形网格点阵列加工起始行所在的边沿其加工方向与+X轴的夹角。
#2=B,平行四边形网格点阵列加工起始行所在的边沿其加工方向逆时针旋转、与加工列所在的边的夹角。
#3=C,平行四边形网格点阵列相邻各列、同行孔间的中心距。
#4=I,平行四边形网格点阵列相邻各行、同列孔间的中心距。
#5=J,列数。
#6=K,行数。
其余参数,同孔加工循环的介绍。
调用格式:
G65 P1060 A_B_C_I_J_K_F_R_X_Y_Z_;
宏指令(被调用的程序):
O1060;
N10#30=#4003; 存储03组的G代码
N20 IF[#30 EQ 90]GOTO 70; 宏程序内采用G90方式计算各坐标位置
N30#24=#24+#5001; 计算G91方式下阵列左下角孔心X轴绝对坐标值
N40#25=#25+#5002; 计算G91方式下阵列左下角孔心Y轴绝对坐标值
N50#18=#18+#5003; 计算G91方式下R点平面的绝对坐标值
N60#26=#26+#18; 计算G91方式下孔底的绝对坐标值
N70 G90 G00 X#24 Y#25; 移动到平行四边形网格点阵列左下角的孔上方
N80 G52 X#24 Y#25; 在该孔处建立局部坐标系
N90 G68 X0 Y0 R#1; 以该孔为中心,旋转
N100#10=1; 行计数器,赋初始值为1,即第1行
N110 WHILE[#10 LE#6]DO1; 在有效行数内,执行循环体1
N120#11=1; 列计数器,赋初始值为1,即第1列
N130 WHI LE[#11 LE#5]DO2; 在有效列数内,执行循环体2(www.xing528.com)
N140 IF[[#10 AND 1]EQ 0]GOTO 180; 若是偶数行,转至N180
N150#12=#3∗[#11-1]+#4∗COS[#2]∗[#10-1]; 出发行孔的X坐标值
N160#13=#4∗SIN[#2]∗[#10-1];出发行孔的Y坐标值
N170 GOTO 200;转至N200行,钻孔
N180#12=#3∗[#5-#11]+#4∗COS[#2]∗[#10-1]; 返回行孔的X坐标值
N190#13=#4∗SIN[#2]∗[#10-1]; 返回行孔的Y坐标值
N200 G98(G99)G81 X#12 Y#13 Z#26 R#18 F#9; G81方式钻孔
N210#11=#11+1; 列计数器每次递增1
N220 END 2; 循环2结束
N230#10=#10+1; 行计数器每次递增1
N240 END 1; 循环1结束
N250 G80 G69 G#30; 取消孔加工循环,取消坐标系旋转,恢复03组代码
N260 G52 X0 Y0; 取消局部坐标系
N270 M99; 宏程序结束,返回主程序
说明:
①N140,AND为逻辑运算中的“相与”。该段程序意思为,把行数的十进制数字转化为二进制数字后和1(二进制的“…0001”)“相与”,结果为“0”,就是偶数行;结果为“1”,就是奇数行。当为偶数行时,执行N180、N190,计算偶数行的孔心坐标值,随后执行N200钻孔;当为奇数行时,执行N150、N160,计算奇数行的孔心坐标值,随后跳转到N200钻孔。返回时,从出发顺序数的第#5列称为从返回顺序数的第1列,第(#5-1)列为第2列……
②如果在该阵列中的网点位置并非钻孔,比如为铣内腔或其他,可以把N200替换为M98 P××××,子程序O××××中的X、Y应该用G91方式编程,Z可以用G91。
③如果在该阵列中的网点位置仅为钻孔,程序可以修改如下:
……
N15 G98(G99)G81 Z#26 R#18 F#9 K0;
N20 IF[#30 EQ 90]GOTO 70;
N30#24=#24+#5001;
N40#25=#25+#5002;
N70 G90 G00 X#24 Y#25;
……
N200 G90 X#12 Y#13;
……
④也可以把该平行四边形其他3个顶点设为工件坐标系原点,也可以按列加工,有兴趣的读者可以尝试编一下程序。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。