Comment est structuré un fichier GCODE ?

Le GCODE c'est la vie ! Toutes les imprimantes 3D du commerce fonctionnent en GCODE, ainsi que de nombreux équipements de fabrication numérique (fraiseuses, tours numériques, etc).

Maîtriser le GCODE est essentiel à partir d'un certain niveau d'utilisation pour améliorer les process d'impression et les adapter vraiment à son application.

Déjà, vous trouverez ici la liste des principaux GCODE utilisés sur imprimantes 3D ici.

Un fichier GCODE généré par un trancheur est structuré en 3 zones :

  1. GCODE de démarrage
  2. GCODE de travail
  3. GCODE de fin

GCODE de démarrage

Le GCODE de démarrage va permettre d'initialiser l'imprimante, de mettre en chauffe les extrudeurs ainsi que le plateau, mettre l'imprimante dans ses positions d'origine, éventuellement faire des purges, etc.

Voici un exemple de GCODE de démarrage simple commenté :

;Generated with Cura_SteamEngine 15.01
G21 ; on passe les unités de l'imprimante en mm
M107 ; on désactive le ventilateur s'il était activé
M190 S60 ; on met à chauffer le plateau et on ATTEND que la consigne soit atteinte avant d'aller plus loin
M104 S220 T0 ; on configure la température consigne de la tête 0 à 220°C et on passe tout de suis à la ligne d'après
G1 Z5 ; on fait un mouvement selon l'axe Z de 5mm afin de relever la tête du plateau et éviter ainsi d'arracher les pinces
G28 ; on initialise en position 0 tous les axes (X, Y et Z)
M109 S220 T0 ; maintenant on attend que la température de la buse soit bien à 220°C
G90 ; on travaille en coordonnées absolues (par rapport à l'origine)


; la séquence ci dessous permet d'initialiser le sens de rotation de l'extrudeur (il arrive que Repetier Host plante et fasse tourner le moteur dans le mauvais sens si on n'ajoute pas ce code)
T0 ; on sélectionne la tête 0
G92 E0 ; on fait une remise à 0 du compteur d'extrusion
M82 ; on passe les coordonnées d'extrusion en absolu
G1 F4800.000 E-0.20000 ; on fait une petite rétraction arrière du filament
G92 E0 ; on refait une remise à 0 du compteur d'extrusion
M300 S350 P1000 ; on fait un bip sur l'écran LCD (si possible)

On peut commenter le code comme on veut, il faut bien penser à mettre le “;” avant les commentaires, sinon le GCODE pourrait comporter des erreurs et ne fonctionnera pas correctement.

Ce GCODE de démarrage est personnalisable par l'utilisateur. Sous Cura, on peut l'éditer dans les paramètres d'impression :

GCODE de travail

Cette partie du GCODE est automatiquement générée par le trancheur. Ce sont tous les mouvements d'impression de la machine pendant l'imprimante, selon les axes X, Y, E (extrusion) et Z.

Voici un bloc de quelques lignes :

G1 F1800 X99.117 Y106.903 E0.04205
G1 X100.179 Y106.229 E0.08388
G1 X101.256 Y105.723 E0.12346
G1 X101.906 Y105.487 E0.14646
G1 X102.514 Y105.311 E0.16751
G1 X103.127 Y105.175 E0.18840
G1 X103.800 Y105.068 E0.21106
G1 X119.230 Y104.026 E0.72544
G1 X119.997 Y103.997 E0.75097
G1 X120.763 Y104.025 E0.77646

Que voyons nous ?

Nous avons les commandes de mouvement avec G1, des coordonnées en X, Y et en E. Toutes ces coordonnées sont en mm.

La valeur F1800 que l'on voit au début est une instruction de vitesse de déplacement. La vitesse sera la même tant qu'on ne remet pas une nouvelle valeur F. Ainsi il n'est pas nécessaire de spécifier la vitesse à chaque ligne.

Finalement, un GCODE d'impression n'est autre que des lignes de mouvement avec G1 et des coordonnées. Bien sûr, le trancheur possède les algorithmes nécessaires afin de bien gérer les vitesses d'impression en adéquation avec le débit d'extrusion.

A chaque changement d'épaisseur, on ajoute un nouvel axe : l'axe Z.

L'axe Z n'est sollicité qu'à chaque nouvelle couche, ce qui est assez commode pour retrouver une couche spécifique dans un GCODE :

G0 F6000 X99.601 Y114.997 Z0.400

Pour information, dans le firmware des imprimantes 3D Marlin, G0 et G1 sont des commandes qui ont le même effet, c'est à dire un déplacement.

GCODE de fin

Le GCODE de fin est aussi configurable dans Cura, comme le GCODE de démarrage.

Il permet d'avoir les instructions à réaliser en fin d'impression pour dégager le plateau, arrêter les chauffes, éventuellement faire des purges, etc.

Voici le GCODE de fin pour une Tobeca 3 :

G92 Z0 ; on fait une remise à 0 de l'axe Z
G1 Z5 ; on relève l'axe Z de 5mm (ces deux lignes permettent dans tous les cas de relever le Z de 5, même si on est à un Z > 5, rappelez vous, on travaille en coordonnées absolue, il est donc de faire une remise à 0 pour ne pas avoir de problème
G1 X10 Y180 ; on met la tête d'impression proche de son origine et on avance le plateau
M107 ; on arrête de ventiler

T0 ; on sélectionne la tête 0
G1 E-1 ; on fait une petite rétraction afin de ne pas la laisser en pression inutilement
M104 T0 S0 ; on arrête de chauffer la tête (0°C en consigne)

G92 E0 ; on fait une remise à 0 de l'axe extrudeur
M140 S0 ; on arrête de chauffer le plateau
M84 ; on arrête les moteurs (permettant de ne pas les laisser en tension, et ainsi de déplacer les axes à la main)
M300 S350 P1000 ; on fait un bip de fin

Le plus simple : avec le bloc note

Le GCODE est un simple fichier texte, lisible par tous.

Mieux : avec Notepad++ sous Windows, qui permet de faire des recherches et des remplacements plus facilement qu'avec le bloc note standard.