Work shift is used to offset a program from the original starting point.
Typical applications are machining multiple parts off a single feedout of a bar, or for shifting a program away from the spindle the first time it is run.
G10 shifts the reference of the tooling plate incrementally. If G10 is put into a loop, the program will shift each time the command is used. The shift will take place on the next tool call. If you put the shift after a tool call the effect will take place the next time through the loop.
Looping examples with work shift are shown here.
The shift is canceled by m30 or m02. The command can have a value for X or Z or both.