Close
  • OhmyFab!

Le G-Code pour les nuls !

Le G code, c’est le langage de programmation très largement utilisé pour la programmation de nos machines CNC, autant pour des machines amateures que pour des machines industrielles.

J’avais depuis longtemps envie d’écrire un peu à ce sujet, mais je me suis lancé (comme souvent) dans une prose un peu longue pour sortir un article rapidement. J’ai donc coupé cet article en deux. Dans celui-ci vous trouverez quelques généralités sur la construction d’un programme G-Code. Dans le prochain, je ferais un résumer des quelques commandes de base à connaitre.

Si chaque interpréteur G-Code (Mach3, Linux CNC, Repetier, …) a ses petites subtilités les commandes standards sont communes à toutes les machines. Et même si les logiciels ou modules de FAO écrivent des codes très compliqué, il est à mon avis indispensable d’en maîtriser les bases.

Vous pourrez ainsi lire et comprendre les programmes générés ou écrire des petits programmes d’usinage très basiques (ce qui va parfois plus vite qu’à la main. La programmation manuelle peut être nécessaire pour la réalisation de taches de routines que personne ne programmera pour vous (aller palper un capteur de Z, se rendre sur un emplacement spécifique pour changer d’outils, etc.)

Alors c’est parti pour le tour d’horizon don fonctionnement du G-Code pour tout comprendre de vos programmes.

Quelques généralités

Hop hop hop, avant de se lancer un peu de bases ! Il faut comprendre qu’un fichier G-Code se compose d’une multitude de ligne, chacune décrivant une action de la machine. Va à droite, va en haut, remonte un peu, fait un tour sur toi même, …

Etant donné que ce genre d’instruction manque un peu de précision, un langage commun a été développé par un organisme américain au début des années 1960, et finalement normalisé par l’ISO en 1980. L’objectif de cette démarche est d’offrir une langue commune à nos machines à commandes numériques (fraiseuse, tour, découpeuses laser, imprimante 3D, tout fonctionne avec du G-Code pour le pilotage !).

Etant donné la diversité de machine et le peu de développement fait sur ce langage depuis cette époque, les marques de machines et logiciels ont créé chacune leur variante, mais le principe et les commandes de base sont les mêmes. Vous trouverez d’ailleurs un tronc commun de commande et des commandes spécifiques en fonction du post-processeur que vous utilisez. Vérifiez bien que vous utilisez celui qui correspond à votre interpréteur, sans cela il est possible de voir apparaître des erreurs lorsque vous lancez votre programme.

On trouve facilement des listes exhaustives des commande G-Code pour chaque interpréteur.

Comment on s’en sert ?

Le G-code est le dernier maillon de la chaîne de fichier qui va de votre conception à l’usinage. C’est celui qui va commander l’exécution des usinages par votre machines CNC. Il doit donc être parfait si vous voulez une réalisation de qualité.

C’est donc un programme informatique, et à ce titre, on peut le lire dans un simple éditeur de texte pour y voir une succession de lignes indiquant chacun une commande spécifique.

Et comme tout programme, on peut tout écrire à la main. Quand c’est une pièce simple, c’est très facile et ça permet de ne pas perdre de temps en modélisation et autres. Il suffit de bien connaitre quelques commandes de base et vous pouvez écrire un programme en quelques minute. Mais c’est possible quand votre programme tout compris ne dépasse pas quelques dizaines de lignes.

Mais avec une machine CNC, on a la possibilité d’usiner des pièces complexe. On peut facilement fraiser un bas-relief ou une petite sculpture par exemple. Et bien à CHAQUE changement de direction de la broche il faut écrire une ligne (pas forcément simple à chaque fois d’ailleurs). C’est donc fréquemment plusieurs centaines de milliers de lignes qui composent un programme de ce type. Heureusement l’informatique permet de faire ça en quelques minutes grâce à des logiciels générateurs de G-Code. Vous y importez votre conception 3D (voir même il est intégré dans le logiciel de CAO), vous y indiquez les étapes à réaliser (poches, contour, gravure, profilage, …) avec quel outil et sous quelle condition. Le logiciel va alors compiler tout ça en quelques secondes sous la forme d’un fichier G-Code que vous pourrez envoyer directement dans votre fraiseuse CNC.

Mais alors à quoi ça sert de connaitre le GCode si je n’ai pas forcément besoin d’en écrire ? Et bien déjà parce qu’être curieux et vouloir comprendre ce qu’on fait c’est bien ! Ensuite, il est souvent nécessaire de programmer manuellement des bouts de sous-programme qui seront spécifiques à votre machine ou à vos habitudes. Ces sous programmes pourront être appelés automatiquement lors de la création de votre usinage dans le générateur de g-code et donc intégré par le logiciel dans votre fichier. Ceci vous permettra d’exécuter automatiquement un certain nombre de taches de routines (changement d’outils, gestions de coordonnées, palpage des outils, etc.).

C’est aussi l’occasion de parfois retoucher un tout petit peu le G-code directement sur la machines, plutôt que de retourner au bureau régénérer un fichier complet, alors qu’une petite correction peut ne prendre que quelques secondes avant de reprendre le travail !

Une commande GCode, ça se compose de quoi ?

Une commande G-Code est une ligne qui définit une action de la machine. Pour cela la ligne décrit d’une certaine manière le quoi ? (la commande de base), le où ? (les coordonnées) et le comment ? (les paramètres)

  • Une commande de base : sous la forme d’une lettre suivit d’un nombre la commande indique quel type de commande la machine va devoir exécuter
    • G : ce sont les fonctions dites préparatoires. Elles permettent de gérer des cycles de machines (déplacement, perçage, taraudage, etc.) ou des éléments de coordonnées (changements de repères par exemple)
    • M : les fonctions auxiliaires M permettent en particulier de gérer des éléments annexes aux déplacements et cycles, tels que les démarrages et arrêts de broche ou les changements d’outils.
  • Des coordonnées
    • X, Y, Z : coordonnées cartésiennes de la machine par rapport à une origine. Il est d’usage que X soit l’axe latéral (de droite à gauche par rapport à vous, sens plus à droite), Y l’axe longitudinal (face à vous d’avant en arrière, sens + en avant), et Z l’axe vertical (plongée de la broche, sens + vers le haut). Ces réglages sont essentiellement une convention, mais c’est pratique pour échanger des programmes.
    • A, B, C : lorsque la machine dispose d’axes rotatifs, ces axes permettent de commander les rotations. Ainsi, on fait correspondre A à X, B à Y, C à Z.
    • I, J, et K : sont des coordonnées cartésiennes exactement similaires au fonctionnement de X, Y et Z. Cependant elles ne sont utilisées que dans des commandes incluant des déplacements relatifs par rapport à un point de départ, comme pour découper des arcs de cercles par exemple.
    • U, V, W : sont des coordonnées secondaires pour des axes spécifiques, telles que des tourelles ou des accessoires.
  • Des valeurs de paramètres
    • S : c’est l’indication de la vitesse de la broche, en tr/min.
    • F : C’est l’indication de la vitesse d’avance en mm/mn. Avec S, ce sont les paramètres qui vont vous permettre d’adapter la qualité de la coupe en fonction des caractéristiques de votre outil et du matériau à couper.
    • T : c’est un numéro d’outil, qui correspond à un emplacement dans un porte outil si vous en avez un. Ce numéro est souvent renseigné dans une base de données d’outil que vous tenez à jour dans votre logiciel de génération de G-Code.

 

De quoi se compose un programme G-Code ?

Rien de mieux qu’on exemple pour voir un programme en fonctionnement !

Au début ça commence par une série de commentaire, inutiles pour l’exécution, mais pratique. On y rappelle le nom du programme et un tas de renseignement comme ici les outils qui vont être utilisés.

(Ceci est un super programme pour ma fraiseuse CNC)
 ( Façade d'un truc 06/02/2018 9:25:27 AM )
 ( T3 : 2.0 )
 ( T6 : 4.0 )

Ensuite une phase de préparation, ou on va préciser dans quel type de configuration on veut executer le programme. Ici on dit qu’on veut travailler en mm, en coordonnés absolues et sans compensation du rayon d’outil (parce que ça a déjà été fait). Puis on va mettre la broche en position d’attente pour mettre en place l’outil.

G21 G90 G64 G40
 G0 Z3.0
 ( T6 : 4.0 )
 T6 M6

Quand c’est prêt on attaque le programme à proprement parler. La proche démarre (M3) à 15000 tr/min (S15000) et comment ses déplacements.

( Poche1 )
 G17
 M3 S15000
 G0 X221.6 Y50.0
 G1 F300.0 Z0.0
 G2 F800.0 X219.2 Y48.6144 Z-1.0 I-1.6 J0.0
 ...
 G2 X406.25 Y66.0 I0.625 J-1.0825
 G2 X406.2484 Y65.9375 I-1.25 J0.0

 

Pour cette deuxième série d’action, le programme nécessite un changement d’outil. Dans notre cas, il remonte de 3mm puis commande un changement d’outils (T3 M6) puis redémarre la broche et exécute de nouvelles actions d’usinage.

( Contour2 )
 G0 Z3.0
 ( T3 : 2.0 )
 T3 M6
 M3 S15000
 G0 X223.0 Y50.0
 G1 F300.0 Z-3.0
 ...
 G2 X247.0 Y50.0 I1.5 J2.5981
 G0 Z3.0

Et enfin, après avoir fini l’exécution du programme g-code, on arrête la broche (M5) et on indique que le programme est fini (M30)

M5
M30

Pour résumer on a toujours :

  • Des commentaires
  • Une série d’activité préparatoires
  • Des phases d’usinages avec ou sans changement d’outils
  • Une phase de fin de programme.

Voilà, vous savez tout ! J’espère que cet article vous aura aidé à avancer dans votre compréhension d’un programme G-Code. Je ne suis pas rentré dans les détails des commandes. Comme indiqué en introduction cet article sera suivi d’un second avec 10 commandes indispensables à connaitre pour lire, comprendre et modifier un fichier g-code.

Alors à bientôt !

Related Posts

6 thoughts on “Le G-Code pour les nuls !

    1. Laurent

      C’est un article plus généraliste que pratique. Mais pour répondre à ta question, et bien je n’ai pas de réponse. Tout simplement parce que je suis loin d’avoir tout testé! En pratique pour des pièces simples j’utilise CamBam, qui permet de faire du dessin 2d et de programmer des gravures et fraisages. J’utilise aussi fusion 360 pour les fraisages plus complexe en particulier pour ses stratégies de fraisage 3d. Quant à dire lequel est le meilleur… et bien commence par essayer fusion 360, il est gratuit en version hobby.

      1. diwall

        merci pour ta reponse, y a t il une interface pour generer le g code?
        Pour le moment je ne ve faire que du dessin (une facon de faire pour interesser mes enfants aux nouvelles techiques de production tout en jouant et bricolant). Ensuite on fera un peu de gravure puis , nous realiserons les pieces pour une fraiseuse plus precise. voila notre programme. Alors j’etudie les logiciels avant de passer au TP.
        bien cordialement

        1. Laurent

          Oui il y a cette interface, puisque c’était ta question 😉 .

          Je ne sais pas quel age ont tes enfants, mais c’est super cool de leur proposer ce genre d’activité!

          Je ne me suis pas encore penché sur une solution simple pour faire faire des tp aux «kids», même si ça va m’intéresser très bientôt.

          Pour bien comprendre comment passer de l’idée au fraisage, je t’invite à lire cet article : http://ohmyfab.fr/choisir-la-suite-logicielle-pour-votre-fraiseuse-cnc-amateur/

          J’ai commencé à travailler en dilettante sur un projet de mini fraiseuse, pas cher 2-300€, mais suffisamment sérieuse, parfaite pour la découverte.

          En attendant, pour ta problématiques du moment, si tes enfants ne sont pas trop jeune, je te dirais fusion 360. On y dessine en 3d, c’est beaucoup plus complet, plus pro et plus convivial et le logiciel a plus d’avenir.

  1. nomore

    Bonjour,
    Cherchant à m’équiper d’une fraiseuse CNC, j’ai trouvé ce blog au hasard de mes recherches et me suis inscrit à la Newsletter.
    Pour l’instant, chaque point de compréhension ……….me fait me poser au moins 10 nouvelles questions mais c’est comme cela que l’on avance!
    Merci pour ce blog très attractif!

    1. Laurent

      Merci de ton intérêt ! Et je suis tout à fait d’accord avec toi, découvrir et progrésser c’est s’intéresser aux questions qui naissent qu’on commence enfin à comprendre un point. Ce qui me fait dire qu’on a jamais fini d’apprendre et de progresser, et qu’il faut rester humble et curieux! Mais j’essaie d’apporter ma petite brique 🙂

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *