车间试样一个工件,需要编制一个简单的程序,该工件如下图,两侧阶梯孔上下对称,两个阶梯孔尺寸一致。尺寸与位置都很规则,所以就考虑用单个坐标,利用循环嵌套的方式来编制程序。
加工圆形的时候需要用到y坐标,而因为工件分为上下两部分,这两个部分的y中心坐标是不一致的,该y坐标就作为第一个变量#1,利用最外层的循环来依次修改它。
这里仅展示了必要的刀路,并没有考虑走刀路线的合理性,以精简程序梳理逻辑,程序模型如下:
G40G90G80G90G54
M3
M8
S1200
F200
#1=-25
WHILE[#1LE25]D01
G0X0Y#1Z0
单个阶梯孔循环
#1=#1+50
END1
G0Z100
M5
M9
M30
接下来完善单个孔的循环,这里利用变量#2来控制孔深,需要注意的是,一个孔走完之后,需要对#2重新赋值,所以#2赋值的语句需要被包含在最外层循环内。
G40G90G80G90G54
M3
M8
S1200
F200
#1=-25
WHILE[#1LE25]D01
G0X0Y#1Z0
#2=1
阶梯孔循环开始
WHILE[#2LE10]DO2
G0Z-#2
G1X11
G2X-11Y#1R11
G2X11Y#1R11
G0X0
#2=#2+1
END2
第二层留意#2当前值
WHILE[#2LE20]DO3
G0Z-#2
G1X3.5
G2X-3.5Y#1R3.5
G2X3.5Y#1R3.5
G0X0
#2=#2+1
END3
阶梯孔循环结束
#1=#1+50
END1
G0Z100
M5
M9
M30
阶梯孔运用了单个变量,该变量连续被两个子循环使用,需要注意的是,第一个子循环结束之后,虽然判断条件是小于等于10,但#2的实际值却是11,这也是导致循环结束的必要条件,这个值可以直接用于下一个循环,如果在第二层程序开始前,再另行+1,就会导致第二层首次加工深度过深。
实际上博主就犯了这么一次错误-_-!