So this is the test macro (that works):
var tool_num = 0
var num_x_pattern = 3
var num_y_pattern = 2
var x_pattern_space = 50.0
var y_pattern_space = 25.0
var int_x = move.axes[0].machinePosition
var int_y = move.axes[1].machinePosition
var initial_x_offset = tools[var.tool_num].offsets[0]
var initial_y_offset = tools[var.tool_num].offsets[0]
while true
if iterations = (var.num_x_pattern * var.num_y_pattern)
break
else
var x_i = mod(iterations, var.num_x_pattern)
var y_i = ((iterations-var.x_i)/var.num_x_pattern)
var x_pos = var.int_x + (var.x_i * var.x_pattern_space)
var y_pos = var.int_y + (var.y_i * var.y_pattern_space)
G10 P0 X{(-1 * var.x_pos)} Y{(-1 * var.y_pos)}
G1 X0 Y0 F6000
G1 X10 Y10 F600
continue
G10 P0 X{(-1 * var.initial_x_offset)} Y{(-1 * var.initial_y_offset)}
G1 X{var.int_x} Y{var.int_y} F6000
I would be replacing the following lines with a call to run a build file:
G1 X0 Y0 F6000
G1 X10 Y10 F600
Does this seem the sensible approach?