{"id":10351,"date":"2026-03-20T13:59:24","date_gmt":"2026-03-20T05:59:24","guid":{"rendered":"https:\/\/www.cncmachiningshops.com\/?p=10351"},"modified":"2026-07-19T17:12:07","modified_gmt":"2026-07-19T09:12:07","slug":"what-is-g-code","status":"publish","type":"post","link":"https:\/\/www.cncmachiningshops.com\/fr\/what-is-g-code\/","title":{"rendered":"Qu'est-ce que le G-Code dans l'usinage CNC ? Syntaxe, structure et exemples pratiques de programmation"},"content":{"rendered":"<div data-page-id=\"A6cNdQPsso1VkNxnLMecVSBRnhe\" data-lark-html-role=\"root\" data-docx-has-block-data=\"true\">\n<p>Les logiciels de FAO ont rendu le code G moins visible dans les flux de travail quotidiens du CNC, mais cela ne signifie pas pour autant que le code G a perdu de son importance. Chaque trajectoire d\u2019outil g\u00e9n\u00e9r\u00e9e par un syst\u00e8me de FAO devient finalement un fichier de code G, et c\u2019est ce fichier que le contr\u00f4leur CNC ex\u00e9cute r\u00e9ellement, ligne par ligne, sans tenir compte du mod\u00e8le CAD ni de la strat\u00e9gie d\u2019usinage qui le sous-tend. Lorsqu\u2019un outil plonge trop profond\u00e9ment, qu\u2019un temps de cycle s\u2019av\u00e8re plus long que pr\u00e9vu ou que l\u2019\u00e9tat de surface ne correspond pas \u00e0 la simulation, la r\u00e9ponse se trouve presque toujours dans le code G \u2014 et non dans la configuration FAO. Comprendre le code G dans l\u2019usinage CNC, c\u2019est comprendre ce que la machine fait r\u00e9ellement, plut\u00f4t que ce que vous aviez pr\u00e9vu qu\u2019elle fasse.<\/p>\n<p>Cet article aborde le G-code sous l'angle de la mani\u00e8re dont les contr\u00f4leurs CNC l'interpr\u00e8tent et l'ex\u00e9cutent dans des environnements d'usinage r\u00e9els. L'objectif est pratique : syntaxe, structure, logique modale, erreurs courantes et exemple de code \u00e9tape par \u00e9tape illustrant pr\u00e9cis\u00e9ment ce qui se passe au niveau de la machine. Que vous d\u00e9boggiez un programme, que vous examiniez la configuration d'un fournisseur ou que vous cherchiez \u00e0 comprendre pourquoi un temps de cycle indiqu\u00e9 semble erron\u00e9, ce document constitue le cadre de r\u00e9f\u00e9rence indispensable.<\/p>\n<hr \/>\n<h2>Qu'est-ce que le G-Code et comment permet-il de commander les machines CNC ?<\/h2>\n<h3>La d\u00e9finition qui compte vraiment en production<\/h3>\n<p>Le G-code est le langage d\u2019instructions de bas niveau que les contr\u00f4leurs des machines CNC ex\u00e9cutent directement. Chaque ligne sp\u00e9cifie des commandes de mouvement, des positions d\u2019axes, des vitesses d\u2019avance, des \u00e9tats de broche et des fonctions auxiliaires. Il n\u2019est pas descriptif : il ne dit pas \u201c usiner cette poche \u201d ou \u201c finir cette surface \u201d. Il indique \u201c se d\u00e9placer vers cette coordonn\u00e9e \u00e0 cette vitesse d'avance dans ce mode \u201d. Le contr\u00f4leur suit ces instructions \u00e0 la lettre, sans interpr\u00e9ter l'intention au-del\u00e0 de ce qui est cod\u00e9.<\/p>\n<p>Cette distinction a une importance concr\u00e8te. Le logiciel de FAO d\u00e9finit ce qui doit se passer en fonction de la g\u00e9om\u00e9trie et de la strat\u00e9gie d'usinage. Le fichier G-code d\u00e9finit ce que le contr\u00f4leur va r\u00e9ellement ex\u00e9cuter. Ces deux \u00e9l\u00e9ments sont souvent proches, mais pas toujours identiques, et c'est dans cet \u00e9cart que r\u00e9side la plupart des probl\u00e8mes d'usinage.<\/p>\n<h3>Comment les contr\u00f4leurs CNC lisent le G-Code<\/h3>\n<p>Les contr\u00f4leurs traitent le code G de mani\u00e8re s\u00e9quentielle, bloc par bloc. Apr\u00e8s avoir lu chaque ligne, le contr\u00f4leur met \u00e0 jour son \u00e9tat interne \u2014 mode de mouvement actif, syst\u00e8me de coordonn\u00e9es, d\u00e9calage de longueur d'outil, s\u00e9lection du plan \u2014 puis ex\u00e9cute la commande. Les commandes modales restent actives jusqu\u2019\u00e0 ce qu\u2019elles soient explicitement modifi\u00e9es. C\u2019est ce qui prend la plupart des gens au d\u00e9pourvu : une commande d\u00e9finie 50 lignes plus haut peut encore contr\u00f4ler le comportement de la machine \u00e0 la ligne 200 si rien ne l\u2019a annul\u00e9e.<\/p>\n<p>Les contr\u00f4leurs appliquent \u00e9galement des fonctions d'anticipation, des limites d'acc\u00e9l\u00e9ration et des algorithmes d'interpolation apr\u00e8s avoir lu le code G \u2014 et non pas pendant la g\u00e9n\u00e9ration CAM. Deux machines ex\u00e9cutant un code G identique peuvent produire des profils de mouvement diff\u00e9rents si les param\u00e8tres de leurs contr\u00f4leurs diff\u00e8rent. C'est pourquoi les r\u00e9sultats d'usinage ne sont pas enti\u00e8rement d\u00e9termin\u00e9s au stade de la CAM.<\/p>\n<h3>La place du G-Code dans le flux de travail CNC<\/h3>\n<p>Le processus, de la conception \u00e0 la d\u00e9coupe, suit un encha\u00eenement clair :<\/p>\n<p><strong>Mod\u00e8le CAD \u2192 Strat\u00e9gie de trajectoire d'usinage CAM \u2192 G\u00e9n\u00e9ration du code G \u2192 Contr\u00f4leur CNC \u2192 Mouvement servo \u2192 Enl\u00e8vement de mati\u00e8re<\/strong><\/p>\n<p>Le code G constitue le point de transition. Tout ce qui se passe en amont rel\u00e8ve de la conception et de la planification. Tout ce qui se passe en aval rel\u00e8ve de l'usinage proprement dit. Comprendre le code G, c'est comprendre ce qui se passe \u00e0 cette fronti\u00e8re \u2014 l\u00e0 o\u00f9 les probl\u00e8mes sont justement les plus difficiles \u00e0 d\u00e9tecter et les plus co\u00fbteux \u00e0 r\u00e9soudre.<\/p>\n<hr \/>\n<h2>Comment est structur\u00e9 un programme G-Code CNC ?<\/h2>\n<h3>Blocs, lignes et ordre d'ex\u00e9cution<\/h3>\n<p>Un programme en G-code est constitu\u00e9 de blocs, c'est-\u00e0-dire de lignes individuelles que le contr\u00f4leur traite les unes apr\u00e8s les autres, de haut en bas. Chaque bloc correspond \u00e0 un cycle d'instruction. Le contr\u00f4leur n'a aucune connaissance des blocs suivants au-del\u00e0 d'une anticipation limit\u00e9e ; l'ordre des commandes d\u00e9termine donc directement le comportement de la machine.<\/p>\n<p>Un programme bien structur\u00e9 suit l'encha\u00eenement suivant :<\/p>\n<ol>\n<li>D\u00e9marrage du programme et initialisation des mesures de s\u00e9curit\u00e9<\/li>\n<li>D\u00e9claration des unit\u00e9s, du plan et du mode de coordonn\u00e9es<\/li>\n<li>S\u00e9lection de l'outil et activation du d\u00e9calage<\/li>\n<li>Mouvements d'usinage (\u00e9bauche, finition, per\u00e7age, etc.)<\/li>\n<li>Retrait et changement d'outil (en cas d'utilisation de plusieurs outils)<\/li>\n<li>Fin du programme et r\u00e9initialisation<\/li>\n<\/ol>\n<p>Le fait de sauter ou de modifier l'ordre des \u00e9tapes comporte des risques. Une op\u00e9ration d'usinage ex\u00e9cut\u00e9e avant l'activation de la correction de longueur d'outil, par exemple, positionne l'outil en fonction d'une r\u00e9f\u00e9rence Z non corrig\u00e9e \u2014 ce qui est le meilleur moyen de provoquer une collision, m\u00eame lorsque la g\u00e9om\u00e9trie de la trajectoire d'outil est correcte.<\/p>\n<h3>Mots d'adresse : le r\u00f4le de chaque lettre<\/h3>\n<p>Chaque bloc est constitu\u00e9 de mots d'adresse : une lettre qui identifie la fonction, suivie d'un nombre qui d\u00e9finit la valeur.<\/p>\n<ul>\n<li><strong>G<\/strong> \u2014 Commande de mouvement ou de mode (rapide, lin\u00e9aire, circulaire, s\u00e9lection de plan, etc.)<\/li>\n<li><strong>M<\/strong> \u2014 Fonctions de la machine et fonctions auxiliaires (broche, liquide de refroidissement, changement d'outil, fin de programme)<\/li>\n<li><strong>X, Y, Z<\/strong> \u2014 Positions cibles de l'Axe<\/li>\n<li><strong>F<\/strong> \u2014 Vitesse d'avance (distance par minute ou par tour, selon le mode)<\/li>\n<li><strong>S<\/strong> \u2014 Vitesse de rotation de la broche (tr\/min)<\/li>\n<li><strong>T<\/strong> \u2014 Num\u00e9ro d'outil<\/li>\n<\/ul>\n<p>Une m\u00eame ligne peut contenir plusieurs mots d'adresse. Le contr\u00f4leur les interpr\u00e8te globalement pour d\u00e9terminer le type de mouvement, la position et l'\u00e9tat de la machine. Sur certains contr\u00f4leurs, l'ordre des \u00e9l\u00e9ments au sein d'un bloc a \u00e9galement son importance : consultez toujours le manuel du contr\u00f4leur pour conna\u00eetre l'ordre d'analyse des blocs.<\/p>\n<h3>Commandes modales et non modales<\/h3>\n<p>C'est ce concept qui est \u00e0 l'origine du plus grand nombre d'erreurs dans la programmation CNC \u2014 et qui suscite le plus de confusion lors du d\u00e9bogage.<\/p>\n<p><strong>Commandes modales<\/strong> restent actifs sur plusieurs blocs jusqu'\u00e0 ce qu'ils soient explicitement annul\u00e9s ou remplac\u00e9s. Les codes G01 (interpolation lin\u00e9aire), G90 (positionnement absolu) et F (vitesse d'avance) sont tous modaux. Une fois d\u00e9finis, ils s'appliquent \u00e0 tous les blocs suivants jusqu'\u00e0 ce qu'ils soient modifi\u00e9s.<\/p>\n<p><strong>Commandes non modales<\/strong> ne s'appliquent qu'au bloc dans lequel elles apparaissent. La commande G04 (pause) en est un exemple typique : elle provoque une pause d'un bloc, puis l'ex\u00e9cution se poursuit sans que la pause ne s'applique \u00e0 nouveau.<\/p>\n<p>Le danger des commandes modales : un mode d\u00e9fini au d\u00e9but du programme d\u00e9termine le comportement de tout ce qui suit, y compris les blocs \u00e9crits bien plus tard. Une transition G00-G01 manquante l\u00e0 o\u00f9 on l'attend, ou une vitesse d'avance qui n'a pas \u00e9t\u00e9 mise \u00e0 jour entre deux op\u00e9rations, peut entra\u00eener un mouvement incorrect sans d\u00e9clencher aucune alarme du contr\u00f4leur.<\/p>\n<h3>Analyse d'une ligne de code G type<\/h3>\n<pre><code>G01 X50,0 Y20,0 Z-5,0 F300\r\n<\/code><\/pre>\n<ul>\n<li><strong>G01<\/strong> \u2014 Interpolation lin\u00e9aire (mode ; reste active jusqu\u2019\u00e0 ce qu\u2019un autre mode de d\u00e9placement soit sp\u00e9cifi\u00e9)<\/li>\n<li><strong>X 50,0 Y 20,0 Z -5,0<\/strong> \u2014 Position cible dans le syst\u00e8me de coordonn\u00e9es actuel<\/li>\n<li><strong>F300<\/strong> \u2014 Vitesse d'avance de 300 mm\/min (valeur modale ; s'applique \u00e0 tous les mouvements de coupe suivants)<\/li>\n<\/ul>\n<p>Si le bloc suivant indique <code>X80,0 Y20,0<\/code> En l'absence de code G, la machine se d\u00e9place de mani\u00e8re lin\u00e9aire \u00e0 une vitesse de 300 mm\/min vers la nouvelle position \u2014 car les commandes G01 et F300 sont toujours actives. Ce comportement est correct s'il est voulu, mais pose probl\u00e8me s'il n'est pas pr\u00e9vu.<\/p>\n<hr \/>\n<h2>Les codes G les plus couramment utilis\u00e9s dans l'usinage CNC<\/h2>\n<h3>Commandes de d\u00e9placement : G00, G01, G02, G03<\/h3>\n<p>Ces quatre codes repr\u00e9sentent la majeure partie des mouvements dans tout programme CNC.<\/p>\n<p><strong>G00 \u2014 Positionnement rapide<\/strong> D\u00e9place l'outil vers une position \u00e0 la vitesse de d\u00e9placement maximale de la machine. Le contr\u00f4leur ne respecte pas la vitesse d'avance programm\u00e9e pendant le code G00. Utilisez-le exclusivement pour les d\u00e9placements sans enl\u00e8vement de mati\u00e8re : positions de d\u00e9gagement, approches pour le changement d'outil et repositionnement au-dessus de la pi\u00e8ce. N'utilisez jamais le code G00 lorsque l'outil est en contact avec la mati\u00e8re ; les limites de vitesse d'avance ne s'appliquent pas et le r\u00e9sultat est impr\u00e9visible.<\/p>\n<p><strong>G01 \u2014 Interpolation lin\u00e9aire<\/strong> Ex\u00e9cute un mouvement de coupe en ligne droite \u00e0 la vitesse d'avance programm\u00e9e. Il s'agit de la commande de coupe principale pour le fraisage, le tournage et tout enl\u00e8vement de mati\u00e8re contr\u00f4l\u00e9. Le choix de la vitesse d'avance doit tenir compte du diam\u00e8tre de l'outil, du mat\u00e9riau et du rev\u00eatement \u2014 et non d'une valeur \u201c de s\u00e9curit\u00e9 \u201d g\u00e9n\u00e9rique. Pour l\u2019aluminium 6061 avec une fraise en carbure de 10 mm, une vitesse d\u2019avance de 400 \u00e0 600 mm\/min \u00e0 une vitesse de rotation de 8 000 \u00e0 12 000 tr\/min est g\u00e9n\u00e9ralement appropri\u00e9e. Pour l\u2019acier inoxydable 316L avec le m\u00eame outil, une vitesse d\u2019avance de 100 \u00e0 180 mm\/min \u00e0 une vitesse de rotation de 3 000 \u00e0 5 000 tr\/min est plus r\u00e9aliste en raison du comportement d\u2019\u00e9crouissage de la pi\u00e8ce.<\/p>\n<p><strong>G02 \/ G03 \u2014 Interpolation circulaire (sens horaire \/ antihoraire)<\/strong> G\u00e9n\u00e8re un mouvement en arc dans le plan actif. La commande G02 se d\u00e9place dans le sens des aiguilles d\u2019une montre ; la commande G03, dans le sens inverse des aiguilles d\u2019une montre. La g\u00e9om\u00e9trie de l\u2019arc est d\u00e9finie par un point de d\u00e9part, un point d\u2019arriv\u00e9e et soit un d\u00e9calage du centre (I, J, K), soit une valeur de rayon (R). Une g\u00e9om\u00e9trie d\u2019arc mal d\u00e9finie \u2014 lorsque les points de d\u00e9part et d\u2019arriv\u00e9e ne correspondent pas au rayon sp\u00e9cifi\u00e9 \u2014 provoque des alarmes du contr\u00f4leur ou des surcoupes. V\u00e9rifiez toujours les d\u00e9finitions d\u2019arc en simulation avant la d\u00e9coupe.<\/p>\n<h3>S\u00e9lection des plans et unit\u00e9s : G17\u2013G19, G20, G21<\/h3>\n<p><strong>G17, G18, G19<\/strong> S\u00e9lectionnez le plan d'usinage actif : XY, XZ et YZ respectivement. La s\u00e9lection du plan influe directement sur l'interpr\u00e9tation des arcs G02\/G03. Un arc G02 programm\u00e9 avec des coordonn\u00e9es XY se comporte correctement en mode G17, mais g\u00e9n\u00e8re un mouvement incorrect si le mode G18 ou G19 est actif depuis une op\u00e9ration pr\u00e9c\u00e9dente.<\/p>\n<p><strong>G20 \/ G21<\/strong> Sp\u00e9cifiez les unit\u00e9s en pouces ou en unit\u00e9s m\u00e9triques. Ce param\u00e8tre doit toujours \u00eatre d\u00e9fini explicitement au d\u00e9marrage du programme. H\u00e9riter des unit\u00e9s d\u2019un programme pr\u00e9c\u00e9dent est l\u2019un des moyens les moins \u00e9vidents de provoquer un plantage de la machine : le contr\u00f4leur applique en effet le facteur de conversion des unit\u00e9s \u00e0 toutes les positions, ce qui d\u00e9place l\u2019outil vers des emplacements tr\u00e8s \u00e9loign\u00e9s des positions souhait\u00e9es.<\/p>\n<h3>Modes de positionnement : G90 vs G91<\/h3>\n<p><strong>G90 \u2014 Positionnement absolu<\/strong>: Toutes les coordonn\u00e9es sont r\u00e9f\u00e9renc\u00e9es par rapport au point z\u00e9ro de travail actif. Il s'agit du mode standard pour la plupart des op\u00e9rations d'usinage CNC, car chaque position est univoque : X50,0 correspond toujours \u00e0 50 mm \u00e0 partir du point z\u00e9ro, quelle que soit la position ant\u00e9rieure de l'outil.<\/p>\n<p><strong>G91 \u2014 Positionnement incr\u00e9mental<\/strong>: Les coordonn\u00e9es font r\u00e9f\u00e9rence \u00e0 la position actuelle de l'outil. Cette fonction est utile pour les motifs r\u00e9p\u00e9titifs (s\u00e9ries de trous, espacement des rainures) o\u00f9 d\u00e9finir chaque point \u00e0 partir de z\u00e9ro n\u00e9cessiterait des calculs. Le risque r\u00e9side dans l'erreur cumulative : une erreur d'arrondi lors d'un d\u00e9placement d\u00e9place toutes les positions incr\u00e9mentielles suivantes. Utilisez le mode G91 de mani\u00e8re r\u00e9fl\u00e9chie et revenez toujours au mode G90 apr\u00e8s la s\u00e9quence incr\u00e9mentielle.<\/p>\n<h3>Codes de s\u00e9curit\u00e9 et de r\u00e9f\u00e9rence<\/h3>\n<p><strong>G04 (Temps d'arr\u00eat)<\/strong>: Interrompt le mouvement pendant une dur\u00e9e d\u00e9finie ou un nombre d\u00e9fini de tours de broche. Parmi les utilisations courantes, on peut citer le bris des copeaux lors du per\u00e7age profond et la stabilisation de la broche apr\u00e8s un changement de vitesse avant d'entamer une passe de finition de pr\u00e9cision.<\/p>\n<p><strong>G28 (Retour \u00e0 la position de r\u00e9f\u00e9rence de la machine)<\/strong>: Envoie les axes vers la position d'origine en passant par un point interm\u00e9diaire. Ce point interm\u00e9diaire est crucial : s'il n'est pas explicitement d\u00e9fini dans une position s\u00fbre, la commande G28 peut entra\u00eener l'outil \u00e0 travers la pi\u00e8ce ou le dispositif de fixation lors de son retour \u00e0 la position d'origine.<\/p>\n<p><strong>G53 (D\u00e9placement selon les coordonn\u00e9es de la machine)<\/strong>: Se d\u00e9place directement dans le syst\u00e8me de coordonn\u00e9es de la machine, sans passer par les d\u00e9calages de travail. Plus pr\u00e9visible que la commande G28 pour les d\u00e9placements de positionnement et les changements d'outils lorsqu'elle est utilis\u00e9e correctement.<\/p>\n<table>\n<thead>\n<tr>\n<th>Cat\u00e9gorie<\/th>\n<th>Code G<\/th>\n<th>Fonction<\/th>\n<th>Utilisation typique<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Motion<\/td>\n<td>G00<\/td>\n<td>D\u00e9m\u00e9nagement rapide<\/td>\n<td>Positionnement sans d\u00e9coupe<\/td>\n<\/tr>\n<tr>\n<td>Motion<\/td>\n<td>G01<\/td>\n<td>Coupe lin\u00e9aire<\/td>\n<td>Usinage contr\u00f4l\u00e9<\/td>\n<\/tr>\n<tr>\n<td>Motion<\/td>\n<td>G02 \/ G03<\/td>\n<td>Coupe circulaire<\/td>\n<td>Arcs, poches, profils<\/td>\n<\/tr>\n<tr>\n<td>Avion<\/td>\n<td>G17\u2013G19<\/td>\n<td>Choix de l'avion<\/td>\n<td>D\u00e9finition de la direction de l'arc<\/td>\n<\/tr>\n<tr>\n<td>Unit\u00e9s<\/td>\n<td>G20 \/ G21<\/td>\n<td>Pouces \/ Syst\u00e8me m\u00e9trique<\/td>\n<td>Initialisation du programme<\/td>\n<\/tr>\n<tr>\n<td>Positionnement<\/td>\n<td>G90 \/ G91<\/td>\n<td>Absolu \/ Incr\u00e9mental<\/td>\n<td>Contr\u00f4le des coordonn\u00e9es<\/td>\n<\/tr>\n<tr>\n<td>S\u00e9curit\u00e9<\/td>\n<td>G28 \/ G53<\/td>\n<td>Mouvements de r\u00e9f\u00e9rence<\/td>\n<td>Changement d'outil, jeu<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<hr \/>\n<h2>Les codes M et leur fonctionnement en compl\u00e9ment du code G<\/h2>\n<h3>Ce que contr\u00f4lent les codes M<\/h3>\n<p>Alors que les codes G r\u00e9gissent les d\u00e9placements de l\u2019outil dans l\u2019espace, les codes M r\u00e9gissent les actions de la machine : mise en marche\/arr\u00eat de la broche, mise en marche\/arr\u00eat du liquide de refroidissement, changement d\u2019outil et d\u00e9roulement du programme. Dans les op\u00e9rations d\u2019usinage concr\u00e8tes, les codes M d\u00e9finissent l\u2019\u00e9tat de la machine que les mouvements d\u2019usinage en code G supposent d\u00e9j\u00e0 en vigueur. Un mouvement de coupe (G01) ex\u00e9cut\u00e9 sans que la broche soit active (M03) endommage l'outil et la pi\u00e8ce. Un changement d'outil (M06) effectu\u00e9 sans d\u00e9gagement suffisant des axes risque de provoquer une collision.<\/p>\n<h3>Les codes M qui apparaissent dans presque tous les programmes<\/h3>\n<ul>\n<li><strong>M03<\/strong> \u2014 Broche activ\u00e9e, rotation dans le sens des aiguilles d'une montre<\/li>\n<li><strong>M04<\/strong> \u2014 Broche activ\u00e9e, rotation antihoraire (utilis\u00e9e pour des op\u00e9rations sp\u00e9cifiques telles que le taraudage en sens inverse)<\/li>\n<li><strong>M05<\/strong> \u2014 Arr\u00eat de la broche<\/li>\n<li><strong>M06<\/strong> \u2014 Changement d'outil (suspend l'ex\u00e9cution jusqu'\u00e0 ce que le changement soit termin\u00e9)<\/li>\n<li><strong>M08<\/strong> \u2014 Liquide de refroidissement activ\u00e9<\/li>\n<li><strong>M09<\/strong> \u2014 Refroidissement d\u00e9sactiv\u00e9<\/li>\n<li><strong>M30<\/strong> \u2014 Fin du programme et r\u00e9initialisation pour recommencer<\/li>\n<\/ul>\n<p>L'ordre d'ex\u00e9cution est important. La commande M03 doit pr\u00e9c\u00e9der le premier mouvement de coupe. La commande M08 doit \u00eatre activ\u00e9e avant que l'outil n'entre en contact avec la pi\u00e8ce, et non pendant. La commande M06 exige que la machine se trouve dans une position s\u00fbre \u2014 ce qui est g\u00e9n\u00e9ralement v\u00e9rifi\u00e9 par un d\u00e9placement G28 ou G53 vers un emplacement d\u00e9fini pour le changement d'outil.<\/p>\n<h3>Code G et code M : compl\u00e9mentaires, mais non interchangeables<\/h3>\n<table>\n<thead>\n<tr>\n<th>Aspect<\/th>\n<th>Code G<\/th>\n<th>Code M<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Fonction principale<\/td>\n<td>Contr\u00f4le du mouvement et de la trajectoire de l'outil<\/td>\n<td>\u00c9tat de la machine et fonctions auxiliaires<\/td>\n<\/tr>\n<tr>\n<td>Actions courantes<\/td>\n<td>D\u00e9placements lin\u00e9aires, arcs, positionnement<\/td>\n<td>Broche, liquide de refroidissement, changement d'outil, fin de programme<\/td>\n<\/tr>\n<tr>\n<td>Impact sur l'ex\u00e9cution<\/td>\n<td>G\u00e9om\u00e9trie et vitesse d'avance<\/td>\n<td>Pr\u00e9paration \u00e0 la d\u00e9coupe et s\u00e9curit\u00e9 des machines<\/td>\n<\/tr>\n<tr>\n<td>Risque en cas d'erreur<\/td>\n<td>Collision, erreur dimensionnelle<\/td>\n<td>Dommages caus\u00e9s \u00e0 l'outil, changement d'outil dangereux<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<hr \/>\n<h2>Vitesse d'avance, vitesse de broche et commandes d'outils : leur incidence sur la qualit\u00e9 des pi\u00e8ces<\/h2>\n<h3>Vitesse d'avance (F) et \u00e9tat de surface<\/h3>\n<p>La vitesse d'avance d\u00e9termine directement la charge de copeaux, c'est-\u00e0-dire l'\u00e9paisseur de mati\u00e8re enlev\u00e9e par chaque ar\u00eate de coupe \u00e0 chaque tour. Si elle est trop \u00e9lev\u00e9e, l'outil est surcharg\u00e9 : cela entra\u00eene des vibrations, des d\u00e9chirures et un mauvais \u00e9tat de surface. Si elle est trop faible, l'outil frotte au lieu de couper, ce qui concentre la chaleur au niveau de l'ar\u00eate de coupe et favorise la formation d'un d\u00e9p\u00f4t sur l'ar\u00eate, ce qui d\u00e9grade \u00e9galement l'\u00e9tat de surface.<\/p>\n<p>La relation entre la vitesse d'avance et l'\u00e9tat de surface d\u00e9pend du mat\u00e9riau. Pour l'aluminium 6061, une fraise en bout de 10 mm fonctionnant \u00e0 S10 000 tr\/min avec une vitesse d'avance de F500 mm\/min produit une charge de copeaux d'environ 0,025 mm par dent (en supposant un outil \u00e0 deux cannelures) \u2014 ce qui donne g\u00e9n\u00e9ralement un Ra compris entre 1,6 et 3,2 \u00b5m lors d\u2019une passe de d\u00e9grossissage. Une r\u00e9duction de la vitesse d\u2019avance \u00e0 F200 mm\/min diminue la charge de copeaux mais augmente la chaleur et le frottement, ce qui d\u00e9t\u00e9riore souvent l\u2019\u00e9tat de surface au lieu de l\u2019am\u00e9liorer. Les passes de finition utilisent des profondeurs de coupe r\u00e9duites, mais pas n\u00e9cessairement des vitesses d'avance r\u00e9duites, pour atteindre une rugosit\u00e9 Ra de 0,8 \u00b5m ou mieux.<\/p>\n<p>Pour l'acier inoxydable 316L, les vitesses d'avance sont nettement plus faibles \u2014 g\u00e9n\u00e9ralement comprises entre 100 et 180 mm\/min \u2014 car le mat\u00e9riau subit un \u00e9crouissage lors de l'usinage. Le d\u00e9passement des charges de copeaux recommand\u00e9es entra\u00eene une usure rapide de l'outil et des d\u00e9chirures de surface. Une application r\u00e9guli\u00e8re de liquide de refroidissement (par aspersion ou \u00e0 travers l'outil) est essentielle pour \u00e9vacuer la chaleur et emp\u00eacher l'accumulation d'\u00e9crouissage entre les passes.<\/p>\n<h3>Vitesse de rotation de la broche (S) et performances de coupe<\/h3>\n<p>La vitesse de rotation de la broche d\u00e9termine la vitesse de coupe superficielle au niveau du diam\u00e8tre ext\u00e9rieur de l'outil. La vitesse appropri\u00e9e d\u00e9pend du diam\u00e8tre de l'outil, du mat\u00e9riau et du rev\u00eatement de l'outil. Une fraise en carbure de 10 mm rev\u00eatue de TiAlN coupant de l\u2019aluminium 6061 fonctionne g\u00e9n\u00e9ralement \u00e0 une vitesse de coupe superficielle de 200 \u00e0 400 m\/min, ce qui correspond \u00e0 environ 6 400 \u00e0 12 700 tr\/min. Le m\u00eame outil utilis\u00e9 sur de l\u2019acier inoxydable 316L fonctionne \u00e0 une vitesse de coupe superficielle comprise entre 40 et 80 m\/min \u2014 soit environ 1 270 \u00e0 2 550 tr\/min \u2014 afin de limiter la g\u00e9n\u00e9ration de chaleur et l\u2019usure de l\u2019outil.<\/p>\n<p>Une vitesse de broche trop \u00e9lev\u00e9e lors de l'usinage de l'inox g\u00e9n\u00e8re une concentration de chaleur qui ramollit l'ar\u00eate de coupe, ce qui r\u00e9duit consid\u00e9rablement la dur\u00e9e de vie de l'outil. \u00c0 l'inverse, une vitesse insuffisante lors de l'usinage de l'aluminium entra\u00eene une coupe inefficace et une mauvaise \u00e9vacuation des copeaux. Pour choisir la bonne vitesse de broche, il ne s'agit pas d'opter pour des valeurs prudentes, mais d'adapter la vitesse aux besoins r\u00e9els de l'outil et du mat\u00e9riau.<\/p>\n<h3>Commandes d'outils et activation du d\u00e9calage<\/h3>\n<p>La s\u00e9lection d'outil (T) permet de pr\u00e9ciser l'outil \u00e0 charger. La compensation de longueur d'outil (G43 avec d\u00e9calage H) applique la r\u00e9f\u00e9rence d'axe Z correcte pour cet outil sp\u00e9cifique. Si un d\u00e9calage incorrect est activ\u00e9 \u2014 ou si la commande G43 est totalement omise \u2014, la r\u00e9f\u00e9rence de l'axe Z est d\u00e9cal\u00e9e de la diff\u00e9rence entre le d\u00e9calage programm\u00e9 et la longueur r\u00e9elle de l'outil. Cela entra\u00eene une plong\u00e9e trop profonde ou un retrait insuffisant pour d\u00e9gager la pi\u00e8ce.<\/p>\n<p>Avant tout changement d'outil, la machine doit se trouver dans une position s\u00fbre. La plupart des contr\u00f4leurs exigent un positionnement explicite \u00e0 l'emplacement de changement d'outil avant l'ex\u00e9cution de la commande M06. Le non-respect de cette \u00e9tape comporte un risque de collision entre l'outil et la pi\u00e8ce ou le dispositif de serrage pendant le changement.<\/p>\n<hr \/>\n<h2>Lire le G-Code \u00e9tape par \u00e9tape : un exemple complet de fraisage<\/h2>\n<p>Pour lire correctement un code G, il faut suivre l'\u00e9tat de la machine apr\u00e8s chaque ligne \u2014 et pas seulement prendre connaissance des positions. Voici un programme complet de fraisage 2D accompagn\u00e9 de commentaires techniques expliquant ce que chaque section fait concr\u00e8tement sur la machine.<\/p>\n<pre><code>%\nO1001\nG21 G90 G17\nG00 X0 Y0\nT1 M06\nS8000 M03\nG43 H01 Z50,0\r\nG00 Z5,0\nG01 Z-2,0 F200\nG01 X50,0 Y0,0 F400\nG01 X50,0 Y30,0\nG01 X0,0 Y30,0\r\nG01 X0,0 Y0,0\nG00 Z50,0\nM05\nM30\n%\r\n<\/code><\/pre>\n<p><strong>G21 G90 G17<\/strong> \u2014 D\u00e9finit les unit\u00e9s m\u00e9triques, le positionnement absolu et le plan XY. Ces trois \u00e9tats modaux d\u00e9terminent l\u2019interpr\u00e9tation des coordonn\u00e9es pour l\u2019ensemble du programme. Si l\u2019un d\u2019entre eux fait d\u00e9faut, l\u2019\u00e9tat du programme pr\u00e9c\u00e9dent est repris par d\u00e9faut \u2014 ce qui constitue une source fr\u00e9quente de comportements inattendus lors de l\u2019ex\u00e9cution s\u00e9quentielle des programmes.<\/p>\n<p><strong>G00 X0 Y0<\/strong> \u2014 D\u00e9placement rapide vers le point z\u00e9ro dans les axes X et Y. Pas d'usinage. L'outil se d\u00e9place \u00e0 pleine vitesse de rapid ; il n'y a pas de protection de la vitesse d'avance.<\/p>\n<p><strong>T1 M06<\/strong> \u2014 S\u00e9lectionne l'outil 1 et effectue un changement d'outil. L'ex\u00e9cution est mise en pause jusqu'\u00e0 ce que le changement soit termin\u00e9. La machine doit se trouver \u00e0 la position de changement d'outil pr\u00e9vue avant cette ligne, sous peine de risque de collision.<\/p>\n<p><strong>S8000 M03<\/strong> \u2014 D\u00e9marre la broche \u00e0 8 000 tr\/min dans le sens des aiguilles d'une montre. Pour une fraise en bout de 10 mm dans de l'aluminium 6061, cela correspond \u00e0 une vitesse de surface d'environ 251 m\/min \u2014 ce qui se situe dans la plage de coupe efficace pour le carbure non rev\u00eatu ou rev\u00eatu de TiN.<\/p>\n<p><strong>G43 H01 Z50,0<\/strong> \u2014 Active la compensation de longueur d'outil \u00e0 l'aide du d\u00e9calage H01 et se d\u00e9place \u00e0 la position Z50 dans le rep\u00e8re de r\u00e9f\u00e9rence corrig\u00e9. Il s'agit de la ligne qui d\u00e9finit le point z\u00e9ro Z correct pour l'usinage. L'absence de la commande G43 signifie que la position Z de l'outil est r\u00e9f\u00e9renc\u00e9e sans que la longueur r\u00e9elle de l'outil ne soit prise en compte.<\/p>\n<p><strong>G00 Z5,0<\/strong> \u2014 Approche rapide jusqu'\u00e0 5 mm au-dessus de la surface de travail. Toujours pas de d\u00e9coupe : l'outil se positionne au-dessus de la pi\u00e8ce.<\/p>\n<p><strong>G01 Z-2,0 F200<\/strong> \u2014 Plong\u00e9e contr\u00f4l\u00e9e \u00e0 une profondeur de 2 mm \u00e0 une vitesse d'avance de 200 mm\/min. La r\u00e9duction de la vitesse d'avance lors de la plong\u00e9e limite la charge de coupe axiale. \u00c0 une vitesse d'avance de F200 avec une fraise \u00e0 queue \u00e0 deux cannelures de 10 mm, la charge de copeaux par dent lors de la plong\u00e9e est d\u2019environ 0,0125 mm \u2014 une valeur prudente mais appropri\u00e9e pour un mouvement d\u2019entr\u00e9e en Z.<\/p>\n<p><strong>G01 X50,0 Y0,0 F400<\/strong> \u2014 Premier mouvement de coupe lin\u00e9aire. La vitesse d\u2019avance passe \u00e0 F400 mm\/min pour la passe de coupe lat\u00e9rale, ce qui g\u00e9n\u00e8re une charge de copeaux d\u2019environ 0,025 mm par dent \u00e0 S8000 tr\/min \u2014 valeur typique pour l\u2019\u00e9bauche de l\u2019aluminium.<\/p>\n<p><strong>Mouvements G01 suivants<\/strong> \u2014 Tracez les trois c\u00f4t\u00e9s restants du profil rectangulaire. Les commandes G01 et F400 restent actives (modales) \u2014 il n'est pas n\u00e9cessaire de les red\u00e9finir, sauf en cas de modification de l'avance.<\/p>\n<p><strong>G00 Z50,0<\/strong> \u2014 Retrait rapide jusqu'\u00e0 la hauteur Z de s\u00e9curit\u00e9. La d\u00e9coupe est termin\u00e9e ; la machine sort \u00e0 pleine vitesse rapide.<\/p>\n<p><strong>M05<\/strong> \u2014 Arr\u00eat de la broche. Veillez \u00e0 toujours arr\u00eater la broche avant la fin du programme.<\/p>\n<p><strong>M30<\/strong> \u2014 Fin du programme et r\u00e9initialisation. Le contr\u00f4leur revient au d\u00e9but du programme, pr\u00eat pour la partie suivante.<\/p>\n<h3>Erreurs courantes en lecture<\/h3>\n<p><strong>Ignorer l'\u00e9tat modal :<\/strong> Les commandes G01 et F400 restent actives tant qu\u2019elles ne sont pas explicitement modifi\u00e9es. Un programmeur qui ajoute ult\u00e9rieurement un nouveau d\u00e9placement et oublie que ces commandes sont toujours actives obtiendra un d\u00e9placement de coupe l\u00e0 o\u00f9 il avait pr\u00e9vu un d\u00e9placement rapide.<\/p>\n<p><strong>En supposant que l'ordre soit flexible :<\/strong> La mise en marche de la broche (M03) doit pr\u00e9c\u00e9der le mouvement d'usinage. Le d\u00e9calage d'outil (G43) doit \u00eatre activ\u00e9 avant le positionnement sur l'axe Z. Il ne s'agit pas de simples recommandations, mais bien d'exigences indispensables \u00e0 la s\u00e9curit\u00e9 de l'op\u00e9ration.<\/p>\n<p><strong>Lecture des coordonn\u00e9es sans suivi de l'\u00e9tat :<\/strong> Une position telle que Z-2,0 n'a de sens que dans le contexte du syst\u00e8me de coordonn\u00e9es actif, du d\u00e9calage de l'outil et du mode de positionnement. Lisez d'abord l'\u00e9tat, puis les coordonn\u00e9es.<\/p>\n<hr \/>\n<h2>Erreurs courantes dans le G-Code et comment les diagnostiquer<\/h2>\n<p>La plupart des probl\u00e8mes graves li\u00e9s au mod\u00e8le CNC ne proviennent pas d'un code complexe. Ils sont dus \u00e0 de petites erreurs modales, \u00e0 des d\u00e9calages erron\u00e9s ou \u00e0 des incoh\u00e9rences d'unit\u00e9s qui se r\u00e9percutent dans l'ensemble du programme.<\/p>\n<h3>Erreurs de mode<\/h3>\n<p>Une commande modale mal d\u00e9finie \u2014 ou qui n'a jamais \u00e9t\u00e9 annul\u00e9e apr\u00e8s utilisation \u2014 affecte tous les blocs suivants jusqu'\u00e0 ce qu'elle soit modifi\u00e9e. Si le mode G91 (mode incr\u00e9mental) reste actif apr\u00e8s une sous-routine de palpage, tous les d\u00e9placements absolus pr\u00e9vus par la suite s\u2019ex\u00e9cutent sous forme de d\u00e9calages incr\u00e9mentaux. L\u2019outil se retrouve alors tr\u00e8s loin de la position pr\u00e9vue, et le contr\u00f4leur ne g\u00e9n\u00e8re aucune alarme car le d\u00e9placement \u00e9tait syntaxiquement valide.<\/p>\n<p>Ces erreurs ne sont pas d\u00e9tect\u00e9es en analysant chaque ligne individuellement. Elles n\u00e9cessitent de suivre l'\u00e9tat de la machine tout au long de la s\u00e9quence du programme \u2014 mentalement ou par simulation.<\/p>\n<h3>Erreurs de coordonn\u00e9es et de d\u00e9calage<\/h3>\n<p>Les erreurs de code G les plus risqu\u00e9es concernent les erreurs li\u00e9es au syst\u00e8me de coordonn\u00e9es et aux d\u00e9calages :<\/p>\n<ul>\n<li>D\u00e9calage de travail incorrect (par exemple, G54 s\u00e9lectionn\u00e9 alors que le programme pr\u00e9voit G55)<\/li>\n<li>Compensation de longueur d'outil incorrecte ou manquante (incoh\u00e9rence G43\/H)<\/li>\n<li>Confusion entre les codes G90 et G91 lors du passage du mode absolu au mode incr\u00e9mental<\/li>\n<\/ul>\n<p>Chacune de ces instructions peut provoquer un plantage ou g\u00e9n\u00e9rer un \u00e9l\u00e9ment invalide sans pour autant entra\u00eener d'erreur de syntaxe. Le contr\u00f4leur fait exactement ce que le code lui demande \u2014 mais ce n'est tout simplement pas ce qui \u00e9tait pr\u00e9vu.<\/p>\n<h3>Approche diagnostique : validation par \u00e9tapes<\/h3>\n<p>L'approche technique standard pour la validation du code G s'articule autour de niveaux de fiabilit\u00e9 croissante :<\/p>\n<ol>\n<li>R\u00e9vision du code \u2014 v\u00e9rifier les unit\u00e9s, les syst\u00e8mes de coordonn\u00e9es, les activations de d\u00e9calage et les r\u00e9initialisations modales<\/li>\n<li>Simulation CAM ou du contr\u00f4leur \u2014 v\u00e9rifier le mouvement de mani\u00e8re graphique avant toute ex\u00e9cution<\/li>\n<li>Essai \u00e0 vide \u2014 ex\u00e9cuter avec la broche \u00e0 l'arr\u00eat et le d\u00e9calage de l'axe Z augment\u00e9 de 50 \u00e0 100 mm<\/li>\n<li>Ex\u00e9cution bloc par bloc avec priorit\u00e9 sur l'avance \u2014 ex\u00e9cute le programme r\u00e9el ligne par ligne \u00e0 vitesse r\u00e9duite<\/li>\n<\/ol>\n<table>\n<thead>\n<tr>\n<th>Type d'erreur<\/th>\n<th>Risque<\/th>\n<th>La pr\u00e9vention<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>La commande modale n'a pas \u00e9t\u00e9 r\u00e9initialis\u00e9e<\/td>\n<td>Mouvement de coupe impr\u00e9vu<\/td>\n<td>R\u00e9\u00e9crire explicitement les codes G essentiels \u00e0 chaque op\u00e9ration<\/td>\n<\/tr>\n<tr>\n<td>Syst\u00e8me de coordonn\u00e9es incorrect<\/td>\n<td>Usinage \u00e0 un emplacement incorrect<\/td>\n<td>Toujours d\u00e9finir le d\u00e9calage de travail au d\u00e9but du programme<\/td>\n<\/tr>\n<tr>\n<td>D\u00e9calage de longueur d'outil manquant<\/td>\n<td>Collision de l'outil ou surcoupe<\/td>\n<td>Activer la commande G43 avec une valeur H v\u00e9rifi\u00e9e avant le d\u00e9placement en Z<\/td>\n<\/tr>\n<tr>\n<td>Incompatibilit\u00e9 d'unit\u00e9s (G20\/G21)<\/td>\n<td>Positions pond\u00e9r\u00e9es ou crash<\/td>\n<td>D\u00e9clarez explicitement les unit\u00e9s \u2014 ne vous fiez jamais aux valeurs par d\u00e9faut<\/td>\n<\/tr>\n<tr>\n<td>D\u00e9placement rapide et dangereux<\/td>\n<td>Collision<\/td>\n<td>Utiliser des plans de d\u00e9gagement et v\u00e9rifier le comportement en marche \u00e0 vide<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<hr \/>\n<h2>G-Code avanc\u00e9 : macros, sous-programmes et cycles pr\u00e9d\u00e9finis<\/h2>\n<h3>Variables macro et programmation param\u00e9trique<\/h3>\n<p>La programmation par macros introduit des variables dans le code G, ce qui permet d'utiliser une logique param\u00e9trique et conditionnelle que les programmes statiques ne peuvent pas offrir. Au lieu de coder en dur les profondeurs, les positions ou les vitesses d'avance, les ing\u00e9nieurs d\u00e9finissent les valeurs une seule fois et y font r\u00e9f\u00e9rence tout au long du programme.<\/p>\n<pre><code>#100 = 20,0   (longueur de poche)\n#101 = 5,0    (profondeur de coupe)\nG01 X#100 Z-#101 F300\r\n<\/code><\/pre>\n<p>Cette approche s'av\u00e8re particuli\u00e8rement utile pour les familles de pi\u00e8ces \u2014 o\u00f9 le diam\u00e8tre d'al\u00e9sage, la profondeur de poche ou l'espacement des trous varient selon la configuration \u2014 ainsi que pour les cycles de mesure en machine qui adaptent les param\u00e8tres d'usinage en fonction des r\u00e9sultats de palpage. Le revers de la m\u00e9daille est la complexit\u00e9 : les macros n\u00e9cessitent une documentation et une validation minutieuses, et les erreurs dans la logique conditionnelle peuvent entra\u00eener des mouvements inattendus.<\/p>\n<h3>Sous-programmes et \u00e9l\u00e9ments r\u00e9currents<\/h3>\n<p>Les sous-programmes (appel\u00e9s avec la commande M98 et renvoy\u00e9s avec la commande M99) permettent de d\u00e9finir une seule fois des s\u00e9quences de mouvements r\u00e9p\u00e9titives et de les ex\u00e9cuter plusieurs fois. Un motif de per\u00e7age qui appara\u00eet six fois sur une pi\u00e8ce ne n\u00e9cessite pas six copies de la s\u00e9quence de per\u00e7age : un seul sous-programme suffit pour toutes les occurrences.<\/p>\n<pre><code>M98 P2000 L6    (Appeler le sous-programme O2000 six fois)\r\n<\/code><\/pre>\n<p>Au-del\u00e0 de la concision du code, les sous-programmes am\u00e9liorent la coh\u00e9rence : les six trous suivent exactement la m\u00eame s\u00e9quence de mouvements. Toute modification de la strat\u00e9gie de per\u00e7age \u2014 vitesse d'avance, profondeur, incr\u00e9ment de per\u00e7age \u2014 n\u00e9cessite de modifier un seul sous-programme, et non six blocs de code distincts.<\/p>\n<h3>Cycles pr\u00e9d\u00e9finis : la productivit\u00e9 sans perte de contr\u00f4le<\/h3>\n<p>Les cycles pr\u00e9d\u00e9finis regroupent des s\u00e9quences d'usinage courantes (per\u00e7age, taraudage, al\u00e9sage, al\u00e9sage de pr\u00e9cision) en une seule commande. Un cycle de per\u00e7age qui n\u00e9cessiterait autrement des blocs distincts pour l'approche, la plong\u00e9e, le temps d'arr\u00eat et le retrait se r\u00e9sume ainsi \u00e0 une seule ligne :<\/p>\n<pre><code>G81 X20,0 Y10,0 Z-15,0 R2,0 F200\r\n<\/code><\/pre>\n<p>Cela r\u00e9duit le temps de programmation, raccourcit le code et garantit un comportement coh\u00e9rent pour tous les trous du motif. Remarque importante : les cycles pr\u00e9d\u00e9finis doivent \u00eatre annul\u00e9s \u00e0 l'aide de la commande G80 une fois termin\u00e9s, et leurs param\u00e8tres (mode de retrait, temps d'attente, incr\u00e9ment de per\u00e7age) doivent correspondre \u00e0 la configuration du contr\u00f4leur. Le comportement des cycles pr\u00e9d\u00e9finis varie selon les contr\u00f4leurs Fanuc, Haas et Siemens \u2014 v\u00e9rifiez toujours ces informations dans le manuel de programmation sp\u00e9cifique \u00e0 la machine.<\/p>\n<hr \/>\n<h2>Diff\u00e9rences entre les contr\u00f4leurs CNC en mati\u00e8re de code G<\/h2>\n<h3>Fanuc, Haas et bien d'autres encore<\/h3>\n<p>Les contr\u00f4leurs bas\u00e9s sur Fanuc constituent ce qui se rapproche le plus, dans le secteur, d'une r\u00e9f\u00e9rence standard en mati\u00e8re de code G. De nombreux constructeurs de machines-outils basent leurs syst\u00e8mes de commande sur l\u2019architecture Fanuc, ce qui rend le code compatible Fanuc raisonnablement portable d\u2019une machine \u00e0 l\u2019autre. Les contr\u00f4leurs Haas sont en grande partie compatibles Fanuc, mais ils int\u00e8grent des extensions propri\u00e9taires, des \u00e9tats modaux par d\u00e9faut diff\u00e9rents et une syntaxe de macro sp\u00e9cifique \u00e0 Haas qui peut modifier le comportement d\u2019ex\u00e9cution des programmes partag\u00e9s.<\/p>\n<p>Les contr\u00f4leurs Siemens et Heidenhain utilisent la syntaxe du code G, mais fonctionnent de mani\u00e8re tr\u00e8s diff\u00e9rente dans la pratique. Heidenhain, en particulier, s'appuie sur la saisie conversationnelle pour de nombreuses op\u00e9rations. Mazatrol (le syst\u00e8me propri\u00e9taire de Mazak) est principalement conversationnel, le code G constituant une option secondaire. Les programmes \u00e9crits pour un type de contr\u00f4leur n\u00e9cessitent souvent une r\u00e9g\u00e9n\u00e9ration par post-processeur \u2014 et pas seulement une simple modification \u2014 avant de pouvoir \u00eatre ex\u00e9cut\u00e9s sur une autre plateforme.<\/p>\n<h3>Pourquoi le G-Code n'est pas universel<\/h3>\n<p>Diff\u00e9rences sp\u00e9cifiques qui ont une incidence dans la pratique :<\/p>\n<ul>\n<li>Les jeux de codes G et M pris en charge varient : certains codes valides sur un contr\u00f4leur peuvent d\u00e9clencher des alarmes sur un autre.<\/li>\n<li>Les param\u00e8tres du cycle de d\u00e9coupe (profondeur de d\u00e9coupe, type de r\u00e9traction, dur\u00e9e de maintien) varient d'un fabricant \u00e0 l'autre<\/li>\n<li>La syntaxe des variables de macro et les commandes de logique conditionnelle d\u00e9pendent du contr\u00f4leur<\/li>\n<li>Les algorithmes d'anticipation et les profils d'acc\u00e9l\u00e9ration influent sur la fluidit\u00e9 du mouvement, m\u00eame lorsque le code G est identique.<\/li>\n<\/ul>\n<p>C'est pourquoi les post-processeurs CAM sont sp\u00e9cifiques \u00e0 chaque machine plut\u00f4t que g\u00e9n\u00e9riques. Le post-processeur convertit les trajectoires d'outils CAM dans le dialecte de code G adapt\u00e9 au contr\u00f4leur cible \u2014 et non en un code G universel pouvant \u00eatre ex\u00e9cut\u00e9 par n'importe quelle machine.<\/p>\n<h3>Ce que les concepteurs et les \u00e9quipes d'approvisionnement doivent savoir<\/h3>\n<p>Du point de vue des achats, le code G doit \u00eatre consid\u00e9r\u00e9 comme une donn\u00e9e de production sp\u00e9cifique \u00e0 la machine. Le partage d\u2019un fichier de code G entre fournisseurs suppose que les machines et les contr\u00f4leurs soient identiques \u2014 une hypoth\u00e8se qui ne se v\u00e9rifie souvent pas. La meilleure pratique consiste \u00e0 partager les donn\u00e9es CAD et CAM plut\u00f4t que le code G final, et \u00e0 v\u00e9rifier le type de machine et la version du contr\u00f4leur avant le transfert des programmes. Lorsque le partage du code G est in\u00e9vitable, il est essentiel de proc\u00e9der \u00e0 une simulation sur le contr\u00f4leur destinataire avant l\u2019usinage.<\/p>\n<hr \/>\n<h2>Conclusion<\/h2>\n<p>Dans l'usinage CNC, le code G constitue le dernier maillon entre la conception et l'usinage proprement dit. Les syst\u00e8mes de FAO planifient le parcours d'outil ; le fichier de code G correspond \u00e0 ce que la machine ex\u00e9cute r\u00e9ellement. Comprendre la structure du code G, sa logique modale et sa s\u00e9quence d'ex\u00e9cution permet aux ing\u00e9nieurs d'avoir une visibilit\u00e9 directe sur ce qui se passe au niveau du bord de coupe \u2014 et de comprendre pourquoi des probl\u00e8mes surviennent \u00e0 certains moments.<\/p>\n<p>Pour toute personne travaillant dans des environnements CNC \u2014 qu\u2019il s\u2019agisse d\u2019\u00e9crire des programmes, de v\u00e9rifier les param\u00e9trages des fournisseurs ou de r\u00e9soudre des probl\u00e8mes d\u2019usinage \u2014, la ma\u00eetrise du code G permet un diagnostic plus rapide, une meilleure communication avec les op\u00e9rateurs et moins de surprises en atelier. Il n\u2019est pas n\u00e9cessaire d\u2019\u00e9crire du code G \u00e0 partir de z\u00e9ro dans un flux de travail pilot\u00e9 par une logiciel de FAO. En revanche, vous devez \u00eatre capable de le lire, de comprendre ce que la machine va faire et de rep\u00e9rer les cas o\u00f9 un \u00e9l\u00e9ment du code ne correspond pas au r\u00e9sultat escompt\u00e9.<\/p>\n<hr \/>\n<h2>FAQ<\/h2>\n<p><strong>Toutes les machines CNC utilisent-elles le m\u00eame code G ?<\/strong><\/p>\n<p>Non. Le code G n'est pas enti\u00e8rement normalis\u00e9 dans l'ensemble du secteur. Les contr\u00f4leurs Fanuc, Haas, Siemens et Heidenhain utilisent tous la syntaxe du code G, mais avec des jeux de commandes, des d\u00e9finitions de cycles pr\u00e9d\u00e9finis, une syntaxe de macros et des \u00e9tats modaux par d\u00e9faut qui varient. Des programmes qui s'ex\u00e9cutent correctement sur un contr\u00f4leur peuvent d\u00e9clencher des alarmes ou produire des mouvements diff\u00e9rents sur un autre. C'est pourquoi les post-processeurs CAM sont sp\u00e9cifiques \u00e0 chaque contr\u00f4leur.<\/p>\n<p><strong>Les machines CNC peuvent-elles fonctionner sans code G ?<\/strong><\/p>\n<p>Au niveau du contr\u00f4le, non. M\u00eame la programmation conversationnelle et les parcours d'outils g\u00e9n\u00e9r\u00e9s par la CAM sont finalement convertis en code G (ou en instructions de bas niveau \u00e9quivalentes) pour \u00eatre ex\u00e9cut\u00e9s. Le code G est le langage d'ex\u00e9cution natif de la machine \u2014 tout le reste n'est qu'une couche superpos\u00e9e \u00e0 celui-ci.<\/p>\n<p><strong>La programmation manuelle en G-code est-elle encore n\u00e9cessaire ?<\/strong><\/p>\n<p>La programmation manuelle compl\u00e8te est rarement n\u00e9cessaire dans les environnements de production. Cependant, savoir lire et modifier le code G reste une comp\u00e9tence utile pour le d\u00e9bogage, l\u2019optimisation des temps de cycle, les petites modifications apport\u00e9es aux programmes existants, ainsi que pour communiquer avec les op\u00e9rateurs de machines et les fournisseurs. La plupart des ing\u00e9nieurs CNC n\u2019\u00e9crivent pas de programmes \u00e0 partir de z\u00e9ro, mais ils travaillent r\u00e9guli\u00e8rement avec des fichiers de code G.<\/p>\n<p><strong>Comment puis-je tester en toute s\u00e9curit\u00e9 un nouveau programme G-code ?<\/strong><\/p>\n<p>Adoptez une approche de validation par \u00e9tapes : v\u00e9rifiez le code au niveau des unit\u00e9s, des syst\u00e8mes de coordonn\u00e9es et des d\u00e9clarations de d\u00e9calage ; lancez une simulation CAM ou du contr\u00f4leur ; effectuez un essai \u00e0 vide avec la broche \u00e0 l'arr\u00eat et l'axe Z relev\u00e9 de 50 \u00e0 100 mm au-dessus de la pi\u00e8ce ; puis ex\u00e9cutez un bloc unique avec une surcompensation d'avance r\u00e9duite avant de lancer un cycle complet.<\/p>\n<p><strong>Quelle est la diff\u00e9rence entre le code G et la programmation conversationnelle ?<\/strong><\/p>\n<p>Le code G est explicite et sous forme de texte : chaque action de la machine est directement cod\u00e9e. La programmation conversationnelle utilise des menus et des invites pour d\u00e9finir les op\u00e9rations, que le contr\u00f4leur convertit en code G en interne. La programmation conversationnelle est plus rapide pour les pi\u00e8ces simples usin\u00e9es sur la machine ; le code G offre davantage de transparence, de portabilit\u00e9 et de contr\u00f4le pour les programmes complexes comportant plusieurs op\u00e9rations.<\/p>\n<\/div>","protected":false},"excerpt":{"rendered":"<p>CAM software has made G-code less visible in day-to-day CNC workflows \u2014 but it hasn&#8217;t made G-code less important. Every toolpath a CAM system generates eventually becomes a G-code file, and that file is what the CNC controller actually executes, line by line, with no awareness of the CAD model or the machining strategy behind it.<\/p>","protected":false},"author":1,"featured_media":12248,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-10351","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-uncategorized"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v26.5 (Yoast SEO v28.7) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>What Is G-Code? CNC Programming Syntax &amp; Examples<\/title>\n<meta name=\"description\" content=\"Learn what G-code is in CNC machining, including command syntax, program structure, and practical programming examples used to control CNC machines.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.cncmachiningshops.com\/fr\/what-is-g-code\/\" \/>\n<meta property=\"og:locale\" content=\"fr_FR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"What Is G-Code in CNC Machining? Syntax, Structure, and Practical Programming Examples\" \/>\n<meta property=\"og:description\" content=\"Learn what G-code is in CNC machining, including command syntax, program structure, and practical programming examples used to control CNC machines.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.cncmachiningshops.com\/fr\/what-is-g-code\/\" \/>\n<meta property=\"og:site_name\" content=\"CNC Machining Shops\" \/>\n<meta property=\"article:published_time\" content=\"2026-03-20T05:59:24+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-07-19T09:12:07+00:00\" \/>\n<meta name=\"author\" content=\"cncmachiningshops\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"\u00c9crit par\" \/>\n\t<meta name=\"twitter:data1\" content=\"cncmachiningshops\" \/>\n\t<meta name=\"twitter:label2\" content=\"Dur\u00e9e de lecture estim\u00e9e\" \/>\n\t<meta name=\"twitter:data2\" content=\"18 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.cncmachiningshops.com\\\/what-is-g-code\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.cncmachiningshops.com\\\/what-is-g-code\\\/\"},\"author\":{\"name\":\"cncmachiningshops\",\"@id\":\"https:\\\/\\\/www.cncmachiningshops.com\\\/#\\\/schema\\\/person\\\/2593a2e2de68be71300e10f486236551\"},\"headline\":\"What Is G-Code in CNC Machining? Syntax, Structure, and Practical Programming Examples\",\"datePublished\":\"2026-03-20T05:59:24+00:00\",\"dateModified\":\"2026-07-19T09:12:07+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.cncmachiningshops.com\\\/what-is-g-code\\\/\"},\"wordCount\":4073,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/www.cncmachiningshops.com\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/www.cncmachiningshops.com\\\/what-is-g-code\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.cncmachiningshops.com\\\/wp-content\\\/uploads\\\/2026\\\/03\\\/What-Is-G-Code-in-CNC-Machining-800x600-2.jpg\",\"articleSection\":[\"Uncategorized\"],\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.cncmachiningshops.com\\\/what-is-g-code\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.cncmachiningshops.com\\\/what-is-g-code\\\/\",\"url\":\"https:\\\/\\\/www.cncmachiningshops.com\\\/what-is-g-code\\\/\",\"name\":\"What Is G-Code? CNC Programming Syntax & Examples\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.cncmachiningshops.com\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.cncmachiningshops.com\\\/what-is-g-code\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.cncmachiningshops.com\\\/what-is-g-code\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.cncmachiningshops.com\\\/wp-content\\\/uploads\\\/2026\\\/03\\\/What-Is-G-Code-in-CNC-Machining-800x600-2.jpg\",\"datePublished\":\"2026-03-20T05:59:24+00:00\",\"dateModified\":\"2026-07-19T09:12:07+00:00\",\"description\":\"Learn what G-code is in CNC machining, including command syntax, program structure, and practical programming examples used to control CNC machines.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.cncmachiningshops.com\\\/what-is-g-code\\\/#breadcrumb\"},\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.cncmachiningshops.com\\\/what-is-g-code\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\\\/\\\/www.cncmachiningshops.com\\\/what-is-g-code\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.cncmachiningshops.com\\\/wp-content\\\/uploads\\\/2026\\\/03\\\/What-Is-G-Code-in-CNC-Machining-800x600-2.jpg\",\"contentUrl\":\"https:\\\/\\\/www.cncmachiningshops.com\\\/wp-content\\\/uploads\\\/2026\\\/03\\\/What-Is-G-Code-in-CNC-Machining-800x600-2.jpg\",\"width\":800,\"height\":600,\"caption\":\"What Is G-Code in CNC Machining 800x600\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.cncmachiningshops.com\\\/what-is-g-code\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.cncmachiningshops.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"What Is G-Code in CNC Machining? Syntax, Structure, and Practical Programming Examples\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.cncmachiningshops.com\\\/#website\",\"url\":\"https:\\\/\\\/www.cncmachiningshops.com\\\/\",\"name\":\"CNC Machining Shops\",\"description\":\"10+ Years CNC Machining Service Supplier\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.cncmachiningshops.com\\\/#organization\"},\"alternateName\":\"CMS\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.cncmachiningshops.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"fr-FR\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.cncmachiningshops.com\\\/#organization\",\"name\":\"CNC Machining Shops\",\"alternateName\":\"CMS\",\"url\":\"https:\\\/\\\/www.cncmachiningshops.com\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\\\/\\\/www.cncmachiningshops.com\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.cncmachiningshops.com\\\/wp-content\\\/uploads\\\/2025\\\/11\\\/CMS_Logo_1000x1000.png\",\"contentUrl\":\"https:\\\/\\\/www.cncmachiningshops.com\\\/wp-content\\\/uploads\\\/2025\\\/11\\\/CMS_Logo_1000x1000.png\",\"width\":800,\"height\":800,\"caption\":\"CNC Machining Shops\"},\"image\":{\"@id\":\"https:\\\/\\\/www.cncmachiningshops.com\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"description\":\"Shenzhen CMS Technology Co., Ltd. is located in Shenzhen, Guangdong, China. It was established in 2012 with a factory area of \u200b\u200b3,000 square meters. It is a company specializing in CNC machining and precision parts manufacturing. We have passed ISO9001, IATF16949, ISO13485 certification and are your trusted partner.\",\"email\":\"info@cncmachiningshops.com\",\"telephone\":\"+8617196430663\",\"legalName\":\"Shenzhen CMS Technology Co., Ltd.\",\"foundingDate\":\"2012-07-22\",\"numberOfEmployees\":{\"@type\":\"QuantitativeValue\",\"minValue\":\"11\",\"maxValue\":\"50\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.cncmachiningshops.com\\\/#\\\/schema\\\/person\\\/2593a2e2de68be71300e10f486236551\",\"name\":\"cncmachiningshops\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/36a63d96ed08f8805561107422de4e83bbf8d1669dbc9655acab534bc3e1ed17?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/36a63d96ed08f8805561107422de4e83bbf8d1669dbc9655acab534bc3e1ed17?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/36a63d96ed08f8805561107422de4e83bbf8d1669dbc9655acab534bc3e1ed17?s=96&d=mm&r=g\",\"caption\":\"cncmachiningshops\"},\"sameAs\":[\"https:\\\/\\\/cncmachiningshops.com\"]}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Qu'est-ce que le G-Code ? Syntaxe de programmation CNC et exemples","description":"D\u00e9couvrez ce qu'est le G-code dans l'usinage CNC, notamment la syntaxe des commandes, la structure des programmes et des exemples concrets de programmation utilis\u00e9s pour piloter les machines CNC.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.cncmachiningshops.com\/fr\/what-is-g-code\/","og_locale":"fr_FR","og_type":"article","og_title":"What Is G-Code in CNC Machining? Syntax, Structure, and Practical Programming Examples","og_description":"Learn what G-code is in CNC machining, including command syntax, program structure, and practical programming examples used to control CNC machines.","og_url":"https:\/\/www.cncmachiningshops.com\/fr\/what-is-g-code\/","og_site_name":"CNC Machining Shops","article_published_time":"2026-03-20T05:59:24+00:00","article_modified_time":"2026-07-19T09:12:07+00:00","author":"cncmachiningshops","twitter_card":"summary_large_image","twitter_misc":{"\u00c9crit par":"cncmachiningshops","Dur\u00e9e de lecture estim\u00e9e":"18 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.cncmachiningshops.com\/what-is-g-code\/#article","isPartOf":{"@id":"https:\/\/www.cncmachiningshops.com\/what-is-g-code\/"},"author":{"name":"cncmachiningshops","@id":"https:\/\/www.cncmachiningshops.com\/#\/schema\/person\/2593a2e2de68be71300e10f486236551"},"headline":"What Is G-Code in CNC Machining? Syntax, Structure, and Practical Programming Examples","datePublished":"2026-03-20T05:59:24+00:00","dateModified":"2026-07-19T09:12:07+00:00","mainEntityOfPage":{"@id":"https:\/\/www.cncmachiningshops.com\/what-is-g-code\/"},"wordCount":4073,"commentCount":0,"publisher":{"@id":"https:\/\/www.cncmachiningshops.com\/#organization"},"image":{"@id":"https:\/\/www.cncmachiningshops.com\/what-is-g-code\/#primaryimage"},"thumbnailUrl":"https:\/\/www.cncmachiningshops.com\/wp-content\/uploads\/2026\/03\/What-Is-G-Code-in-CNC-Machining-800x600-2.jpg","articleSection":["Uncategorized"],"inLanguage":"fr-FR","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.cncmachiningshops.com\/what-is-g-code\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.cncmachiningshops.com\/what-is-g-code\/","url":"https:\/\/www.cncmachiningshops.com\/what-is-g-code\/","name":"Qu'est-ce que le G-Code ? Syntaxe de programmation CNC et exemples","isPartOf":{"@id":"https:\/\/www.cncmachiningshops.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.cncmachiningshops.com\/what-is-g-code\/#primaryimage"},"image":{"@id":"https:\/\/www.cncmachiningshops.com\/what-is-g-code\/#primaryimage"},"thumbnailUrl":"https:\/\/www.cncmachiningshops.com\/wp-content\/uploads\/2026\/03\/What-Is-G-Code-in-CNC-Machining-800x600-2.jpg","datePublished":"2026-03-20T05:59:24+00:00","dateModified":"2026-07-19T09:12:07+00:00","description":"D\u00e9couvrez ce qu'est le G-code dans l'usinage CNC, notamment la syntaxe des commandes, la structure des programmes et des exemples concrets de programmation utilis\u00e9s pour piloter les machines CNC.","breadcrumb":{"@id":"https:\/\/www.cncmachiningshops.com\/what-is-g-code\/#breadcrumb"},"inLanguage":"fr-FR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.cncmachiningshops.com\/what-is-g-code\/"]}]},{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/www.cncmachiningshops.com\/what-is-g-code\/#primaryimage","url":"https:\/\/www.cncmachiningshops.com\/wp-content\/uploads\/2026\/03\/What-Is-G-Code-in-CNC-Machining-800x600-2.jpg","contentUrl":"https:\/\/www.cncmachiningshops.com\/wp-content\/uploads\/2026\/03\/What-Is-G-Code-in-CNC-Machining-800x600-2.jpg","width":800,"height":600,"caption":"What Is G-Code in CNC Machining 800x600"},{"@type":"BreadcrumbList","@id":"https:\/\/www.cncmachiningshops.com\/what-is-g-code\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.cncmachiningshops.com\/"},{"@type":"ListItem","position":2,"name":"What Is G-Code in CNC Machining? Syntax, Structure, and Practical Programming Examples"}]},{"@type":"WebSite","@id":"https:\/\/www.cncmachiningshops.com\/#website","url":"https:\/\/www.cncmachiningshops.com\/","name":"Ateliers d'usinage CNC","description":"Fournisseur de services d'usinage CNC depuis plus de 10 ans","publisher":{"@id":"https:\/\/www.cncmachiningshops.com\/#organization"},"alternateName":"CMS","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.cncmachiningshops.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"fr-FR"},{"@type":"Organization","@id":"https:\/\/www.cncmachiningshops.com\/#organization","name":"Ateliers d'usinage CNC","alternateName":"CMS","url":"https:\/\/www.cncmachiningshops.com\/","logo":{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/www.cncmachiningshops.com\/#\/schema\/logo\/image\/","url":"https:\/\/www.cncmachiningshops.com\/wp-content\/uploads\/2025\/11\/CMS_Logo_1000x1000.png","contentUrl":"https:\/\/www.cncmachiningshops.com\/wp-content\/uploads\/2025\/11\/CMS_Logo_1000x1000.png","width":800,"height":800,"caption":"CNC Machining Shops"},"image":{"@id":"https:\/\/www.cncmachiningshops.com\/#\/schema\/logo\/image\/"},"description":"La soci\u00e9t\u00e9 Shenzhen CMS Technology Co., Ltd. est implant\u00e9e \u00e0 Shenzhen, dans la province du Guangdong, en Chine. Fond\u00e9e en 2012, elle dispose d'une usine d'une superficie de 3 000 m\u00e8tres carr\u00e9s. Il s'agit d'une entreprise sp\u00e9cialis\u00e9e dans l'usinage CNC et la fabrication de pi\u00e8ces de pr\u00e9cision. Nous sommes certifi\u00e9s ISO 9001, IATF 16949 et ISO 13485, et sommes votre partenaire de confiance.","email":"info@cncmachiningshops.com","telephone":"+8617196430663","legalName":"Shenzhen CMS Technology Co., Ltd.","foundingDate":"2012-07-22","numberOfEmployees":{"@type":"QuantitativeValue","minValue":"11","maxValue":"50"}},{"@type":"Person","@id":"https:\/\/www.cncmachiningshops.com\/#\/schema\/person\/2593a2e2de68be71300e10f486236551","name":"ateliers d&#039;usinage cnc","image":{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/secure.gravatar.com\/avatar\/36a63d96ed08f8805561107422de4e83bbf8d1669dbc9655acab534bc3e1ed17?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/36a63d96ed08f8805561107422de4e83bbf8d1669dbc9655acab534bc3e1ed17?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/36a63d96ed08f8805561107422de4e83bbf8d1669dbc9655acab534bc3e1ed17?s=96&d=mm&r=g","caption":"cncmachiningshops"},"sameAs":["https:\/\/cncmachiningshops.com"]}]}},"_links":{"self":[{"href":"https:\/\/www.cncmachiningshops.com\/fr\/wp-json\/wp\/v2\/posts\/10351","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.cncmachiningshops.com\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.cncmachiningshops.com\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.cncmachiningshops.com\/fr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.cncmachiningshops.com\/fr\/wp-json\/wp\/v2\/comments?post=10351"}],"version-history":[{"count":0,"href":"https:\/\/www.cncmachiningshops.com\/fr\/wp-json\/wp\/v2\/posts\/10351\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.cncmachiningshops.com\/fr\/wp-json\/wp\/v2\/media\/12248"}],"wp:attachment":[{"href":"https:\/\/www.cncmachiningshops.com\/fr\/wp-json\/wp\/v2\/media?parent=10351"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.cncmachiningshops.com\/fr\/wp-json\/wp\/v2\/categories?post=10351"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.cncmachiningshops.com\/fr\/wp-json\/wp\/v2\/tags?post=10351"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}