# CNC Code — Correcciones a los ciclos fijos del torno (septiembre 2026)

# CNC Code — Correcciones a los ciclos fijos del torno (septiembre 2026)

Antonio Benedetto
Antonio Benedetto
19/09/2026 6 min di lettura 9 visualizzazioni

## Por qué esta actualización

Un usuario nos señaló que el simulador rechazaba un ciclo de desbaste G71 escrito correctamente, indicando como faltante un parámetro que estaba presente en la línea. Tenía razón. Verificamos el caso, luego extendimos el control a todos los ciclos fijos del torno con una campaña de pruebas sistemática: para cada ciclo tomamos las variantes de sintaxis que se encuentran en los manuales Fanuc
(serie 0T/6T/10T/11T/15T y serie 0i/16i/18i/21i/31i) y en los textos escolares, y las ejecutamos una por una en el simulador, comprobando qué sucedía.

El resultado es una serie de correcciones que hacen que el intérprete sea fiel al comportamiento del control real: la sintaxis que funciona en el taller debe funcionar también en el simulador, y cuando una línea está realmente equivocada, la alarma debe decir qué falta, no otra cosa.

Las correcciones afectan al motor de interpretación, que es único para todas las plataformas: por lo tanto están activas en escritorio (Windows, macOS, Linux), tablet y smartphone con la misma versión.

---

## G71 / G72 — Ciclos de desbaste longitudinal y frontal

**Antes.** El primer bloque del ciclo se reconocía solo si contenía tanto la profundidad de pasada (U para G71, W para G72) como el retroceso R. Un `G71 U2` sin R, sintaxis válida en Fanuc donde la R es opcional y el retroceso proviene del parámetro 5133, no se reconocía: en el bloque siguiente el simulador indicaba "falta el parámetro U" con la U escrita en la línea. Lo mismo sucedía con el formato de línea única `G71 P.. Q.. U.. W.. D.. F..` de los controles Fanuc más antiguos y de muchos manuales escolares, donde la D es la profundidad de pasada.

**Ahora.**
- El bloque 1 se reconoce solo con la U (o W para G72); la R es opcional, con retroceso predeterminado de 0,5 mm cuando falta.
- El formato de línea única con D es aceptado. La D sin punto decimal se expresa en micras (`D2000` = 2 mm), con el punto en milímetros (`D2.0` = 2 mm), como en el control.
- Si el bloque 1 realmente falta, la alarma lo indica claramente: "falta el bloque 1 de G71 (G71 U.. R..) antes de G71 P.. Q.., o la profundidad D en la línea única".
- Control añadido: D debe ser mayor que cero.

Verificado con pruebas de paridad: las tres sintaxis (dos bloques con R, dos bloques sin R, línea única) dejan el mismo perfil en la pieza, punto por punto, tanto en el canal 1 como en el contrahusillo.

---

## G76 — Ciclo de roscado

Aquí los problemas eran más serios, porque en algunos casos el simulador no indicaba nada y simplemente no ejecutaba la rosca.

**Antes.** Los dos bloques se reconocían con una comparación rígida sobre toda la línea: `G76 P Q R` y `G76 X Z P Q F` en este orden exacto, con todos los parámetros obligatorios.
- Bloque 1 sin R, con R antes de Q, o con Q escrita con punto decimal: alarma "P debe tener 6 cifras, encontrado P010060", con la P perfectamente correcta.
- Bloque 2 con la F antes de P y Q, con la R de conicidad, con U/W incrementales, con Z antes de X, con Q antes de P, con P y Q en milímetros, o en el formato de línea única `G76 X Z K D F A` de los Fanuc 0T/10T: ninguna alarma y ningún ciclo. La rosca no se cortaba.
- Bloque 2 sin Z: alarma correcta, pero el ciclo se ejecutaba de todos modos.

**Ahora.**
- Las palabras pueden estar en cualquier orden, con o sin espacios, en mayúsculas o minúsculas.
- Bloque 1: `G76 P{mmrraa} [Q..] [R..]`. Q y R son opcionales. La P debe tener 6 cifras y se lee tal como está escrita, incluidos los ceros iniciales.
- Bloque 2: `G76 X|U.. Z|W.. P|K.. Q|D.. F|E.. [R|I..] [A..]`. Se aceptan tanto el formato de dos bloques de la serie 0i/31i (P altura de rosca, Q primera pasada) como el de línea única de la serie 0T/10T/15T (K altura, D primera pasada, A ángulo). La E se acepta como paso de precisión.
- P, Q, K, D sin punto decimal se expresan en micras (`P920` = 0,92 mm), con el punto en milímetros.
- U y W incrementales se resuelven desde la posición actual de la herramienta.
- Si falta el eje de llegada, el paso, la altura de la rosca o la primera pasada, la alarma indica el parámetro faltante y el ciclo no se ejecuta.
- La conicidad (R en el formato de dos bloques, I en la línea única) se lee pero aún no se simula: la rosca se ejecuta cilíndrica.

Verificado con pruebas de paridad: ocho sintaxis diferentes del bloque 2 y tres del bloque 1 producen la misma rosca M48×3, muestreada cada 0,25 mm, en ambos canales.

---

## G74, G75, G83, G84, G85, G88, G89 — Ciclos de taladrado, ranurado, roscado con macho, mandrinado

**Antes.**
- El bloque 2 solo aceptaba las cotas absolutas X y Z. Con U o W incrementales el ciclo no se ejecutaba y la línea se ejecutaba como un movimiento lineal en trabajo, sin alarma.
- Las palabras P y Q siempre se interpretaban en micras: un `Q5.0` escrito en milímetros se convertía en una picada de 0,005 mm.
- El G89 (mandrinado radial sobre el diámetro) estaba implementado pero no figuraba entre los códigos reconocidos y provocaba la alarma "código G no soportado".

**Ahora.**
- U y W se aceptan en el bloque 2 de todos estos ciclos y se resuelven en absoluto desde la posición actual de la punta de la herramienta, en el canal activo.
- P y Q siguen la regla única: sin punto decimal micras, con el punto milímetros. La regla es la misma para todos los ciclos (G71, G72, G74, G75, G76, G83).
- G89 es reconocido.

Verificado con pruebas de paridad: el taladrado G83 con `Z-30`, con `W-35` desde la posición Z5 y con `Q10.0` produce el mismo agujero; la ranura G75 con `X80 Z-20` y con `U-24 W-10` desde la posición X104 Z-10 produce la misma ranura.

---

## Parser de G-code — Números con punto inicial

Los valores escritos sin el cero delante del punto, como `X.5`, `R.05` o `U-.2`, son válidos en Fanuc pero el parser no los leía y los trataba como cero. Ahora se leen correctamente, para todas las palabras.

---

## Qué NO cambia

- La lógica de cálculo de los ciclos (pasadas, profundidades, retrocesos, disciplina de la rosca) es la misma de antes. Las correcciones afectan al reconocimiento de la sintaxis y a la calidad de las alarmas.
- Los programas ya escritos en el formato estándar de dos bloques siguen funcionando de manera idéntica.

---

## En desarrollo

Los ciclos fijos del **sistema G-code A** de los tornos Fanuc (G90 ciclo de torneado, G92 ciclo de roscado, G94 ciclo de refrentado), muy usados en la enseñanza, todavía no están simulados. Son los próximos en el plan.

---

## Cómo reportar una anomalía

Si encontráis una línea de programa que el simulador rechaza o ejecuta de forma diferente al control real, abrid una incidencia desde la asistencia in-app (menú Soporte, apertura de ticket) adjuntando el programa: lo usamos directamente como caso de prueba. Cada ciclo corregido en esta actualización nació así.

Compartir