Cette section donne une brève description des interactions entre les organes d'un centre d'usinage et son interpréteur de commandes. Le lecteur est sensé être déjà familier avec les centres d'usinage.
Le langage RS274/NGC et les fonctions d'usinage standards qui en découlent permettent d'envisager un centre d'usinage sous deux points de vue:
(1) les composants mécaniques de la machine.
(2) les composants de contrôle et les données utilisées pour le contrôle de la machine.
Un centre d'usinage dispose de beaucoup de composants mécaniques pouvant être contrôlés ou qui peuvent avoir une incidence sur la façon dont le contrôle de la machine s'effectue. Cette section décrit les composants qui interagissent avec l'interpréteur. Les composants mécaniques, qui n'interagissent pas avec l'interpréteur, comme les boutons du jog, ne seront pas décrits ici, même si ils affectent le contrôle.
Tout centre d'usinage dispose d'un ou de plusieurs axes. Les différents types de machines ont différentes combinaisons d'axes. Par exemple, une fraiseuse 4 axes peut avoir la combinaison d'axes XYZA ou XYZB. Un tour classique aura les axes XZ. Une machine de découpe à fil chaud aura les axes XYUZ.12
Les axes X, Y et Z produisent des mouvements linéaires dans trois directions, mutuellement orthogonales.
Les axes U, V et W produisent des mouvements linéaires dans trois directions mutuellement orthogonales. Habituellement, X et U sont parallèles, Y et V sont parallèles et Z et W sont parallèles.
Les axes A, B et C produisent des mouvements angulaires (rotations). Habituellement, l'axe de rotation de A est parallèle à X, l'axe de rotation de B est parallèle à Y et l'axe de rotation de C est parallèle à Z.
Un centre d'usinage est équipé d'une broche qui maintient l'outil coupant, la sonde de mesure et d'autres outils. La broche peut tourner dans les deux sens. Elle peut être conçue pour tourner à vitesse constante mais réglable. Excepté sur les machines dont la broche est montée sur un axe rotatif, l'axe de la broche est maintenu parallèle à l'axe Z et il est coïncident avec l'axe Z quand X et Y sont à zéro. La broche peut être stoppée sur une position fixée ou non.
Un centre d'usinage peut être équipé d'un composant fournissant l'arrosage fuide ou en brouillard.
Un centre d'usinage peut être équipé d'un système de chargement des pièces. Le système se compose de deux porte-pièces sur lesquels sont fixés les bruts des pièces à usiner. Un seul porte-pièce à la fois est en position d'usinage.
Un centre d'usinage peut être équipé d'un carrousel d'outils dans lequel sont rangés les outils déjà montés dans leurs porte-outils.
Un centre d'usinage peut être équipé d'un mécanisme de changement d'outils (fixés dans les porte-outils) entre le carrousel d'outils et la broche.
Un centre d'usinage est équipé d'une visualisation capable d'afficher les messages pour l'opérateur.
Un centre d'usinage est équipé de boutons de réglage de la vitesse d'avance et de la vitesse de rotation de la broche, ils laissent l'opérateur corriger les vitesses nécessaires pour la broche et l'avance travail, il peut ainsi augmenter ou réduire les vitesses programmées. Voir la section [.].
Un centre d'usinage peut être équipé d'un bouton d'effacement de block. Voir la section [.].
Un centre d'usinage peut être équipé d'un bouton d'arrêt du programme. Voir la section [.].
Les axes X, Y et Z forment un système de coordonnées orthogonales standard. La position d'un axe s'exprime en utilisant ses coordonnées.
Les axes U, V et W forment également un système de coordonnées standard. X et U sont parallèles, Y et V sont parallèles enfin Z et W sont parallèles.
Les axes rotatifs se mesurent en degrés. Leur sens de rotation positif est le sens anti-horaire quand l'observateur est placé face à l'axe. 3
Le point contrôlé est le point dont la position et la vitesse de déplacement sont contrôlés. Quand la compensation de longueur d'outil est zéro (valeur par défaut), c'est un point situé sur l'axe de la broche et proche de la fin de celle-ci. Cette position peut être déplacée le long de l'axe de la broche en spécifiant une compensation de longueur d'outil. Cette compensation correspond généralement à la longueur de l'outil coupant courant. Ainsi, le point contrôlé est à la pointe de l'outil. Sur un tour, les correcteurs d'outil peuvent être spécifiés pour les axes X et Z, le point contrôlé est à la pointe de l'outil ou (correction du rayon de bec) légèrement en retrait du point d'intersection des droites perpendiculaires formées par l'axe des points de tangence à la pièce, de face et sur le côté de l'outil.
Pour mener un outil sur une trajectoire spécifiée, un centre d'usinage doit coordonner les mouvements de plusieurs axes. Nous utilisons le terme “mouvement linéaire coordonné” pour décrire une situation dans laquelle, nominalement, chacun des axes se déplace à vitesse constante et tous les axes se déplacent de leur point de départ à leur point d'arrivée en même temps. Si deux des axes X, Y, Z (ou les trois) se déplacent, ceci produit un mouvement en ligne droite, d'où le mot “linéaire” dans le terme. Dans les véritables mouvements, ce n'est souvent pas possible de maintenir la vitesse constante à cause des accélérations et décélérations nécessaires en début et fin de mouvement. C'est faisable, cependant, de contrôler les axes ainsi, chaque axe doit en permanence faire la même fraction du mouvement requis que les autres axes. Ceci déplace l'outil le long du même parcours et nous appelons aussi ce genre de mouvement, mouvement linéaire coordonné.
Un mouvement linéaire coordonné peut être exécuté soit en vitesse travail, soit en vitesse rapide, ou il peut être synchronisé à la rotation de la broche. Si les limites physique de l'axe rendent le déplacement impossible, tous les axes seront ralentis pour maintenir le chemin prévu.
La vitesse à laquelle le point contrôlé se déplace est ajustable par l'opérateur. Sauf cas particulier, (vitesse inverse du temps, vitesse par tour, voir la section [.]) , dans l'interpréteur, l'interprétation des vitesses est la suivante:
Arrosage fluide ou brouillard (gouttelettes) peuvent être activés séparément. Le langage RS274/NGC les arrête ensemble (voir la section [.]).
Une temporisation peut être commandée (ex: pour immobiliser tous les axes) pendant une durée spécifique. La broche n'est pas arrêtée pendant une temporisation! Sans s'occuper du mode de contrôle de trajectoire (voir la section [.]) la machine s'arrêtera exactement à la fin du dernier mouvement avant la temporisation.
Les unités utilisées pour les distances le long des axes X, Y et Z peuvent être les pouces ou les millimètres. La vitesse de rotation de la broche est en tours par minute. Les positions des axes rotatifs sont exprimées en degrés. Les vitesses d'avance sont exprimées en unités machine par minute ou en degrés par minute ou en unités de longueur par tour de broche, comme décrit dans la section [.].
Le point contrôlé est toujours à un emplacement appelé la "position courante,'' et le contrôleur sait toujours où est cette position. Les valeurs représentant la position courante doivent être ajustées en l'absence de tout mouvement des axes si un de ces événements a lieu:
Il y a toujours un plan sélectionné, qui doit être le plan XY, le plan YZ, ou le plan XZ de la machine. L'axe Z est, bien sûr, perpendiculaire au plan XY, l'axe X perpendiculaire au plan YZ et l'axe Y perpendiculaire au plan XZ.
Aucun ou un outil est assigné à chaque emplacement dans le carrousel.
Un centre d'usinage peut commander un changeur d'outils.
Les deux porte-pièces peuvent être intervertis par commande.
Les boutons des correcteurs de vitesses peuvent être activés (ils fonctionnent normalement) ou rendus inopérents (Ils n'ont plus aucun effet). Le langage RS274/NGC dispose d'une commande qui active tous les boutons et une autre qui les désactive (voir la section [.]). Voir la section [.] pour d'autres détails.
La machine peut être placée dans un de ces trois modes de contrôle de trajectoire: (1) mode arrêt exact, (2) mode trajectoire exacte ou (3) mode trajectoire continue avec tolérance optionnelle. En mode arrêt exact, le mobile s'arrête brièvement à la fin de chaque mouvement programmé. En mode trajectoire exacte, le mobile suit la trajectoire programmée aussi précisément que possible, ralentissant ou s'arrêtant si nécessaire aux angles vifs du parcours. En mode trajectoire continue, les angles vifs du parcours peuvent être légèrement arrondis pour que la vitesse soit maintenue (sans dépasser la tolérance, si elle est spécifiée). Voir la section [.].
L'interpréteur interagit avec plusieurs boutons de commande. Cette section décrit ces interactions plus en détail. En aucun cas l'interpréteur ne connait ce que sont les réglages de ces boutons.
L'interpréteur de commande RS274/NGC autorise (M48) ou interdit (M49) l'action des boutons d'ajustement des vitesses. Pour certains mouvements, tels que la sortie de filet à la fin d'un cycle de filetage, les boutons sont neutralisés automatiquement.
EMC2 réagit aux réglages de ces boutons seulement quand ils sont autorisés.
Si le bouton “Effacement de block” est actif, les lignes de code RS274/NGC commençant par le caractère barre de fraction (caractère d'effacement de block) ne sont pas interprétées. Si le bouton est désactivé, ces mêmes lignes sont interprétées. Normalement le bouton d'effacement de block doit être positionné avant de lancer le programme NGC.
Si ce bouton est actif et qu'un code M1 est rencontré, le programme est mis en pause.
Un fichier d'outils est requis par l'interpréteur. Le fichier indique dans quels emplacements du carrousel sont placés les outils, la longueur et le diamètre de chacun des outils.
Le fichier est composé d'un certain nombre de lignes d'en-tête, suivies par une ligne vide, suivie d'un nombre quelconque de lignes de données. Les lignes d'en-tête sont ignorées par l'interpréteur. Il est important qu'il y ait une ligne vide (sans espace ni tabulation), avant les données. La ligne d'en-tête montrée dans ce tableau[.], décrit les colonnes de données, il est donc proposé (mais pas obligatoire) que cette ligne soit toujours présente.
Chaque ligne de données du fichier contient les données d'un outil. La ligne peut contenir 4 ou 5 éléments (“format fraiseuse”) ou 8 ou 9 éléments (“format tour”).
Les unités utilisées pour la longueur et le diamètre sont en unités machine.
Les lignes n'ont pas à être dans un ordre particulier. Permuter l'ordre des lignes est sans effet, sauf si le même numéro d'emplacement est utilisé sur deux ou plusieurs lignes, ce qui ne devrait normalement pas être fait, dans ce cas, seules les données de la dernière de ces lignes seront utilisées.
Dans emc2, l'emplacement du fichier d'outil est spécifié dans le fichier ini. Voir la section [->] pour d'autres détails.
Un fichier d'outils peut être un mélange de lignes au “format fraiseuse” et au “format tour”, bien que généralement les lignes du style “format tour” soient seulement requises pour les outils de tour.
Le “format fraiseuse” d'un fichier d'outils est visible dans le tableau [.].
| Slot | FMS | TLO | Diamètre | Commentaire |
| 1 | 1 | 2.0 | 1.0 | |
| 2 | 2 | 1.0 | 0.2 | |
| 5 | 5 | 1.5 | 0.25 | coupe en bout |
| 10 | 10 | 2.4 | -0.3 | à tester |
Chaque ligne comporte 5 éléments. Les quatre premiers éléments sont obligatoires. Le commentaire, placé en cinquième est facultatif. La lecture est rendue plus facile si les éléments sont disposés en colonnes, comme dans le tableau ci-dessus, mais la seule exigence de forme, c'est qu'il y ait au moins un espace ou une tabulation après chacun des trois premiers éléments d'une ligne, et une tabulation ou un saut de ligne à la fin des cinq éléments. La signification des colonnes et le type de données à mettre dans chacune sont les suivants:
La colonne “Slot” contient un entier non signé représentant le numéro d'emplacement dans le carrousel d'outils (numéro de slot) dans lequel cet outil est placé. Les éléments de cette colonne doivent être tous différents.
La colonne “FMS” contient un entier non signé représentant le numéro de code de l'outil. L'utilisateur peut y placer n'importe quel code pour tous les outils, tant que les codes sont des entiers non signés. C'est en général le même que celui de l'emplacement.
La colonne “TLO” contient un nombre réel représentant l'offset de longueur d'outil. Cette valeur sera utilisée si la compensation de longueur d'outil est activée et que ce numéro d'emplacement est choisi. C'est normalement un nombre réel positif, mais il peut être mis à zéro ou tout autre valeur si il n'a pas à être utilisé.
La colonne “Diamètre” contient un nombre réel. Cette valeur est utilisée seulement si la compensation de rayon d'outil est activée et que ce numéro d'emplacement est choisi. Si la trajectoire programmée avec la compensation est le bord du matériau à usiner, ce devrait être un nombre réel positif représentant le diamètre mesuré de l'outil. Si la trajectoire programmée pendant la compensation est la trajectoire d'un outil dont le diamètre est nominal, ce nombre devrait être petit (positif, négatif ou nul) et représenter la différence entre le diamètre mesuré de l'outil et le diamètre nominal. Si la compensation de rayon d'outil n'est pas utilisée avec un outil, le contenu de cette colonne est sans effet.
La colonne “Commentaire” est optionnelle, elle peut être utilisée pour décrire l'outil. Tout type de description convient. Cette colonne améliore la lisibilité du fichier.
Le “format tour” d'un fichier d'outil est visible dans le tableau[.].
| Slot | FMS | ZOFFSET | XOFFSET | DIA | FRONTANGLE | BACKANGLE | ORIENTATION | Commentaire |
| 1 | 1 | 0.0 | 0.0 | 0.1 | 95.0 | 155.0 | 1 | |
| 2 | 2 | 0.5 | 0.5 | 0.1 | 120 | 60 | 6 |
Les champs Slot, FMS, DIA et Commentaire sont les mêmes que dans un fichier d'outils de fraiseuse. La colonne ZOFFSET est la même que la colonne TLO d'un fichier d'outil de fraiseuse; offset de longueur d'outil.
La colonne XOFFSET fournit l'offset pour la coordonnée X quand la compensation de longueur d'outil est active.
La colonne ORIENTATION donne l'orientation de l'outil de tour, comme illustré sur [.]. La croix rouge correspond au point contrôlé. Voir [.].
Les colonnes FRONTANGLE et BACKANGLE sont utilisées par certaines interfaces utilisateur pour afficher une représentation de l'outil de tour.
Dans le language RS274/NGC, le centre d'usinage maintient un tableau de 5400 paramètres numériques. La plupart d'entre eux ont un usage spécifique. Le tableau de paramètres est persistant, même quand la machine est mise hors tension. EMC2 utilise un fichier de paramètres et assure sa persistance, il donne à l'interpréteur la responsabilité d'actualiser le fichier. L'interpréteur lit le fichier quand il démarre et l'écrit juste avant de s'arrêter.
| Numéros de paramètre | Signification |
| 5061-5070 | Résultats des mesures “G38.2” |
| 5161-5169 | “G28” Origines machine |
| 5181-5189 | “G30” Origines pièce |
| 5211-5219 | “G92” Décalages d'origines |
| 5220 | Numéro du système de coordonnées |
| 5221-5229 | Système de coordonnées 1 |
| 5241-5249 | Système de coordonnées 2 |
| 5261-5269 | Système de coordonnées 3 |
| 5281-5289 | Système de coordonnées 4 |
| 5301-5309 | Système de coordonnées 5 |
| 5321-5329 | Système de coordonnées 6 |
| 5341-5349 | Système de coordonnées 7 |
| 5361-5369 | Système de coordonnées 8 |
| 5381-5389 | Système de coordonnées 9 |
| 5399 | Résultat de M66 - Surveillance d'entrée |
Le format d'un fichier de paramètres est visible dans la table [.]. Le fichier est composé d'un certain nombre de lignes d'en-tête, suivie par une ligne vide, suivie d'un nombre quelconque de lignes de données. Les lignes d'en-tête sont ignorées par l'interpréteur. Il est important qu'il y ait une ligne vide (sans espace ni tabulation), avant les données. La ligne d'en-tête montrée dans ce tableau [.], décrit les colonnes de données, il est donc proposé (mais pas obligatoire) que cette ligne soit toujours présente.
L'interpréteur lit seulement les deux premières colonnes du tableau. Il ignore la troisième colonne, Commentaire.
Chaque ligne du fichier contient le numéro d'index d'un paramètre dans la première colonne et la valeur attribuée à ce paramètre, dans la deuxième colonne. La valeur est représentée par une nombre flottant en double précision à l'intérieur de l'interpréteur, mais le point décimal n'est pas exigé dans le fichier. Le format des paramètres visible dans le tableau [.] est obligatoire et doit être utilisé pour tous les fichiers de paramètres, à l'exception des paramètres représentant une valeur sur un axe rotatif inutilisé, qui peuvent être omis. Une erreur sera signalée si un paramètre requis est absent. Un fichier de paramètres peut inclure tout autre paramètre, tant que son numéro est compris dans une fourchette de 1 à 5400. Les numéros de paramètre doivent être disposés dans l'ordre croîssant. Sinon, une erreur sera signalée. Le fichier original est copié comme fichier de sauvegarde lorsque le nouveau fichier est écrit. Les commentaires ne sont pas conservés lorsque le fichier est écrit.
| Numéro de paramètre | Valeur du paramètre | Commentaire |
| 5161 | 0.0 | G28 pom X |
| 5162 | 0.0 | G28 pom Y |
Dans le langage RS274/NGC, un centre d'usinage dispose d'un système de coordonnées machine (absolues) et de 9 systèmes de coordonnées programme (relatives).
Vous pouvez définir le décalage d'origine de neuf systèmes de coordonnées programme en utilisant G10 L2 Pn (n étant le numéro du système de coordonnées), avec des valeurs pour les axes en coordonnées absolues. Voir la section [.].
Vous pouvez choisir un des neuf systèmes en utilisant G54, G55, G56, G57, G58, G59, G59.1, G59.2, ou G59.3 (Voir la section [.]). Il n'est pas possible de choisir directement le système de coordonnées machine.
Vous pouvez décaler l'origine du système de coordonnées actuel en utilisant G92 ou G92.3. Ce décalage s'appliquera alors à l'ensemble des neuf systèmes de coordonnées programme. Ce décalage peut être annulé avec G92.1 ou G92.2. Voir la section [.].
Vous pouvez faire des mouvements dans le système de coordonnées machine absolues en utilisant G53 avec G0 ou G1. Voir la section [.].
Les données des systèmes de coordonnées sont enregistrées dans les paramètres.
Lors de l'initialisation, le système de coordonnées choisi est celui spécifié par le paramètre 5220. Une valeur de 1 signifie le premier système de coordonnées (celui qu'active G54), une valeur de 2 signifie le deuxième système de coordonnées (celui qu'active G55), et ainsi de suite. Il y a erreur si la valeur du paramètre 5220 n'est pas un nombre entier compris entre 1 et 9.
Le langage RS274/NGC est basé sur des lignes de code. Chaque ligne (également appelée un “block”) peut inclure des commandes pour faire produire diverses actions au centre d'usinage. Plusieurs lignes de code peuvent être regroupées dans un fichier pour créer un programme.
Une ligne de code typique commence par un numéro de ligne optionnel suivi par un ou plusieurs “mots”. Un mot commence par une lettre suivie d'un nombre (ou quelque chose qui permet d'évaluer un nombre). Un mot peut, soit donner une commande, soit fournir un argument à une commande. Par exemple, “G1 X3” est une ligne de code valide avec deux mots. “G1” est une commande qui signifie “déplaces toi en ligne droite à la vitesse programmée” et “X3” fournit la valeur d'argument (la valeur de X doit être 3 à la fin du mouvement). La plupart des commandes RS274/NGC commencent avec G ou M (G pour Général et M pour Miscellaneous (auxiliaire)). Les termes pour ces commandes sont “G codes” et “M codes.”
Le langage RS274/NGC n'a pas d'indicateur de début et de fin de programme. L'interpréteur cependant traite les fichiers. Un programme simple peut être en un seul fichier, mais il peut aussi être partagé sur plusieurs fichiers. Un fichier peut être délimité par le signe pourcent de la manière suivante. La première ligne non vide d'un fichier peut contenir un signe “%” seul, éventuellement encadré d'espaces blancs, ensuite, à la fin du fichier on doit trouver une ligne similaire. Délimiter un fichier avec des % est facultatif si le fichier comporte un M2 ou un M30, mais est requis sinon. Une erreur sera signalée si un fichier a une ligne pourcent au début, mais pas à la fin. Le contenu utile d'un fichier délimité par pourcent s'arrête après la seconde ligne pourcent. Tout le reste est ignoré.
Le langage RS274/NGC prévoit les deux commandes (M2 ou M30) pour finir un programme. Le programme peut se terminer avant la fin du fichier. Les lignes placées après la fin d'un programme ne seront pas exécutées. L'interpréteur ne les lit même pas.
Une ligne de code permise par la norme RS274/NGC est construite de la façon suivante, dans l'ordre avec la restriction à un maximum de 256 caractères sur la même ligne.
Toute entrée non explicitement permise est illégale, elle provoquera un message d'erreur de l'interpréteur.
Les espaces sont permis ainsi que les tabulations dans une ligne de code dont ils ne changent pas la signification, excepté dans les commentaires. Ceci peut donner d'étranges lignes, mais elles sont autorisées. La ligne “g0x +0. 12 34y 7” est équivalente à“g0 x+0.1234 y7”, par exemple.
Les lignes vides sont permises, elles seront ignorées.
La casse des caractères est ignorée, excepté dans les commentaires. Toutes les lettres en dehors des commentaires peuvent être, indifféremment des majuscules ou des minuscules sans changer la signification de la ligne.
Un numéro de ligne commence par la lettre N suivie d'un nombre entier non signé compris entre 0 et 99999 écrit avec moins de six caractères (par exemple: 000009 est interdit). Les numéros de ligne peuvent se suivre ou être dans le désordre, bien qu'une pratique normale évite ce genre d'usage. Les numéros de ligne peuvent être sautés, c'est une pratique normale. L'utilisation d'un numéro de ligne n'est pas obligatoire, mais si il est utilisé, il doit être à sa place.
Un mot est une lettre, autre que N, suivie d'un nombre réel.
Les mots peuvent commencer avec l'une ou l'autre des lettres indiquées dans le tableau [.]. Le tableau inclus N pour être complet, même si, comme défini précédemment, les numéros de lignes ne sont pas des mots. Plusieurs lettres (I, J, K, L, P, R) peuvent avoir différentes significations dans des contextes différents. Les lettres qui se réfèrent aux noms d'axes ne sont pas valides sur une machine n'ayant pas les axes correspondants.
| Lettre | Signification |
| A | Axe A de la machine |
| B | Axe B de la machine |
| C | Axe C de la machine |
| D | Valeur de la compensation de rayon d'outil |
| F | Vitesse d'avance travail |
| G | Fonction Générale (voir la table 5) |
| H | Index d'offset de longueur d'outil |
| I | Décalage en X pour les arcs et dans les cycles préprogrammés G87 |
| J | Décalage en Y pour les arcs et dans les cycles préprogrammés G87 |
| K | Décalage en Z pour les arcs et dans les cycles préprogrammés G87 |
| Distance de déplacement par tour de broche avec G33 | |
| M | Fonction auxiliaire (voir la table 7) |
| N | Numéro de ligne |
| P | Temporisation utilisée dans les cycles préprogrammés et avec G4. |
| Mot clé utilisé avec G10. | |
| Q | Incrément Delta en Z dans un cycle préprogrammé G83 |
| R | Rayon d'arc ou plan de retrait dans un cycle préprogrammé |
| S | Vitesse de rotation de la broche |
| T | Numéro d'outil |
| U | Axe U de la machine |
| V | Axe V de la machine |
| W | Axe W de la machine |
| X | Axe X de la machine |
| Y | Axe Y de la machine |
| Z | Axe Z de la machine |
Les règles suivantes sont employées pour des nombres (explicites). Dans ces règles un chiffre est un caractère simple entre 0 et 9.
Les zéros non significatifs, ne sont pas nécessaires.
Si un nombre utilisé dans le langage RS274/NGC est proche d'une valeur entière à moins de quatre décimales, il est considéré comme entier, par exemple 0.9999.
Un paramètre numéroté commence par le caractère # suivi par un entier compris entre 1 et 5399. Le paramètre est référencé par cet entier, sa valeur est la valeur stockée dans le paramètre.
Une valeur est stockée dans un paramètre avec l'opérateur = par exemple "#3 = 15" signifie que la valeur 15 est stockée dans le paramètre numéro 3.
Le caractère # a une précédence supérieure à celle des autres opérations, ainsi par exemple, “#1+2” signifie la valeur trouvée en ajoutant 2 à la valeur contenue dans le paramètre 1 et non la valeur trouvée dans le paramètre 3. Bien sûr, #[1+2] signifie la valeur trouvée dans le paramètre 3. Le caractère # peut être répété, par exemple ##2 signifie le paramètre dont le numéro est égal à la valeur entière trouvée dans le paramètre 2.
Les paramètres nommés fonctionnent comme les paramètres numérotés mais sont plus faciles à lire. Les paramètres nommés sont convertis en minuscules, les espaces et tabulations sont supprimés. Les paramètres nommés doivent être encadrés des signes < et >.
#<Un paramètre nommé> est un paramètre nommé local. Par défaut, un paramètre nommé est local à l'étendue dans laquelle il est assigné. L'accès à un paramètre local, en dehors de son sous-programme est impossible, de sorte que deux sous-programmes puissent utiliser le même nom de paramètre sans craindre qu'un des deux n'écrase la valeur de l'autre.
#<_un paramètre global> est un paramètre nommé global. Ils sont accessibles depuis des sous-programmes appelés et peuvent placer des valeurs dans tous les sous-programmes accessibles à l'appelant. En ce qui concerne la portée, ils agissent comme des paramètres numérotés. Ils ne sont pas enregistrés dans des fichiers.
Exemples:
#<_troisdents_dia> = 10.00
#<_troisdents_rayon> = [#<_troisdents_dia>/2.0]
o100 call [0.0] [0.0] [#<_interieur_decoupe>-#<_troisdents_dia>] [#<_Zprofondeur>] [#<_vitesse>]
Notes:
Les paramètres globaux _a, _b, _c, ... _z sont réservés pour une utilisation spéciale. Dans le futur, ils pourront fournir l'accès aux derniers Aword, Bword, Cword, ... Zword etc.
Une expression est un groupe de caractères commençant avec le crochet gauche [ et se terminant avec le crocher droit ]. Entre les crochets, on trouve des nombres, des valeurs de paramètre, des opérations mathématiques et d'autres expressions. Une expression est évaluée pour produire un nombre. Les expressions sur une ligne sont évaluées quand la ligne est lue et avant que quoi que ce soit ne soit éxécuté sur cette ligne. Un exemple d'expression: [1 + acos[0] - [#3 ** [4.0/2]]].
Les opérateurs binaires ne se rencontrent que dans les expressions. Il y a quatre opérateurs mathématiques de base: addition (+), soustraction (-), multiplication (*) et division (/). Il y a trois opérateurs logiques: ou (OR), ou exclusif (XOR) et logique (AND). Le huitième opérateur est le modulo (MOD). Le neuvième opérateur est l'élévation à la puissance (**) qui éléve le nombre situé à sa gauche à la puissance du nombre situé à sa droite. Les opérateurs de relation sont: égalité (EQ), non égalité (NE), strictement supérieur (GT), supérieur ou égal (GE), strictement inférieur (LT) et inférieur ou égal (LE).
Les opérations binaires sont divisées en plusieurs groupes selon leur précédence. (voir la table [.]) Si dans une opération se trouvent différents groupes de précédence (par exemple dans l'expression [2.0 / 3 * 1.5 - 5.5 / 11.0]), les opérations du groupe supérieur seront effectuées avant celles des groupes inférieurs. Si une expression contient plusieurs opérations du même groupe (comme les premiers / et * dans l'exemple), l'opération de gauche est effectuée en premier. Notre exemple est équivalent à: [[[2.0 / 3] * 1.5] - [5.5 / 11.0]] , qui est équivalent à [1.0 - 0.5] , le résultat est: 0.5 .
Les opérations logiques et le modulo sont exécutés sur des nombres réels et non pas seulement sur des entiers. Le zéro est équivalent à un état logique faux (FALSE), tout nombre différent de zéro est équivalent à un état logique vrai (TRUE).
| Opérateurs | Précédence |
| ** | haute |
| * / MOD | |
| + - | |
| EQ NE GT GE LT LE | |
| AND OR XOR | basse |
Une fonction commence par son nom, ex: “ATAN” suivi par une expression divisée par une autre expression (par exemple “ATAN[2]/[1+3]”) ou tout autre nom de fonction suivi par une expression (par exemple “SIN[90]”). Les fonctions disponibles sont visibles dans le tableau [.]. Les arguments pour les opérations unaires sur des angles (COS, SIN et TAN) sont en degrés. Les valeurs retournées par les opérations sur les angles (ACOS, ASIN et ATAN) sont également en degrés.
L'opérateur FIX arrondi vers la gauche (moins positif ou plus négatif), par exemple: FIX[2.8] =2 et FIX[-2.8] = -3 . L'opérateur FUP arrondi vers la droite (plus positif ou moins négatif), par exemple: FUP[2.8] = 3 et FUP[-2.8] = -2 .
| Nom de fonction | Fonction |
| ATAN[Y]/[X] | Tangente quatre quadrants |
| ATAN[arg] | Arc tangente |
| ABS[arg] | Valeur absolue |
| ACOS[arg] | Arc cosinus |
| ASIN[arg] | Arc sinus |
| ATAN[arg] | Arc tangente |
| COS[arg] | Cosinus |
| EXP[arg] | Exposant |
| FIX[arg] | Arrondi à l'entier immédiatement inférieur |
| FUP[arg] | Arrondi à l'entier immédiatement supérieur |
| ROUND[arg] | Arrondi à l'entier le plus proche |
| LN[arg] | Logarithme Néperien |
| SIN[arg] | Sinus |
| SQRT[arg] | Racine carrée |
| TAN[arg] | Tangente |
Un ensemble de caractères et espaces blancs entre parenthèses est un commentaire. Une parenthèse ouvrante débute toujours un commentaire. Le commentaire se termine à la première parenthèse fermante trouvée. Si une parenthèse ouvrante est trouvée sur une ligne, une parenthèse fermante doit être également rencontrée avant la fin de la ligne. Les commentaires ne peuvent pas être imbriqués, une erreur sera signalée si une parenthèse ouvrante est rencontrée après le début d'un commentaire et avant la fin d'un commentaire. Voici un exemple de ligne de commentaire: “G80 M5 (arret du mouvement)”. Les commentaires sont seulement informatifs, ils n'ont aucune influence sur la machine.
Un commentaire contient un message si `` MSG'' apparaît après la parenthèse ouvrante, et avant tout autre caractère. Les variantes de “MSG” qui incluent un espace blanc et des minuscules sont autorisées. Le reste du texte avant la parenthèse fermante est considéré comme le message. Les messages sont affichés sur la visu de l'interface utilisateur. Les commentaires ne contenant pas de message ne sont pas affichés.
Un commentaire peut aussi être utilisé pour spécifier le fichier de log des résultats des mesures faites avec G38.x . Voir la section [.].
Ouvre le fichier de log “filename”. Si le fichier existe déjà, il sera tronqué.
Si le fichier est ouvert, il sera fermé.
Le message “…” est étendu comme décrit plus loin, il est écrit dans le fichier de log si il est ouvert.
Les commentaires comme: (debug, reste du commentaire) sont traités de la même façon que ceux avec (msg, reste du commentaire) avec l'ajout de possibilités spéciales pour les paramètres.
Les commentaires comme: (print, reste du commentaire) vont directement sur la sortie stderr avec des possibilités spéciales pour les paramètres.
Dans les commentaires avec DEBUG, PRINT et LOG, les valeurs des paramètres dans le message sont étendues.
Par exemple: pour afficher une variable nommée globale sur la sortie stderr (la fenêtre de la console par défaut) ajouter une ligne au g-code comme:
(print,diamètre fraise 3 dents = #<_troisdents_dia>)
À l'intérieur de ces types de commentaires, les séquences comme #123 sont remplacées par la valeur du paramètre 123. Les séquences comme #<paramètre nommé> sont remplacées par la valeur du paramètre nommé. Rappelez vous que les espaces dans les noms des paramètres nommés sont supprimés, #<parametre nomme> est équivalent à #<parametrenomme>.
Une ligne peut contenir autant de mots G que voulu, mais seulement deux mots G du même groupe modal peuvent apparaître sur la même ligne. (voir la section [.])
Une ligne peut avoir de zéro à quatre mots M. Mais pas deux mots M du même groupe modal.
Pour toutes les autres lettres légales, un seul mot commençant par cette lettre peut se trouver sur la même ligne.
Si plusieurs valeurs de paramètre se répétent sur la même ligne, par exemple: “#3=15 #3=6”, seule la dernière valeur prendra effet. Il est absurde, mais pas illégal, de fixer le même paramètre deux fois sur la même ligne.
Si plus d'un commentaire apparaît sur la même ligne, seul le dernier sera utilisé, chacun des autres sera lu et son format vérifié, mais il sera ignoré. Placer plusieurs commentaires sur la même ligne est très rare.
Les trois types d'item dont la commande peut varier sur une ligne (comme indiqué au début de cette section) sont les mots, les paramètres et les commentaires. Imaginez que ces trois types d'éléments sont divisés en trois groupes selon leur type.
Dans le premier groupe les mots, peuvent être arrangés dans n'importe quel ordre sans changer la signification de la ligne.
Dans le second groupe les valeurs de paramètre, quelque soit leur arrangement, il n'y aura pas de changement dans la signification de la ligne sauf si le même paramètre est présent plusieurs fois. Dans ce cas, seule la valeur du dernier paramètre prendra effet. Par exemple, quand la ligne “#3=15 #3=6” aura été interprétée, la valeur du paramètre 3 vaudra 6. Si l'ordre est inversé, “#3=6 #3=15” après interprétation, la valeur du paramètre 3 vaudra 15.
Enfin dans le troisième groupe les commentaires, si plusieurs commentaires sont présents sur une ligne, seul le dernier commentaire sera utilisé.
Si chaque groupe est laissé, ou réordonné, dans l'ordre recommandé, la signification de la ligne ne changera pas, alors les trois groupes peuvent être entrecroisés n'importe comment sans changer la signification de la ligne. Par exemple, la ligne “g40 g1 #3=15 (foo) #4=-7.0” à cinq items est signifiera exactement la même chose dans les 120 ordres d'arrangement possibles des cinq items comme “#4=-7.0 g1 #3=15 g40 (foo)”.
En RS274/NGC, de nombreuses commandes produisent, d'un mode à un autre, quelque chose de différent au niveau de la machine, le mode reste actif jusqu'à ce qu'une autre commande ne le révoque, implicitement ou explicitement. Ces commandes sont appelées “modales”. Par exemple, si l'arrosage est mis en marche, il y reste jusqu'à ce qu'il soit explicitement arrêté. Les G-codes pour les mouvements sont également modaux. Si, par exemple, une commande G1 (déplacement linéaire) se trouve sur une ligne, elle peut être utilisée sur la ligne suivante avec seulement un mot d'axe, tant qu'une commande explicite est donnée sur la ligne suivante en utilisant des axes ou un arrêt de mouvement.
Les codes “non modaux” n'ont d'effet que sur la ligne ou ils se présentent. Par exemple, G4 (tempo) est non modale.
Les commandes modales sont arrangées par lots appelés “groupes modaux”, à tout moment, un seul membre d'un groupe modal peut être actif. En général, un groupe modal contient des commandes pour lesquelles il est logiquement impossible que deux membres soient actifs simultanément, comme les unités en pouces et les unités en millimètres. Un centre d'usinage peut être dans plusieurs modes simultanément, si seulement un mode pour chaque groupe est actif. Les groupes modaux sont visibles dans le tableau [.].
Pour plusieurs groupes modaux, quand la machine est prête à accepter des commandes, un membre du groupe doit être en vigueur. Il y a des paramètres par défaut pour ces groupes modaux. Lorsque la machine est mise en marche ou ré-initialisées, les valeurs par défaut sont automatiquement actives.
Groupe 1, le premier groupe du tableau, est un groupe de G-codes pour les mouvements. À tout moment, un seul d'entre eux est actif. Il est appelé le mode de mouvement courant.
C'est une erreur que de mettre un G-code du groupe 1 et un G-code du groupe 0 sur la même ligne si les deux utilisent les mêmes axes. Si un mot d'axe utilisant un G-code du groupe 1 est implicitement actif sur la ligne (en ayant été activé sur une ancienne ligne) et qu'un G-code du groupe 0 utilisant des mots d'axes apparaît sur la même ligne, l'activité du G-code du groupe 1 est révoquée pour le reste de la ligne. Les mots d'axes utilisant des G-codes du groupe 0 sont G10, G28, G30 et G92.
C'est une erreur d'inclure des mots sans rapport sur une ligne avec le contrôle de flux O.
Les G-codes du langage RS274/NGC sont décrits ci-dessous.
Dans une commande type, le tiret (-) signifie une valeur réelle. Comme décrite précédemment, une valeur réelle peut être (1) un nombre explicite, 4 par exemple, (2) une expression, [2+2] par exemple, (3) une valeur de paramètre, #88 par exemple, ou (4) une fonction unaire de la valeur acos [0], par exemple.
Dans la plupart des cas, si des mots d'axes sont donnés, parmi X, Y, Z, A, B, C, U, V, W, ils spécifient le point de destination. Les axes sont donnés dans le système de coordonnées courant, à moins qu'explicitement décrit comme étant dans le système de coordonnées absolues (machine). Où les axes sont optionnels, tout axe omis gardera sa valeur courante. Tout item dans une commande non explicitement décrit comme optionnel sera requis. Une erreur sera signalée si un item requis est omis.
Dans les commandes, les valeurs suivant les lettres sont souvent données comme des nombres explicites. Sauf indication contraire, les nombres explicites peuvent être des valeurs réelles. Par exemple, G10 L2 pourrait aussi bien être écrite G [2 * 5] L [1 +1]. Si la valeur du paramètre 100 étaient 2, G10 L#100 signifierait également la même chose. L'utilisation de valeurs réelles qui ne sont pas des nombres explicites, comme indiqué dans les exemples sont rarement utiles.
Si L- est écrit dans une commande le “-” fera référence à “L nombre”. De la même manière, le “-” dans H- peut être appelé le “H nombre” et ainsi de suite pour les autres lettres.
Pour un mouvement linéaire en vitesse rapide, programmer G0 axes, au moins un mot d'axe doit être présent, les autres sont optionnels. Le G0 est optionnel si le mode mouvement courant est déjà G0. Cela produira un mouvement linéaire vers le point de destination à la vitesse rapide courante (ou moins vite si la machine n'atteint pas cette vitesse). Il n'est pas prévu d'usiner la matière quand une commande G0 est exécutée.
C'est une erreur si:
Si la compensation de rayon d'outil est active, le mouvement sera différent de celui décrit ci-dessus, voir la section [.]. Si G53 est programmé sur la même ligne, le mouvement sera également différent, voir la section [.].
Si un mouvement G0 déplace seulement des axes rotatifs et que la position de la cible pour ces axes est dans une échelle de -360 à 360 degrés, le mouvement sera organisé pour que chaque axe rotatif fasse moins d'un tour complet. Exemple:
N1 G0 X1 A[20*360]
N2 G0 A0
Après la ligne N1, la position de l'axe A sera 7200 degrés. 7200 degrés est égal à zéro degré sur un axe rotatif, de sorte que le mouvement linéaire rapide spécifié en ligne N2 ne produira aucun mouvement.
Pour un mouvement linéaire en vitesse travail, programmer G1 axes, au moins un mot d'axe doit être présent, les autres sont optionnels. Le G1 est optionnel si le mode mouvement courant est déjà G1. Cela produira un mouvement linéaire vers le point de destination à la vitesse de travail courante (ou moins vite si la machine n'atteint pas cette vitesse).
C'est une erreur si:
Si la compensation de rayon d'outil est active, le mouvement sera différent de celui décrit ci-dessus, voir la section [.]. Si G53 est programmé sur la même ligne, le mouvement sera également différent, voir la section [.].
Un mouvement circulaire ou hélicoïdal est spécifié en sens horaire avec G2 ou en sens anti-horaire avec G3. Les axes du cercle ou de l'hélicoïde, doivent être parallèles aux axes X, Y, ou Z du système de coordonnées machine. Les axes (ou, leurs équivalents, les plans perpendiculaires aux axes) sont sélectionnés avec G17 (axe Z, plan XY), G18 (axe Y, plan XZ), ou G19 (axe X, plan YZ). Si l'arc est circulaire, il se trouve dans un plan parallèle au plan sélectionné.
Si une ligne de code RS274/NGC forme un arc et inclu le mouvement d'un axe rotatif, l'axe rotatif tournera à vitesse constante, de sorte que le mouvement de l'axe rotatif commence et se termine en même temps que les autres axes XYZ. De telles lignes ne sont pratiquement jamais programmées.
Si la compensation de rayon d'outil est active, le mouvement sera différent de celui décrit ci-dessus, voir la section [.].
Deux formats sont autorisés pour spécifier un arc: le format centre et le format rayon.
Dans le format centre, les coordonnées du point final de l'arc, dans le plan choisi, sont spécifiées par décalage du centre de l'arc depuis le point courant. Dans ce format, il est permis d'avoir le point final de l'arc identique au point courant. C'est une erreur si:
Lorsque le plan XY est sélectionné, programmer G2 Axe I- J- (ou utiliser G3 au lieu de G2). Les mots d'axes sont tous facultatifs sauf au moins un entre X et Y qui doit être utilisé. I et J sont les décalages du centre de l'arc, par rapport au point actuel (dans le sens X et Y, respectivement). I et J sont facultatifs, sauf qu'au moins un des deux doit être utilisé. C'est une erreur si:
Lorsque le plan XZ est sélectionné, programmer G2 axes I- K- (ou utiliser G3 au lieu de G2). Les mots d'axes sont tous facultatifs sauf au moins un entre X et Z qui doit être utilisé. I et K sont les décalages du centre de l'arc, par rapport au point actuel (dans le sens X et Z , respectivement). I et K sont facultatifs, sauf qu'au moins un des deux doit être utilisé. C'est une erreur si:
Lorsque le plan YZ est sélectionné, programmer G2 axes J- K- (ou utiliser G3 au lieu de G2). Les mots d'axes sont tous facultatifs sauf au moins un entre Y et Z qui doit être utilisé. J et K sont les décalages du centre de l'arc, par rapport au point actuel (dans le sens Y et Z , respectivement). J et K sont facultatifs, sauf qu'au moins un des deux doit être utilisé. C'est une erreur si:
Voici un exemple de commande pour usiner un arc au format centre: G17 G2 x10 y16 i3 j4 z9.
Cela signifie faire un mouvement en arc ou hélicoïdal en sens horaire (vu du côté positif de l'axe Z), se terminant en X=10, Y=16 et Z=9, avec son centre décalé du point actuel de 3 unités en X et de 4 unités en Y. Si la position courante est X=7, Y=7 au final, le centre sera en X=10, Y=11. Si la position de départ de l'axe Z est 9, ce sera un arc circulaire, autrement ce sera un arc hélicoïdal. Le rayon de l'arc sera de 5.
Dans le format centre, le rayon de l'arc n'est pas spécifié, mais il peut facilement être trouvé comme étant la distance entre le centre de l'arc et soit, son point d'arrivée soit, le point courant.
Dans le format rayon, les coordonnées du point final de l'arc, dans le plan choisi, sont spécifiées en même temps que le rayon de l'arc. Programmer G2 axes R- (ou utiliser G3 au lieu de G2). R est le rayon. Les mots d'axes sont facultatifs sauf au moins un des deux du plan choisi, qui doit être utilisé. Un rayon positif indique que l'arc fait moins de 180 degrés, alors qu'un rayon négatif indique un arc supérieur à 180 degrés. Si l'arc est hélicoïdal, la valeur du point d'arrivée de l'arc dans les coordonnées de l'axe perpendiculaire au plan choisi sera également spécifiée.
C'est une erreur si:
Ce n'est pas une bonne pratique de programmer au format rayon, des arcs qui sont presque des cercles entiers ou des demi-cercles, car un changement minime dans l'emplacement du point d'arrivée va produire un changement beaucoup plus grand dans l'emplacement du centre du cercle (et donc, du milieu de l'arc). L'effet de grossissement est tellement important, qu'une erreur d'arrondi peut facilement produire un usinage hors tolérance. Par exemple, 1% de déplacement de l'extrémité d'un arc de 180 degrés produit 7% de déplacement du point situé à 90 degrés le long de l'arc. Les cercles presque complets sont encore pires. Autrement l'usinage d'arcs dans une gamme de petits à 165 degrés ou de 195 à 345 degrés sera bon.
Voici un exemple de commande pour usiner un arc au format rayon: G17 G2 x 10 y 15 r 20 z 5.
Cela signifie faire un mouvement en arc ou hélicoïdal en sens horaire (vu du côté positif de l'axe Z), se terminant en X=10, Y=15 et Z=5, avec un rayon de 20. Si la valeur de départ de Z est 5, Ce sera un arc de cercle parallèle au plan XY sinon, ce sera un arc hélicoïdal.
Pour un mouvement avec broche synchronisée dans une direction, programmer G33 X- Y- Z- K- où K donne la longueur du mouvement en XYZ pour chaque tour de broche. Par exemple, il commence à Z=0, G33 Z-1 K.0625 produira un mouvement d'un pouce de long en Z, et en même temps 16 tours de broche. Cette commande pourrait être la base d'un programme pour faire un filetage de 16 filets par pouce. Un autre exemple en métrique, G33 Z-15 K1.5 produira un mouvement de 15mm de long pendant que la broche fera 10 tours soit un pas de 1.5mm.
Pour un taraudage rigide avec broche synchronisée et mouvement de retour, programmer G33.1 X- Y- Z- K- où K- donne la longueur du mouvement pour chaque tour de broche. Un mouvement de taraudage rigide suit cette séquence:
Tous les mouvements avec broche synchronisée ont besoin d'un index de broche, pour conserver la trajectoire prévue. Un mouvement avec G33 se termine au point final programmé, un mouvement avec G33.1 se termine aux coordonnées initiales.
Les mots d'axes sont facultatifs, sauf au moins un qui doit être utilisé.
C'est une erreur si:
Pour une tempo, programmer G4 P- . Les axes s'immobiliseront pour une durée de P secondes. C'est une erreur si:
Le langage RS274/NGC utilise les systèmes de coordonnées décrits à la section[.].
Pour définir les coordonnées de l'origine d'un système de coordonnées pièce, programmer G10 L2 P- axes, où l'entier P, compris entre 1 et 9 (correspondance de G54 à G59.3) et tous les mots d'axes, sont optionnels. Les coordonnées de l'origine du système de coordonnées, spécifié par le nombre P, sont remplacées par les coordonnées des valeurs indiquées (en termes de coordonnées absolues). Seules, les coordonnées pour lesquelles un mot d'axe est inclu sur la ligne, seront remplacées.
C'est une erreur si:
Si des décalages d'origine (créés avec G92 ou G92.3) sont actifs avant l'utilisation de G10, ils restent actifs après.
Le système de coordonnées dont l'origine est définie par la commande G10 peut être actif ou non au moment de l'exécution de G10.
Exemple: G10 L2 P1 x 3.5 y 17.2 place l'origine du premier système de coordonnées (celui selectionné par G54) au point où X vaut 3.5 et Y vaut 17.2 (en coordonnées absolues). La coordonnée Z de l'origine, ainsi que les coordonnées de tous les axes rotatifs, restent celles qu'elles étaient avant l'exécution de la ligne.
Programmer G17 pour choisir le plan de travail XY, G18 pour choisir le plan de travail XZ, ou G19 pour choisir le plan de travail YZ. Les effets provoqués par un changement de plan de travail sont expliqués dans les sections [.] et [.]
Programmer G20 pour utiliser le pouce comme unité de longueur. Programmer G21 pour utiliser le millimètre.
C'est toujours une bonne pratique de programmer soit G20, soit G21, au début d'un programme, avant tout mouvement et de ne plus en changer ailleurs dans le programme. C'est la responsabilité de l'opérateur d'être sûr que toutes les longueurs sont appropriées pour l'utilisation des unités actuelles.
Deux positions sont définies, une par les paramètres 5161-5166 pour G28 et une par les paramètres 5181-5186 pour G30. Les valeurs de ces paramètres sont en coordonnées absolues et en coordonnées machine.
Les commandes G28 et G30 n'utilisent pas de contact d'origine machine pour trouver la position prédéfinie, elles se bornent à effectuer un mouvement en vitesse rapide à la position définie dans les paramètres, ce qui suppose que la prise d'origine machine a déjà été réalisée.
Pour le retour d'un ou plusieurs axes sur une position prédéfinie par le biais de la position programmée, programmer G28 axes (ou utiliser G30). La trajectoire est faite par un mouvement rapide depuis la position courante jusqu'à la position programmée, suivi d'un mouvement rapide des axes nommés à la position prédéfinie.
Pour le retour de tous les axes à la position prédéfinie sans la position intermédiaire, programmer G28 ou G30 sans mot d'axe.
C'est une erreur si:
Programmer G38.2 axes, pour effectuer une mesure à la sonde. Au moins un mot d'axe est obligatoire, les autres sont optionnels. L'outil dans la broche doit être une sonde.
C'est une erreur si:
En réponse à cette commande, la machine déplace le point contrôlé (qui est la pointe de la sonde), en ligne droite, à la vitesse actuelle, vers le point programmé, en mode vitesse inverse du temps; la vitesse est telle, que le mouvement depuis le point courant jusqu'au point programmé, prendra le temps spécifié. Le mouvement s'arrête lorsque le point programmé est atteint, ou quand l'entrée de la sonde bascule dans l'état attendu4.
Pour désactiver la compensation de rayon d'outil, programmer G40. Ce n'est pas une erreur de désactiver la compensation quand elle est déjà inactive.
La compensation de rayon d'outil ne peut être activée que si le plan de travail courant est le plan XY.
Le comportement du centre d'usinage quand la compensation de rayon d'outil est active est décrit dans la section [.]
Pour activer la compensation de rayon d'outil à gauche du profil, c'est à dire, la fraise reste à gauche de la trajectoire programmée quand le rayon d'outil est positif, programmer G41 D- . Pour activer la compensation de rayon d'outil à droite du profil, c'est à dire, la fraise reste à droite de la trajectoire programmée quand le rayon d'outil est positif, programmer G42 D- . Le mot D est optionnel, si il n'y a pas de mot D, le rayon de l'outil monté actuellement dans la broche est utilisé. Si D est utilisé, sa valeur devrait être le numéro de l'outil monté dans la broche, cependant, ce n'est pas obligatoire. Ce n'est pas une erreur d'avoir D à zéro, le rayon utilisé sera de zéro.
C'est une erreur si:
Pour activer la compensation dynamique de rayon d'outil à gauche du profil, programmer G41.1 D- L-. Pour activer la compensation dynamique de rayon d'outil à droite du profil, programmer G42.1 D- L-. Le mot D spécifie le diamètre de l'outil. Le mot L spécifie l'orientation des arêtes de l'outil, et par défaut 0 si non spécifié.
C'est une erreur si:
G43 et G43.1 modifient les mouvements ultérieurs en décalant, de la longueur de l'outil, les coordonnées de Z et/ou de X. G43 et G43.1 ne provoquent aucun mouvement. L'effet de la compensation ne se produira qu'au prochain mouvement de l'axe compensé.
Pour utiliser la compensation de longueur d'outil depuis une table d'outils, programmer G43 H- , où la valeur de H est l'index souhaîté dans la table d'outils. La valeur de H n'est pas obligatoirement la même que celle du numéro d'outil monté dans la broche. Ce n'est pas une erreur d'avoir la valeur de H à zéro, une compensation de zéro sera utilisée.
C'est une erreur si:
Pour utiliser la compensation dynamique de longueur d'outil depuis un programme, utiliser G43.1 I- K-, où I- donne la compensation de longueur d'outil en X (pour les tours) et K- donne la compensation de longueur en Z (pour les tours et les fraiseuses).
C'est une erreur si:
Pour annuler la compensation de longueur d'outil, programmer G49.
Ce n'est pas une erreur de programmer une compensation qui est déjà utilisée. Ce n'est pas non plus une erreur d'annuler la compensation de longueur d'outil alors qu'aucune n'est couramment utilisée.
Pour un déplacement à un point exprimé en coordonnées absolues, programmer G1 G53 X- Y- Z- A- B- C- (ou utiliser G0 à la place de G1), au moins un mot d'axe est obligatoire, les autres sont optionnels. Le G0 ou le G1 est optionnel si il est déjà le mode de mouvement courant. G53 n'est pas modal, il doit être programmé sur chaque ligne où il doit être actif. Il produit un mouvement linéaire coordonné au point programmé. Si G1 est actif, la vitesse travail courante est utilisée si la machine est assez rapide. Si G0 est actif, la vitesse rapide courante sera utilisée si la machine est assez rapide.
C'est une erreur si:
Voir la section [.] pour une vue complète des systèmes de coordonnées.
Le code G54 est apparié avec le système de coordonnées pièce N°1, pour le choisir programmer G54 et ainsi de suite pour les autres systèmes. Les systèmes de coordonnées appariés à un G-code sont les suivants: (1 avec G54), (2 avec G55), (3 avec G56), (4 avec G57), (5 avec G58), (6 avec G59), (7 avec G59.1), (8 avec G59.2) et (9 avec G59.3).
C'est une erreur si:
Voir la section [.] pour une vue complète des systèmes de coordonnées.
Programmer G61 pour passer la machine en mode de trajectoire exacte, G61.1 pour la passer en mode arrêt exact, ou G64 P- pour le mode trajectoire continue avec tolérance optionnelle. Ce n'est pas une erreur de programmer un mode déjà actif. Voir la section [.] pour une discussion de ces modes.
Programmer G80 pour s'assurer qu'aucun mouvement d'axe ne surviendra sans G-code modal. C'est une erreur si:
Programmer G76 P- Z- I- J- R- K- Q- H- E- L- pour produire un cycle de filetage multi-passes. C'est une erreur si:
La ligne pilote (drive line) est une ligne imaginaire, parallèle à l'axe de la broche, située en sécurité à l'extérieur du matériau à fileter. La ligne pilote va du point initial en Z jusqu'à la fin du filetage donnée par la valeur de Z- dans la commande.
Le pas du filet, ou la longueur du déplacement par tour est donné par la valeur de P-.
La crête du filet est donnée par la valeur de I- , c'est une cote entre la ligne pilote et la surface de la pièce. Une valeur négative de I-, indique un filetage externe et une valeur positive, indique un filetage interne. C'est généralement à ce diamètre nominal que le matériau est cylindré avant de commencer le cycle G76.
La profondeur de la passe initiale est donnée par la valeur de J-. La première passe sera à J- au delà de la crête du filet. J- est positif, même quand I- est négatif.
La profondeur du filet est donnée par la valeur de K-. La dernière passe du filetage sera à K- au delà de la crête du filet. K- est positif, même quand I- est négatif.
La dégressivité de la profondeur de passe est donnée par la valeur de R-. R1.0 sélectionne une profondeur de passe constante pour les passes successives du filetage. R2.0 sélectionne une surface constante. Les valeurs comprises entre 1.0 et 2.0 sélectionnent une profondeur décroîssante mais une surface croîssante. Enfin, les valeurs supérieures à 2.0 sélectionnent une surface décroîssante. Attention: les valeurs inutilement hautes de dégression, demanderont un nombre inutilement important de passes.
L'angle de pénétration oblique est donné par la valeur de Q- c'est l'angle (en degrés) décrivant de combien les passes successives doivent être décalées le long de l'axe. C'est utilisé pour faire enlever plus de matériau d'un côté de l'outil que de l'autre. Une valeur positive de Q fait couper d'avantage le bord principal de l'outil. Typiquement, les valeurs sont 29, 29.5 ou 30 degrés.
Le nombre de passes de finition est donné par la valeur de H-. Les passes de finition sont des passes additionnelles en fond de filet. Pour ne pas faire de passe de finition, programmer H0.
Les entrées et sorties de filetage peuvent être programmées côniques avec les valeurs de E- et L-. E- donne la longueur de la partie c