EIA or mazatrol that gets messy and possibly error prone trying to run each tool several times at different fixture locations before running the next tool.
One way would be to split each tool out as separate sub programs. Then have a master program set which offset to use, then call the tool sub program. Repeat thru each fixture offset, then call the next tool.
This would work for EIA or mazatrol.
A better/cleaner way with EIA might be preset your offsets at the beginning of the program then some macro code around the cutter path for each tool.
Sample program code idea
Code:
T5 M6
M3 S2000
#100=1 (fixture offset counter reset)
N30
G54.1p#100
(... tool code)
#100=#100+1
IF [#100 LE 6] goto #4114 (loop back to last N# if on offset <= 6)
(Next tool)