Le G-code est la suite d'ordres que l'imprimante lit une ligne après l'autre : où aller, à quelle vitesse, combien de plastique pousser, quelle température tenir. Le slicer l'écrit à partir de votre modèle et de vos réglages. Savoir lire quelques lignes suffit pour comprendre ce que fait la machine, et pour dépanner.
Ce guide de la rubrique Débuter vient après le fichier STL dans la chaîne de fabrication. Il suppose que vous avez déjà une idée du parcours complet. Le but n'est pas d'écrire du G-code à la main, mais de ne plus le regarder comme une boîte noire.
Ce qu'est le G-code et d'où il vient
Le G-code est un langage de commande de machines-outils, normalisé sous la référence ISO 6983 et connu aussi sous le nom RS-274. Il a été conçu pour piloter des fraiseuses et des tours à commande numérique. Les imprimantes 3D l'ont repris, en ajoutant des commandes pour chauffer et extruder.
Le principe est celui d'un programme de machine : une instruction par ligne, exécutée dans l'ordre. Le fichier est du texte brut. N'importe quel éditeur l'ouvre, et c'est aussi ce qui le rend sensible aux erreurs de copie ou d'édition.
Le firmware de l'imprimante, c'est-à-dire le programme qui tourne dans la carte électronique, interprète chaque ligne. Marlin est l'un des firmwares les plus répandus, et sa documentation sur marlinfw.org tient lieu de référence pour les commandes courantes. D'autres firmwares, comme Klipper, reprennent une grande partie du vocabulaire et y ajoutent leurs propres commandes.
Qui écrit le fichier
Ce n'est pas vous, sauf choix délibéré. Le slicer lit le modèle, le découpe en couches, calcule la trajectoire de la buse pour chaque couche et traduit tout cela en lignes. Les logiciels Cura, PrusaSlicer et OrcaSlicer font ce travail, chacun avec ses réglages et son style de rédaction.
Le résultat est un fichier très long, dont la taille grandit avec la pièce. Aucune raison de le lire en entier : seules quelques commandes reviennent, et elles suffisent à s'y repérer.
Anatomie d'une ligne
Une ligne de G-code se compose d'une commande, de paramètres et, parfois, d'un commentaire.
La commande est une lettre suivie d'un nombre. La lettre G désigne en général un mouvement, la lettre M une action de la machine : chauffer, ventiler, régler un moteur. Les paramètres suivent, chacun avec sa lettre. X, Y et Z donnent les positions, E la quantité de filament, F la vitesse d'avance, S une valeur à régler, comme une température.
Un point-virgule ouvre un commentaire, que la machine ignore. Les slicers en sèment partout pour signaler le type de trait ou le début d'une couche. Ils vous aident à vous repérer.
Les commandes que l'on rencontre partout
Une dizaine de commandes suffisent à lire la plupart des fichiers. Les descriptions qui suivent reprennent la documentation de Marlin.
| Commande | Rôle | À retenir |
|---|---|---|
| G28 | Retour à l'origine des axes (homing) | En début de fichier, avant tout mouvement précis |
| G0, G1 | Déplacement linéaire | G1 avec E pousse du filament ; G0 est un déplacement sans extrusion |
| G90 / G91 | Coordonnées absolues / relatives | Change l'interprétation de X, Y, Z |
| M82 / M83 | Extrusion en absolu / en relatif | Change l'interprétation de E |
| M104 | Règle la température de la buse, sans attendre | La machine continue sans patienter |
| M109 | Règle la température de la buse et attend | Le fichier ne continue qu'une fois la cible atteinte |
| M140 | Règle la température du plateau | Souvent suivi d'une commande qui attend |
Les déplacements : G0 et G1
D'après la documentation Marlin, G0 et G1 ajoutent un déplacement linéaire à la file d'attente, exécuté une fois les mouvements précédents terminés. Sur une machine cartésienne, G0 est un alias de G1. Par convention, les slicers emploient G1 avec un paramètre E pour déposer du plastique, et G0 pour les déplacements à vide.
La vitesse, donnée par F, s'applique aux mouvements suivants qui ne la précisent pas : on n'a donc pas besoin de la répéter à chaque ligne. L'unité de F dépend du firmware, et la documentation de votre machine en donne la valeur exacte.
Un cas type de ligne d'impression : G1 X50 Y20 E1.2. Elle dit : aller au point X 50, Y 20 en poussant du filament, la quantité étant donnée par E. Les valeurs de cette ligne sont des illustrations.
Les températures : M104, M109 et M140
M104 règle la cible de la buse et rend la main tout de suite : la machine continue pendant que la chauffe s'effectue. M109 règle la même cible, mais attend qu'elle soit atteinte, comme le précise la page de la documentation Marlin sur M109. M140 règle la température du plateau.
Cette distinction explique un début de fichier typique. On lance la chauffe du plateau, puis celle de la buse, et on attend qu'elles soient prêtes avant de poser le premier trait. Une machine qui extrude à froid peut avoir reçu un M104 là où il fallait un M109.
Absolu ou relatif
G90 met les positions en mode absolu : X50 signifie « aller au point 50 ». G91 les met en relatif : X50 signifie « avancer de 50 ». Un fichier qui change de mode sans le rétablir fait partir la machine au mauvais endroit. Le même principe vaut pour l'extrusion avec M82 et M83.
La plupart des fichiers de slicer restent en absolu du début à la fin. Les passages en relatif apparaissent dans des routines particulières, comme une rétraction ou un petit soulèvement de la buse. Si vous modifiez un fichier à la main, la première vérification consiste à contrôler le mode en vigueur.
Un début de fichier, ligne à ligne
Un fichier commence presque toujours par une séquence de préparation, appelée G-code de début, propre au profil de la machine. Une forme possible, avec des valeurs d'illustration, donne ceci. Les températures réelles viennent de la plage indiquée sur l'étiquette de votre bobine.
; exemple commenté, valeurs d'illustration
G28 ; retour à l'origine des axes
M140 S60 ; cible plateau
M104 S185 ; cible buse, sans attendre
M109 S185 ; attendre la température de la buse
G90 ; positions en absolu
M82 ; extrusion en absolu
G1 X10 Y10 ; aller au point de départ
Cette séquence se lit sans difficulté : la machine se met à l'origine, lance les chauffes, attend la buse, fixe les modes, puis se place. C'est dans ce bloc que se trouvent les réglages de purge, de ligne d'amorce et parfois de mise à niveau, selon la machine. Les profils de slicers le fournissent pour chaque modèle, d'où l'importance de choisir le bon profil.
La fin de fichier
À l'inverse, le G-code de fin coupe les chauffes, relève la buse, parque la tête et désactive les moteurs. Il est rarement la source d'un problème, sauf lorsqu'il manque : sans lui, la buse reste chaude au-dessus de la pièce. Si votre machine ne s'éteint pas toute seule à la fin, regardez les dernières lignes du fichier et le profil utilisé.
Lire un fichier sans se perdre
Pour un fichier long, la lecture se fait par repères. Cherchez les commentaires du slicer qui marquent le début d'une couche : ils changent le plus souvent avec la hauteur Z. Cherchez aussi les lignes qui contiennent une température, qui montrent quand elle change. Un éditeur de texte avec recherche suffit.
L'aperçu du slicer reste cependant plus parlant. Il affiche les trajets couche par couche, avec une couleur par type de trait : parois, remplissage, supports, déplacements. Faire défiler cet aperçu et lire en parallèle les lignes qui lui correspondent est la meilleure manière d'apprendre. Certaines retouches se règlent d'ailleurs sans toucher au fichier. La rétraction a un réglage dédié dans le slicer, présenté dans Rétraction : longueur, vitesse et tests.
Modifier un G-code : quand et comment
Modifier le fichier à la main est possible, mais rarement la meilleure option. Pour changer une température, une hauteur de couche ou un remplissage, on retourne dans le slicer. Le fichier généré à nouveau reste cohérent de bout en bout.
Quelques retouches ponctuelles se justifient. Une pause à une couche précise pour insérer un écrou. Une température changée en cours de pièce. Un début de fichier à corriger. Dans ce cas, travaillez sur une copie, modifiez peu, relisez avant d'envoyer, et surveillez les premières minutes de l'impression.
Un fichier venu de quelqu'un d'autre demande une vigilance supplémentaire. Il a été écrit pour une machine précise, avec ses dimensions, son plateau et ses limites. Le lancer sur une autre peut conduire la buse à heurter le plateau ou à sortir de la zone d'impression. La température peut aussi être inadaptée à votre matière. Mieux vaut trancher à nouveau le modèle avec votre propre profil que de reprendre le fichier tel quel.
Cette précaution rejoint la logique de la calibration : un fichier ne vaut que pour la machine réglée qui l'exécute.
Si ça ne marche toujours pas
L'imprimante ne démarre pas, ne chauffe pas ou se place au mauvais endroit ? Commencez par le début du fichier : le retour à l'origine, les chauffes, les modes absolu ou relatif. Un profil de slicer destiné à une autre machine est la cause la plus fréquente. Vérifiez que le profil correspond à votre imprimante et que le firmware accepte les commandes utilisées.
Si l'impression commence mais que la première couche échoue, passez à l'article sur la première couche, car le problème vient rarement du G-code. Si la machine elle-même est en cause, la rubrique Choisir son imprimante et l'article Quelle imprimante 3D choisir permettent de reprendre les critères. Pour comprendre la technique dans son ensemble, Impression 3D : comment ça marche reste la base.
Idée reçue ou réalité ?
G-code : vrai ou faux ?
Le G-code est un langage normalisé sous la référence ISO 6983, conçu pour des machines-outils.
L'explication se trouve dans la partie Ce qu'est le G-code et d'où il vient
Il a été conçu pour piloter des fraiseuses et des tours à commande numérique ; les imprimantes 3D l'ont repris en ajoutant des commandes pour chauffer et extruder.C'est l'utilisateur qui écrit le G-code à la main avant chaque impression.
L'explication se trouve dans la partie Ce qu'est le G-code et d'où il vient
Le slicer lit le modèle, le découpe en couches, calcule la trajectoire de la buse et traduit le tout en lignes.M104 règle la température de la buse et attend qu'elle soit atteinte.
L'explication se trouve dans la partie Les températures : M104, M109 et M140
M104 règle la cible et rend la main tout de suite. C'est M109 qui attend que la température soit atteinte.Un fichier G-code écrit pour une autre machine peut provoquer des collisions sur la vôtre.
L'explication se trouve dans la partie Modifier un G-code : quand et comment
Il a été écrit pour une machine précise, avec ses dimensions et ses limites : la buse peut heurter le plateau ou sortir de la zone d'impression.Un point-virgule ouvre une ligne que la machine exécute en priorité.
L'explication se trouve dans la partie Anatomie d'une ligne
Un point-virgule ouvre un commentaire, que la machine ignore : il sert à vous repérer.
Pour continuer : Rétraction : longueur, vitesse et tests
Faire résumer ce guide par une IA
Chaque bouton ouvre l'assistant avec la demande déjà rédigée. Le mag ne transmet rien de votre côté.
Questions d'atelier
À quoi sert le G-code en impression 3D ?
Il transmet à la machine ce qu'elle doit faire, dans l'ordre : chauffer, se placer, déplacer la tête, extruder du plastique. Le slicer le génère à partir du modèle et de vos réglages. L'imprimante lit les lignes l'une après l'autre.
Peut-on modifier un fichier G-code à la main ?
Oui, avec un éditeur de texte, car le fichier est lisible. Pour de petites retouches, comme changer une température ou ajouter une pause, c'est faisable. Pour tout le reste, mieux vaut modifier les réglages dans le slicer et trancher à nouveau le modèle.
Quelle est la différence entre M104 et M109 ?
M104 règle la température de la buse et passe tout de suite à la suite. M109 règle la même température mais attend qu'elle soit atteinte avant de continuer. Un début de fichier utilise en général M109 pour ne pas lancer l'extrusion à froid.
Un G-code est-il le même pour toutes les imprimantes ?
Le langage de base est commun, mais chaque firmware ajoute ses commandes. Un fichier est généré pour une machine précise, avec ses dimensions et son début de fichier. L'envoyer sur une autre machine expose à des collisions ou à des chauffes inadaptées.



