Vale, yo veo que algunos cosas no explicado bien.
1. letras minúsculas no son permitido en el código G de DIN
2. (Falta en el cursillo - viene ya en breve):
La máquina no sabe el estado de G41/42/G40/G80 etc... porque este comandos son estáticos, que dice, si el programa anterior ha terminado en G41 (y sea en el día anterior) la máquina todavía esta en este estado. Movimientos con G41/42 solo pueden ser G1/G2/G3, nunca G0. Así, antes de un orden G0 tiene que estar seguro que la corrección de radio está desactivado con G40.
3. En tu ejemplo no has definido un avance para G1 (Fxxx)
4. Para G41/42 y G40 no son permitida movimientos en Z para la corrección del diámetro de la herramienta. Tengo que explicar más amplio:
Si queramos usar G41, la herramienta esta 10mm de diámetro, tenemos que posicionar la herramienta al menos 5,01mm fuera de la contorno que queramos trabajar. El primer orden despues de G41/42 solo esta ahí para que la herramienta puede encuentra su posición correcta. En tu ejemplo, la herramienta pones al centro del circulo. No conozco tu herramienta, pero pienso que tiene 3mm de diámetro. Así el primer movimiento a X5 es un movimiento de (X10-X5=5mm-1,5mm de radio=) 3,5mm. También era suficiente de poner la herramienta para iniciar al punto X6.6 Y10.
En este caso el primer movimiento era solo 0,1mm (de X6.6 a X6.5mm). En este movimiento no son permitida movimientos en la eje Z.
Para desactivar el modo G41/42 tienes que poner un G40 y despues un G1 con un movimiento más de la mitad del radio de la fresa, en nuestro caso de 3mm de diámetro en ejemplo 1.6mm.
Que dice, para terminar estamos en el punto Y10, X5 con corrección, en verdad al Y10,X6.5mm en coordenadas reales. Y tenemos que hacer G40 G1 X6.6, y la máquina se va 0,1mm para llegar a sus coordenadas "reales". Despues de este movimiento podemos usar G0.