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).
PROGRAMMATION — CODES G ET M
G02/G03 avec I/J incohérents : si la distance départ→centre est différente de la distance arrivée→centre, alarme P/S 020sur Fanuc. Avec R : si R est inférieur à la moitié de la distance entre les deux points, l'arc est géométriquement impossible. Vérifier la cohérence géométrique avant lancement. Sur Fanuc, le paramètre 3410contrôle la tolérance de fermeture d'arc (défaut 0,001 mm). R négatif programme l'arc ≥ 180° (arc majeur) ; R positifprogramme l'arc < 180° (arc mineur). Initialisation type :
G21 G17 G40 G49 G80 G90 G54 puis G28 Z0 avant G28 X0 Y0 (sécurité Z avant XY).Codes G — fonctions préparatoires
| Code | Groupe | 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
Pièges atelier et conseils terrain
ATTENTION
Modal vs non-modal — confusion source de cycles non annulés
Tout code d'un groupe autre que 0 reste actif jusqu'à annulation. Cycles fixes G81-G85 modaux : oublier
G80 = perçage intempestif au déplacement suivant. Compensations G41/G42 : oublier G40 avant M06 = comportement imprévisible. G91 incrémentaloublié = déplacements relatifs au lieu d'absolus.DANGER
G90/G91 — toujours préciser en début de programme
Sur Fanuc, le mode (absolu/incrémental) est mémorisé d'un programme à l'autre. Lancer un programme prévu en G90 sur une CN restée en G91 = trajectoires complètement fausses. Verrouiller G90en début de programme dans la ligne d'initialisation.
ATTENTION
G54 obligatoire avant tout déplacement absolu
G90 seul n'est pas suffisant : l'absolu doit avoir une origine. Sans G54 (ou G55-G59), la CN utilise l'origine machine — outil à des kilomètres de la pièce, alarme limite course. Toujours programmer G90 G54 ensemble en début de programme.INFO
M30 vs M02 — préférer M30
M30 = fin de programme + rembobinage au début (programme prêt à relancer). M02 = fin sans rembobinage (programme nécessite repositionnement manuel). M30 est standard production, M02 réservé aux cas particuliers.
INFO
G28 Z0 avant G28 X0 Y0 — sécurité Z toujours première
Toujours dégager Z en premier avant tout mouvement X/Y de retour à l'origine machine.
G28 Z0 remonte l'axe Z (point intermédiaire Z0), puis G28 X0 Y0 retourne en X/Y. Inverser = risque collision outil/pièce/bridage.ATTENTION
G02/G03 avec I/J ou R — cohérence géométrique critique
Avec I/J : la distance départ→centre doit égaler la distance arrivée→centre (alarme P/S 020 Fanuc sinon). Avec R : R doit être ≥ moitié de la distance entre les deux points. R positif = arc < 180°, R négatif = arc ≥ 180°. Paramètre Fanuc 3410 = tolérance fermeture (défaut 0,001 mm).
📄 OUTIL ATELIER — PDF À IMPRIMER
Mémo Atelier CNC — Paramètres de coupe par matière
Vc, fz, Ra pour 10 matières (acier, inox, alu, titane, Inconel...) + 7 formules essentielles + checklist 16 points. 2 pages, format A4, à imprimer et garder près de la machine.
Aucun spam. Désabonnement en 1 clic. Données utilisées uniquement pour l'envoi de ressources CNCYRON, conformément à notre politique de confidentialité.
Questions fréquentes
Aller plus loin — calculateurs et ressources
G41 / G42 — compensation rayon/programmation-cnc/g-code/g41-g42/Compensation rayon outil — sens gauche/droite, règles d'activation et erreurs courantes.G43 / G44 — compensation longueur/programmation-cnc/g-code/g43-g44/Compensation longueur outil + activation H + annulation G49.Cycles fixes de perçage/programmation-cnc/g-code/cycles-percage/G81 / G82 / G83 / G84 / G85 — référence Fanuc avec syntaxe et paramètres.Calculateur vitesse de coupe Vc/calculateurs/vitesse-de-coupe/N = (1 000 × Vc) / (π × D) — calculer S pour M03/M04.Fiches matières — Vc par nuance/matieres/60 fiches techniques pour choisir Vc selon matière avant G96/G97.Blog — Guide G-code pour débutants/blog/gcode-debutant-guide-complet/Structure programme, exemples commentés, G43 expliqué pas-à-pas.