Codes G et M — référence CNC
Référence complète des codes G et M pour Fanuc 0i/30i et Siemens 840D SL. Les groupes indiquent les codes mutuellement exclusifs (modal).
Codes G — fonctions préparatoires
| Code | Grp | Description | Syntaxe | Note |
|---|---|---|---|---|
| G00 | 1 | Déplacement rapide (positionnement) | G00 X__ Y__ Z__ | Vitesse max machine — sans coupe |
| G01 | 1 | Interpolation linéaire (avance programmée) | G01 X__ Y__ Z__ F__ | Déplacement avec avance F (mm/min) |
| G02 | 1 | Interpolation circulaire sens horaire | G02 X__ Y__ I__ J__ F__ | ou R__ à la place de I J |
| G03 | 1 | Interpolation circulaire sens antihoraire | G03 X__ Y__ I__ J__ F__ | ou R__ à la place de I J |
| G04 | 0 | Temporisation (dwell) | G04 X1.5 ou G04 P1500 | X en secondes, P en millisecondes |
| G17 | 2 | Plan de travail XY (défaut fraisage) | G17 | G18 = ZX, G19 = YZ |
| G20 | 6 | Unités en pouces (inches) | G20 | G21 = millimètres |
| G21 | 6 | Unités en millimètres (défaut) | G21 | Toujours préciser en début de programme |
| G28 | 0 | Retour origine machine (via point intermédiaire) | G28 Z0 (puis G28 X0 Y0) | Z en premier pour dégager |
| G40 | 7 | Annulation compensation rayon outil | G40 | Annule G41 ou G42 |
| G41 | 7 | Compensation rayon outil à gauche | G41 D__ | D = numéro correcteur |
| G42 | 7 | Compensation rayon outil à droite | G42 D__ | D = numéro correcteur |
| G43 | 8 | Compensation longueur outil positive | G43 H__ | H = numéro correcteur longueur |
| G49 | 8 | Annulation compensation longueur | G49 | |
| G54 | 14 | Décalage origine pièce 1 (Work Offset 1) | G54 | G54 à G59 = 6 origines pièce standard |
| G80 | 9 | Annulation cycle fixe | G80 | Annule G81, G83, G84, G85… |
| G81 | 9 | Cycle de perçage simple | G81 X__ Y__ Z__ R__ F__ | Sans débourrage |
| G83 | 9 | Cycle de perçage profond avec débourrage | G83 X__ Y__ Z__ R__ Q__ F__ | Q = profondeur par passe |
| G84 | 9 | Cycle de taraudage rigide | G84 X__ Y__ Z__ R__ F__ | F = N × pas (mm/min) |
| G90 | 3 | Programmation en valeurs absolues (défaut) | G90 | Les coordonnées référencées à l'origine |
| G91 | 3 | Programmation en valeurs relatives (incrémental) | G91 | Les coordonnées = déplacement depuis position actuelle |
| G94 | 5 | Avance en mm/min (défaut fraisage) | G94 | G95 = mm/tr (tournage) |
| G95 | 5 | Avance en mm/tr (tournage) | G95 | Utilisé avec broche en rotation constante |
| G96 | 13 | Vitesse de coupe constante (CSS) | G96 S200 | S = Vc en m/min — tournage |
| G97 | 13 | Vitesse broche constante (tr/min) | G97 S1500 | S = tr/min — fraisage et perçage |
Codes M — fonctions auxiliaires
| Code | Description | Note |
|---|---|---|
| M00 | Arrêt programme (opérateur reprend) | Attente opérateur |
| M01 | Arrêt optionnel (si bouton actif) | Contrôlé par l'opérateur |
| M02 | Fin de programme (sans rembobinage) | |
| M03 | Rotation broche sens horaire (sens tranchant) | S = vitesse en tr/min |
| M04 | Rotation broche sens antihoraire | Taraudage gauche, certains outils |
| M05 | Arrêt broche | |
| M06 | Changement d'outil | T__ M06 ou M06 T__ selon CN |
| M08 | Arrosage marche | M09 = arrosage arrêt |
| M09 | Arrosage arrêt | |
| M19 | Orientation broche (position angulaire définie) | Avant changement outil ou alésage |
| M30 | Fin de programme + rembobinage au début | Le plus utilisé en fin de programme |
| M98 | Appel sous-programme | M98 P__ (P = numéro sous-programme) |
| M99 | Fin de sous-programme / retour | Dans le sous-programme |
Codes modaux vs non-modaux — fonctionnement
CODES MODAUX — RESTENT ACTIFS JUSQU'À ANNULATION (PAR GROUPE)
; G01 est modal (groupe 1) — reste actif sur les blocs suivants
G01 X50. F300 ; G01 actif
X100. ; G01 toujours actif (pas besoin de répéter)
Y80. ; idem — G01 modal
; G00 annule G01 (même groupe 1) :
G00 X0. Y0. ; G01 annulé → déplacement rapide
; G90 est modal (groupe 3) — une seule déclaration suffit :
G90 ; Absolu activé pour tout le programme
G01 X50. F300 ; En absolu
X100. ; En absolu encore
; G04 est NON-modal (groupe 0) — action unique sur un seul bloc :
G04 P500 ; Temporisation 0.5 s — uniquement ce bloc
G01 X50. F300 ; G04 n'est plus actifRègle : les codes du groupe 0 sont non-modaux (action unique). Tous les autres groupes (1, 2, 3…) sont modaux — un seul code actif par groupe à tout moment.
Structure d'un programme CNC type
O1001 ; Numéro programme (Fanuc) N10 G21 G17 G40 G49 G80 ; Initialisation sécurité (mm, plan XY, annul. comp.) N20 G90 G54 ; Absolu, origine pièce 1 N30 T01 M06 ; Appel outil 1 N40 G43 H01 ; Compensation longueur outil 1 N50 M03 S3000 ; Broche en marche, 3000 tr/min N60 M08 ; Arrosage N70 G00 X10. Y10. ; Positionnement rapide N80 Z5. ; Approche rapide Z N90 G01 Z-5. F300 ; Plongée en avance N100 X100. F600 ; Fraisage en avance N110 G00 Z50. ; Dégagement Z rapide N120 M05 ; Arrêt broche N130 M09 ; Arrosage arrêt N140 M30 ; Fin programme
📖 Nouveau sur le G-code ? Guide G-code pour débutants — structure, exemples commentés, G43 expliqué