Tutoriel complet du G-Code pour l’impression 3D

Qu’est-ce que le G-Code ?

Le G-Code (abréviation de Gerber Code à l’origine, aujourd’hui RS-274) est le langage de programmation numérique le plus répandu pour piloter les machines à commande numérique (CNC) : imprimantes 3D, fraiseuses, découpeuses laser. Dans le monde de l’impression 3D, c’est lui qui dicte chaque mouvement de la buse, la température, la vitesse et le débit de filament.

Imaginez le G-Code comme une partition musicale : le slicer (Cura, PrusaSlicer, OrcaSlicer) est le compositeur, et l’imprimante est l’instrument. Comprendre cette partition vous permet de déboguer une impression ratée, d’optimiser vos réglages, et même d’écrire vos propres macros.

Anatomie d’une ligne de G-Code

Chaque ligne est une « instruction ». Elle commence par une lettre (l’adresse) suivie d’un nombre. Les lettres les plus courantes :

  • G → commande de déplacement géométrique (G0, G1, G28…)
  • M → commande machine/macro (M104, M109, M190, M104…)
  • X, Y, Z → position sur les axes (en millimètres)
  • E → position de l’extrudeur (débit de filament)
  • F → vitesse d’avance (feedrate, en mm/min)
  • S → valeur paramètre (souvent la température en °C)

Exemple minimal :

G1 X10 Y10 Z0.2 E1.0 F1200 ; avance vers (10,10) en déposant du filament

Le point-virgule ; introduit un commentaire ignoré par l’imprimante — précieux pour documenter.

Les commandes G fondamentales

G0 et G1 — se déplacer

G0 est un déplacement rapide (sans extrusion, « travel »), G1 un déplacement en imprimant. La différence est cruciale : utiliser G1 sans E quand on ne veut pas déposer de filament provoque des fils (stringing).

G0 Z0.2          ; monte à 0.2 mm (rapide)
G1 X100 Y100 E20 F1500 ; imprime vers (100,100)

G28 — l’homing (origine)

G28 renvoie l’imprimante à son point d’origine (les fins de course). G28 X Y ne fait que les axes X et Y. C’est presque toujours la première ligne d’un fichier.

G90 / G91 — position absolue ou relative

G90 : les coordonnées sont absolues (depuis l’origine). G91 : relatives (par rapport à la position courante). La plupart des slicers travaillent en G90.

G92 — fixer une position

G92 E0 remet le compteur d’extrudeur à zéro sans bouger la machine. Indispensable avant un purge ou un retract.

Les commandes M essentielles

M104 / M109 — chauffer la buse

M104 chauffe sans attendre (la suite s’exécute pendant le chauffage), M109 chauffe et bloque jusqu’à la consigne. Exemple : M109 S210 attend 210 °C.

M140 / M190 — chauffer le plateau

Identique mais pour le bed. M190 S60 attend que le plateau atteigne 60 °C (idéal PLA).

M82 / M83 — extrudeur absolu ou relatif

M82 (absolu) : E est une position cumulée. M83 (relatif) : chaque E est un incrément. Marlin récent utilise souvent M83 par défaut dans les slicers.

M204 / M205 — accélérations et jerk

Ces commandes règlent la douceur des mouvements. Réduire le jerk (M205 X Y) diminue le « ringing » sur les angles vifs.

M600 — changement de filament

Utilisé pour le multicolor manuel ou les pauses. L’imprimante s’arrête, vous changez le filament, vous reprenez.

Un exemple concret : le début d’un fichier typique

Voici le « start G-code » généré par un slicer pour une imprimante cartésienne (Marlin) :

; start gcode
M140 S60          ; chauffe plateau (non bloquant)
M104 S210         ; chauffe buse (non bloquant)
G28               ; home tous axes
G1 Z5 F3000       ; lève un peu
G1 X0 Y0 F3000    ; va au coin
M190 S60          ; attend plateau
M109 S210         ; attend buse
G92 E0            ; reset extrudeur
G1 E10 F200       ; purge 10 mm
G92 E0            ; reset encore
G1 Z0.2 F3000     ; descend au 1er layer

Ce bloc garantit que la machine est à température et purge avant le 1er trait réel.

Lire et déboguer un G-Code

Quand une impression échoue, le G-Code est votre meilleur allié. Ouvrez le fichier .gcode (c’est du texte) ou visualisez-le avec Cura / OrcaSlicer (vue couche par couche).

  • Première couche qui décolle → vérifiez Z0.2 (trop haut ?) et la température M109.
  • Filaments qui coulent sans impression → un G1 sans E ou un G92 E0 mal placé.
  • Buse qui racle le bed → valeur Z d’origine incorrecte dans G28 / G92.

Modifier un G-Code existant (sans re-slicer)

Besoin d’ajouter une pause à mi-hauteur pour insérer une vis ? Insérez simplement :

M600 ; pause pour insertion de matériel
G1 Z50 F3000 ; lève pour accès

Placez ces lignes juste avant la couche voulue (repérable par un commentaire ;LAYER:x dans la plupart des slicers).

Conclusion

Le G-Code n’est pas réservé aux ingénieurs : c’est un langage simple, lisible, et redoutablement efficace. En quelques commandes (G0/G1 pour bouger, M104/M109 pour chauffer, G28 pour l’origine, G92 pour caler l’extrudeur), vous pilotez intégralement votre imprimante. Maîtriser ces bases vous fait passer du statut d’« utilisateur de slicer » à celui de véritable contremaître de votre machine.

Pour aller plus loin, explorez les références G-Code de Marlin ou le wiki RepRap, qui recensent des centaines de commandes selon le firmware (Marlin, Klipper, RRF).

Laisser un commentaire