什么是循环嵌套
循环嵌套简单来说,就是多层循环。单个循环轮询3次可以完成3个孔,那么两个这样的循环嵌套起来会产生什么化学反应呢?内部循环一次3孔,外部循环将内部循环整体循环3次,根据小学乘法口诀表,我们可以轻易的算出,3×3=9。以乘法的方式来提升程序的加工范围,其效率的提升是显而易见的。
嵌套的实现
单个循环的实现方式,请参见本站的另一篇文章《数控宏程序中的循环》。循环的巧妙之处在于通过让变量增加或减少,使得判断条件产生符合到不符合的变化。变量的使用贯穿了宠程序编程的始终,事实上它也是所有编程语言的基本功课。书接上回,这个时候公司制图又气喘吁吁的跑了过来,这次他站的离我们有点远,可能上次的超必杀过于华丽,给他留了点阴影,制图扯着嗓子喊话:“诶诶,图纸有变动啊,9孔均布,距离不变,老板改的,不关我事。”然后把图一扔就跑了。
小看人了吧,多加6个孔而已,加12个都不带慌的,先来分析一下图纸,一共三行,每一行3个,单行孔的时候我们用一个循环就搞定了。那么9个孔呢?江湖流传一句话,没有什么是一顿火锅解决不了的,如果有,那就两顿。另一句你们可能没听过,对,是关于循环的,如果有,那就两个循环。
G54
M3
G0X0Y0Z0
#1=0
WHILE[#1LE80] DO 1
G81X#1Y0Z-10R0
#1=#1+40
END 1
#1=0
WHILE[#1LE80] DO 1
G81X#1Y40Z-10R0
#1=#1+40
END 1
#1=0
WHILE[#1LE80] DO 1
G81X#1Y80Z-10R0
#1=#1+40
END 1
G0Z50
M5
M30
先玩一个大家来找茬,我用了3个循环来完成这个任务,看看上面的这3个循环,是不是跟3胞胎似的,只有一个参数产生了变化,那就是唐探里的“Q”,啊不……“Y”。而这个”Y”的值变化有什么规律可循吗?显然,它的值依次是“0”、“40”、“80”,规律的不要不要的。下面我们改写一下程序。
G54
M3
G0X0Y0Z0
#1=0
WHILE[#1LE80] DO 1
#2=0
WHILE[#2LE80] DO 2
G81X#1Y#2Z-10R0
#2=#2+40
END 2
#1=#1+40
END 1
G0Z50
M5
M30
一直觉得抽象这个词语就如同他的字面意义,抽走了一条大象,循环的嵌套很有意思,也很抽象,我们来分析一下。以上是一个很漂亮的流程图,#2=0以后,循环2绕了3圈,把接力棒给了#1=#1+40,循环1结束,这里#2为啥要赋值为零,抬头往上50mm左右有答案,#2循环结束的时候是多少,120。我们的第2列第1个孔坐标多少。X=40,Y=0,所以#1变成了40,#2成为了0。又因为程序中#1影响x坐标,而#2影响y坐标,当我们需要当x轴方向的孔改为4个,孔与孔之间距离不变的时候,我们只需要将#1LE80修改为#1LE120即可。