为什么这个宏程序没有分层循环加工,原因竟 so easy

今天收到一位网友的问题,让我看一下这个飞面宏程序有什么问题,为什么没有分层效果呢?再三都找不到问题之所在,他是要分5层铣削飞面。

网友答疑 | 为什么这个宏程序没有分层循环加工,原因竟 so easy

网友编的程序模拟

网友编的程序如下:

<code>M6 T1
#1=1
#2=0.5
G0 G90 G54 X-73 Y0 S5000 M3
G43 H1 Z20 M8
Z1.
N11
G1 Z-#2 F1000
WHILE[#1 LE5] DO1
G90 X573
G91 Y50.
G90 X-73.
G91 Y50
G90 X573
#1=#1+1
END1
G0 G90 Z20.
X-73 Y0.
#2=#2+0.5
IF[#2 LE5] GOTO11
M5
M9
G91 G28 Z0.
G28 Y0.
M30/<code>
网友答疑 | 为什么这个宏程序没有分层循环加工,原因竟 so easy

柳工修改后的程序模拟

柳工修改的程序如下:

<code>M6 T1
#1=1
#2=1
G0 G90 G54 X-73 Y0 S5000 M3
G43 H1 Z20 M8
N11
G1 Z-#2 F1000
#1=1
WHILE[#1 LE5] DO1
G90 X573
G91 Y50.
G90 X-73.
G91 Y50
G90 X573
#1=#1+1
END1
#2=#2+1
G0 G90 Z20.
X-73 Y0.
IF[#2 LE 5] GOTO11
G0 G90 Z20.
X-73 Y0.
M5 M9
G91 G28 Z0.
G28 Y0.
M30/<code>

问题小结:

这位网友的问题出在没有对#1重置,这样的双层嵌套循环一般都是从最里面那一层执行的,当执行WHILE[#1 LE5] DO1 END1 一个循环后,#1值已经=5,跳出这层循环后,如果不对其清零或重置,那么WHILE[#1 LE5] DO1 END1 循环条件已满,直接跳出循环,执行IF[#2 LE 5] GOTO11 循环,所以机床X Y 向没有任何动作,在模拟的时候也就只显示飞面一次了。

宏程序还要我们多多上机和电脑上多调试,有时后搞不清了,可以画一下流程图,这样逻辑思维就很快清晰了,很容易找到问题之所在,当你解决了问题后,你就突破了自已又往前走了一步,相信你很快会迷恋上宏程序。

(温馨提示:好了,小伙伴们,今天的文章就到这里,如果你觉得有用,可以分享到自已的朋友圈,让更多的小伙伴们学习,少走弯路,提升了自我,也帮助了他人,如果有问题或是自已还想不明白,可以柳工微信交流。)


分享到:


相關文章: