Macros
B
Bucles WHILE/DO/END
Iteraciones y patrones repetitivos en Macros B
Estructura WHILE/DO/END
Sintaxis
WHILE[condición] DO n
; código a repetir
END n
; n = 1, 2 o 3 (permite anidar hasta 3 niveles)
Patrones de Bucle
Contador Simple
#100 = 0
WHILE[#100 LT 10] DO1
G00 X[#100 * 10]
#100 = #100 + 1
END1
Profundidad Incremental
#100 = 0 ; Z actual
#101 = -30 ; Z final
#102 = 5 ; Paso
WHILE[#100 GT #101] DO1
#100 = #100 - #102
IF[#100 LT #101] THEN #100 = #101
G01 Z#100 F100
G00 Z2
END1
Bucles Anidados
Matriz 4x3
#100 = 0 ; Fila
WHILE[#100 LT 4] DO1
#101 = 0 ; Columna
WHILE[#101 LT 3] DO2
#102 = 20 + #100 * 25 ; X
#103 = 20 + #101 * 25 ; Y
G00 X#102 Y#103
G01 Z-10 F200
G00 Z5
#101 = #101 + 1
END2
#100 = #100 + 1
END1
Ejemplo: Puntos en Círculo
#1 = 40 ; Radio
#2 = 8 ; Número de puntos
#100 = 0 ; Ángulo
#101 = 360 / #2 ; Incremento
WHILE[#100 LT 360] DO1
#102 = #1 * COS[#100] ; X
#103 = #1 * SIN[#100] ; Y
G01 X#102 Y#103 F500
#100 = #100 + #101
END1
Regla clave: SIEMPRE incrementar el contador dentro del bucle, o tendrás un bucle infinito.