Não sou a pessoa mais indicada para dar pitaco por aqui por dois motivos, nunca usei o mach e dificilmente edito os gcodes cuspidos pelos cams...
Mas ainda assim vai o minha tentativa de contribuir. Aqui quando preciso fazer gravações, utilizo um programa chamado autoleveller (
http://autoleveller.co.uk). O que faz esse autoveller: ele altera o gcode incluindo uma fase de "probing" em que a superfície é apalpada pela touch probe e nesses toques vai armazenando as alturas em variáveis internas, o código dos três primeiros toques de um arquivo aqui é o seguinte:
G0 Z10
G0 X0 Y0
G31 Z-1 F100
#500=#2002
G0 Z10
G0 X10.5 Y0
G31 Z-1 F100
#501=#2002
G0 Z10
G0 X21 Y0
G31 Z-1 F100
#502=#2002
G0 Z10
Aparentemente a variável "#2002" armazena a coordenada do último toque assim, será que se fizer o recuo de 'z' com
G0 Z[#2002 - 10]
não consegue o que procuras?
Vou tentar anexar o arquivo nessa mensagem pois apesar de ser gerado de forma mecanizada pelo autoleveller ele é bem comentado até eu aprendi alguma coisa lendo-o.
Boa sorte!
Ricardo