|
|||||||||
| Language |
|---|
| Site Search |
|---|
| Polls |
|---|
Table des matières
- 1. Vue d'ensemble d'un centre d'usinage
- 1.1. Composants mécaniques
- 1.1.1. Axes
- 1.1.2. Broche
- 1.1.3. Arrosages
- 1.1.4. Chargeur de pièces
- 1.1.5. Carrousel d'outils
- 1.1.6. Changeur d'outil
- 1.1.7. Visu des messages
- 1.1.8. Correcteurs de vitesse d'avance et de broche
- 1.1.9. Bouton d'effacement de block
- 1.1.10. Bouton d'arrêt optionnel du programme
- 1.2. Composants de contrôle et de données
- 1.2.1. Axes linéaires
- 1.2.2. Axes rotatifs
- 1.2.3. Point contrôlé
- 1.2.4. Mouvement linéaire coordonné
- 1.2.5. Vitesse
- 1.2.6. Arrosage
- 1.2.7. Temporisation
- 1.2.8. Unités
- 1.2.9. Position courante
- 1.2.10. Choix du plan de travail
- 1.2.11. carrousel d'outils
- 1.2.12. Changeur d'outil
- 1.2.13. Chargeur de pièce
- 1.2.14. Boutons des correcteurs de vitesses
- 1.2.15. Modes de contrôle de trajectoire
- 1.3. Interaction de l'interpréteur avec les boutons
- 1.3.1. Boutons de correction de vitesses
- 1.3.2. Bouton d'effacement de block
- 1.3.3. Bouton d'arrêt optionnel du programme
- 1.4. Fichier d'outils
- 1.4.1. Fichier d'outils au format fraiseuse
- 1.4.2. Fichier d'outils au format tour
- 1.5. Paramètres
- 1.6. Systèmes de coordonnées
- 2. Vue d'ensemble du langage
- 2.1. Format d'une ligne
- 2.2. Numéro de ligne
- 2.3. Les mots
- 2.3.1. Nombres
- 2.3.2. Paramètres numérotés
- 2.3.3. Paramètres nommés
- 2.3.4. Expressions
- 2.3.5. Opérateurs binaires
- 2.3.6. Fonctions
- 2.4. Commentaires
- 2.4.1. Messages
- 2.4.2. Log des mesures
- 2.4.3. Log général
- 2.4.4. Messsages de déboguage
- 2.4.5. Paramètres dans les commentaires
- 2.5. Répétitions d'items
- 2.6. Ordre des items
- 2.7. Commandes et modes machine
- 2.8. Groupes modaux
- 3. G Codes
- 3.1. G0: Interpolation linéaire en vitesse rapide
- 3.2. G1: Interpolation linéaire en vitesse travail
- 3.3. G2, G3: Interpolation circulaire en vitesse travail
- 3.3.1. Arc au format centre (format recommandé)
- 3.3.2. Arcs au format rayon (format non recommandé)
- 3.4. G33, G33.1: Mouvement avec broche synchronisée
- 3.5. G4: Tempo
- 3.6. G10: Établissement du système de coordonnées pièce
- 3.7. G17, G18, G19: Choix du plan de travail
- 3.8. G20, G21: Choix des unités machine
- 3.9. G28, G30: Retour à une position absolue prédéfinie
- 3.10. G38.2: Sonde de mesure
- 3.11. G40, G41, G42, G41.1, G42.1: Compensation de rayon d'outil
- 3.11.1. Compensation de rayon d'outil depuis une table d'outils
- 3.11.2. Compensation dynamique de rayon d'outil
- 3.12. G43, G43.1, G49: Compensation de longueur d'outil
- 3.12.1. G43, G43.1: Activation de la compensation de longueur d'outil
- 3.12.2. G49: Annulation de la compensation de longueur d'outil
- 3.13. G53: Mouvement en coordonnées absolues
- 3.14. G54 à G59.3: Choix du système de coordonnées
- 3.15. G61, G61.1, G64: Types de contrôle de trajectoire
- 3.16. G80: Révocation des codes modaux
- 3.17. G76: Cycle de filetage préprogrammé
- 3.18. G81 à G89: Cycles préprogrammés
- 3.18.1. Mouvement préliminaire et Intermédiaire
- 3.18.2. G81: Cycle de perçage
- 3.18.3. G82: Cycle de perçage avec temporisation
- 3.18.4. G83: Cycle de perçage avec débourrage
- 3.18.5. G84: Cycle de taraudage à droite
- 3.18.6. G85: Cycle d'alésage, sans temporisation, retrait en vitesse travail
- 3.18.7. G86: Cycle d'alésage, arrêt de broche, retrait en vitesse rapide
- 3.18.8. G87: Back Boring
- 3.18.9. G88: Alésage, arrêt de broche, retrait en manuel
- 3.18.10. G89: Cycle d'alésage, temporisation, retrait en vitesse travail
- 3.18.11. G90, G91: Modes de déplacement
- 3.19. G92, G92.1, G92.2, G92.3: Décalage d'origine du système de coordonnées
- 3.20. G93, G94, G95: Choix des modes de vitesse
- 3.21. G96, G97: Modes de contrôle de la broche
- 3.22. G98, G99: Options du plan de retrait
- 4. M Codes
- 4.1. M0, M1, M2, M30, M60: Arrêts de programme
- 4.2. M3, M4, M5: Contrôle de broche
- 4.3. M6: Appel d'outil
- 4.4. M7, M8, M9: Contrôle d'arrosage
- 4.5. M48, M49: Contrôle des correcteurs de vitesse
- 4.6. M50: Contrôle du correcteur de vitesse travail
- 4.7. M51: Contrôle du correcteur de vitesse broche
- 4.8. M52: Contrôle de vitesse adaptative
- 4.9. M53: Contrôle de coupure de vitesse
- 4.10. M62 à M65: Contrôle de sortie digitale
- 4.11. M66: Contrôle d'entrée digitale
- 4.12. M100 à M199: Commandes définies par l'utilisateur
- 5. O Codes
- 5.1. Sous-programmes: “sub”, “endsub”, “return”, “call”
- 5.2. Boucles: “do”, “while”, “endwhile”, “break”, “continue”
- 5.3. Conditionnel: “if”, “else”, “endif”
- 5.4. Indirection
- 5.5. Calcul des valeurs dans les mots O
- 6. Autres Codes
- 6.1. F: Réglage de la vitesse travail
- 6.2. S: Réglage de la vitesse de rotation de la broche
- 6.3. T: Choix de l'outil
- 7. Ordre d'exécution
- 8. G-Code: Bonnes pratiques
- 8.1. Utiliser un nombre de décimales approprié
- 8.2. Utiliser les espaces de façon cohérente
- 8.3. Préférer le “format centre” pour les arcs
- 8.4. Placer les codes modaux importants au début des programmes
- 8.5. Ne pas mettre trop de choses sur une ligne
- 8.6. Ne pas utiliser les numéros de ligne
- 8.7. Lorsque plusieurs systèmes de coordonnées sont déplacés, envisager le mode vitesse inverse du temps
- 9. Fichier d'outils et compensations
- 9.1. Fichier d'outils
- 9.2. Compensation d'outil
- 9.3. Compensation de longueur d'outil
- 9.4. Compensation de rayon d'outil
- 9.4.1. Compensation de rayon d'outil, détails
- 9.4.2. Premier mouvement
- 9.4.3. Exemples de Jon Elson
- 9.5. Source d'informations à propos de la compensation d'outil
- 10. Différences entre le g-code d'EMC2 et le RS274NGC
- 10.1. Différences changeant la signification d'un programme correctement écrit en RS274NGC
- 10.1.1. Position après un changement d'outil
- 10.1.2. Les décalages sont dans les unités du fichier ini
- 10.1.3. Les longueurs/diamètres de la table d'outils sont dans les unités du fichier ini
- 10.1.4. G84, G87 non implémentés
- 10.1.5. G28, G30 avec des mots d'axes
- 10.1.6. M62, M63 non implémentés
- 10.1.7. G0 réduit les longs mouvements angulaires pour les rendre inférieurs à un tour
- 10.2. Différences ne changeant pas la signification des programmes bien écrits en RS274NGC
- 10.2.1. G33, G76 codes de taraudage
- 10.2.2. G38.2
- 10.2.3. G38.3…G38.5
- 10.2.4. O-codes
- 10.2.5. M50…M53 survitesses
- 10.2.6. G43, G43.1
- 10.2.7. G41.1, G42.1
- 10.2.8. G43 sans mot H
- 10.2.9. Axes U, V et W
Liste des figures
Liste des tableaux
- Exemple de fichier d'outils (format fraiseuse)
- Exemple de fichier d'outils (format tour)
- Paramètres utilisés par l'interpréteur RS274NGC
- Format d'un fichier de paramètres
- Les mots et leur signification
- Précédence des opérateurs
- Fonctions
- Groupes modaux
1 Vue d'ensemble d'un centre d'usinage
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.
1.1 Composants mécaniques
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.
1.1.1 Axes
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
1.1.1.1 Axes linéaires primaires
Les axes X, Y et Z produisent des mouvements linéaires dans trois directions, mutuellement orthogonales.
1.1.1.2 Axes linéaires secondaires
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.
1.1.1.3 Axes rotatifs
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.
1.1.2 Broche
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.
1.1.3 Arrosages
Un centre d'usinage peut être équipé d'un composant fournissant l'arrosage fuide ou en brouillard.
1.1.4 Chargeur de pièces
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.
1.1.5 Carrousel d'outils
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.
1.1.6 Changeur d'outil
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.
1.1.7 Visu des messages
Un centre d'usinage est équipé d'une visualisation capable d'afficher les messages pour l'opérateur.
1.1.8 Correcteurs de vitesse d'avance et de broche
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 [.].
1.1.9 Bouton d'effacement de block
Un centre d'usinage peut être équipé d'un bouton d'effacement de block. Voir la section [.].
1.1.10 Bouton d'arrêt optionnel du programme
Un centre d'usinage peut être équipé d'un bouton d'arrêt du programme. Voir la section [.].
1.2 Composants de contrôle et de données
1.2.1 Axes linéaires
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.
1.2.2 Axes rotatifs
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
1.2.3 Point contrôlé
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.
1.2.4 Mouvement linéaire coordonné
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.
1.2.5 Vitesse
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:
- Si le déplacement concerne un des axes XYZ, F est en unités machine par minute dans le système Cartésien XYZ et les mouvements des autres axes (UVWABC) sont également dans un même mode de coordonnées.
- Autrement, si le déplacement concerne un des axes UVW, F est en unités machine par minute dans le système Cartésien UVW, tous les autres axes (ABC) se déplacent dans un même mode de coordonnées.
- Autrement, le mouvement est purement rotatif et le mot F est en unités de rotation dans le système pseudo-Cartésien ABC.
1.2.6 Arrosage
Arrosage fluide ou brouillard (gouttelettes) peuvent être activés séparément. Le langage RS274/NGC les arrête ensemble (voir la section [.]).
1.2.7 Temporisation
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.
1.2.8 Unités
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 [.].
1.2.9 Position courante
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:
- Les unités de longueur ont changé.
- La compensation de longueur d'outil a changé.
- Le décalage d'origine a changé.
1.2.10 Choix du plan de travail
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.
1.2.11 carrousel d'outils
Aucun ou un outil est assigné à chaque emplacement dans le carrousel.
1.2.12 Changeur d'outil
Un centre d'usinage peut commander un changeur d'outils.
1.2.13 Chargeur de pièce
Les deux porte-pièces peuvent être intervertis par commande.
1.2.14 Boutons des correcteurs de vitesses
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.
1.2.15 Modes de contrôle de trajectoire
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 [.].
1.3 Interaction de l'interpréteur avec les boutons
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.
1.3.1 Boutons de correction de vitesses
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.
1.3.2 Bouton d'effacement de block
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.
1.3.3 Bouton d'arrêt optionnel du programme
Si ce bouton est actif et qu'un code M1 est rencontré, le programme est mis en pause.
1.4 Fichier d'outils
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.
1.4.1 Fichier d'outils au format fraiseuse
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.
1.4.2 Fichier d'outils au format tour
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.
1.5 Paramètres
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 |
1.6 Systèmes de coordonnées
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.
2 Vue d'ensemble du langage
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.
2.1 Format d'une ligne
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.
- Un block optionnel contenant le caractère d'effacement de ligne, barre de fraction “/”.
- Un numéro de ligne optionnel.
- N'importe quel nombre de mots, valeurs de paramètres et commentaires.
- Un caractère de fin de ligne (retour chariot ou saut de ligne ou les deux).
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.
2.2 Numéro de 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.
2.3 Les mots
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 |
2.3.1 Nombres
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.
- Un nombre commence par: (1) un signe plus ou un signe moins optionnel, suivi par (2) de zéro à plusieurs chiffres, peut être suivis par, (3) un point décimal, suivi par (4) de zéro à plusieurs chiffres, il doit au moins y avoir un chiffre.
- Il existe deux types de nombres: les entiers et les décimaux. Un entier n'a pas de point décimal; un décimal en a un.
- Les nombres peuvent avoir n'importe quel nombre de chiffres, sous réserve de la limitation de longueur d'une ligne. Seulement environ dix-sept chiffres significatifs seront retenus, c'est toutefois suffisant pour toutes les applications connues.
- Un nombre non nul sans autre signe que le premier caractère est considéré positif.
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.
2.3.2 Paramètres numérotés
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.
2.3.3 Paramètres nommés
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:
- Déclaration d'une variable nommée globale
#<_troisdents_dia> = 10.00
- Référence à la variable globale précédemment déclarée
#<_troisdents_rayon> = [#<_troisdents_dia>/2.0]
- Mélange de paramètres nommés et de valeurs littérales
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.
2.3.4 Expressions
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]]].
2.3.5 Opérateurs binaires
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 |
2.3.6 Fonctions
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 |
2.4 Commentaires
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.
2.4.1 Messages
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.
2.4.2 Log des mesures
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 [.].
2.4.3 Log général
2.4.3.1 (LOGOPEN,filename)
Ouvre le fichier de log “filename”. Si le fichier existe déjà, il sera tronqué.
2.4.3.2 (LOGCLOSE)
Si le fichier est ouvert, il sera fermé.
2.4.3.3 (LOG,…)
Le message “…” est étendu comme décrit plus loin, il est écrit dans le fichier de log si il est ouvert.
2.4.4 Messsages de déboguage
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.
2.4.5 Paramètres dans les commentaires
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>.
2.5 Répétitions d'items
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.
2.6 Ordre des items
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)”.
2.7 Commandes et modes machine
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.
2.8 Groupes modaux
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.
3 G Codes
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.
3.1 G0: Interpolation linéaire en vitesse rapide
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:
- tous les axes sont omis.
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.
3.2 G1: Interpolation linéaire en vitesse travail
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:
- tous les axes sont omis.
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 [.].
3.3 G2, G3: Interpolation circulaire en vitesse travail
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.
3.3.1 Arc au format centre (format recommandé)
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 l'arc est projeté sur le plan choisi, la distance entre le point courant et le centre diffèrent de la distance entre le point d'arrivée et le centre de plus de 0,0002 pouce (si les pouces sont utilisés), soit 0,002 millimètre (si les millimètres sont utilisés).
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:
- X et Y sont tous les deux omis.
- I et J sont tous les deux omis .
Lorsque le plan XZ est sélectionné, programmer G2 axes I- K- (ou utiliser G3 au lieu de G2

