# CNC Code — Correzioni ai cicli fissi del tornio (settembre 2026)

# CNC Code — Correzioni ai cicli fissi del tornio (settembre 2026)

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

## Perché questo aggiornamento

Un utente ci ha segnalato che il simulatore rifiutava un ciclo di sgrossatura G71 scritto correttamente, segnalando come mancante un parametro che era presente nella riga. Aveva ragione. Abbiamo verificato il caso, poi abbiamo esteso il controllo a tutti i cicli fissi del tornio con una campagna di prove sistematica: per ogni ciclo abbiamo preso le varianti di sintassi che si trovano nei manuali Fanuc
(serie 0T/6T/10T/11T/15T e serie 0i/16i/18i/21i/31i) e nei testi scolastici, e le abbiamo eseguite una per una nel simulatore, controllando cosa succedeva.

Il risultato è una serie di correzioni che rendono l'interprete fedele al comportamento del controllo reale: la sintassi che funziona in officina deve funzionare anche nel simulatore, e quando una riga è davvero sbagliata l'allarme deve dire che cosa manca, non qualcos'altro.

Le correzioni riguardano il motore di interpretazione, che è unico per tutte le piattaforme: sono quindi attive su desktop (Windows, macOS, Linux), tablet e smartphone con la stessa versione.

---

## G71 / G72 — Cicli di sgrossatura longitudinale e frontale

**Prima.** Il primo blocco del ciclo veniva riconosciuto solo se conteneva sia la profondità di passata (U per G71, W per G72) sia il ritiro R. Un `G71 U2` senza R, sintassi valida su Fanuc dove la R è facoltativa e il ritiro viene dal parametro 5133, non veniva riconosciuto: al blocco successivo il simulatore segnalava "parametro U mancante" con la U scritta nella riga. Lo stesso accadeva con il formato a riga unica `G71 P.. Q.. U.. W.. D.. F..` dei controlli Fanuc più datati e di molti manuali scolastici, dove la D è la profondità di passata.

**Ora.**
- Il blocco 1 è riconosciuto con la sola U (o W per G72); la R è facoltativa, con ritiro predefinito di 0,5 mm quando manca.
- Il formato a riga unica con D è accettato. La D senza punto decimale vale in micron (`D2000` = 2 mm), con il punto vale in millimetri (`D2.0` = 2 mm), come sul controllo.
- Se il blocco 1 manca davvero, l'allarme lo dice in chiaro: "manca il blocco 1 di G71 (G71 U.. R..) prima di G71 P.. Q.., oppure la profondità D nella riga unica".
- Controllo aggiunto: D deve essere maggiore di zero.

Verificato con test di parità: le tre sintassi (due blocchi con R, due blocchi senza R, riga unica) lasciano lo stesso profilo sul pezzo, punto per punto, sia sul canale 1 sia sul contromandrino.

---

## G76 — Ciclo di filettatura

Qui i problemi erano più seri, perché in alcuni casi il simulatore non segnalava nulla e semplicemente non eseguiva il filetto.

**Prima.** I due blocchi venivano riconosciuti con un confronto rigido sull'intera riga: `G76 P Q R` e `G76 X Z P Q F` in quest'ordine esatto, con tutti i parametri obbligatori.
- Blocco 1 senza R, con R prima di Q, o con Q scritta con il punto decimale: allarme "P deve essere a 6 cifre, trovato P010060", con la P perfettamente corretta.
- Blocco 2 con la F prima di P e Q, con la R di conicità, con U/W incrementali, con Z prima di X, con Q prima di P, con P e Q in millimetri, oppure nel formato a riga unica `G76 X Z K D F A` dei Fanuc 0T/10T: nessun allarme e nessun ciclo. Il filetto non veniva tagliato.
- Blocco 2 senza Z: allarme corretto, ma il ciclo partiva comunque.

**Ora.**
- Le parole possono stare in qualunque ordine, con o senza spazi, maiuscole o minuscole.
- Blocco 1: `G76 P{mmrraa} [Q..] [R..]`. Q e R sono facoltative. La P deve avere 6 cifre e viene letta come scritta, zeri iniziali compresi.
- Blocco 2: `G76 X|U.. Z|W.. P|K.. Q|D.. F|E.. [R|I..] [A..]`. Sono accettati sia il formato a due blocchi della serie 0i/31i (P altezza filetto, Q prima passata) sia quello a riga unica della serie 0T/10T/15T (K altezza, D prima passata, A angolo). La E è accettata come passo di precisione.
- P, Q, K, D senza punto decimale valgono in micron (`P920` = 0,92 mm), con il punto in millimetri.
- U e W incrementali vengono risolti dalla posizione corrente dell'utensile.
- Se manca l'asse di arrivo, il passo, l'altezza del filetto o la prima passata, l'allarme indica il parametro mancante e il ciclo non parte.
- La conicità (R nel formato a due blocchi, I nella riga unica) viene letta ma non ancora simulata: il filetto viene eseguito cilindrico.

Verificato con test di parità: otto sintassi diverse del blocco 2 e tre del blocco 1 producono lo stesso filetto M48×3, campionato ogni 0,25 mm, su entrambi i canali.

---

## G74, G75, G83, G84, G85, G88, G89 — Cicli di foratura, gole, maschiatura, alesatura

**Prima.**
- Il blocco 2 accettava solo le quote assolute X e Z. Con U o W incrementali il ciclo non partiva e la riga veniva eseguita come un movimento lineare in lavoro, senza allarme.
- Le parole P e Q venivano sempre interpretate in micron: un `Q5.0` scritto in millimetri diventava una beccata di 0,005 mm.
- Il G89 (alesatura radiale sul diametro) era implementato ma non risultava tra i codici riconosciuti e faceva scattare l'allarme "codice G non supportato".

**Ora.**
- U e W sono accettati nel blocco 2 di tutti questi cicli e risolti in assoluto dalla posizione corrente della punta utensile, sul canale attivo.
- P e Q seguono la regola unica: senza punto decimale micron, con il punto millimetri. La regola è la stessa per tutti i cicli (G71, G72, G74, G75, G76, G83).
- G89 è riconosciuto.

Verificato con test di parità: la foratura G83 con `Z-30`, con `W-35` dalla posizione Z5 e con `Q10.0` produce lo stesso foro; la gola G75 con `X80 Z-20` e con `U-24 W-10` dalla posizione X104 Z-10 produce la stessa gola.

---

## Parser G-code — Numeri con il punto iniziale

I valori scritti senza lo zero davanti al punto, come `X.5`, `R.05` o `U-.2`, sono validi su Fanuc ma il parser non li leggeva e li trattava come zero. Ora vengono letti correttamente, per tutte le parole.

---

## Cosa NON cambia

- La logica di calcolo dei cicli (passate, profondità, ritiri, disciplina del filetto) è la stessa di prima. Le correzioni riguardano il riconoscimento della sintassi e la qualità degli allarmi.
- I programmi già scritti nel formato standard a due blocchi continuano a funzionare in modo identico.

---

## In lavorazione

I cicli fissi del **sistema G-code A** dei torni Fanuc (G90 ciclo di tornitura, G92 ciclo di filettatura, G94 ciclo di sfacciatura), molto usati nella didattica, non sono ancora simulati. Sono i prossimi in programma.

---

## Come segnalare un'anomalia

Se trovate una riga di programma che il simulatore rifiuta o esegue in modo diverso dal controllo reale, apritene una segnalazione dall'assistenza in-app (menu Supporto, apertura ticket) allegando il programma: lo usiamo direttamente come caso di prova. Ogni ciclo corretto in questo aggiornamento è nato così.

Condividi