# CNC Code — Corrections aux cycles fixes du tour (septembre 2026)

# CNC Code — Corrections aux cycles fixes du tour (septembre 2026)

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

## Pourquoi cette mise à jour

Un utilisateur nous a signalé que le simulateur rejetait un cycle d'ébauche G71 correctement écrit, indiquant comme manquant un paramètre pourtant présent dans la ligne. Il avait raison. Nous avons vérifié le cas, puis avons étendu le contrôle à tous les cycles fixes du tour avec une campagne de tests systématique : pour chaque cycle, nous avons repris les variantes de syntaxe présentes dans les manuels Fanuc
(séries 0T/6T/10T/11T/15T et séries 0i/16i/18i/21i/31i) ainsi que dans les manuels scolaires, et nous les avons exécutées une par une dans le simulateur, en vérifiant ce qui se passait.

Le résultat est une série de corrections qui rendent l'interpréteur fidèle au comportement de la commande réelle : la syntaxe qui fonctionne à l'atelier doit aussi fonctionner dans le simulateur, et lorsqu'une ligne est réellement erronée, l'alarme doit indiquer ce qui manque, et non autre chose.

Les corrections concernent le moteur d'interprétation, qui est unique pour toutes les plateformes : elles sont donc actives sur ordinateur (Windows, macOS, Linux), tablette et smartphone, avec la même version.

---

## G71 / G72 — Cycles d'ébauche longitudinale et frontale

**Avant.** Le premier bloc du cycle n'était reconnu que s'il contenait à la fois la profondeur de passe (U pour G71, W pour G72) et le retrait R. Un `G71 U2` sans R, syntaxe valide sur Fanuc où le R est facultatif et le retrait provient du paramètre 5133, n'était pas reconnu : au bloc suivant, le simulateur signalait « paramètre U manquant » alors que le U était écrit dans la ligne. Il en allait de même avec le format à ligne unique `G71 P.. Q.. U.. W.. D.. F..` des commandes Fanuc plus anciennes et de nombreux manuels scolaires, où le D représente la profondeur de passe.

**Maintenant.**
- Le bloc 1 est reconnu avec le seul U (ou W pour G72) ; le R est facultatif, avec un retrait par défaut de 0,5 mm lorsqu'il est absent.
- Le format à ligne unique avec D est accepté. Le D sans point décimal s'exprime en microns (`D2000` = 2 mm), avec le point il s'exprime en millimètres (`D2.0` = 2 mm), comme sur la commande.
- Si le bloc 1 manque réellement, l'alarme le précise clairement : « il manque le bloc 1 de G71 (G71 U.. R..) avant G71 P.. Q.., ou la profondeur D dans la ligne unique ».
- Contrôle ajouté : D doit être supérieur à zéro.

Vérifié par tests de parité : les trois syntaxes (deux blocs avec R, deux blocs sans R, ligne unique) laissent le même profil sur la pièce, point par point, aussi bien sur le canal 1 que sur la contre-broche.

---

## G76 — Cycle de filetage

Ici, les problèmes étaient plus sérieux, car dans certains cas le simulateur ne signalait rien et n'exécutait tout simplement pas le filetage.

**Avant.** Les deux blocs étaient reconnus par une comparaison rigide sur la ligne entière : `G76 P Q R` et `G76 X Z P Q F` dans cet ordre exact, avec tous les paramètres obligatoires.
- Bloc 1 sans R, avec R avant Q, ou avec Q écrit avec un point décimal : alarme « P doit comporter 6 chiffres, trouvé P010060 », alors que le P était parfaitement correct.
- Bloc 2 avec le F avant P et Q, avec le R de conicité, avec U/W incrémentaux, avec Z avant X, avec Q avant P, avec P et Q en millimètres, ou dans le format à ligne unique `G76 X Z K D F A` des Fanuc 0T/10T : aucune alarme et aucun cycle. Le filetage n'était pas coupé.
- Bloc 2 sans Z : alarme correcte, mais le cycle démarrait quand même.

**Maintenant.**
- Les mots peuvent être placés dans n'importe quel ordre, avec ou sans espaces, en majuscules ou en minuscules.
- Bloc 1 : `G76 P{mmrraa} [Q..] [R..]`. Q et R sont facultatifs. Le P doit comporter 6 chiffres et est lu tel qu'écrit, zéros initiaux compris.
- Bloc 2 : `G76 X|U.. Z|W.. P|K.. Q|D.. F|E.. [R|I..] [A..]`. Sont acceptés aussi bien le format à deux blocs de la série 0i/31i (P hauteur du filet, Q première passe) que celui à ligne unique de la série 0T/10T/15T (K hauteur, D première passe, A angle). Le E est accepté comme pas de précision.
- P, Q, K, D sans point décimal s'expriment en microns (`P920` = 0,92 mm), avec le point en millimètres.
- U et W incrémentaux sont résolus à partir de la position courante de l'outil.
- Si l'axe d'arrivée, le pas, la hauteur du filet ou la première passe manquent, l'alarme indique le paramètre manquant et le cycle ne démarre pas.
- La conicité (R dans le format à deux blocs, I dans la ligne unique) est lue mais pas encore simulée : le filetage est exécuté cylindrique.

Vérifié par tests de parité : huit syntaxes différentes du bloc 2 et trois du bloc 1 produisent le même filetage M48×3, échantillonné tous les 0,25 mm, sur les deux canaux.

---

## G74, G75, G83, G84, G85, G88, G89 — Cycles de perçage, gorges, taraudage, alésage

**Avant.**
- Le bloc 2 n'acceptait que les cotes absolues X et Z. Avec U ou W incrémentaux, le cycle ne démarrait pas et la ligne était exécutée comme un mouvement linéaire en travail, sans alarme.
- Les mots P et Q étaient toujours interprétés en microns : un `Q5.0` écrit en millimètres devenait une prise de passe de 0,005 mm.
- Le G89 (alésage radial sur le diamètre) était implémenté mais n'apparaissait pas parmi les codes reconnus et déclenchait l'alarme « code G non pris en charge ».

**Maintenant.**
- U et W sont acceptés dans le bloc 2 de tous ces cycles et résolus en absolu à partir de la position courante de la pointe de l'outil, sur le canal actif.
- P et Q suivent la règle unique : sans point décimal en microns, avec le point en millimètres. La règle est la même pour tous les cycles (G71, G72, G74, G75, G76, G83).
- G89 est reconnu.

Vérifié par tests de parité : le perçage G83 avec `Z-30`, avec `W-35` depuis la position Z5 et avec `Q10.0` produit le même trou ; la gorge G75 avec `X80 Z-20` et avec `U-24 W-10` depuis la position X104 Z-10 produit la même gorge.

---

## Analyseur G-code — Nombres avec le point initial

Les valeurs écrites sans le zéro devant le point, comme `X.5`, `R.05` ou `U-.2`, sont valides sur Fanuc mais l'analyseur ne les lisait pas et les traitait comme zéro. Elles sont désormais lues correctement, pour tous les mots.

---

## Ce qui NE change PAS

- La logique de calcul des cycles (passes, profondeurs, retraits, discipline du filetage) reste identique à avant. Les corrections concernent la reconnaissance de la syntaxe et la qualité des alarmes.
- Les programmes déjà écrits dans le format standard à deux blocs continuent de fonctionner de manière identique.

---

## En cours de développement

Les cycles fixes du **système G-code A** des tours Fanuc (G90 cycle de tournage, G92 cycle de filetage, G94 cycle de dressage), très utilisés dans l'enseignement, ne sont pas encore simulés. Ce sont les prochains prévus au programme.

---

## Comment signaler une anomalie

Si vous trouvez une ligne de programme que le simulateur rejette ou exécute différemment de la commande réelle, ouvrez un signalement depuis l'assistance intégrée à l'application (menu Support, ouverture d'un ticket) en joignant le programme : nous l'utilisons directement comme cas de test. Chaque cycle corrigé dans cette mise à jour est né ainsi.

Partager