G-Code (Gcode). C’est quoi?

Cette question va sans doute paraître iconoclaste à tous ceux (et celles) déjà familiers des machines à commande numérique, mais c’est pourtant une question légitime pour toute personne envisageant de se lancer dans le fraisage CNC, d’autant qu’aujourd’hui de nombreux logiciels permettent de ne pas trop avoir à se soucier de ce G-Code, puisqu’ils le génèrent pour nous. Pourtant, il est utile de connaître ce langage de programmation (puisque c’est ce dont il s‘agit), d’une part pour comprendre ce qui se passe, d’autre part pour pouvoir lancer de courtes commandes manuelles à sa machine, pour la régler où pour tester une opération spécifique.

Donc, le G-Code, c’est quoi?

Comme indiqué précédemment, le G-Code est le langage utilisé pour contrôler une machine à commande numérique. Il s’agit bien d’un langage de programmation, qui nous sert donc à programmer les mouvements que la machine va effectuer, et le fichier contenant la suite d’instructions s’appelle, en toute logique, un programme. Il s’agit de simple fichier texte, humainement lisible, au même titre que du code en C, Pascal où Basic. Il se compose d’un certain nombre de “commandes” spécifiques, indiquant à la machine quel type de mouvement elle doit exécuter (droite, arc de cercle, etc.), et d’indications de coordonnées sur les axes X, Y et Z (Je n’envisage que les cas les plus classiques d’une fraiseuse sur 3 dimensions). Il est à noter que G-Code n’est pas utilisé exclusivement pour des fraiseuse à commande numérique, mais aussi pour des tours, des imprimantes 3D et des lasers de découpe.

Voici à quoi pourrait ressembler un petit programme G-Code:

O1000
T1 M6
(Linear / Feed - Absolute)
G0 G90 G40 G21 G17 G94 G80
G54 X-75 Y-75 S500 M3  (Position 6)
G43 Z100 H1
Z5
G1 Z-20 F100
X-40                   (Position 1)
Y40 M8                 (Position 2)
X40                    (Position 3)
Y-40                   (Position 4)
X-75                   (Position 5)
Y-75                   (Position 6)
G0 Z100
M30

Je ne vais pas ici détailler par le menu ce que chaque instruction et chaque ligne signifie, mais simplement “dégrossir” les commandes envoyées à la machine par ce programme. A vous de me dire ensuite, si vous avez suivi, quel genre de fraisage ce programme effectue. Si vous cherchez un peu, vous trouverez plusieurs sites ayant des interpréteurs/simulateurs de G-Code…

La toute première ligne n’est qu’une référence du programme lui même, pas une instruction G-Code.

  • T1 = sélectionne l’outil 1.
  • M6 = changement d’outil (sous programme de changement d’outil, si la machine en est équipée)
  • G0 G90 G40, etc., sont une suite de commandes indiquant comment la machine doit gérer les déplacements et les coordonnées (absolues ici), sélection du plan dans lequel on travaille, etc. G0 est pour le mode de déplacement rapide.
  • G54 est l’activation du décalage du point d’origine par rapport à la pièce à travailler, suivie des coordonnées en X et Y, suivie de la définition de la vitesse de rotation (S500) de l’outil (broche) à 500 tours minute, et mise en rotation de celle-ci (M3)
  • G43 demande la prise en compte de la longueur d’outil, définie par H1, et fait monter l’axe Z de 100
  • Z5 amène l’outil à +5 du niveau 0 de référence (normalement le dessus de la pièce à travailler)
  • G1 est le mode d’interpolation linéaire en vitesse de travail, l’axe Z descend de 20, et la vitesse de déplacement sur axe est de 100 (F100)
  • Les lignes suivantes indiquent à la machine les différents tracés qu’elle doit effectuer. Sachant que l’axe Z est à –20, et en assumant que la pièce fasse une épaisseur de 20, on a bien une découpe suivant ce tracé.
  • M8 est la commande pour un arrosage/refroidissement.
  • G0 est la commande pour repasser en mode rapide, Z100 remonte l’outil d’autant.
  • M30 indique a fin de programme. Il n’y a pas ici de commande ramenant la broche (et l’outil) an point de départ.

On peut voir tout de suite que certaines commandes sont puissantes et permettent à la machine d’effectuer des opérations complexes, alors que le suivi du tracé demande une commande pour chaque déplacement. Il est donc évident qu’une pièce complexe, avec des courbes, des poches, des forages de différents diamètres va nécessiter un nombre conséquent de lignes, dépassant rapidement le millier.

Par différence avec un programme informatique, qui est généralement compilé (transformé en 0 et 1) pour pouvoir être exécuté par le processeur, un programme G-Code est envoyé à un “interpréteur/contrôleur”, qui va lire ce code et le transformer en impulsions électriques pour les moteurs pas à pas et les différents périphériques (broche, refroidissement, etc.). C’est ce que fait GRBL, mais aussi les cartes d’interfaces de Mach3 où PlanetCNC, par exemple

Pourquoi et comment apprendre G-Code?

Je n’irais pas jusqu’à dire qu’une très bonne connaissance de G-Code est requise pour utiliser convenablement une machine CNC, mais avoir au minimum la capacité de lire, et éventuellement d’adapter, un programme G-Code est tout de même une très bonne chose, y compris pour un amateur. La capacité d’écrire de petits programmes tests est aussi utile. Malheureusement, je n’ai pas vu grand chose coté tutoriels en français. Soit on a affaire à quelque chose de très scolaire, daté, et ne correspondant pas vraiment aux besoins d’un amateur, soit on a un rapide survol, plus où moins attaché à une machine où un logiciel spécifique.

Il me semble que la meilleure manière d’apprendre est encore la pratique, avec essais et erreurs. Bien évidemment, s’il vous faut une machine, des morceaux de bois où de métal, et des outils cassés pour apprendre le G-Code, ça risque de finir par coûter cher, et vous allez être dégoûté avant peu. De plus, ça peu se révéler dangereux. Heureusement, puisqu’il s’agit de code et de programmes, un logiciel peut remplacer la machine numérique pour vos essais et votre apprentissage. J’ai réalisé il y a quelque temps une vidéo montrant l’utilisation d’un simulateur CNC.

Vous pouvez télécharger ce programme ici: http://cncsimulator.info De mon point de vue, l’intérêt de ce simulateur est que vous pouvez tester votre code sur une machine (virtuelle, certes!) ayant des limites de dimensions. Vous pouvez aussi vous en servir pour créer votre propre machine. Les nombreux “tutoriels” que j’ai pu trouver en français ne sont malheureusement pas réellement dédiés à l’apprentissage du G-Code, mais plutôt à comment le générer avec tel où tel programme, où à comment utiliser G-Code avec Mach3 où autre logiciel pour machine CNC (Si je me trompes, et qu’un bon tutoriel G-Code existe en français, je me ferais un plaisir de corriger ce paragraphe et de le faire connaître). Par contre, pour ceux qui lisent l’anglais il y a de nombreux outils et tutoriaux disponibles, comme celui-ci: http://www.helmancnc.com/simple-g-code-example-mill-g-code-programming-for-beginners/, où le très complet Tutorial et Simulateur de CNC CookBook. Vous trouverez aussi de nombreux “G-Code Viewer”, permettant de visualiser en 3 D ce que le G-Code fait, mais la plupart sont dédiés aux imprimantes 3D, et pas au fraiseuses. Un excellent outil est le G-Code jViewer, qui permet de visualiser le G-Code de GRBL. Cette fois-ci l’aide est en Allemand, mais ça ne devrait pas poser de gros problème de l’utiliser sans aide.

Quel G-Code?

C’est le dernier point à évoquer, avant que nous ne revenions plus tard sur des techniques spécifiques d’utilisation et de réalisations en G-Code, dans des articles futurs. Comme très souvent en informatique, il y a le “standard”, et ce qu’on en fait….Ce qui veut dire qu’en pratique, il y a plusieurs G-Code, de nombreux fabricants de machine ajoutant des commandes et des macros spécifiques. GRBL implémente un sous-ensemble du standard NIST rs274/ngc, ce qui permet au G-Code qui lui est destiné d’être correctement interprété par la plupart des autres programmes. Une machine contrôlée par Planet CNC accepte parfaitement un programme généré pour GRBL. Comme c’est une implémentation relativement simple de G-Code, c’est aussi une version parfaitement adaptée à l’apprentissage.

J’espère que ce papier sur G-Code vous aura donné l’envie d’en découvrir plus et de commencer à l’apprendre, si ce n’est déjà fait. Vos commentaires, questions et suggestions ci-dessous sont bienvenus!

Laisser un commentaire

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.

Retour en haut