#LyX 1.3 created this file. For more info see http://www.lyx.org/ \lyxformat 221 \textclass book \begin_preamble \usepackage[plainpages=false,pdfpagelabels,colorlinks=true,linkcolor=blue]{hyperref} \title{The EMC2 RS274NGC Interpreter} \end_preamble \language frenchb \inputencoding default \fontscheme bookman \graphics default \float_placement !h \paperfontsize 10 \spacing single \papersize Custom \paperpackage a4 \use_geometry 1 \use_amsmath 0 \use_natbib 0 \use_numerical_citations 0 \paperorientation portrait \paperwidth 8.5in \paperheight 11in \leftmargin 1.2in \topmargin 1in \rightmargin 0.6in \bottommargin 0.6in \secnumdepth 5 \tocdepth 5 \paragraph_separation skip \defskip smallskip \quotes_language english \quotes_times 2 \papercolumns 1 \papersides 2 \paperpagestyle default \layout Chapter Vue d'ensemble d'un centre d'usinage \layout Standard 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. \layout Standard Le langage RS274/NGC \begin_inset LatexCommand \index{RS274NGC} \end_inset et les fonctions d'usinage standards qui en découlent permettent d'envisager un centre d'usinage sous deux points de vue: \layout Standard (1) les composants mécaniques de la machine. \layout Standard (2) les composants de contrôle et les données utilisées pour le contrôle de la machine. \layout Section Composants mécaniques \layout Standard 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. \layout Subsection Axes \begin_inset LatexCommand \index{axes} \end_inset \layout Standard 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. \begin_inset Foot collapsed false \layout Standard Si le mouvement des composants mécaniques n'est pas indépendant, comme sur une machine hexapode, le langage RS274/NGC et les fonctions standards seront quand même utilisables, tant que le contrôle de bas niveau sait comment contrôler les mécanismes actuels pour produire le mouvement relatif de l'outil et de la pièce qui auraient été produits par des axes indépendants. C'est appelé, la cinématique. \end_inset \begin_inset Foot collapsed false \layout Standard Avec EMC, le cas de la machine à portique XYYZ avec deux moteurs pour un axe est mieux traité par la cinématique que par un axe linéaire supplémentaire. \end_inset \layout Subsubsection Axes linéaires primaires \begin_inset LatexCommand \index{axes linéaires primaires} \end_inset \layout Standard Les axes X, Y et Z produisent des mouvements linéaires dans trois directions, mutuellement orthogonales. \layout Subsubsection Axes linéaires secondaires \begin_inset LatexCommand \index{axes linéaires secondaires} \end_inset \layout Standard 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. \layout Subsubsection Axes rotatifs \begin_inset LatexCommand \index{Axes rotatifs} \end_inset \layout Standard 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. \layout Subsection Broche \begin_inset LatexCommand \index{broche} \end_inset \layout Standard 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. \layout Subsection Arrosages \begin_inset LatexCommand \index{arrosage} \end_inset \layout Standard Un centre d'usinage peut être équipé d'un composant fournissant l'arrosage fuide ou en brouillard. \layout Subsection Chargeur de pièces \begin_inset LatexCommand \index{chargement} \end_inset \layout Standard 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. \layout Subsection Carrousel d'outils \begin_inset LatexCommand \index{carrousel d'outils} \end_inset \layout Standard 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. \layout Subsection Changeur d'outil \begin_inset LatexCommand \index{changeur d'outil} \end_inset \layout Standard 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. \layout Subsection Visu des messages \layout Standard Un centre d'usinage est équipé d'une visualisation capable d'afficher les messages pour l'opérateur. \layout Subsection Correcteurs de vitesse \begin_inset LatexCommand \index{correcteurs vitesse} \end_inset d'avance et de broche \begin_inset LatexCommand \index{correcteur v. broche} \end_inset \begin_inset LatexCommand \label{sub:-Feed-and-Speed} \end_inset \layout Standard 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 \begin_inset LatexCommand \ref{sub:-Interaction-vitesses} \end_inset . \layout Subsection Bouton d'effacement de block \begin_inset LatexCommand \index{Bouton effacement de block} \end_inset \begin_inset LatexCommand \label{sub:-Bouton-effacement-de-block} \end_inset \layout Standard Un centre d'usinage peut être équipé d'un bouton d'effacement de block. Voir la section \begin_inset LatexCommand \ref{sub:-Interaction-effacement-de-block} \end_inset . \layout Subsection Bouton d'arrêt optionnel du programme \begin_inset LatexCommand \index{arrêt optionnel} \end_inset \begin_inset LatexCommand \label{sub:-arrêt-optionnel} \end_inset \layout Standard Un centre d'usinage peut être équipé d'un bouton d'arrêt du programme. Voir la section \begin_inset LatexCommand \ref{sub:-Interaction-arrêts-optionnels} \end_inset . \layout Section Composants de contrôle et de données \layout Subsection Axes linéaires \layout Standard 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. \layout Standard 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. \layout Subsection Axes rotatifs \layout Standard 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. \begin_inset Foot collapsed false \layout Standard Si les parallèlismes sont particuliers, le constructeur du système devra indiquer à quels sens de rotation correspondent horaire et anti-horaire. \end_inset \layout Subsection Point contrôlé \begin_inset LatexCommand \label{sub:-Point-contrôlé} \end_inset \begin_inset LatexCommand \index{point contrôlé} \end_inset \layout Standard 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. \layout Subsection Mouvement linéaire coordonné \begin_inset LatexCommand \label{sub:-Mouvement-linéaire-coordonné} \end_inset \layout Standard 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 \begin_inset Quotes eld \end_inset mouvement linéaire coordonné \begin_inset Quotes erd \end_inset 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 \begin_inset Quotes eld \end_inset linéaire \begin_inset Quotes erd \end_inset 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é. \layout Standard 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. \layout Subsection Vitesse \begin_inset LatexCommand \index{vitesse d'avance} \end_inset \begin_inset LatexCommand \label{sub:-Vitesse-d'avance} \end_inset \layout Standard 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 \begin_inset LatexCommand \ref{sub:G93,-G94:-Set} \end_inset ) , dans l'interpréteur, l'interprétation des vitesses est la suivante: \layout Enumerate 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. \layout Enumerate 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. \layout Enumerate Autrement, le mouvement est purement rotatif et le mot F est en unités de rotation dans le système pseudo-Cartésien ABC. \layout Subsection Arrosage \begin_inset LatexCommand \index{arrosage} \end_inset \layout Standard Arrosage fluide ou brouillard (gouttelettes) peuvent être activés séparément. Le langage RS274/NGC les arrête ensemble (voir la section \begin_inset LatexCommand \ref{sub:M7,-M8,-M9:} \end_inset ). \layout Subsection Temporisation \begin_inset LatexCommand \index{tempo} \end_inset \layout Standard 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 \begin_inset LatexCommand \ref{sub:Modes-de-contrôle-trajectoires} \end_inset ) la machine s'arrêtera exactement à la fin du dernier mouvement avant la temporisation. \layout Subsection Unités \begin_inset LatexCommand \index{unités} \end_inset \layout Standard 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 \begin_inset LatexCommand \ref{sub:-Vitesse-d'avance} \end_inset . \layout Subsection Position courante \layout Standard 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: \layout Enumerate Les unités de longueur ont changé. \layout Enumerate La compensation de longueur d'outil a changé. \layout Enumerate Le décalage d'origine a changé. \layout Subsection Choix du plan de travail \begin_inset LatexCommand \label{sub:-Choix-du-plan-de-travail} \end_inset \layout Standard 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. \layout Subsection carrousel d'outils \layout Standard Aucun ou un outil est assigné à chaque emplacement dans le carrousel. \layout Subsection Changeur d'outil \layout Standard Un centre d'usinage peut commander un changeur d'outils. \layout Subsection Chargeur de pièce \layout Standard Les deux porte-pièces peuvent être intervertis par commande. \layout Subsection Boutons des correcteurs de vitesses \layout Standard 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 \begin_inset LatexCommand \ref{sub:M48,-M49:-Correcteurs} \end_inset ). Voir la section \begin_inset LatexCommand \ref{sub:-Interaction-vitesses} \end_inset pour d'autres détails. \layout Subsection Modes de contrôle de trajectoire \begin_inset LatexCommand \label{sub:Modes-de-contrôle-trajectoires} \end_inset \layout Standard La machine peut être placée dans un de ces trois modes de contrôle de trajectoir e: (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 \begin_inset LatexCommand \ref{sub:G61,-G61.1,-G64:-Types-contrôle-trajectoire} \end_inset . \layout Section Interaction de l'interpréteur avec les boutons \layout Standard 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. \layout Subsection Boutons de correction de vitesses \begin_inset LatexCommand \label{sub:-Interaction-vitesses} \end_inset \layout Standard 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. \layout Standard EMC2 réagit aux réglages de ces boutons seulement quand ils sont autorisés. \layout Subsection Bouton d'effacement de block Switch \begin_inset LatexCommand \label{sub:-Interaction-effacement-de-block} \end_inset \begin_inset LatexCommand \index{effacement de block} \end_inset \layout Standard Si le bouton \begin_inset Quotes eld \end_inset Effacement de block \begin_inset Quotes erd \end_inset 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. \layout Subsection \family typewriter Bouton d'arrêt optionnel du programme \begin_inset LatexCommand \label{sub:-Interaction-arrêts-optionnels} \end_inset \begin_inset LatexCommand \index{Arrêts optionnels} \end_inset \layout Standard Si ce bouton est actif et qu'un code M1 est rencontré, le programme est mis en pause. \layout Section Fichier d'outils \begin_inset LatexCommand \label{sub:-Fichier-d'outils} \end_inset \layout Standard 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. \layout Standard 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 \begin_inset LatexCommand \ref{cap:Fichier-d'outils-fraiseuse} \end_inset , décrit les colonnes de données, il est donc proposé (mais pas obligatoire) que cette ligne soit toujours présente. \layout Standard Chaque ligne de données du fichier contient les données d'un outil. La ligne peut contenir 4 ou 5 éléments ( \begin_inset Quotes eld \end_inset format fraiseuse \begin_inset Quotes erd \end_inset ) ou 8 ou 9 éléments ( \begin_inset Quotes eld \end_inset format tour \begin_inset Quotes erd \end_inset ). \layout Standard Les unités utilisées pour la longueur et le diamètre sont en unités machine. \layout Standard 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'emplacemen t 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. \layout Standard Dans emc2, l'emplacement du fichier d'outil est spécifié dans le fichier ini. Voir la section \begin_inset LatexCommand \ref{sub:Section-[EMCIO]} \end_inset pour d'autres détails. \layout Standard Un fichier d'outils peut être un mélange de lignes au \begin_inset Quotes eld \end_inset format fraiseuse \begin_inset Quotes erd \end_inset et au \begin_inset Quotes eld \end_inset format tour \begin_inset Quotes erd \end_inset , bien que généralement les lignes du style \begin_inset Quotes eld \end_inset format tour \begin_inset Quotes erd \end_inset soient seulement requises pour les outils de tour. \layout Subsection Fichier d'outils au format fraiseuse \layout Standard Le \begin_inset Quotes eld \end_inset format fraiseuse \begin_inset Quotes erd \end_inset d'un fichier d'outils est visible dans le tableau \begin_inset LatexCommand \ref{cap:Fichier-d'outils-fraiseuse} \end_inset . \layout Standard \begin_inset Float table wide false collapsed false \layout Caption Exemple de fichier d'outils (format fraiseuse) \begin_inset LatexCommand \label{cap:Fichier-d'outils-fraiseuse} \end_inset \layout Standard \begin_inset Tabular \begin_inset Text \layout Standard Slot \end_inset \begin_inset Text \layout Standard FMS \end_inset \begin_inset Text \layout Standard TLO \end_inset \begin_inset Text \layout Standard Diamètre \end_inset \begin_inset Text \layout Standard Commentaire \end_inset \begin_inset Text \layout Standard \end_inset \begin_inset Text \layout Standard \end_inset \begin_inset Text \layout Standard \end_inset \begin_inset Text \layout Standard \end_inset \begin_inset Text \layout Standard \end_inset \begin_inset Text \layout Standard 1 \end_inset \begin_inset Text \layout Standard 1 \end_inset \begin_inset Text \layout Standard 2.0 \end_inset \begin_inset Text \layout Standard 1.0 \end_inset \begin_inset Text \layout Standard \end_inset \begin_inset Text \layout Standard 2 \end_inset \begin_inset Text \layout Standard 2 \end_inset \begin_inset Text \layout Standard 1.0 \end_inset \begin_inset Text \layout Standard 0.2 \end_inset \begin_inset Text \layout Standard \end_inset \begin_inset Text \layout Standard 5 \end_inset \begin_inset Text \layout Standard 5 \end_inset \begin_inset Text \layout Standard 1.5 \end_inset \begin_inset Text \layout Standard 0.25 \end_inset \begin_inset Text \layout Standard coupe en bout \end_inset \begin_inset Text \layout Standard 10 \end_inset \begin_inset Text \layout Standard 10 \end_inset \begin_inset Text \layout Standard 2.4 \end_inset \begin_inset Text \layout Standard -0.3 \end_inset \begin_inset Text \layout Standard à tester \end_inset \end_inset \end_inset \layout Standard 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: \layout Standard La colonne \begin_inset Quotes eld \end_inset Slot \begin_inset Quotes erd \end_inset 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. \layout Standard La colonne \begin_inset Quotes eld \end_inset FMS \begin_inset Quotes erd \end_inset 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. \layout Standard La colonne \begin_inset Quotes eld \end_inset TLO \begin_inset Quotes erd \end_inset 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é. \layout Standard La colonne \begin_inset Quotes eld \end_inset Diamètre \begin_inset Quotes erd \end_inset 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. \layout Standard La colonne \begin_inset Quotes eld \end_inset Commentaire \begin_inset Quotes erd \end_inset 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. \layout Subsection Fichier d'outils au format tour \layout Standard Le \begin_inset Quotes eld \end_inset format tour \begin_inset Quotes erd \end_inset d'un fichier d'outil est visible dans le tableau \begin_inset LatexCommand \ref{cap:Fichier-d'outils-tour} \end_inset . \layout Standard \begin_inset Float table wide false collapsed false \layout Caption Exemple de fichier d'outils (format tour) \begin_inset LatexCommand \label{cap:Fichier-d'outils-tour} \end_inset \layout Standard \begin_inset Tabular \begin_inset Text \layout Standard Slot \end_inset \begin_inset Text \layout Standard FMS \end_inset \begin_inset Text \layout Standard ZOFFSET \end_inset \begin_inset Text \layout Standard XOFFSET \end_inset \begin_inset Text \layout Standard DIA \end_inset \begin_inset Text \layout Standard FRONTANGLE \end_inset \begin_inset Text \layout Standard BACKANGLE \end_inset \begin_inset Text \layout Standard ORIENTATION \end_inset \begin_inset Text \layout Standard Commentaire \end_inset \begin_inset Text \layout Standard \end_inset \begin_inset Text \layout Standard \end_inset \begin_inset Text \layout Standard \end_inset \begin_inset Text \layout Standard \end_inset \begin_inset Text \layout Standard \end_inset \begin_inset Text \layout Standard \end_inset \begin_inset Text \layout Standard \end_inset \begin_inset Text \layout Standard \end_inset \begin_inset Text \layout Standard \end_inset \begin_inset Text \layout Standard 1 \end_inset \begin_inset Text \layout Standard 1 \end_inset \begin_inset Text \layout Standard 0.0 \end_inset \begin_inset Text \layout Standard 0.0 \end_inset \begin_inset Text \layout Standard 0.1 \end_inset \begin_inset Text \layout Standard 95.0 \end_inset \begin_inset Text \layout Standard 155.0 \end_inset \begin_inset Text \layout Standard 1 \end_inset \begin_inset Text \layout Standard \end_inset \begin_inset Text \layout Standard 2 \end_inset \begin_inset Text \layout Standard 2 \end_inset \begin_inset Text \layout Standard 0.5 \end_inset \begin_inset Text \layout Standard 0.5 \end_inset \begin_inset Text \layout Standard 0.1 \end_inset \begin_inset Text \layout Standard 120 \end_inset \begin_inset Text \layout Standard 60 \end_inset \begin_inset Text \layout Standard 6 \end_inset \begin_inset Text \layout Standard \end_inset \end_inset \end_inset \layout Standard 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. \layout Standard La colonne XOFFSET fournit l'offset pour la coordonnée X quand la compensation de longueur d'outil est active. \layout Standard La colonne ORIENTATION donne l'orientation de l'outil de tour, comme illustré sur \begin_inset LatexCommand \ref{cap:Orientations-des-outils-de-tour} \end_inset . La croix rouge correspond au point contrôlé. Voir \begin_inset LatexCommand \ref{sub:-Point-contrôlé} \end_inset . \layout Standard Les colonnes FRONTANGLE et BACKANGLE sont utilisées par certaines interfaces utilisateur pour afficher une représentation de l'outil de tour. \layout Standard \begin_inset Float figure placement H wide false collapsed false \layout Caption Orientations des outils de tour \begin_inset LatexCommand \label{cap:Orientations-des-outils-de-tour} \end_inset \layout Standard \begin_inset Graphics filename cutting_orientation2.png scale 60 BoundingBox 20bp 20bp 738bp 594bp \end_inset \end_inset \layout Section Paramètres \begin_inset LatexCommand \index{paramètres} \end_inset \begin_inset LatexCommand \label{sub:-Paramètres} \end_inset \layout Standard 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. \layout Standard \begin_inset Float table wide false collapsed false \layout Caption Paramètres utilisés par l'interpréteur RS274NGC \begin_inset LatexCommand \label{cap:Paramètres-interpréteur} \end_inset \layout Standard \begin_inset Tabular \begin_inset Text \layout Standard Numéros de paramètre \end_inset \begin_inset Text \layout Standard Signification \end_inset \begin_inset Text \layout Standard 5061-5070 \end_inset \begin_inset Text \layout Standard Résultats des mesures \begin_inset Quotes eld \end_inset G38.2 \begin_inset Quotes erd \end_inset \end_inset \begin_inset Text \layout Standard 5161-5169 \end_inset \begin_inset Text \layout Standard \begin_inset Quotes eld \end_inset G28 \begin_inset Quotes erd \end_inset Origines machine \end_inset \begin_inset Text \layout Standard 5181-5189 \end_inset \begin_inset Text \layout Standard \begin_inset Quotes eld \end_inset G30 \begin_inset Quotes erd \end_inset Origines pièce \end_inset \begin_inset Text \layout Standard 5211-5219 \end_inset \begin_inset Text \layout Standard \begin_inset Quotes eld \end_inset G92 \begin_inset Quotes erd \end_inset Décalages d'origines \end_inset \begin_inset Text \layout Standard 5220 \end_inset \begin_inset Text \layout Standard Numéro du système de coordonnées \end_inset \begin_inset Text \layout Standard 5221-5229 \end_inset \begin_inset Text \layout Standard Système de coordonnées 1 \end_inset \begin_inset Text \layout Standard 5241-5249 \end_inset \begin_inset Text \layout Standard Système de coordonnées 2 \end_inset \begin_inset Text \layout Standard 5261-5269 \end_inset \begin_inset Text \layout Standard Système de coordonnées 3 \end_inset \begin_inset Text \layout Standard 5281-5289 \end_inset \begin_inset Text \layout Standard Système de coordonnées 4 \end_inset \begin_inset Text \layout Standard 5301-5309 \end_inset \begin_inset Text \layout Standard Système de coordonnées 5 \end_inset \begin_inset Text \layout Standard 5321-5329 \end_inset \begin_inset Text \layout Standard Système de coordonnées 6 \end_inset \begin_inset Text \layout Standard 5341-5349 \end_inset \begin_inset Text \layout Standard Système de coordonnées 7 \end_inset \begin_inset Text \layout Standard 5361-5369 \end_inset \begin_inset Text \layout Standard Système de coordonnées 8 \end_inset \begin_inset Text \layout Standard 5381-5389 \end_inset \begin_inset Text \layout Standard Système de coordonnées 9 \end_inset \begin_inset Text \layout Standard 5399 \end_inset \begin_inset Text \layout Standard Résultat de M66 - Surveillance d'entrée \end_inset \end_inset \end_inset \layout Standard Le format d'un fichier de paramètres est visible dans la table \begin_inset LatexCommand \ref{cap:Format-fichier-de-paramètres} \end_inset . 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 \begin_inset LatexCommand \ref{cap:Format-fichier-de-paramètres} \end_inset , décrit les colonnes de données, il est donc proposé (mais pas obligatoire) que cette ligne soit toujours présente. \layout Standard L'interpréteur lit seulement les deux premières colonnes du tableau. Il ignore la troisième colonne, Commentaire. \layout Standard 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 \begin_inset LatexCommand \ref{cap:Format-fichier-de-paramètres} \end_inset 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. \layout Standard \begin_inset Float table wide false collapsed false \layout Caption Format d'un fichier de paramètres \begin_inset LatexCommand \label{cap:Format-fichier-de-paramètres} \end_inset \layout Standard \begin_inset Tabular \begin_inset Text \layout Standard Numéro de paramètre \end_inset \begin_inset Text \layout Standard Valeur du paramètre \end_inset \begin_inset Text \layout Standard Commentaire \end_inset \begin_inset Text \layout Standard 5161 \end_inset \begin_inset Text \layout Standard 0.0 \end_inset \begin_inset Text \layout Standard G28 pom X \end_inset \begin_inset Text \layout Standard 5162 \end_inset \begin_inset Text \layout Standard 0.0 \end_inset \begin_inset Text \layout Standard G28 pom Y \end_inset \end_inset \end_inset \layout Section Systèmes de coordonnées \begin_inset LatexCommand \index{systèmes de coordonnées} \end_inset \begin_inset LatexCommand \label{sub:-Systèmes-de-coordonnées} \end_inset \layout Standard 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). \layout Standard 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 \begin_inset LatexCommand \ref{sub:G10:-Coordonnées-pièce} \end_inset . \layout Standard Vous pouvez choisir un des neuf systèmes en utilisant \family typewriter G54 \family default , \family typewriter G55 \family default , \family typewriter G56 \family default , \family typewriter G57 \family default , \family typewriter G58 \family default , \family typewriter G59 \family default , \family typewriter G59.1 \family default , \family typewriter G59.2 \family default , ou \family typewriter G59.3 \family default (Voir la section \begin_inset LatexCommand \ref{sub:G54-à-G59.3:} \end_inset ). Il n'est pas possible de choisir directement le système de coordonnées machine. \layout Standard Vous pouvez décaler l'origine du système de coordonnées actuel en utilisant \family typewriter G92 \family default ou \family typewriter G92.3 \family default . Ce décalage s'appliquera alors à l'ensemble des neuf systèmes de coordonnées programme. Ce décalage peut être annulé avec \family typewriter G92.1 \family default ou \family typewriter G92.2 \family default . Voir la section \begin_inset LatexCommand \ref{sub:G92,-G92.1,-G92.2,} \end_inset . \layout Standard Vous pouvez faire des mouvements dans le système de coordonnées machine absolues en utilisant \family typewriter G53 \family default avec \family typewriter G0 \family default ou \family typewriter G1 \family default . Voir la section \begin_inset LatexCommand \ref{sub:G53:-Move-in} \end_inset . \layout Standard Les données des systèmes de coordonnées sont enregistrées dans les paramètres. \layout Standard 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. \layout Chapter Vue d'ensemble du langage \begin_inset LatexCommand \label{cha:Vue-d'ensemble-du-langage} \end_inset \layout Standard Le langage RS274/NGC est basé sur des lignes de code. Chaque ligne (également appelée un \begin_inset Quotes eld \end_inset block \begin_inset Quotes erd \end_inset ) 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. \layout Standard Une ligne de code typique commence par un numéro de ligne optionnel suivi par un ou plusieurs \begin_inset Quotes eld \end_inset mots \begin_inset Quotes erd \end_inset . 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, \begin_inset Quotes eld \end_inset \family typewriter G1 X3 \family default \begin_inset Quotes erd \end_inset est une ligne de code valide avec deux mots. \begin_inset Quotes eld \end_inset \family typewriter G1 \family default \begin_inset Quotes erd \end_inset est une commande qui signifie \begin_inset Quotes eld \end_inset déplaces toi en ligne droite à la vitesse programmée \begin_inset Quotes erd \end_inset et \begin_inset Quotes eld \end_inset \family typewriter X3 \family default \begin_inset Quotes erd \end_inset 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 \begin_inset Quotes eld \end_inset G codes \begin_inset Quotes erd \end_inset et \begin_inset Quotes eld \end_inset M codes. \begin_inset Quotes erd \end_inset \layout Standard Le langage RS274/NGC \begin_inset LatexCommand \index{RS274NGC} \end_inset 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 \begin_inset Quotes eld \end_inset % \begin_inset Quotes erd \end_inset 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 \family typewriter M2 \family default ou un \family typewriter M30 \family default , 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é. \layout Standard Le langage RS274/NGC prévoit les deux commandes ( \family typewriter M2 \family default ou \family typewriter M30 \family default ) 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. \layout Section Format d'une ligne \layout Standard 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. \layout Enumerate Un block optionnel contenant le caractère d'effacement de ligne, barre de fraction \begin_inset Quotes eld \end_inset / \begin_inset Quotes erd \end_inset . \layout Enumerate Un numéro de ligne optionnel. \layout Enumerate N'importe quel nombre de mots, valeurs de paramètres et commentaires. \layout Enumerate Un caractère de fin de ligne (retour chariot ou saut de ligne ou les deux). \layout Standard Toute entrée non explicitement permise est illégale, elle provoquera un message d'erreur de l'interpréteur. \layout Standard 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 \begin_inset Quotes eld \end_inset \family typewriter g0x +0. 12 34y 7 \family default \begin_inset Quotes erd \end_inset est équivalente à \begin_inset Quotes eld \end_inset \family typewriter g0 x+0.1234 y7 \family default \begin_inset Quotes erd \end_inset , par exemple. \layout Standard Les lignes vides sont permises, elles seront ignorées. \layout Standard 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. \layout Section Numéro de ligne \layout Standard 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. \layout Section Les mots \layout Standard Un mot est une lettre, autre que N, suivie d'un nombre réel. \layout Standard Les mots peuvent commencer avec l'une ou l'autre des lettres indiquées dans le tableau \begin_inset LatexCommand \ref{cap:Les-mots-et-leur-significations} \end_inset . 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. \layout Standard \begin_inset Float table wide false collapsed false \layout Caption Les mots et leur signification \begin_inset LatexCommand \label{cap:Les-mots-et-leur-significations} \end_inset \layout Standard \begin_inset Tabular \begin_inset Text \layout Standard Lettre \end_inset \begin_inset Text \layout Standard Signification \end_inset \begin_inset Text \layout Standard A \end_inset \begin_inset Text \layout Standard Axe A de la machine \end_inset \begin_inset Text \layout Standard B \end_inset \begin_inset Text \layout Standard Axe B de la machine \end_inset \begin_inset Text \layout Standard C \end_inset \begin_inset Text \layout Standard Axe C de la machine \end_inset \begin_inset Text \layout Standard D \end_inset \begin_inset Text \layout Standard Valeur de la compensation de rayon d'outil \end_inset \begin_inset Text \layout Standard F \end_inset \begin_inset Text \layout Standard Vitesse d'avance travail \end_inset \begin_inset Text \layout Standard G \end_inset \begin_inset Text \layout Standard Fonction Générale (voir la table 5) \end_inset \begin_inset Text \layout Standard H \end_inset \begin_inset Text \layout Standard Index d'offset de longueur d'outil \end_inset \begin_inset Text \layout Standard I \end_inset \begin_inset Text \layout Standard Décalage en X pour les arcs et dans les cycles préprogrammés G87 \end_inset \begin_inset Text \layout Standard J \end_inset \begin_inset Text \layout Standard Décalage en Y pour les arcs et dans les cycles préprogrammés G87 \end_inset \begin_inset Text \layout Standard K \end_inset \begin_inset Text \layout Standard Décalage en Z pour les arcs et dans les cycles préprogrammés G87 \end_inset \begin_inset Text \layout Standard \end_inset \begin_inset Text \layout Standard Distance de déplacement par tour de broche avec G33 \end_inset \begin_inset Text \layout Standard M \end_inset \begin_inset Text \layout Standard Fonction auxiliaire (voir la table 7) \end_inset \begin_inset Text \layout Standard N \end_inset \begin_inset Text \layout Standard Numéro de ligne \end_inset \begin_inset Text \layout Standard P \end_inset \begin_inset Text \layout Standard Temporisation utilisée dans les cycles préprogrammés et avec G4. \end_inset \begin_inset Text \layout Standard \end_inset \begin_inset Text \layout Standard Mot clé utilisé avec G10. \end_inset \begin_inset Text \layout Standard Q \end_inset \begin_inset Text \layout Standard Incrément Delta en Z dans un cycle préprogrammé G73, G83 \end_inset \begin_inset Text \layout Standard R \end_inset \begin_inset Text \layout Standard Rayon d'arc ou plan de retrait dans un cycle préprogrammé \end_inset \begin_inset Text \layout Standard S \end_inset \begin_inset Text \layout Standard Vitesse de rotation de la broche \end_inset \begin_inset Text \layout Standard T \end_inset \begin_inset Text \layout Standard Numéro d'outil \end_inset \begin_inset Text \layout Standard U \end_inset \begin_inset Text \layout Standard Axe U de la machine \end_inset \begin_inset Text \layout Standard V \end_inset \begin_inset Text \layout Standard Axe V de la machine \end_inset \begin_inset Text \layout Standard W \end_inset \begin_inset Text \layout Standard Axe W de la machine \end_inset \begin_inset Text \layout Standard X \end_inset \begin_inset Text \layout Standard Axe X de la machine \end_inset \begin_inset Text \layout Standard Y \end_inset \begin_inset Text \layout Standard Axe Y de la machine \end_inset \begin_inset Text \layout Standard Z \end_inset \begin_inset Text \layout Standard Axe Z de la machine \end_inset \end_inset \end_inset \layout Subsection Nombres \begin_inset LatexCommand \label{sub:-Nombres} \end_inset \layout Standard 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. \layout Itemize 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. \layout Itemize 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. \layout Itemize 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. \layout Itemize Un nombre non nul sans autre signe que le premier caractère est considéré positif. \layout Standard Les zéros non significatifs, ne sont pas nécessaires. \layout Standard 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. \layout Subsection Paramètres numérotés \begin_inset LatexCommand \label{sub:-Paramètres-numérotés} \end_inset \layout Standard Un paramètre numéroté commence par le caractère \family typewriter # \family default 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. \layout Standard Une valeur est stockée dans un paramètre avec l'opérateur = par exemple " \family typewriter #3 = 15 \family default " signifie que la valeur 15 est stockée dans le paramètre numéro 3. \layout Standard Le caractère \family typewriter # \family default a une précédence supérieure à celle des autres opérations, ainsi par exemple, \begin_inset Quotes eld \end_inset \family typewriter #1+2 \family default \begin_inset Quotes erd \end_inset 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, \family typewriter #[1+2] \family default signifie la valeur trouvée dans le paramètre 3. Le caractère \family typewriter # \family default peut être répété, par exemple \family typewriter ##2 \family default signifie le paramètre dont le numéro est égal à la valeur entière trouvée dans le paramètre 2. \layout Subsection Paramètres nommés \begin_inset LatexCommand \label{sub:-Paramètres-nommés} \end_inset \layout Standard 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 \family typewriter < et > \family default . \layout Standard \family typewriter # \family default 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. \layout Standard \family typewriter #<_un paramètre global> \family default 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. \layout Standard Exemples: \layout Itemize Déclaration d'une variable nommée globale \layout Standard \family typewriter #<_troisdents_dia> = 10.00 \family default \layout Itemize Référence à la variable globale précédemment déclarée \layout Standard \family typewriter #<_troisdents_rayon> = [#<_troisdents_dia>/2.0] \family default \layout Itemize Mélange de paramètres nommés et de valeurs littérales \layout Standard \family typewriter o100 call [0.0] [0.0] [#<_interieur_decoupe>-#<_troisdents_dia>] [#<_Zprofondeur>] [#<_vitesse>] \layout Standard Notes: \layout Standard 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. \layout Subsection Expressions \begin_inset LatexCommand \label{sub:-Expressions} \end_inset \layout Standard Une expression est un groupe de caractères commençant avec le crochet gauche \family typewriter [ \family default et se terminant avec le crocher droit \family typewriter ] \family default . 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: \family typewriter [1 + acos[0] - [#3 ** [4.0/2]]] \family default . \layout Subsection Opérateurs binaires \begin_inset LatexCommand \label{sub:-Opérateurs-binaires} \end_inset \layout Standard Les opérateurs binaires ne se rencontrent que dans les expressions. Il y a quatre opérateurs mathématiques de base: addition ( \family typewriter + \family default ), soustraction ( \family typewriter - \family default ), multiplication ( \family typewriter * \family default ) et division ( \family typewriter / \family default ). Il y a trois opérateurs logiques: ou ( \family typewriter OR \family default ), ou exclusif ( \family typewriter XOR \family default ) et logique ( \family typewriter AND \family default ). Le huitième opérateur est le modulo ( \family typewriter MOD \family default ). Le neuvième opérateur est l'élévation à la puissance ( \family typewriter ** \family default ) qui éléve le nombre situé à sa gauche à la puissance du nombre situé à sa droite. Les opérateurs de relation sont: égalité ( \family typewriter EQ \family default ), non égalité ( \family typewriter NE \family default ), strictement supérieur ( \family typewriter GT \family default ), supérieur ou égal ( \family typewriter GE \family default ), strictement inférieur ( \family typewriter LT \family default ) et inférieur ou égal ( \family typewriter LE \family default ). \layout Standard Les opérations binaires sont divisées en plusieurs groupes selon leur précédence. (voir la table \begin_inset LatexCommand \ref{cap:Précédence-des-opérateurs} \end_inset ) Si dans une opération se trouvent différents groupes de précédence (par exemple dans l'expression \family typewriter [2.0 / 3 * 1.5 - 5.5 / 11.0] \family default ), 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 \family typewriter / \family default et \family typewriter * \family default dans l'exemple), l'opération de gauche est effectuée en premier. Notre exemple est équivalent à: \family typewriter [[[2.0 / 3] * 1.5] - [5.5 / 11.0]] \family default , qui est équivalent à \family typewriter [1.0 - 0.5] \family default , le résultat est: \family typewriter 0.5 \family default . \layout Standard 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). \layout Standard \begin_inset Float table wide false collapsed false \layout Caption Précédence des opérateurs \begin_inset LatexCommand \label{cap:Précédence-des-opérateurs} \end_inset \begin_inset LatexCommand \index{Précédence des opérateurs} \end_inset \layout Standard \align center \begin_inset Tabular \begin_inset Text \layout Standard Opérateurs \end_inset \begin_inset Text \layout Standard Précédence \end_inset \begin_inset Text \layout Standard ** \end_inset \begin_inset Text \layout Standard \emph on haute \end_inset \begin_inset Text \layout Standard * / MOD \end_inset \begin_inset Text \layout Standard \end_inset \begin_inset Text \layout Standard + - \end_inset \begin_inset Text \layout Standard \end_inset \begin_inset Text \layout Standard EQ NE GT GE LT LE \end_inset \begin_inset Text \layout Standard \end_inset \begin_inset Text \layout Standard AND OR XOR \end_inset \begin_inset Text \layout Standard \emph on basse \end_inset \end_inset \end_inset \layout Subsection Fonctions \begin_inset LatexCommand \label{sub:-Opérations-unaires} \end_inset \layout Standard Une fonction commence par son nom, ex: \begin_inset Quotes eld \end_inset \family typewriter ATAN \family default \begin_inset Quotes erd \end_inset suivi par une expression divisée par une autre expression (par exemple \begin_inset Quotes eld \end_inset \family typewriter ATAN[2]/[1+3] \family default \begin_inset Quotes erd \end_inset ) ou tout autre nom de fonction suivi par une expression (par exemple \begin_inset Quotes eld \end_inset \family typewriter SIN[90] \family default \begin_inset Quotes erd \end_inset ). Les fonctions disponibles sont visibles dans le tableau \begin_inset LatexCommand \ref{cap:Fonctions} \end_inset . Les arguments pour les opérations unaires sur des angles ( \family typewriter COS \family default , \family typewriter SIN \family default et \family typewriter TAN \family default ) sont en degrés. Les valeurs retournées par les opérations sur les angles ( \family typewriter ACOS \family default , \family typewriter ASIN \family default et \family typewriter ATAN \family default ) sont également en degrés. \layout Standard L'opérateur \family typewriter FIX \family default arrondi vers la gauche (moins positif ou plus négatif), par exemple: \family typewriter FIX[2.8] =2 \family default et \family typewriter FIX[-2.8] = -3 \family default . L'opérateur \family typewriter FUP \family default arrondi vers la droite (plus positif ou moins négatif), par exemple: \family typewriter FUP[2.8] = 3 \family default et \family typewriter FUP[-2.8] = -2 \family default . \layout Standard \begin_inset Float table wide false collapsed false \layout Caption Fonctions \begin_inset LatexCommand \label{cap:Fonctions} \end_inset \layout Standard \align center \begin_inset Tabular \begin_inset Text \layout Standard Nom de fonction \end_inset \begin_inset Text \layout Standard Fonction \end_inset \begin_inset Text \layout Standard ATAN[Y]/[X] \end_inset \begin_inset Text \layout Standard Tangente quatre quadrants \end_inset \begin_inset Text \layout Standard ATAN[arg] \end_inset \begin_inset Text \layout Standard Arc tangente \end_inset \begin_inset Text \layout Standard ABS[arg] \end_inset \begin_inset Text \layout Standard Valeur absolue \end_inset \begin_inset Text \layout Standard ACOS[arg] \end_inset \begin_inset Text \layout Standard Arc cosinus \end_inset \begin_inset Text \layout Standard ASIN[arg] \end_inset \begin_inset Text \layout Standard Arc sinus \end_inset \begin_inset Text \layout Standard ATAN[arg] \end_inset \begin_inset Text \layout Standard Arc tangente \end_inset \begin_inset Text \layout Standard COS[arg] \end_inset \begin_inset Text \layout Standard Cosinus \end_inset \begin_inset Text \layout Standard EXP[arg] \end_inset \begin_inset Text \layout Standard Exposant \end_inset \begin_inset Text \layout Standard FIX[arg] \end_inset \begin_inset Text \layout Standard Arrondi à l'entier immédiatement inférieur \end_inset \begin_inset Text \layout Standard FUP[arg] \end_inset \begin_inset Text \layout Standard Arrondi à l'entier immédiatement supérieur \end_inset \begin_inset Text \layout Standard ROUND[arg] \end_inset \begin_inset Text \layout Standard Arrondi à l'entier le plus proche \end_inset \begin_inset Text \layout Standard LN[arg] \end_inset \begin_inset Text \layout Standard Logarithme Néperien \end_inset \begin_inset Text \layout Standard SIN[arg] \end_inset \begin_inset Text \layout Standard Sinus \end_inset \begin_inset Text \layout Standard SQRT[arg] \end_inset \begin_inset Text \layout Standard Racine carrée \end_inset \begin_inset Text \layout Standard TAN[arg] \end_inset \begin_inset Text \layout Standard Tangente \end_inset \end_inset \end_inset \layout Standard \layout Section Commentaires \begin_inset LatexCommand \index{commentaires} \end_inset \begin_inset LatexCommand \label{sec:-Commentaires} \end_inset \layout Standard 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: \family typewriter \begin_inset Quotes eld \end_inset G80 M5 (arret du mouvement) \family default \begin_inset Quotes erd \end_inset . Les commentaires sont seulement informatifs, ils n'ont aucune influence sur la machine. \layout Subsection Messages \begin_inset LatexCommand \label{sub:-Messages} \end_inset \layout Standard Un commentaire contient un message si `` MSG'' apparaît après la parenthèse ouvrante, et avant tout autre caractère. Les variantes de \begin_inset Quotes eld \end_inset \family typewriter MSG \family default \begin_inset Quotes erd \end_inset 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. \layout Subsection Log des mesures \begin_inset LatexCommand \label{sub:-Log-des-mesures} \end_inset \layout Standard 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 \begin_inset LatexCommand \ref{sub:G38.2:-Sonde-de-mesure} \end_inset . \layout Subsection Log général \begin_inset LatexCommand \label{sub:-Log-général} \end_inset \layout Subsubsection (LOGOPEN,filename) \layout Standard Ouvre le fichier de log \begin_inset Quotes eld \end_inset filename \begin_inset Quotes erd \end_inset . Si le fichier existe déjà, il sera tronqué. \layout Subsubsection (LOGCLOSE) \layout Standard Si le fichier est ouvert, il sera fermé. \layout Subsubsection (LOG,\SpecialChar \ldots{} ) \layout Standard Le message \begin_inset Quotes eld \end_inset \SpecialChar \ldots{} \begin_inset Quotes erd \end_inset est étendu comme décrit plus loin, il est écrit dans le fichier de log si il est ouvert. \layout Subsection Messsages de déboguage \begin_inset LatexCommand \label{sub:-Messages-déboguage} \end_inset \layout Standard Les commentaires comme: \family typewriter (debug, reste du commentaire) \family default sont traités de la même façon que ceux avec \family typewriter (msg, reste du commentaire) \family default avec l'ajout de possibilités spéciales pour les paramètres. \layout Standard Les commentaires comme: \family typewriter (print, reste du commentaire) \family default vont directement sur la sortie stderr avec des possibilités spéciales pour les paramètres. \layout Subsection Paramètres dans les commentaires \layout Standard Dans les commentaires avec DEBUG, PRINT et LOG, les valeurs des paramètres dans le message sont étendues. \layout Standard 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: \layout LyX-Code (print,diamètre fraise 3 dents = #<_troisdents_dia>) \layout Standard À l'intérieur de ces types de commentaires, les séquences comme \family typewriter #123 \family default sont remplacées par la valeur du paramètre 123. Les séquences comme \family typewriter # \family default 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, \family typewriter # \family default est équivalent à \family typewriter # \family default . \layout Section Répétitions d'items \layout Standard 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 \begin_inset LatexCommand \ref{sec:-Groupes-modaux} \end_inset ) \layout Standard Une ligne peut avoir de zéro à quatre mots M. Mais pas deux mots M du même groupe modal. \layout Standard Pour toutes les autres lettres légales, un seul mot commençant par cette lettre peut se trouver sur la même ligne. \layout Standard Si plusieurs valeurs de paramètre se répétent sur la même ligne, par exemple: \begin_inset Quotes eld \end_inset \family typewriter #3=15 #3=6 \family default \begin_inset Quotes erd \end_inset , 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. \layout Standard 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. \layout Section Ordre des items \layout Standard 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. \layout Standard Dans le premier groupe les mots, peuvent être arrangés dans n'importe quel ordre sans changer la signification de la ligne. \layout Standard 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 \begin_inset Quotes eld \end_inset \family typewriter #3=15 #3=6 \family default \begin_inset Quotes erd \end_inset aura été interprétée, la valeur du paramètre 3 vaudra 6. Si l'ordre est inversé, \begin_inset Quotes eld \end_inset \family typewriter #3=6 #3=15 \family default \begin_inset Quotes erd \end_inset après interprétation, la valeur du paramètre 3 vaudra 15. \layout Standard Enfin dans le troisième groupe les commentaires, si plusieurs commentaires sont présents sur une ligne, seul le dernier commentaire sera utilisé. \layout Standard Si chaque groupe est laissé, ou réordonné, dans l'ordre recommandé, la significa tion de la ligne ne changera pas, alors les trois groupes peuvent être entrecroi sés n'importe comment sans changer la signification de la ligne. Par exemple, la ligne \begin_inset Quotes eld \end_inset \family typewriter g40 g1 #3=15 (foo) #4=-7.0 \family default \begin_inset Quotes erd \end_inset à cinq items est signifiera exactement la même chose dans les 120 ordres d'arrangement possibles des cinq items comme \begin_inset Quotes eld \end_inset \family typewriter #4=-7.0 g1 #3=15 g40 (foo) \family default \begin_inset Quotes erd \end_inset . \layout Section Commandes et modes machine \layout Standard 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 \begin_inset Quotes eld \end_inset modales \begin_inset Quotes erd \end_inset . 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. \layout Standard Les codes \begin_inset Quotes eld \end_inset non modaux \begin_inset Quotes erd \end_inset n'ont d'effet que sur la ligne ou ils se présentent. Par exemple, G4 (tempo) est non modale. \layout Section Groupes modaux \begin_inset LatexCommand \label{sec:-Groupes-modaux} \end_inset \layout Standard Les commandes modales sont arrangées par lots appelés \begin_inset Quotes eld \end_inset groupes modaux \begin_inset Quotes erd \end_inset , à 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 \begin_inset LatexCommand \ref{cap:Groupes-modaux} \end_inset . \layout Standard \begin_inset Float table wide false collapsed false \layout Caption Groupes modaux \begin_inset LatexCommand \label{cap:Groupes-modaux} \end_inset \layout Standard \begin_inset Tabular \begin_inset Text \layout Standard Signification du groupe modal \end_inset \begin_inset Text \layout Standard Mots des membres \end_inset \begin_inset Text \layout Standard Mouvements ( \begin_inset Quotes eld \end_inset Groupe 1 \begin_inset Quotes erd \end_inset ) \end_inset \begin_inset Text \layout Standard G0 \begin_inset LatexCommand \index{G0} \end_inset G1 \begin_inset LatexCommand \index{G1} \end_inset G2 \begin_inset LatexCommand \index{G2} \end_inset G3 \begin_inset LatexCommand \index{G3} \end_inset G33 \begin_inset LatexCommand \index{G33} \end_inset G38.x \begin_inset LatexCommand \index{G38.2} \end_inset \begin_inset LatexCommand \index{G38.x} \end_inset G73 \begin_inset LatexCommand \index{G73} \end_inset G80 \begin_inset LatexCommand \index{G80} \end_inset G81 \begin_inset LatexCommand \index{G81} \end_inset G82 \begin_inset LatexCommand \index{G82} \end_inset \end_inset \begin_inset Text \layout Standard \end_inset \begin_inset Text \layout Standard G83 \begin_inset LatexCommand \index{G83} \end_inset G84 \begin_inset LatexCommand \index{G84} \end_inset G85 \begin_inset LatexCommand \index{G85} \end_inset G86 \begin_inset LatexCommand \index{G86} \end_inset G87 \begin_inset LatexCommand \index{G87} \end_inset G88 \begin_inset LatexCommand \index{G88} \end_inset G89 \begin_inset LatexCommand \index{G89} \end_inset \end_inset \begin_inset Text \layout Standard Choix du plan de travail \end_inset \begin_inset Text \layout Standard G17 \begin_inset LatexCommand \index{G17} \end_inset G18 \begin_inset LatexCommand \index{G18} \end_inset G19 \begin_inset LatexCommand \index{G19} \end_inset \end_inset \begin_inset Text \layout Standard Mode de déplacements \end_inset \begin_inset Text \layout Standard G90 \begin_inset LatexCommand \index{G90} \end_inset G91 \begin_inset LatexCommand \index{G91} \end_inset \end_inset \begin_inset Text \layout Standard Mode de vitesses \end_inset \begin_inset Text \layout Standard G93 \begin_inset LatexCommand \index{G93} \end_inset , G94 \begin_inset LatexCommand \index{G94} \end_inset \end_inset \begin_inset Text \layout Standard Unités machine \end_inset \begin_inset Text \layout Standard G20 \begin_inset LatexCommand \index{G20} \end_inset , G21 \begin_inset LatexCommand \index{G21} \end_inset \end_inset \begin_inset Text \layout Standard Correcteurs de rayon d'outil \end_inset \begin_inset Text \layout Standard G40 \begin_inset LatexCommand \index{G40} \end_inset , G41 \begin_inset LatexCommand \index{G41} \end_inset , G42 \begin_inset LatexCommand \index{G42} \end_inset , G41.1 \begin_inset LatexCommand \index{G41.1} \end_inset , G42.1 \begin_inset LatexCommand \index{G42.1} \end_inset \end_inset \begin_inset Text \layout Standard Correcteurs de longueur d'outil \end_inset \begin_inset Text \layout Standard G43 \begin_inset LatexCommand \index{G43} \end_inset , G43.1 \begin_inset LatexCommand \index{G43.1} \end_inset , G49 \begin_inset LatexCommand \index{G49} \end_inset \end_inset \begin_inset Text \layout Standard Options de retrait des cycles préprogrammés \end_inset \begin_inset Text \layout Standard G98 \begin_inset LatexCommand \index{G98} \end_inset , G99 \begin_inset LatexCommand \index{G99} \end_inset \end_inset \begin_inset Text \layout Standard Systèmes de coordonnées \end_inset \begin_inset Text \layout Standard G54 \begin_inset LatexCommand \index{G54} \end_inset , G55 \begin_inset LatexCommand \index{G55} \end_inset , G56 \begin_inset LatexCommand \index{G56} \end_inset , G57 \begin_inset LatexCommand \index{G57} \end_inset , G58 \begin_inset LatexCommand \index{G58} \end_inset , \end_inset \begin_inset Text \layout Standard \end_inset \begin_inset Text \layout Standard G59 \begin_inset LatexCommand \index{G59} \end_inset , G59.1 \begin_inset LatexCommand \index{G59.1} \end_inset , G59.2 \begin_inset LatexCommand \index{G59.2} \end_inset , G59.3 \begin_inset LatexCommand \index{G59.3} \end_inset \end_inset \begin_inset Text \layout Standard Types d'arrêt de programme \end_inset \begin_inset Text \layout Standard M0 \begin_inset LatexCommand \index{M0} \end_inset , M1 \begin_inset LatexCommand \index{M1} \end_inset , M2 \begin_inset LatexCommand \index{M2} \end_inset , M30 \begin_inset LatexCommand \index{M30} \end_inset , M60 \begin_inset LatexCommand \index{M60} \end_inset \end_inset \begin_inset Text \layout Standard Appel d'outil \end_inset \begin_inset Text \layout Standard M6 \begin_inset LatexCommand \index{M6} \end_inset \end_inset \begin_inset Text \layout Standard Types de rotation de la broche \end_inset \begin_inset Text \layout Standard M3 \begin_inset LatexCommand \index{M3} \end_inset , M4 \begin_inset LatexCommand \index{M4} \end_inset , M5 \begin_inset LatexCommand \index{M5} \end_inset \end_inset \begin_inset Text \layout Standard Arrosages \end_inset \begin_inset Text \layout Standard M7 \begin_inset LatexCommand \index{M7} \end_inset , M8 \begin_inset LatexCommand \index{M8} \end_inset , M9 \begin_inset LatexCommand \index{M9} \end_inset . Cas spéciaux: \end_inset \begin_inset Text \layout Standard \end_inset \begin_inset Text \layout Standard M7 et M8 peuvent être actifs en même temps \end_inset \begin_inset Text \layout Standard Boutons de correction de vitesse \end_inset \begin_inset Text \layout Standard M48 \begin_inset LatexCommand \index{M48} \end_inset , M49 \begin_inset LatexCommand \index{M49} \end_inset \end_inset \begin_inset Text \layout Standard Contrôle de flux \end_inset \begin_inset Text \layout Standard O- \end_inset \begin_inset Text \layout Standard Codes non modaux ( \begin_inset Quotes eld \end_inset Groupe 0 \begin_inset Quotes erd \end_inset ) \end_inset \begin_inset Text \layout Standard G4 \begin_inset LatexCommand \index{G4} \end_inset , G10 \begin_inset LatexCommand \index{G10} \end_inset , G28 \begin_inset LatexCommand \index{G28} \end_inset , G30 \begin_inset LatexCommand \index{G30} \end_inset , G53 \begin_inset LatexCommand \index{G53} \end_inset \end_inset \begin_inset Text \layout Standard \end_inset \begin_inset Text \layout Standard G92 \begin_inset LatexCommand \index{G92} \end_inset , G92.1 \begin_inset LatexCommand \index{G92.1} \end_inset , G92.2 \begin_inset LatexCommand \index{G92.2} \end_inset , G92.3 \begin_inset LatexCommand \index{G92.3} \end_inset \end_inset \begin_inset Text \layout Standard \end_inset \begin_inset Text \layout Standard M100 \begin_inset LatexCommand \index{M100..199} \end_inset à M199 \end_inset \end_inset \end_inset \layout Standard 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. \layout Standard 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. \layout Standard 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. \layout Standard C'est une erreur d'inclure des mots sans rapport sur une ligne avec le contrôle de flux \family typewriter O \family default . \layout Chapter G Codes \layout Standard Les G-codes du langage RS274/NGC sont décrits ci-dessous. \layout Standard Dans une commande type, le tiret ( \family typewriter - \family default ) 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. \layout Standard Dans la plupart des cas, si des mots d'axes sont donnés, parmi \family typewriter X \family default , \family typewriter Y \family default , \family typewriter Z \family default , \family typewriter A \family default , \family typewriter B \family default , \family typewriter C \family default , \family typewriter U \family default , \family typewriter V \family default , \family typewriter W \family default , ils spécifient le point de destination. Les axes sont donnés dans le système de coordonnées courant, à moins qu'explici tement 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. \layout Standard 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. \layout Standard Si \family typewriter L- \family default est écrit dans une commande le \begin_inset Quotes eld \end_inset \family typewriter - \family default \begin_inset Quotes erd \end_inset fera référence à \begin_inset Quotes eld \end_inset L nombre \begin_inset Quotes erd \end_inset . De la même manière, le \begin_inset Quotes eld \end_inset \family typewriter - \family default \begin_inset Quotes erd \end_inset dans \family typewriter H- \family default peut être appelé le \begin_inset Quotes eld \end_inset H nombre \begin_inset Quotes erd \end_inset et ainsi de suite pour les autres lettres. \layout Section G0 \begin_inset LatexCommand \index{G0} \end_inset : Interpolation linéaire en vitesse rapide \begin_inset LatexCommand \label{sec:G0:-Interpolation-linéaire} \end_inset \layout Standard Pour un mouvement linéaire en vitesse rapide, programmer \family typewriter G0 \family default \family typewriter \emph on axes \family default \emph default , au moins un mot d'axe doit être présent, les autres sont optionnels. Le \family typewriter G0 \family default est optionnel si le mode mouvement courant est déjà \family typewriter G0 \family default . 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. \layout Standard C'est une erreur si: \layout Itemize tous les axes sont omis. \layout Standard Si la compensation de rayon d'outil est active, le mouvement sera différent de celui décrit ci-dessus, voir la section \begin_inset LatexCommand \ref{sec:Compensation-rayon-d'outil} \end_inset . Si \family typewriter G53 \family default est programmé sur la même ligne, le mouvement sera également différent, voir la section \begin_inset LatexCommand \ref{sub:G53:-Move-in} \end_inset . \layout Standard Si un mouvement \family typewriter G0 \family default 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: \layout LyX-Code N1 G0 X1 A[20*360] \layout LyX-Code N2 G0 A0 \layout Standard Après la ligne \family typewriter N1 \family default , 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 \family typewriter N2 \family default ne produira aucun mouvement. \layout Section G1 \begin_inset LatexCommand \index{G1} \end_inset : Interpolation linéaire en vitesse travail \begin_inset LatexCommand \label{sec:G1:-Interpolation-linéaire} \end_inset \layout Standard Pour un mouvement linéaire en vitesse travail, programmer \family typewriter G1 \family default \family typewriter \emph on axes \family default \emph default , au moins un mot d'axe doit être présent, les autres sont optionnels. Le \family typewriter G1 \family default est optionnel si le mode mouvement courant est déjà \family typewriter G \family default 1. 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). \layout Standard C'est une erreur si: \layout Itemize tous les axes sont omis. \layout Standard Si la compensation de rayon d'outil est active, le mouvement sera différent de celui décrit ci-dessus, voir la section \begin_inset LatexCommand \ref{sec:Compensation-rayon-d'outil} \end_inset . Si \family typewriter G53 \family default est programmé sur la même ligne, le mouvement sera également différent, voir la section \begin_inset LatexCommand \ref{sub:G53:-Move-in} \end_inset . \layout Section G2 \begin_inset LatexCommand \index{G2} \end_inset , G3 \begin_inset LatexCommand \index{G3} \end_inset : Interpolation circulaire en vitesse travail \begin_inset LatexCommand \label{sub:-G2,-G3:-Arc} \end_inset \layout Standard Un mouvement circulaire ou hélicoïdal est spécifié en sens horaire avec G \family typewriter 2 \family default ou en sens anti-horaire avec \family typewriter G3 \family default . 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 \family typewriter G17 \family default (axe Z, plan XY), \family typewriter G18 \family default (axe Y, plan XZ), ou \family typewriter G19 \family default (axe X, plan YZ). Si l'arc est circulaire, il se trouve dans un plan parallèle au plan sélectionn é. \layout Standard 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. \layout Standard Si la compensation de rayon d'outil est active, le mouvement sera différent de celui décrit ci-dessus, voir la section \begin_inset LatexCommand \ref{sub:G40,-G41,-G42:} \end_inset . \layout Standard Deux formats sont autorisés pour spécifier un arc: le format centre et le format rayon. \layout Subsection Arc au format centre (format recommandé) \layout Standard 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: \layout Itemize 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). \layout Standard 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: \layout Itemize X et Y sont tous les deux omis. \layout Itemize I et J sont tous les deux omis . \layout Standard Lorsque le plan XZ est sélectionné, programmer \family typewriter G2 \family default \family typewriter \emph on axes \family default \emph default \family typewriter I- K- \family default (ou utiliser \family typewriter G3 \family default au lieu de \family typewriter G2 \family default ). 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: \layout Itemize X et Z sont tous les deux omis. \layout Itemize I et K sont tous les deux omis . \layout Standard Lorsque le plan YZ est sélectionné, programmer \family typewriter G2 \family default \family typewriter \emph on axes \family default \emph default \family typewriter J- K- \family default (ou utiliser \family typewriter G3 \family default au lieu de \family typewriter G2 \family default ). 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: \layout Itemize Y et Z sont tous les deux omis. \layout Itemize J et K sont tous les deux omis . \layout Standard Voici un exemple de commande pour usiner un arc au format centre: \family typewriter G17 G2 x10 y16 i3 j4 z9 \family default . \layout Standard 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. \layout Standard 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. \layout Subsection Arcs au format rayon (format non recommandé) \layout Standard 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 \family typewriter G3 \family default au lieu de \family typewriter G2 \family default ). 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. \layout Standard C'est une erreur si: \layout Itemize Les deux mots d'axes pour le plan choisi sont omis. \layout Itemize Le point d'arrivée de l'arc est identique au point courant. \layout Standard 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. \layout Standard Voici un exemple de commande pour usiner un arc au format \family typewriter rayon: G17 G2 x 10 y 15 r 20 z 5. \layout Standard 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. \layout Section G33 \begin_inset LatexCommand \index{G33} \end_inset , G33.1 \begin_inset LatexCommand \index{G33.1} \end_inset : Mouvement avec broche synchronisée \begin_inset LatexCommand \label{sec:G33,-G33.1:-Broche-synchronisée} \end_inset \layout Standard Pour un mouvement avec broche synchronisée dans une direction, programmer \family typewriter G33 X- Y- Z- K- \family default où K donne la longueur du mouvement en XYZ pour chaque tour de broche. Par exemple, il commence à \family typewriter Z=0 \family default , \family typewriter G33 Z-1 K.0625 \family default 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. \layout Standard Pour un taraudage rigide avec broche synchronisée et mouvement de retour, programmer \family typewriter G33.1 X- Y- Z- K- \family default où \family typewriter K- \family default donne la longueur du mouvement pour chaque tour de broche. Un mouvement de taraudage rigide suit cette séquence: \layout Itemize Un mouvement aux coordonnées spécifiées, synchronisé avec la rotation de la broche, avec un ratio donné et débutant sur l'impulsion d'index du codeur de la broche. \layout Itemize Quand le point final est atteint, la commande inverse le sens de rotation de la broche (ex: de 300 tours/mn en sens horaire à 300 tours/mn en sens anti-horaire) \layout Itemize Le mouvement reste synchronisé en continu avec la broche même \series bold au delà \series default de la coordonnée du point final spécifiée pendant l'arrêt de la broche et son inversion. \layout Itemize Le mouvement synchronisé se poursuit pour revenir aux coordonnées initiales. \layout Itemize Quand les coordonnées d'origines sont atteintes, la commande inverse la broche une seconde fois (ex: de 300tr/mn sens anti-horaire à 300tr/mn sens horaire) \layout Itemize Le mouvement reste synchronisé même \series bold au delà \series default des coordonnées d'origine pendant que la broche s'arrête et s'inverse. \layout Itemize Un mouvement \series bold non synchronisé \series default ramène le mobile en arrière, aux coordonnées d'origine. \layout Standard Tous les mouvements avec broche synchronisée ont besoin d'un index de broche, pour conserver la trajectoire prévue. Un mouvement avec \family typewriter G33 \family default se termine au point final programmé, un mouvement avec \family typewriter G33.1 \family default se termine aux coordonnées initiales. \layout Standard Les mots d'axes sont facultatifs, sauf au moins un qui doit être utilisé. \layout Standard C'est une erreur si: \layout Itemize Tous les axes sont omis. \layout Itemize La broche ne tourne pas quand cette commande est exécutée. \layout Itemize Le mouvement linéaire requis excède les limites de vitesse machine en raison de la vitesse de broche. \layout Section G4 \begin_inset LatexCommand \index{G4} \end_inset : Tempo \begin_inset LatexCommand \label{sec:G4:-Tempo} \end_inset \layout Standard Pour une tempo, programmer G4 P- . Les axes s'immobiliseront pour une durée de P secondes. C'est une erreur si: \layout Itemize Le nombre P est négatif. \layout Section G10 \begin_inset LatexCommand \index{G10} \end_inset : Établissement du système de coordonnées pièce \begin_inset LatexCommand \label{sub:G10:-Coordonnées-pièce} \end_inset \layout Standard Le langage RS274/NGC utilise les systèmes de coordonnées décrits à la section \begin_inset LatexCommand \ref{sub:-Systèmes-de-coordonnées} \end_inset . \layout Standard Pour définir les coordonnées de l'origine d'un système de coordonnées pièce, programmer \family typewriter G10 L2 P- \family default \family typewriter \emph on axes \family default \emph default , où l'entier P, compris entre 1 et 9 (correspondance de \family typewriter G54 \family default à \family typewriter G59.3 \family default ) 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. \layout Standard C'est une erreur si: \layout Itemize Le nombre P n'est pas un entier compris entre 1 et 9. \layout Standard Si des décalages d'origine (créés avec \family typewriter G92 \family default ou \family typewriter G92.3 \family default ) sont actifs avant l'utilisation de \family typewriter G10 \family default , ils restent actifs après. \layout Standard 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 \family typewriter G10 \family default . \layout Standard Exemple: \family typewriter G10 L2 P1 x 3.5 y 17.2 \family default 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. \layout Section G17 \begin_inset LatexCommand \index{G17} \end_inset , G18 \begin_inset LatexCommand \index{G18} \end_inset , G19 \begin_inset LatexCommand \index{G19} \end_inset : Choix du plan de travail \begin_inset LatexCommand \label{sub:G17,-G18,-G19:} \end_inset \layout Standard 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 \begin_inset LatexCommand \ref{sub:-G2,-G3:-Arc} \end_inset et \begin_inset LatexCommand \ref{sub:G81-à-G89:} \end_inset \layout Section G20 \begin_inset LatexCommand \index{G20} \end_inset , G21 \begin_inset LatexCommand \index{G21} \end_inset : Choix des unités machine \begin_inset LatexCommand \label{sec:G20,-G21:-Longueur} \end_inset \layout Standard Programmer G20 pour utiliser le pouce comme unité de longueur. Programmer G21 pour utiliser le millimètre. \layout Standard 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. \layout Section G28 \begin_inset LatexCommand \index{G28} \end_inset , G30 \begin_inset LatexCommand \index{G30} \end_inset : Retour à une position absolue prédéfinie \begin_inset LatexCommand \label{sub:G28,-G30:-Retour} \end_inset \layout Standard Deux positions sont définies, une par les paramètres 5161-5166 pour \family typewriter G28 \family default et une par les paramètres 5181-5186 pour \family typewriter G30 \family default . Les valeurs de ces paramètres sont en coordonnées absolues et en coordonnées machine. \layout Standard 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. \layout Standard Pour le retour d'un ou plusieurs axes sur une position prédéfinie par le biais de la position programmée, programmer \family typewriter G28 \family default \family typewriter \emph on axes \family default \emph default (ou utiliser \family typewriter G30 \family default ). 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. \layout Standard Pour le retour de tous les axes à la position prédéfinie sans la position intermédiaire, programmer \family typewriter G28 \family default ou \family typewriter G30 \family default sans mot d'axe. \layout Standard C'est une erreur si: \layout Itemize La compensation de rayon d'outil est active. \layout Section G38.x \begin_inset LatexCommand \index{G38.2} \end_inset \begin_inset LatexCommand \index{G38.x} \end_inset : Sonde de mesure \begin_inset LatexCommand \label{sub:G38.2:-Sonde-de-mesure} \end_inset \layout Standard Programmer \family typewriter G38.2 \family default \family typewriter \emph on axes \family default , \emph default \family typewriter G38.3 \family default \family typewriter \emph on axes \family default , \emph default \family typewriter G38.4 \family default \family typewriter \emph on axes \family default , \emph default ou \family typewriter G38.5 \family default \family typewriter \emph on axes \family default \emph default 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. \layout Standard C'est une erreur si: \layout Itemize Le point programmé est le même que le point courant. \layout Itemize Aucun mot d'axe n'est utilisé. \layout Itemize La compensation de rayon d'outil est active. \layout Itemize La vitesse travail est à zéro. \layout Itemize La sonde est déjà au contact de la cible. \layout Standard 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 attendu \begin_inset Foot collapsed true \layout Standard En réalité, le mouvement continue légérement après que l'état de la sonde ait basculé, à cause des contraintes d'accélération/décélération de la machine. \end_inset . Le tableau \begin_inset LatexCommand \ref{cap:Codes-de-mesure} \end_inset montre la signification des différents codes de mesure. \layout Standard \begin_inset Float table wide false collapsed false \layout Caption Codes de mesure \begin_inset LatexCommand \label{cap:Codes-de-mesure} \end_inset \layout Standard \align center \begin_inset Tabular \begin_inset Text \layout Standard Code \end_inset \begin_inset Text \layout Standard Etat ciblé \end_inset \begin_inset Text \layout Standard Direction \end_inset \begin_inset Text \layout Standard Signal d'erreur \end_inset \begin_inset Text \layout Standard G38.2 \end_inset \begin_inset Text \layout Standard Contact \end_inset \begin_inset Text \layout Standard Vers la pièce \end_inset \begin_inset Text \layout Standard Oui \end_inset \begin_inset Text \layout Standard G38.3 \end_inset \begin_inset Text \layout Standard Contact \end_inset \begin_inset Text \layout Standard Vers la pièce \end_inset \begin_inset Text \layout Standard Non \end_inset \begin_inset Text \layout Standard G38.4 \end_inset \begin_inset Text \layout Standard Pas de contact \end_inset \begin_inset Text \layout Standard Depuis la pièce \end_inset \begin_inset Text \layout Standard Oui \end_inset \begin_inset Text \layout Standard G38.5 \end_inset \begin_inset Text \layout Standard Pas de contact \end_inset \begin_inset Text \layout Standard Depuis la pièce \end_inset \begin_inset Text \layout Standard Non \end_inset \end_inset \end_inset \layout Standard Après une mesure réussie, les paramètres 5061 à 5069 contiendront les coordonnée s de l'emplacement du point contrôlé lors du changement d'état de la sonde. Après une mesure manquée, ils contiendront les coordonnées du point programmé. Le paramètre 5070 est mis à 1 si la mesure est réussie et à 0 si elle est manquée. Si la mesure n'a pas réussi, G38.2 et G38.4 signaleront une erreur. \layout Standard Un commentaire de la forme \family typewriter (PROBEOPEN \family default \family typewriter \emph on filename.txt \emph default ) \family default ouvrira le ficher \emph on filename.txt \emph default et y enregistrera les 9 coordonnées de chaque mesure réussie. Le fichier doit être fermé avec le commentaire \family typewriter (PROBECLOSE) \family default . \layout Section G40 \begin_inset LatexCommand \index{G40} \end_inset , G41 \begin_inset LatexCommand \index{G41} \end_inset , G42 \begin_inset LatexCommand \index{G42} \end_inset , G41.1 \begin_inset LatexCommand \index{G41.1} \end_inset , G42.1 \begin_inset LatexCommand \index{G42.1} \end_inset : Compensation de rayon d'outil \begin_inset LatexCommand \label{sub:G40,-G41,-G42:} \end_inset \layout Standard Pour désactiver la compensation de rayon d'outil, programmer \family typewriter G40 \family default . Ce n'est pas une erreur de désactiver la compensation quand elle est déjà inactive. \layout Standard La compensation de rayon d'outil ne peut être activée que si le plan de travail courant est le plan XY. \layout Standard Le comportement du centre d'usinage quand la compensation de rayon d'outil est active est décrit dans la section \begin_inset LatexCommand \ref{sec:Compensation-rayon-d'outil} \end_inset \layout Subsection Compensation de rayon d'outil depuis une table d'outils \layout Standard 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 \family typewriter G41 D- \family default . 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 \family typewriter G42 D- \family default . 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. \layout Standard C'est une erreur si: \layout Itemize La valeur de D n'est pas un entier, il est négatif ou supérieur au nombre d'emplacements dans le carrousel. \layout Itemize Le plan de travail n'est pas YZ. \layout Itemize La compensation de rayon d'outil est activée alors qu'elle est déjà active. \layout Subsection Compensation dynamique de rayon d'outil \layout Standard Pour activer la compensation dynamique de rayon d'outil à gauche du profil, programmer \family typewriter G41.1 D- L- \family default . Pour activer la compensation dynamique de rayon d'outil à droite du profil, programmer \family typewriter G42.1 D- L- \family default . 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é. \layout Standard C'est une erreur si: \layout Itemize Le plan yz est le plan de travail actif. \layout Itemize La valeur de L n'est pas comprise entre 0 et 9 inclus. \layout Itemize La compensation de rayon d'outil est activée alors qu'elle est déjà active. \layout Section G43 \begin_inset LatexCommand \index{G43} \end_inset , G43.1 \begin_inset LatexCommand \index{G43.1} \end_inset , G49 \begin_inset LatexCommand \index{G49} \end_inset : Compensation de longueur d'outil \begin_inset LatexCommand \label{sub:G43,-G49:-Outils} \end_inset \layout Subsection G43 \begin_inset LatexCommand \label{sub:G43} \end_inset , G43.1: Activation de la compensation de longueur d'outil \layout Standard 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é. \layout Subsubsection G43: Compensation de longueur d'outil depuis une table d'outils \layout Standard Pour utiliser la compensation de longueur d'outil depuis une table d'outils, programmer \family typewriter G43 H- \family default , 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. \layout Standard C'est une erreur si: \layout Itemize La valeur de H n'est pas un entier, il est négatif, ou il est supérieur au nombre d'outils dans le carrousel. \layout Subsubsection G43.1: Compensation dynamique de longueur d'outil \layout Standard Pour utiliser la compensation dynamique de longueur d'outil depuis un programme, utiliser \family typewriter G43.1 I- K- \family default , où \family typewriter I- \family default donne la compensation de longueur d'outil en X (pour les tours) et \family typewriter K- \family default donne la compensation de longueur en Z (pour les tours et les fraiseuses). \layout Standard C'est une erreur si: \layout Itemize Une commande de mouvement est sur la même ligne que \family typewriter G43.1 \layout Subsection G49 \begin_inset LatexCommand \label{sub:G49} \end_inset : Annulation de la compensation de longueur d'outil \layout Standard Pour annuler la compensation de longueur d'outil, programmer G49. \layout Standard 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. \layout Section G53 \begin_inset LatexCommand \index{G53} \end_inset : Mouvement en coordonnées absolues \begin_inset LatexCommand \label{sub:G53:-Move-in} \end_inset \layout Standard Pour un déplacement à un point exprimé en coordonnées absolues, programmer \family typewriter G1 G53 X- Y- Z- A- B- C- \family default (ou utiliser \family typewriter G0 \family default à la place de \family typewriter G1 \family default ), au moins un mot d'axe est obligatoire, les autres sont optionnels. Le \family typewriter G0 \family default ou le \family typewriter G1 \family default est optionnel si il est déjà le mode de mouvement courant. \family typewriter G53 \family default 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 \family typewriter G1 \family default est actif, la vitesse travail courante est utilisée si la machine est assez rapide. Si \family typewriter G0 \family default est actif, la vitesse rapide courante sera utilisée si la machine est assez rapide. \layout Standard C'est une erreur si: \layout Itemize G53 est utilisé sans que G0 ou G1 ne soit actif. \layout Itemize G53 est utilisé alors que la compensation de rayon d'outil est active. \layout Standard Voir la section \begin_inset LatexCommand \ref{sub:-Systèmes-de-coordonnées} \end_inset pour une vue complète des systèmes de coordonnées. \layout Section G54 \begin_inset LatexCommand \index{G54} \end_inset \begin_inset LatexCommand \index{G55} \end_inset \begin_inset LatexCommand \index{G56} \end_inset \begin_inset LatexCommand \index{G57} \end_inset \begin_inset LatexCommand \index{G58} \end_inset \begin_inset LatexCommand \index{G59} \end_inset \begin_inset LatexCommand \index{G59.1} \end_inset \begin_inset LatexCommand \index{G59.2} \end_inset à G59.3 \begin_inset LatexCommand \index{G59.3} \end_inset : Choix du système de coordonnées \begin_inset LatexCommand \label{sub:G54-à-G59.3:} \end_inset \layout Standard 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 \family typewriter G54 \family default ), (2 avec \family typewriter G55 \family default ), (3 \family typewriter avec G56 \family default ), (4 avec \family typewriter G57 \family default ), (5 avec \family typewriter G58 \family default ), (6 avec \family typewriter G59 \family default ), (7 avec \family typewriter G59.1 \family default ), (8 avec \family typewriter G59.2 \family default ) et (9 avec \family typewriter G59.3 \family default ). \layout Standard C'est une erreur si: \layout Itemize Un de ces G-codes est utilisé alors que la compensation de rayon d'outil est active. \layout Standard Voir la section \begin_inset LatexCommand \ref{sub:-Systèmes-de-coordonnées} \end_inset pour une vue complète des systèmes de coordonnées. \layout Section G61 \begin_inset LatexCommand \index{G61} \end_inset , G61.1 \begin_inset LatexCommand \index{G61.1} \end_inset , G64 \begin_inset LatexCommand \index{G64} \end_inset : Types de contrôle de trajectoire \begin_inset LatexCommand \label{sub:G61,-G61.1,-G64:-Types-contrôle-trajectoire} \end_inset \layout Standard Programmer \family typewriter G61 \family default pour passer la machine en mode de trajectoire exacte, \family typewriter G61.1 \family default pour la passer en mode arrêt exact, ou \family typewriter G64 P- \family default 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 \begin_inset LatexCommand \ref{sub:Modes-de-contrôle-trajectoires} \end_inset pour une discussion de ces modes. \layout Section G80 \begin_inset LatexCommand \index{G80} \end_inset : Révocation des codes modaux \begin_inset LatexCommand \label{sec:G80:-Cancel-Modal} \end_inset \layout Standard Programmer \family typewriter G80 \family default pour s'assurer qu'aucun mouvement d'axe ne surviendra sans G-code modal. C'est une erreur si: \layout Itemize Des mots d'axes sont programmés quand G80 est actif, sans qu'un G-code modal du groupe 0 ne soit programmé avec les mots d'axes. \layout Section G76 \begin_inset LatexCommand \index{G76} \end_inset : Cycle de filetage préprogrammé \begin_inset LatexCommand \label{sec:G76:-Filetage-préprogrammé} \end_inset \layout Standard Programmer \family typewriter G76 P- Z- I- J- R- K- Q- H- E- L- \family default pour produire un cycle de filetage multi-passes. C'est une erreur si: \layout Itemize Le plan de travail actif n'est pas ZX. \layout Itemize D'autres mots d'axes comme X- ou Y-, sont spécifiés. \layout Itemize La dégressivité \family typewriter R- \family default est inférieure à 1.0. \layout Itemize Certains mots requis ne sont pas spécifiés. \layout Itemize \family typewriter P- \family default , \family typewriter J- \family default , \family typewriter K- \family default ou \family typewriter H- \family default est négatif. \layout Itemize \family typewriter E- \family default est supérieure à la moitié de la longueur de la ligne pilote. \layout Standard 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 \family typewriter Z- \family default dans la commande. \layout Standard Le pas du filet, ou la longueur du déplacement par tour est donné par la valeur de \family typewriter P- \family default . \layout Standard La crête du filet est donnée par la valeur de \family typewriter I- \family default , c'est une cote entre la ligne pilote et la surface de la pièce. Une valeur négative de \family typewriter I-, \family default 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 \family typewriter G76 \family default . \layout Standard La profondeur de la passe initiale est donnée par la valeur de \family typewriter J- \family default . La première passe sera à \family typewriter J- \family default au delà de la crête du filet. \family typewriter J- \family default est positif, même quand \family typewriter I- \family default est négatif. \layout Standard La profondeur du filet est donnée par la valeur de \family typewriter K- \family default . La dernière passe du filetage sera à \family typewriter K- au delà \family default de la crête du filet. \family typewriter K- \family default est positif, même quand I \family typewriter - \family default est négatif. \layout Standard La dégressivité de la profondeur de passe est donnée par la valeur de \family typewriter R- \family default . \family typewriter R1.0 \family default sélectionne une profondeur de passe constante pour les passes successives du filetage. \family typewriter R2.0 \family default 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. \layout Standard L'angle de pénétration oblique est donné par la valeur de \family typewriter Q- \family default 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 \family typewriter Q \family default fait couper d'avantage le bord principal de l'outil. Typiquement, les valeurs sont 29, 29.5 ou 30 degrés. \layout Standard Le nombre de passes de finition est donné par la valeur de \family typewriter H- \family default . Les passes de finition sont des passes additionnelles en fond de filet. Pour ne pas faire de passe de finition, programmer \family typewriter H0 \family default . \layout Standard Les entrées et sorties de filetage peuvent être programmées côniques avec les valeurs de \family typewriter E- \family default et \family typewriter L- \family default . \family typewriter E- \family default donne la longueur de la partie cônique le long de l'axe. \family typewriter E0.2 \family default donnera un cône pour le premier et le dernier filet, de 0.2 unités dans le sens du filetage. \family typewriter L- \family default est utilisé pour spécifier quelles extrémités du filetage doivent être côniques. Programmer \family typewriter L0 \family default pour aucune (par défaut), \family typewriter L1 \family default pour une entrée cônique, \family typewriter L2 \family default pour une sortie cônique, ou \family typewriter L3 \family default pour l'entrée et la sortie côniques. \layout Standard L'outil fera une brève pause pour la synchronisation avant chaque passe de filetage, ainsi une gorge de dégagement sera requise à l'entrée, à moins que le début du filetage ne soit après l'extrémité de la pièce ou qu'un cône d'entrée soit utilisé. \layout Standard À moins d'utiliser un cône de sortie, le mouvement de sortie (retour rapide sur X d'origine) n'est pas synchronisé sur la vitesse de broche. Avec une broche lente, la sortie pourrait se faire sur une petite fraction de tour. Si la vitesse de broche est augmentée après qu'un certain nombre de passes ne soient déjà faites, la sortie va prendre une plus grande fraction de tour, il en résultera un usinage très brutal pendant ce nouveau mouvement de sortie. Ceci peut être évité en prévoyant une gorge de sortie, ou en ne changeant pas la vitesse de broche pendant le filetage. \layout Standard Un exemple de programme, \family typewriter g76.ngc \family default montre l'utilisation d'un cycle de filetage G76, il peut être visualisé et exécuté sur n'importe quelle machine utilisant la configuration \family typewriter sim/lathe.ini \family default . \layout Standard \begin_inset Float figure wide false collapsed false \layout Caption \begin_inset LatexCommand \label{fig:G76-cycle-de-filetage} \end_inset G76 cycle de filetage \layout Standard \align center \begin_inset Graphics filename g76.epsi scale 75 \end_inset \end_inset \layout Section G73, G81 \begin_inset LatexCommand \index{G73,G81} \end_inset à G89 \begin_inset LatexCommand \index{G89} \end_inset : Cycles préprogrammés \begin_inset LatexCommand \label{sub:G81-à-G89:} \end_inset \layout Standard Les cycles préprogrammés \family typewriter G73, G81 \family default à \family typewriter G89 \family default sont implémentés comme décrit dans cette section. Deux exemples sont donnés avec la description de \family typewriter G81. \layout Standard Tous les cycles préprogrammés sont effectués dans le respect du plan de travail courant. N'importe lequel des trois plans de travail XY, YZ, ZX peut être choisi. Dans cette section, la plupart des descriptions supposeront que le plan de travail XY est le plan courant. Le comportement reste analogue pour les plans de travail YZ ou XZ. \layout Standard Les mots d'axes rotatifs sont autorisés dans les cycles préprogrammés, mais il est préférable de les omettre. Si les mots d'axes rotatifs sont utilisés, leurs valeurs doivent rester les mêmes que celles de la position courante, de sorte qu'ils ne tournent pas. \layout Standard Tous les cycles préprogrammés utilisent X-, Y-, R-, et Z- dans le code NC. Ces valeurs sont utilisées pour déterminer les positions de X, Y, R, et Z. La position de R- (signifiant rétraction) est perpendiculaire au plan de travail courant (axe Z pour le plan XY, axe X pour le plan YZ, axe Y pour le plan XZ). Quelques cycles préprogrammés utilisent des arguments supplémentaires. \layout Standard Dans les cycles préprogrammés, un nombre est appelé \begin_inset Quotes eld \end_inset sticky \begin_inset Quotes erd \end_inset (collant) si, quand le même cycle est répété sur plusieurs lignes de code en colonne, le nombre doit être indiqué la première fois, mais qu'il devient optionnel pour le reste des lignes suivantes. Les nombres \begin_inset Quotes eld \end_inset sticky \begin_inset Quotes erd \end_inset conservent leur valeur tant qu'ils ne sont pas explicitement programmés avec une nouvelle valeur. La valeur de R- est toujours \begin_inset Quotes eld \end_inset sticky \begin_inset Quotes erd \end_inset . \layout Standard En mode de déplacements incrémentaux (G91): quand le plan courant est XY, les valeurs X-, Y-, est R- sont traitées comme incrémentales à partir de la position courante et Z- comme un incrément depuis la position précédent le mouvement impliquant l'axe Z. Quand le plan YZ ou XZ est le plan courant, le traitement des mots d'axes est analogue. En mode de déplacements absolus, les valeurs de X-, Y-, R-, et Z- sont des positions absolues dans le système de coordonnées courant. \layout Standard La valeur L- est optionnelle, elle représente le nombre de répétitions. \begin_inset Formula $L=0$ \end_inset n'est pas permis. Si les répétitions sont utilisées, elles le sont normalement en mode de déplacements incrémentaux, de sorte que la même séquence de mouvements puisse être répétée à plusieurs endroits, égalements espacés, le long d'un ligne droite. En mode de déplacements absolus, \begin_inset Formula $L>1$ \end_inset signifie \begin_inset Quotes eld \end_inset faire le même cycle au même endroit, plusieurs fois \begin_inset Quotes erd \end_inset . L'omission du mot L revient à spécifier \begin_inset Formula $L=1$ \end_inset . La valeur de L- n'est pas \begin_inset Quotes eld \end_inset sticky \begin_inset Quotes erd \end_inset . \layout Standard Avec \begin_inset Formula $L>1$ \end_inset en mode incrémental et XY comme plan courant, les positions X et Y sont déterminées en ajoutant les valeurs X- et Y- de la commande à celles de la position courante, pour le premier trajet ou, ensuite, à celles de la position finale du précédent trajet, pour les répétitions. Les valeurs de R- et de Z- ne changent pas durant toutes les répétitions. \layout Standard La hauteur du mouvement de retrait à la fin de chaque répétition (appellée \begin_inset Quotes eld \end_inset plan de retrait \begin_inset Quotes erd \end_inset dans les descriptions suivantes) est déterminée par le passage en mode: retrait sur la position initiale de Z, si elle est au dessus de la valeur de R- et que le mode de retrait est \family typewriter G99 \family default , OLD_Z, sinon, à la position de R-. Voir la section \begin_inset LatexCommand \ref{sub:G98,-G99:-Set} \end_inset \layout Standard C'est une erreur si: \layout Itemize Tous les mots X, Y et Z sont manquants durant un cycle préprogrammé. \layout Itemize Un nombre P est requis mais un nombre P négatif est utilisé. \layout Itemize Un nombre L est utilisé mais n'est pas un entier positif. \layout Itemize Un mouvement d'axe rotatif est utilisé durant un cycle préprogrammé. \layout Itemize Une vitesse inverse du temps est activée durant un cycle préprogrammé. \layout Itemize La correction de rayon d'outil est activée durant un cycle préprogrammé. \layout Standard Quand le plan XY est actif, la valeur de Z est \begin_inset Quotes eld \end_inset sticky \begin_inset Quotes erd \end_inset , et c'est une erreur si: \layout Itemize La valeur de Z est manquante alors qu'un même cycle préprogrammé n'a pas encore été activé. \layout Itemize La valeur de R est inférieure à celle de Z. \layout Standard Quand le plan XZ est actif, la valeur de Y est \begin_inset Quotes eld \end_inset sticky \begin_inset Quotes erd \end_inset , et c'est une erreur si: \layout Itemize La valeur de Y est manquante alors qu'un même cycle préprogrammé n'a pas encore été activé. \layout Itemize La valeur de R est inférieure à celle de Y. \layout Standard Quand le plan YZ est actif, la valeur de X est \begin_inset Quotes eld \end_inset sticky \begin_inset Quotes erd \end_inset , et c'est une erreur si: \layout Itemize La valeur de X est manquante alors qu'un même cycle préprogrammé n'a pas encore été activé. \layout Itemize La valeur de R est inférieure à celle de X. \layout Subsection Mouvement préliminaire et Intermédiaire \layout Standard Tout au début de l'exécution d'un cycle préprogrammé, avec le plan courant XY, si la position actuelle de Z est en dessous de la position de retrait R, l'axe Z va à la position R. Ceci n'arrive qu'une fois, sans tenir compte de la valeur de L. \layout Standard En plus, au début du premier cycle et à chaque répétition, un ou deux des mouvements suivants sont faits: \layout Enumerate Un déplacement en ligne droite, parallèle au plan XY, vers le position programmé e. \layout Enumerate Un déplacement en ligne droite, de l'axe Z seul vers la position de retrait R, si il n'est pas déjà à cette position R. \layout Standard Si un des plans XZ ou YZ est actif, le mouvement préliminaire et intermédiaire est analogue. \layout Subsection G81 \begin_inset LatexCommand \index{G81} \end_inset : Cycle de perçage \begin_inset LatexCommand \label{sub:G81:-Cycle-de-perçage} \end_inset \layout Standard Le cycle \family typewriter G81 \family default est destiné au perçage. Programmer \family typewriter G81 X- Y- Z- A- B- C- R- L- \family default donnera: \layout Enumerate Un mouvement préliminaire, comme il a été traité ci-dessus. \layout Enumerate Un déplacement de l'axe Z seul à la vitesse programmée, vers la position Z programmée. \layout Enumerate Retrait de l'axe Z en vitesse rapide jusqu'au plan de retrait R. \layout Standard \series bold Exemple 1. \series default Supposons que la position courante soit, X1, Y2, Z3 dans le plan XY, la ligne de codes suivante est interprétée: \layout LyX-Code G90 G81 G98 X4 Y5 Z1.5 R2.8 \layout Standard Le mode de déplacements absolus est appelé ( \family typewriter G90 \family default ), le plan de retrait est positionné sur OLD_Z ( \family typewriter G98 \family default ), l'appel du cycle de perçage \family typewriter G81 \family default va lancer ce cycle une fois. La position X deviendra celle demandée, X4. La position de Y deviendra celle demandée, Y5. La position de Z deviendra celle demandée, Z1.5. La valeur de R fixe le plan de retrait de Z à 2.8. La valeur de OLD_Z est 3. Les mouvements suivants vont se produire. \layout Enumerate Un mouvement en vitesse rapide, parallèle au plan XY vers X4, Y5, Z3 \layout Enumerate Un mouvement en vitesse rapide, parallèle à l'axe Z vers X4, Y5, Z2.8 \layout Enumerate Un mouvement en vitesse travail, parallèle à l'axe Z vers X4, Y5, Z1.5 \layout Enumerate Un mouvement en vitesse rapide, parallèle à l'axe Z vers X4, Y5, Z3 \layout Standard \series bold Exemple 2. \series default Supposons que la position courante soit, X1, Y2, Z3 dans le plan XY, la ligne de codes suivante est interprétée: \layout LyX-Code G91 G81 G98 X4 Y5 Z-0.6 R1.8 L3 \layout Standard Le mode de déplacements incrémentaux est appelé ( \family typewriter G91 \family default ), le plan de retrait est positionné sur OLD_Z ( \family typewriter G98 \family default ), l'appel du cycle de perçage \family typewriter G81 \family default demande 3 répétitions du cycle. La valeur demandée de X est 4, la valeur demandée de Y est 5, la valeur demandée de Z est -0.6 et le retrait R est à 1.8. La position initiale de X sera 5 (1+4), la position initiale de Y sera 7 (2+5), le plan de retrait sera positionné sur 4.8 (1.8+3) et Z positionné sur 4.2 (4.8-0.6). OLD_Z est à 3. \layout Standard Le premier mouvement en vitesse rapide le long de l'axe Z vers X1, Y2, Z4.8), puisque OLD_Z est inférieur au plan de retrait. \layout Standard La première répétition produira 3 mouvements. \layout Enumerate Un déplacement en vitesse rapide, parallèle au plan XY vers X5, Y7, Z4.8 \layout Enumerate Un déplacement en vitesse travail, parallèle à l'axe Z vers X5, Y7, Z4.2 \layout Enumerate Un déplacement en vitesse rapide, parallèle à l'axe Z vers X5, Y7, Z4.8 \layout Standard La deuxième répétition produira 3 mouvements. La position de X est augmentée de 4 et passe à 9, la position de Y est augmentée de 5 et passe à 12. \layout Enumerate Un déplacement en vitesse rapide, parallèle au plan XY vers X9, Y12, Z4.8 \layout Enumerate Un déplacement en vitesse travail, parallèle à l'axe Z vers X9, Y12, Z4.2 \layout Enumerate Un déplacement en vitesse rapide, parallèle à l'axe Z vers X9, Y12, Z4.8 \layout Standard La troisième répétition produira 3 mouvements. La position de X est augmentée de 4 et passe à 13, la position de Y est augmentée de 5 et passe à 17. \layout Enumerate Un déplacement en vitesse rapide, parallèle au plan XY vers X13, Y17, Z4.8 \layout Enumerate Un déplacement en vitesse travail, parallèle à l'axe Z vers X13, Y17, Z4.2 \layout Enumerate Un déplacement en vitesse rapide, parallèle à l'axe Z vers X13, Y17, Z4.8 \layout Subsection G82 \begin_inset LatexCommand \index{G82} \end_inset : Cycle de perçage avec temporisation \begin_inset LatexCommand \label{sub:G82:-Cycle-de-perçage} \end_inset \layout Standard Le cycle \family typewriter G82 \family default est destiné au perçage. Programmer \family typewriter G82 X- Y- Z- A- B- C- R- L- P- \layout Standard donnera: \layout Enumerate Un mouvement préliminaire, comme il a été traité ci-dessus. \layout Enumerate Un déplacement de l'axe Z seul en vitesse programmée, vers la position Z programmée. \layout Enumerate Une temporisation de P secondes. \layout Enumerate Retrait de l'axe Z en vitesse rapide jusqu'au plan de retrait R. \layout Subsection G83 \begin_inset LatexCommand \index{G83} \end_inset : Cycle de perçage avec débourrage \begin_inset LatexCommand \label{sub:G83:-Perçage-avec-débourrage} \end_inset \layout Standard Le cycle \family typewriter G83 \family default est destiné au perçage profond ou au fraisage avec brise-copeaux. Les retraits, au cours de ce cycle, dégagent les copeaux du trou et fragmentent les copeaux longs (qui sont fréquents lors du perçage dans l'aluminum). Ce cycle utilise la valeur Q qui représente un incrément \begin_inset Quotes eld \end_inset delta \begin_inset Quotes erd \end_inset le long de l'axe Z. Programmer \family typewriter G83 X- Y- Z- A- B- C- R- L- Q- \layout Standard donnera: \layout Enumerate Un mouvement préliminaire, comme décrit précédemment. \layout Enumerate Un mouvement de l'axe Z seul, en vitesse travail, sur la position la moins profonde entre, un incrément delta, ou la position de Z programmée. \layout Enumerate Un mouvement en vitesse rapide au plan de retrait. \layout Enumerate Une plongée en vitesse rapide dans le même trou, presque jusqu'au fond. \layout Enumerate Répétition des étapes 2, 3 et 4 jusqu'à ce que la position programmée de Z soit atteinte à l'étape 2. \layout Enumerate Un mouvement de l'axe Z en vitesse rapide vers le plan de retrait. \layout Standard C'est une erreur si: \layout Itemize La valeur de Q est négative ou égale à zéro. \layout Subsection G73 \begin_inset LatexCommand \index{G73} \end_inset : Cycle de perçage avec brise copeaux \begin_inset LatexCommand \label{sub:G73:-Perçage-avec-brise-copeaux} \end_inset \layout Standard Le cycle \family typewriter G73 \family default est destiné au perçage profond ou au fraisage avec brise-copeaux. Les retraits, au cours de ce cycle, fragmentent les copeaux longs (qui sont fréquents lors du perçage dans l'aluminum). Ce cycle utilise la valeur Q qui représente un incrément \begin_inset Quotes eld \end_inset delta \begin_inset Quotes erd \end_inset le long de l'axe Z. Programmer \family typewriter G73 X- Y- Z- A- B- C- R- L- Q- \layout Standard donnera: \layout Enumerate Un mouvement préliminaire, comme décrit précédemment. \layout Enumerate Un mouvement de l'axe Z seul, en vitesse travail, sur la position la moins profonde entre, un incrément delta, ou la position de Z programmée. \layout Enumerate Une petite remontée en vitesse rapide. \layout Enumerate Répétition des étapes 2 et 3 jusqu'à ce que la position programmée de Z soit atteinte à l'étape 2. \layout Enumerate Un mouvement de l'axe Z en vitesse rapide vers le plan de retrait. \layout Standard C'est une erreur si: \layout Itemize La valeur de Q est négative ou égale à zéro. \layout Subsection G84 \begin_inset LatexCommand \index{G84} \end_inset : Cycle de taraudage à droite \begin_inset LatexCommand \label{sub:G84:-Taraudage-à-droite} \end_inset \layout Standard Ce code n'est pas encore implémenté dans EMC2. Il est accepté mais son comportement n'est pas défini. Voir \family typewriter G33.1 \layout Subsection G85 \begin_inset LatexCommand \index{G85} \end_inset : Cycle d'alésage, sans temporisation, retrait en vitesse travail \begin_inset LatexCommand \label{sub:G85:-Alésage-retrait-travail} \end_inset \layout Standard Le cycle \family typewriter G85 \family default est destiné à l'alésage, mais peut être utilisé pour le perçage ou le fraisage. Programmer \family typewriter G85 X- Y- Z- A- B- C- R- L- donnera: \layout Enumerate Un mouvement préliminaire, comme décrit précédemment. \layout Enumerate Un déplacement de l'axe Z seul en vitesse travail, vers la position Z programmée. \layout Enumerate Retrait de l'axe Z en vitesse travail vers le plan de retrait. \layout Subsection G86 \begin_inset LatexCommand \index{G86} \end_inset : Cycle d'alésage, arrêt de broche, retrait en vitesse rapide \begin_inset LatexCommand \label{sub:G86:-Alésage-retrait-rapide} \end_inset \layout Standard Le cycle \family typewriter G86 \family default est destiné à l'alésage. Ce cycle utilise la valeur P pour une temporisation en secondes. Programmer \family typewriter G86 X- Y- Z- A- B- C- R- L- P- \layout Standard donnera: \layout Enumerate Un mouvement préliminaire, comme décrit précédemment. \layout Enumerate Un déplacement de l'axe Z seul en vitesse travail, vers la position Z programmée. \layout Enumerate Une temporisation de P secondes. \layout Enumerate L'arrêt de rotation de la broche. \layout Enumerate Retrait de l'axe Z en vitesse rapide vers le plan de retrait. \layout Enumerate Reprise de la rotation de la broche dans la même direction que précédemment. \layout Standard La broche doit tourner avant le lancement de ce cycle. C'est une erreur si: \layout Itemize La broche ne tourne pas avant que ce cycle ne soit éxécuté. \layout Subsection G87 \begin_inset LatexCommand \index{G87} \end_inset : Back Boring \begin_inset LatexCommand \label{sub:G87:-Back-Boring} \end_inset \layout Standard Ce code n'est pas encore implémenté dans EMC2. Il est accepté mais son comportement n'est pas défini. \layout Subsection G88 \begin_inset LatexCommand \index{G88} \end_inset : Alésage, arrêt de broche, retrait en manuel \begin_inset LatexCommand \label{sub:G88:-Boring,-Spindle} \end_inset \layout Standard Ce code n'est pas encore implémenté dans EMC2. Il est accepté mais son comportement n'est pas défini. \layout Subsection G89 \begin_inset LatexCommand \index{G89} \end_inset : Cycle d'alésage, temporisation, retrait en vitesse travail \begin_inset LatexCommand \label{sub:G89:-Alésage-temporisation} \end_inset \layout Standard Le cycle \family typewriter G89 \family default est destiné à l'alésage. Il utilise la valeur de P pour une temporisation en secondes. Programmer \family typewriter G89 X- Y- Z- A- B- C- R- L- P- \layout Standard donnera: \layout Enumerate Un mouvement préliminaire, comme décrit précédemment. \layout Enumerate Un déplacement de l'axe Z seul en vitesse travail, vers la position Z programmée. \layout Enumerate Temporisation de P secondes. \layout Enumerate Retrait de l'axe Z en vitesse travail vers le plan de retrait. \layout Subsection G90 \begin_inset LatexCommand \index{G90} \end_inset , G91 \begin_inset LatexCommand \index{G91} \end_inset : Modes de déplacement \begin_inset LatexCommand \label{sub:G90,-G91:-Set} \end_inset \layout Standard L'interprétation du code RS274/NGC peut se faire dans deux modes de déplacements : absolu ou incrémental. \layout Standard Pour se déplacer en mode absolu, programmer \family typewriter G90 \family default . En mode absolu, les valeurs d'axes X, Y, Z, A, B, C représentent les positions dans le système de coordonnées courant. Les exceptions à cette règle sont décrites dans la section \begin_inset LatexCommand \ref{sub:G81-à-G89:} \end_inset . \layout Standard Pour se déplacer en mode incrémental, programmer \family typewriter G91 \family default . En mode incrémental, les valeurs d'axes X, Y, Z, A, B, C représentent une valeur à ajouter à la position courante. \layout Standard Les valeurs I et J représentent toujours des incréments, quel que soit le mode de déplacement actif. La valeur de K représente un incrément à ajouter dans tous les cas sauf un (voir la section \begin_inset LatexCommand \ref{sub:G87:-Back-Boring} \end_inset ), dans lequel la signification du mode de déplacement change. \layout Section G92 \begin_inset LatexCommand \index{G92} \end_inset , G92.1 \begin_inset LatexCommand \index{G92.1} \end_inset , G92.2 \begin_inset LatexCommand \index{G92.2} \end_inset , G92.3 \begin_inset LatexCommand \index{G92.3} \end_inset : Décalage d'origine du système de coordonnées \begin_inset LatexCommand \label{sub:G92,-G92.1,-G92.2,} \end_inset \layout Standard Voir la section \begin_inset LatexCommand \ref{sub:-Systèmes-de-coordonnées} \end_inset pour une vue générale des systèmes de coordonnées. \layout Standard Pour donner au point actuel de nouvelles valeurs de coordonnées (sans faire de mouvement), programmer \family typewriter G92 X- Y- Z- A- B- C- \family default , où les mots d'axes contiennent les valeurs souhaîtées. Au moins un mot d'axe est obligatoire, les autres sont optionnels. Si il n'y a pas de mot d'axe pour un axe donné, les coordonnées de cet axe resteront inchangées. C'est une erreur si: \layout Enumerate Tous les mots d'axes sont omis. \layout Standard Quand \family typewriter G92 \family default est exécuté, l'origine du système de coordonnées courant est déplacée. Pour ce faire, les décalages d'origine sont calculés de sorte que les coordonné es du point courant concordent avec l'origine déplacée comme spécifié dans la ligne du G92. En plus, les paramètres 5211 à 5216 sont positionnés sur le décalage des axes X, Y, Z, A, B et C. Le décalage d'un axe correspond à la distance dont l'origine doit être déplacée afin que la coordonnée du point contrôlé, sur cet axe, ait la valeur spécifiée. \layout Standard Voici un exemple: Supposons que le point courant soit X=4 dans le système de coordonnées courant et que le décalage actuel de l'axe X soit à zéro, alors \family typewriter G92 x7 \family default passe le décalage de l'axe X à -3, positionne le paramètre 5211 à -3 et positionne la coordonnée en X du point courant à 7. \layout Standard Les décalages d'axes sont toujours utilisés quand un mouvement est spécifié en mode de déplacement absolu, en utilisant un des neuf systèmes de coordonnées (ceux désignés par \family typewriter G54 \family default - \family typewriter G59.3 \family default ). Ainsi, les neuf systèmes de coordonnées sont affectés par \family typewriter G92 \family default . \layout Standard Le fait d'être en mode de déplacement incrémental est sans effet sur l'action de \family typewriter G92 \family default . \layout Standard Des décalages non nuls peuvent déjà être actifs quand \family typewriter G92 \family default est appelé. Si c'est le cas, la nouvelle valeur de chaque décalage devient A+B, où A est le décalage voulu si l'ancien avait été nul, et B est l'ancien décalage. Par exemple, après le précédent exemple, la valeur de X au point courant est 7. Si \family typewriter G92 x9 \family default est alors programmé, le nouveau décalage de l'axe X devient -5, qui est calculé par \family typewriter [[7-9] + -3] \family default . \layout Standard Pour repasser un décalage d'axe à zéro, programmer \family typewriter G92.1 \family default ou \family typewriter G92.2 \family default . \family typewriter G92.1 \family default positionne les paramètres 5211 à 5216 à zéro, tandis que \family typewriter G92.2 \family default conserve leurs valeurs courantes inchangées. \layout Standard Pour positionner des valeurs de décalage d'axes aux valeurs données dans les paramètres 5211 à 5216, programmer \family typewriter G92.3 \family default . \layout Standard Vous pouvez positionner les décalages d'axes dans un programme et ré-utiliser les mêmes dans un autre programme. Programmer \family typewriter G92 \family default dans le premier programme, ce qui positionnera les paramètres 5211 à 5216. Ne pas utiliser G92.1 dans la suite du premier programme. Les valeurs des paramètres seront enregistrées lors de la sortie du premier programme et rétablies au chargement du second programme. Utiliser \family typewriter G92.3 \family default vers le début du deuxième programme, ce qui restaurera les décalages d'axes enregistrés dans le premier. Si d'autres programmes sont lancés entre le programme qui enregistre les décalages et celui qui les restaure, faire une copie du fichier de paramètres écrit par le premier programme et l'utiliser comme fichier de paramètres pour le deuxième programme. \layout Section G93 \begin_inset LatexCommand \index{G93} \end_inset , G94 \begin_inset LatexCommand \index{G94} \end_inset , G95 \begin_inset LatexCommand \index{G95} \end_inset : Choix des modes de vitesse \begin_inset LatexCommand \label{sub:G93,-G94:-Set} \end_inset \layout Standard Trois modes de vitesse sont reconnus: unités par minute, inverse du temps et unités par tour. Programmer G94 pour passer en mode unités par minute. Programmer G93 pour passer en mode inverse du temps. Programmer G95 pour passer en mode unités par tour. \layout Standard Dans le mode vitesse en unités par minute, le mot F est interprété pour indiquer que le point contrôlé doit se déplacer à un certain nombre de pouces par minute, de millimètres par minute, ou de degrés par minute, selon l'unité de longueur choisie pour les axes et quels types d'axes doivent se déplacer. \layout Standard Dans le mode vitesse en unités par tour, le mot F est interprété pour indiquer que le point contrôlé doit se déplacer à un certain nombre de pouces par tour de broche, de millimètres par tour, selon l'unité de longueur utilisée et quels axes doivent être déplacés. \layout Standard Dans le mode vitesse inverse du temps, le mot F signifie que le mouvement doit être terminé en [1 divisé par la valeur de F] minutes. Par exemple, si la valeur de F est 2.0, les mouvements doivent être terminés en 1/2 minute. \layout Standard Quand le mode vitesse inverse du temps est actif, le mot F doit apparaître sur chaque ligne contenant un mouvement G1, G2, ou G3. Les mots F qui sont sur des lignes sans G1, G2, ou G3 sont ignorés. Être en mode vitesse inverse du temps est sans effet sur les mouvements G0 (vitesse rapide). C'est une erreur si: \layout Itemize Le mode vitesse inverse du temps est actif et qu'une ligne avec G1, G2, ou G3 (explicitement ou implicitement) n'a pas de mot F. \layout Itemize Une nouvelle vitesse n'a pas été spécifiée après un passage en G94 ou G95. \layout Section G96 \begin_inset LatexCommand \index{G96} \end_inset , G97 \begin_inset LatexCommand \index{G97} \end_inset : Modes de contrôle de la broche \begin_inset LatexCommand \index{mode} \end_inset \begin_inset LatexCommand \label{sec:G96,-G97:-Broche} \end_inset \layout Standard Deux modes de contrôle de la broche sont reconnus: tours par minute, et vitesse de coupe constante. Programmer G96 D- S- pour valider une vitesse de coupe constante de S pieds par minute si G20 est actif, ou mètres par minute si G21 est actif. La vitesse de rotation maximale est indiquée par la valeur de D- en tours par minute. \layout Standard Programmer G97 pour activer le mode vitesse en tours par minute. \layout Standard C'est une erreur si: \layout Itemize S n'est pas spécifié avec G96. \layout Itemize Une vitesse est spécifiée en mode G96 et la broche ne tourne pas. \layout Section G98 \begin_inset LatexCommand \index{G98} \end_inset , G99 \begin_inset LatexCommand \index{G99} \end_inset : Options du plan de retrait \begin_inset LatexCommand \label{sub:G98,-G99:-Set} \end_inset \layout Standard Quand la broche se rétracte pendant les cycles préprogrammés, il existe deux options pour indiquer comment elle se rétracte: (1) Retrait perpendiculair e au plan de travail courant jusqu'à la position indiquée par le mot R, ou (2) Retrait perpendiculaire au plan de travail courant jusqu'à la position qui était celle de cet axe juste avant le début du cycle préprogrammé (à moins que cette position ne soit inférieure à celle indiquée par le mot R, auquel cas, c'est cette dernière qui serait utilisée. \layout Standard Pour utiliser l'option (1), programmer \family typewriter G99 \family default . Pour utiliser l'option (2), programmer \family typewriter G98 \family default . Ne pas oublier que le mot R a différentes significations en mode de déplacement absolu et en mode de déplacement incrémental. \layout Chapter M Codes \layout Section M0 \begin_inset LatexCommand \index{M0} \end_inset , M1 \begin_inset LatexCommand \index{M1} \end_inset , M2 \begin_inset LatexCommand \index{M2} \end_inset , M30 \begin_inset LatexCommand \index{M30} \end_inset , M60 \begin_inset LatexCommand \index{M60} \end_inset : Arrêts de programme \begin_inset LatexCommand \label{sub:M0,-M1,-M2,} \end_inset \layout Standard Pour stopper temporairement un programme en cours (quelle que soit la position du bouton d'arrêt facultatif), programmer M0. \layout Standard Pour stopper temporairement un programme en cours (mais seulement si le bouton d'arrêt optionnel est activé), programmer M1. \layout Standard Il est permis de programmer \family typewriter M0 \family default et \family typewriter M1 \family default en mode données manuelles (MDI), mais l'effet ne sera probablement pas perceptible, puisque le comportement normal en mode MDI est de s'arrêter, de toute façon, à la fin de chaque ligne. \layout Standard Pour procéder à l'échange de porte-pièce avec le chargeur de pièces et stopper temporairement un programme en cours (quel que soit le réglage du bouton d'arrêt facultatif), programmer M60. \layout Standard Si un programme est stoppé par M0, M1, ou M60, en appuyant sur le bouton de départ cycle, le programme reprend à la ligne suivante. \layout Standard Pour finir un programme, programmer \family typewriter M2 \family default . Pour changer le porte-pièce du chargeur et finir un programme, programmer \family typewriter M30 \family default . Ces deux commandes produisent les effets suivants: \layout Enumerate Les décalages d'axes sont mis à zéro (comme avec \family typewriter G92.2 \family default ) et les décalages d'origine sont mis aux valeurs par défaut (comme avec \family typewriter G54 \family default ). \layout Enumerate Le plan de travail actif devient XY (comme avec \family typewriter G17 \family default ). \layout Enumerate Le mode de déplacement devient absolu (comme avec \family typewriter G90 \family default ). \layout Enumerate La vitesse travail passe en unités par minute (comme avec \family typewriter G94 \family default ). \layout Enumerate Les correcteurs de vitesse sont activés (comme avec \family typewriter M48 \family default ). \layout Enumerate Les compensations d'outil sont désactivées (comme avec \family typewriter G40 \family default ). \layout Enumerate La broche est arrêtée (comme avec \family typewriter M5 \family default ). \layout Enumerate Le mode mouvement courant devient G1 (comme avec \family typewriter G1 \family default ). \layout Enumerate L'arrosage est arrêté (comme avec \family typewriter M9 \family default ). \layout Standard Plus aucune ligne de code RS274/NGC ne sera exécutée après exécution de la commande M2 ou M30. Presser le départ cycle relance le programme au début du fichier. \layout Section M3 \begin_inset LatexCommand \index{M3} \end_inset , M4 \begin_inset LatexCommand \index{M4} \end_inset , M5 \begin_inset LatexCommand \index{M5} \end_inset : Contrôle de broche \begin_inset LatexCommand \label{sub:M3,-M4,-M5:} \end_inset \layout Standard Pour démarrer la rotation de la broche en sens horaire à la vitesse programmée courante, programmer \family typewriter M3 \family default . \layout Standard Pour démarrer la rotation de la broche en sens anti-horaire à la vitesse programmée courante, programmer M4. \layout Standard Pour arrêter la rotation de la broche, programmer \family typewriter M5 \family default . \layout Standard Il est permis d'utiliser \family typewriter M3 \family default ou \family typewriter M4 \family default si la vitesse de broche est à zéro. Si cela est fait (ou si le bouton de correction de vitesse est activé mais mis à zéro), la broche ne tournera pas, si, plus tard la vitesse de broche est augmentée (ou que le correcteur de vitesse est augmenté), la broche va se mettre en rotation. Il est permis d'utiliser \family typewriter M3 \family default ou \family typewriter M4 \family default quand la broche est déjà en rotation ou d'utiliser \family typewriter M5 \family default quand la broche est déjà arrêtée. \layout Section M6 \begin_inset LatexCommand \index{M6} \end_inset : Appel d'outil \begin_inset LatexCommand \label{sub:M6:-Appel-d'outil} \end_inset \layout Standard Pour changer l'outil actuellement dans la broche par un autre, nouvellement sélectionné en utilisant le mot T, voir la section \begin_inset LatexCommand \ref{sub:T:-Choix-outil} \end_inset ), programmer \family typewriter M6 \family default . Un changement d'outil complet donnera: \layout Itemize La rotation de la broche est arrêtée. \layout Itemize L'outil qui a été sélectionné (par le mot T sur la même ligne ou sur n'importe quelle ligne après le changement d'outil précédent), sera placé dans la broche. Le mot T est un nombre entier indiquant le numéro du slot d'outil dans le carrousel (non son index). \layout Itemize Si l'outil sélectionné n'est pas déjà dans la broche avant le changement d'outil, l'outil qui était dans la broche (s'il y en avait un) va être replacé dans son emplacement dans le chargeur. \layout Itemize Les coordonnées des axes seront arrêtées dans les mêmes positions absolues qu'elles avaient avant le changement d'outil (mais la broche devra peut-être être réorientée). \layout Itemize Aucune autre modification ne sera apportée. Par exemple, l'arrosage continue à couler durant le changement d'outil à moins qu'il ne soit arrêté par \family typewriter M9 \family default . \layout Standard Le changement d'outil peut inclure des mouvements d'axes pendant son exécution. Il est permis, mais pas utile, de programmer un changement d'outil avec le même outil que celui qui est déjà dans la broche. Il est permis également, si il n'y a pas d'outil dans le slot sélectionné, dans ce cas, la broche sera vide après le changement d'outil. Si le slot zéro a été le dernier sélectionné, il n'y aura pas d'outil dans la broche après le changement. \layout Section M7 \begin_inset LatexCommand \index{M7} \end_inset , M8 \begin_inset LatexCommand \index{M8} \end_inset , M9 \begin_inset LatexCommand \index{M9} \end_inset : Contrôle d'arrosage \begin_inset LatexCommand \label{sub:M7,-M8,-M9:} \end_inset \layout Standard Pour activer l'arrosage par brouillard (gouttelettes), programmer \family typewriter M7 \family default . \layout Standard Pour activer l'arrosage fluide, programmer \family typewriter M8 \family default . \layout Standard Pour arrêter tous les arrosages, programmer \family typewriter M9 \family default . \layout Standard Il est toujours permis d'utiliser une de ces commandes, que les arrosages soient arrêtés ou non. \layout Section M48 \begin_inset LatexCommand \index{M48} \end_inset , M49 \begin_inset LatexCommand \index{M49} \end_inset : Contrôle des correcteurs de vitesse \begin_inset LatexCommand \label{sub:M48,-M49:-Correcteurs} \end_inset \begin_inset LatexCommand \index{M48} \end_inset \begin_inset LatexCommand \index{M49} \end_inset \layout Standard Pour autoriser les potentiomètres de corrections de vitesses de broche et celui de vitesse travail, programmer \family typewriter M48 \family default . Pour les inhiber tous les deux, programmer \family typewriter M49 \family default . Voir la section \begin_inset LatexCommand \ref{sub:-Interaction-vitesses} \end_inset pour plus de détails. Il est permis d'autoriser ou d'inhiber ces potentiomètres quand ils sont déjà autorisés ou inhibés. Ces potentiomètres peuvent aussi être activés individuellement en utilisant les commandes M50 et M51 comme décrit dans les sections \begin_inset LatexCommand \ref{sec:M50:-Correcteur-vitesse-travail} \end_inset et \begin_inset LatexCommand \ref{sec:M51:-Correcteur-vitesse-broche} \end_inset . \layout Section M50 \begin_inset LatexCommand \index{M50} \end_inset : Contrôle du correcteur de vitesse travail \begin_inset LatexCommand \label{sec:M50:-Correcteur-vitesse-travail} \end_inset \begin_inset LatexCommand \index{M50} \end_inset \layout Standard Pour autoriser le potentiomètre de correction de vitesse travail, programmer \family typewriter M50 \family default ou \family typewriter M50 P1 \family default . Pour inhiber ce potentiomètre, programmer \family typewriter M50 P0 \family default . Quand il est inhibé, le potentiomètre de correction de vitesse n'a plus aucune influence et les mouvements seront exécutés à la vitesse de travail programmée. (à moins que ne soit actif un correcteur de vitesse adaptative). \layout Section M51 \begin_inset LatexCommand \index{M51} \end_inset : Contrôle du correcteur de vitesse broche \begin_inset LatexCommand \label{sec:M51:-Correcteur-vitesse-broche} \end_inset \begin_inset LatexCommand \index{M51} \end_inset \layout Standard Pour autoriser le potentiomètre de correction de vitesse de la broche, programme r \family typewriter M51 \family default ou \family typewriter M51 P1 \family default . Pour inhiber ce potentiomètre programmer \family typewriter M51 P0 \family default . Quand il est inhibé, le potentiomètre de correction de vitesse de broche n'a plus aucune influence et la broche tournera à la vitesse programmée, en utilisant le mot S comme décrit dans la section \begin_inset LatexCommand \ref{sub:S:-Réglage-broche} \end_inset . \layout Section M52 \begin_inset LatexCommand \index{M52} \end_inset : Contrôle de vitesse adaptative \begin_inset LatexCommand \label{sec:M52:-Contrôle-vitesse-adaptative} \end_inset \begin_inset LatexCommand \index{M52} \end_inset \layout Standard Pour utiliser une vitesse adaptative, programmer \family typewriter M52 \family default ou \family typewriter M52 P1 \family default . Pour stopper l'utilisation d'une vitesse adaptative, programmer \family typewriter M52 P0 \family default . Quand la vitesse adaptative est utilisée, certaines valeurs externes sont utilisées avec les correcteurs de vitesse de l'interface utilisateur et les vitesses programmées pour obtenir la vitesse travail. Dans EMC2, la HAL pin \family typewriter motion.adaptive-feed \family default est utilisée dans ce but. Les valeurs de \family typewriter motion.adaptive-feed \family default doivent être dans une échelle comprise entre 0 (pas de vitesse) et 1 (pleine vitesse). \layout Section M53 \begin_inset LatexCommand \index{M53} \end_inset : Contrôle de coupure de vitesse \begin_inset LatexCommand \label{sec:M53:-Contrôle-coupure-vitesse} \end_inset \begin_inset LatexCommand \index{M53} \end_inset \layout Standard Pour autoriser le bouton de coupure de vitesse, programmer \family typewriter M53 \family default ou \family typewriter M53 P1 \family default . Pour inhiber ce bouton programmer \family typewriter M53 P0 \family default . Autoriser la coupure de vitesse permet d'interrompre les mouvements par le biais d'une coupure de vitesse. Dans EMC2, la HAL pin \family typewriter motion.feed-hold \family default est utilisée pour cette fonctionnalité. Une valeur de 1 provoque un arrêt des mouvements (si \family typewriter M53 \family default est actif). \layout Section M62 à M65: Contrôle de sortie digitale \begin_inset LatexCommand \label{sec:M62-à-M65:} \end_inset \begin_inset LatexCommand \index{M62} \end_inset \begin_inset LatexCommand \index{M63} \end_inset \begin_inset LatexCommand \index{M64} \end_inset \begin_inset LatexCommand \index{M65} \end_inset \layout Standard Pour contrôler un bit de sortie digitale, programmer \family typewriter M- P- \family default , où le mot M doit être compris entre 62 et 65, et le mot P compris entre 0 et un maximum défini selon l'implémentation. \layout Description M62 \begin_inset LatexCommand \index{M62} \end_inset Activer la sortie digitale synchronisée avec un mouvement. \layout Description M63 \begin_inset LatexCommand \index{M63} \end_inset Désactiver la sortie digitale synchronisée avec un mouvement. \layout Description M64 \begin_inset LatexCommand \index{M64} \end_inset Activer immédiatement la sortie digitale. \layout Description M65 \begin_inset LatexCommand \index{M65} \end_inset Désactiver immédiatement la sortie digitale. \layout Section M66: Contrôle d'entrée digitale \begin_inset LatexCommand \label{sec:M66:} \end_inset \begin_inset LatexCommand \index{M66} \end_inset \layout Standard Pour contrôler un bit d'entrée digitale, programmer \family typewriter M66 P- E- L- Q- \family default , où le mot P et le mot E doivent être compris entre 0 et un maximum défini selon l'implémentation. Un seul des mots P ou E doit être présent. C'est une erreur si ils sont présents tous les deux. \layout Description M66 \begin_inset LatexCommand \index{M66} \end_inset Attente d'une entrée \layout Itemize Le mot P spécifie le numéro d'une entrée digitale. \layout Itemize Le mot E spécifie le numéro d'une entrée analogique. \layout Itemize Le mot L spécifie le type d'attente: \layout List \labelwidthstring 00.00.0000 0 - WAIT_MODE_IMMEDIATE - pas d'attente, retour immédiat. La valeur courante de l'entrée est stockée dans le paramètre #5399 \layout List \labelwidthstring 00.00.0000 1 - WAIT_MODE_RISE - attente d'un front montant sur l'entrée. \layout List \labelwidthstring 00.00.0000 2 - WAIT_MODE_FALL - attente d'un front descendant sur l'entrée. \layout List \labelwidthstring 00.00.0000 3 - WAIT_MODE_HIGH - attente d'un état logique HIGH sur l'entrée. \layout List \labelwidthstring 00.00.0000 4 - WAIT_MODE_LOW - attente d'un état logique LOW sur l'entrée. \layout Standard \begin_inset Note collapsed true \layout Standard Le type 0 est le seul autorisé pour une entrée analogique. \end_inset \layout Itemize Le mot Q spécifie le timeout pour l'attente. Si le timeout est dépassé, l'attente est interrompue et la variable #5399 positionnée à -1. \layout Standard M66 attends un nouvel événement sur l'entrée ou l'arrêt de l'exécution du programme, jusqu'à ce que l'événement sélectionné (ou le timeout programmé) ne survienne. C'est une erreur de programmer une valeur de timeout à 0 dans tous les types, sauf le type 0. \layout Standard C'est également une erreur de programmer M66 avec les deux mots, un mot P et un mot E (ce qui reviendrait à sélectionner à la fois une entrée analogiqu e et une digitale). \layout Section M100 à M199 \begin_inset LatexCommand \index{M100..199} \end_inset : Commandes définies par l'utilisateur \begin_inset LatexCommand \label{sec:M100-à-M199:} \end_inset \layout Standard Pour invoquer une commande définie par l'utilisateur, programmer M- P- Q- où P et Q sont facultatifs. Le programme externe `` Mnnn'' dans le répertoire [DISPLAY] PROGRAM_PREFIX est exécuté avec les valeurs P et Q comme étant ses deux arguments. L'exécution du fichier RS274NGC passe en pause jusqu'à ce que le programme invoqué ne se termine. \layout Standard C'est une erreur si: \layout Itemize La commande spécifiée n'existe pas. \layout Chapter O Codes \begin_inset LatexCommand \index{O Codes} \end_inset \begin_inset LatexCommand \label{cha:O-Codes} \end_inset \layout Standard Les O-codes permettent le contrôle de flux dans les programmes NC. Chaque block est associé à une adresse, qui est la valeur utilisée après le O. Il faut prendre soin de bien faire correspondre les adresses des codes O. \layout Standard Le comportement est indéfini si: \layout Itemize D'autres mots sont utilisés sur une ligne contenant un mot O. \layout Itemize Un commentaire est utilisé sur une ligne contenant un code O. \layout Section Sous-programmes: \begin_inset Quotes eld \end_inset sub \begin_inset LatexCommand \index{sub} \end_inset \begin_inset Quotes erd \end_inset , \begin_inset Quotes eld \end_inset endsub \begin_inset LatexCommand \index{endsub} \end_inset \begin_inset Quotes erd \end_inset , \begin_inset Quotes eld \end_inset return \begin_inset LatexCommand \index{return} \end_inset \begin_inset Quotes erd \end_inset , \begin_inset Quotes eld \end_inset call \begin_inset LatexCommand \index{call} \end_inset \begin_inset Quotes erd \end_inset \layout Standard Les sous-programmes s'étendent d'un \family typewriter \series bold O- sub \family default \series default à un \family typewriter \series bold O- endsub \family default \series default . Les lignes, à l'intérieur du sous-programme (le corps du sous-programme), ne sont pas exécutées dans l'ordre, mais elles sont exécutées à chaque fois que le sous-programme est appelé avec un \family typewriter \series bold O- call \series default . \layout LyX-Code O100 sub (sous-programme pour aller à l'origine programme) \newline G0 X0 Y0 Z0 \newline O100 endsub \newline (plusieurs lignes) \newline O100 call \layout Standard À l'intérieur d'un sous-programme, \family typewriter \series bold O- return \family default \series default peut être exécuté, pour retourner immédiatement au code appelant, comme si \family typewriter \series bold O- endsub \family default \series default avait été rencontré. \layout Standard \family typewriter \series bold O- call \family default \series default peut prendre jusqu'à 30 arguments optionnels, qui sont passés au sous-programme comme \family typewriter #1 \family default , \family typewriter #2 \family default , ..., #N. Les paramètres de #N+1 à #30 ont la même valeur dans le contexte de l'appel. Au retour du sous-programme, les valeurs des paramètres #1 jusqu'à #30 (quel que soit le nombre d'arguments) sont restaurés aux valeurs qu'ils avaient avant l'appel. \layout Standard Parce que `` 1 2 3'' est analysé comme le nombre 123, les paramètres doivent être placés entre crochets. L'appel de sous-programme suivant, s'effectue avec 3 arguments: \layout LyX-Code O200 call [1] [2] [3] \layout Standard Les corps de sous-programme ne peuvent pas être imbriqués. Ils ne peuvent être appelés qu'après avoit été définis. Ils peuvent être appelés depuis d'autres fonctions et peuvent s'appeler eux même récursivement, s'il est judicieux de le faire. Le niveau maximum d'imbrication des sous-programmes est de 10. \layout Standard Les sous-programmes n'ont pas de \begin_inset Quotes eld \end_inset valeur de retour \begin_inset Quotes erd \end_inset , mais ils peuvent changer la valeur des paramètres au dessus de #30 et ces changements sont visibles depuis le code appelant. Les sous-programmes peuvent aussi changer la valeur des paramètres nommés globaux. \layout Section Boucles: \begin_inset Quotes eld \end_inset do \begin_inset LatexCommand \index{do} \end_inset \begin_inset Quotes erd \end_inset , \begin_inset Quotes eld \end_inset while \begin_inset LatexCommand \index{while} \end_inset \begin_inset Quotes erd \end_inset , \begin_inset Quotes eld \end_inset endwhile \begin_inset LatexCommand \index{endwhile} \end_inset \begin_inset Quotes erd \end_inset , \begin_inset Quotes eld \end_inset break \begin_inset LatexCommand \index{break} \end_inset \begin_inset Quotes erd \end_inset , \begin_inset Quotes eld \end_inset continue \begin_inset LatexCommand \index{continue} \end_inset \begin_inset Quotes erd \end_inset \layout Standard La boucle \family typewriter \series bold while \family default \series default a deux structures possibles: while/endwhile et do/while. Dans chaque cas, la boucle est quittée quand la condition du \begin_inset Quotes eld \end_inset while \begin_inset Quotes erd \end_inset devient fausse. \layout LyX-Code (dessine la forme d'une dent de scie) \newline F100 \newline #1 = 0 \newline O101 while [#1 lt 10] \newline G1 X0 \newline G1 Y[#1/10] X1 \newline #1 = [#1+1] \newline O101 endwhile \layout Standard À l'intérieur d'une boucle while, \family typewriter \series bold O- break \series default , \family default quitte immédiatement la boucle et \family typewriter \series bold O- continue \series default , \family default saute immédiatement à la prochaine évaluation de la condition du \family typewriter while \family default . Si elle est vraie, la boucle recommence au début. Si elle est fausse, la boucle est quittée. \layout Section Conditionnel: \begin_inset Quotes eld \end_inset if \begin_inset LatexCommand \index{if} \end_inset \begin_inset Quotes erd \end_inset , \begin_inset Quotes eld \end_inset else \begin_inset LatexCommand \index{else} \end_inset \begin_inset Quotes erd \end_inset , \begin_inset Quotes eld \end_inset endif \begin_inset LatexCommand \index{endif} \end_inset \begin_inset Quotes erd \end_inset \layout Standard Le \family typewriter \series bold if \family default \series default conditionnel exécute un groupe d'instructions si sa condition est vraie et un autre groupe si elle est fausse. \layout LyX-Code (Ajuste la vitesse travail en fonction d'une variable) \newline O102 if [#2 GT 5] \newline F100 \newline O102 else \newline F200 \newline O102 endif \layout Section Indirection \layout Standard L'adresse de O- peut être donnée par un paramètre ou un calcul. \layout LyX-Code O[#101+2] call \layout Section Calcul des valeurs dans les mots O \layout Standard Dans les mots O-, les paramètres (section \begin_inset LatexCommand \ref{sub:-Paramètres-numérotés} \end_inset ), les expressions (section \begin_inset LatexCommand \ref{sub:-Expressions} \end_inset ), les opérateurs binaires (section \begin_inset LatexCommand \ref{sub:-Opérateurs-binaires} \end_inset ) et les fonctions (tableau \begin_inset LatexCommand \ref{cap:Fonctions} \end_inset ), sont particulièrement intéressants. \layout Chapter Autres Codes \layout Section F: Réglage de la vitesse travail \begin_inset LatexCommand \label{sub:F:-Réglage-vitesse} \end_inset \layout Standard Pour régler la vitesse d'avance, programmer \family typewriter F- \family default . L'application de la vitesse est telle que décrite dans la section \begin_inset LatexCommand \ref{sub:-Vitesse-d'avance} \end_inset , à moins que le mode vitesse inverse du temps ne soit actif, dans ce cas, la vitesse est telle que décrite dans la section \begin_inset LatexCommand \ref{sub:G93,-G94:-Set} \end_inset . \layout Section S: Réglage de la vitesse de rotation de la broche \begin_inset LatexCommand \label{sub:S:-Réglage-broche} \end_inset \layout Standard Pour régler la vitesse en tours par minute (tr/mn) de la broche, programmer \family typewriter S- \family default . La broche va tourner à cette vitesse quand elle sera programmée pour tourner. Il est permis de programmer un mot S que la broche tourne ou non. Si le potentiomètre de correction de vitesse broche est autorisé et n'est pas positionné sur 100%, la vitesse de broche sera différente de celle programmée. Il est permis de programmer S0, la broche ne tournera pas. C'est une erreur si: \layout Itemize La valeur de S est négative. \layout Standard Comme décrit dans la section \begin_inset LatexCommand \ref{sub:G84:-Taraudage-à-droite} \end_inset , si un \family typewriter cycle préprogrammé G84 \family default (taraudage) est actif et que les potentiomètres de vitesse et d'avance sont autorisés, celui qui a le réglage le plus bas sera utilisé. La vitesse de rotation et d'avance resterons synchronisées. Dans ce cas, la vitesse peut différer de celle programmée, même si le potentiom ètre de correction de vitesse travail est sur 100%. \layout Section T: Choix de l'outil \begin_inset LatexCommand \label{sub:T:-Choix-outil} \end_inset \layout Standard Pour sélectionner un outil, programmer \family typewriter T- \family default , où la valeur de T correspond au numéro du slot d'outil dans le carrousel. L'outil ne sera appelé et changé que quand un \family typewriter M6 \family default sera programmé (voir la section \begin_inset LatexCommand \ref{sub:M6:-Appel-d'outil} \end_inset ). Le mot T peut apparaitre sur la même ligne que le \family typewriter M6 \family default ou sur une ligne précédente. Il est permis, mais normalement inutile, qu'un mot T apparaisse à plus de deux lignes avant, sans changement d'outil. Le carrousel peut bouger, seulement le plus récent mot T ne prendra effet qu'au prochain changement d'outil. Il est permis de programmer \family typewriter T0 \family default , aucun outil ne sera sélectionné. C'est utile pour avoir la broche vide. C'est une erreur si: \layout Itemize Un valeur négative de T est utilisée. \layout Itemize Une valeur de T supérieure au nombre de slot d'outils dans le carrousel est utilisée. \layout Standard Sur certaines machines, le carrousel se déplace lorsque le mot T est programmé, avec l'usinage en cours. Sur ces machines, programmer T plusieurs lignes de texte avant le changement d'outil permet de gagner du temps. Une pratique de programmation courante pour ces types de machines, consiste à placer le mot T pour le prochain outil sur la ligne suivant le changement d'outil. Cela laisse au carrousel tout le temps pour se positionner. \layout Chapter Ordre d'exécution \begin_inset LatexCommand \label{sec:Ordre-d'exécution} \end_inset \layout Standard L'ordre d'exécution des éléments d'une ligne est essentielle à la sécurité et l'efficacité d'une machine. Les éléments sont exécutés dans l'ordre indiqué ci-dessous, si ils se trouvent sur la même ligne. \layout Enumerate Commentaire (message inclu) \layout Enumerate Positionnement du mode de vitesses (G93, G94). \layout Enumerate Réglage de la vitesse travail (F). \layout Enumerate Réglage de la vitesse de rotation de la broche (S). \layout Enumerate Sélection de l'outil (T). \layout Enumerate Appel d'outil (M6). \layout Enumerate Marche/Arrêt broche (M3, M4, M5). \layout Enumerate Marche/Arrêt arrosages (M7, M8, M9). \layout Enumerate Activation/Inhibition correcteurs de vitesse (M48, M49). \layout Enumerate Temporisation (G4). \layout Enumerate Choix du plan de travail (G17, G18, G19). \layout Enumerate Choix de l'unité de longueur (G20, G21). \layout Enumerate Activation/Désactivation de la compensation de rayon d'outil (G40, G41, G42) \layout Enumerate Activation/Désactivation de la compensation de longueur d'outil (G43, G49) \layout Enumerate Sélection du système de coordonnées (G54, G55, G56, G57, G58, G59, G59.1, G59.2, G59.3). \layout Enumerate Réglage du mode de trajectoire (G61, G61.1, G64) \layout Enumerate Réglage du mode de déplacement (G90, G91). \layout Enumerate Réglage du type de retrait (G98, G99). \layout Enumerate Prise d'origine machine (G28, G30) ou établissement du système de coordonnées (G10) ou encore, réglage des décalages d'axes (G92, G92.1, G92.2, G94). \layout Enumerate Effectuer les mouvements (G0 à G3, G33, G80 à G89), tels que modifiés (éventuell ement) par G53. \layout Enumerate Arrêt (M0, M1, M2, M30, M60). \layout Chapter G-Code: Bonnes pratiques \layout Section Utiliser un nombre de décimales approprié \layout Standard Utilisez au plus 3 chiffres après la virgule pour l'usinage en millimètres et au plus 4 chiffres après la virgule pour l'usinage en pouces. En particulier, les contrôles de tolérance des arcs sont faits pour .001 et .0001 selon les unités actives. \layout Section Utiliser les espaces de façon cohérente \layout Standard Le G-code est plus lisible quand au moins un espace apparaît avant les mots. S'il est permis d' insérer des espaces blancs au milieu des chiffres, il faut éviter de le faire. \layout Section Préférer le \begin_inset Quotes eld \end_inset format centre \begin_inset Quotes erd \end_inset pour les arcs \layout Standard Les arcs en format centre (qui utilisent \family typewriter I- J- K- \family default au lieu de \family typewriter R- \family default ) se comportent de façon plus précise que ceux en format rayon, particulièrement pour des angles proche de 180 et 360 degrés. \layout Section Placer les codes modaux importants au début des programmes \layout Standard Lorsque l'exécution correcte de votre programme dépend de paramètres modaux, n'oubliez pas de les mettre au début du programme. Des modes incorrects peuvent provenir d'un programme précédent ou depuis des entrées manuelles. \layout Standard Une bonne mesure préventive consiste à placer la ligne suivante au début de tous les programmes: \layout LyX-Code G17 G21 G40 G49 G54 G80 G90 G94 \layout Standard (plan XY, mode mm, annulation de la compensation de rayon, et de longueur, sytème de coordonnées numéro 1, arrêt des mouvements, déplacements absolus, mode vitesse/minute) \layout Standard Peut-être que le code modal le plus important est le réglage des unités machine. Si les codes G20 ou G21, ne sont pas inclus, selon les machines l'échelle d'usinage sera différente. D'autres valeurs comme le plan de retrait des cycles préprogrammés peuvent être importantes. \layout Section Ne pas mettre trop de choses sur une ligne \layout Standard Ignorer le contenu de la section \begin_inset LatexCommand \ref{sec:Ordre-d'exécution} \end_inset et ne pas écrire de ligne de code qui laisse la moindre ambiguïté. De même, ne pas régler un paramètre et l'utiliser sur la même ligne, même si la sémantique est bien définie. (Exception: Mise à jour d'une variable à une nouvelle valeur, comme \family typewriter #1=[#1+#2 \family default ]) \layout Section Ne pas utiliser les numéros de ligne \layout Standard Les numéros de ligne n'apportent rien. Quand des numéros de ligne sont rapportés dans les messages d'erreur, ces numéros font référence aux numéros de lignes à l'intérieur du programme, pas aux valeurs des mots N. \layout Section Lorsque plusieurs systèmes de coordonnées sont déplacés, envisager le mode vitesse inverse du temps \layout Standard Parce que la signification d'un mot F en mètres par minute varie selon les axes à déplacer et parce que la quantité de matière enlevée ne dépend pas que de la vitesse travail, il peut être plus simple d'utiliser G93, vitesse inverse du temps pour atteindre l'enlévement de matière souhaîté. \layout Standard \begin_inset Include \input{tool_compensation_fr.lyx} preview false \end_inset \layout Chapter Différences entre le g-code d'EMC2 et le RS274NGC \layout Section Différences changeant la signification d'un programme correctement écrit en RS274NGC \layout Subsection Position après un changement d'outil \layout Standard Dans EMC2, la machine ne revient pas à sa position initiale après un changement d'outil. Ce choix a été fait parce que le nouvel outil pourrait être plus long que l'ancien, rendant le retour de la machine à sa position initiale, impossible sans heurter la pièce. \layout Subsection Les décalages sont dans les unités du fichier ini \layout Standard Dans EMC2, les valeurs stockées dans les paramètres des points d'origine G28 et G30, des systèmes de coordonnées P1\SpecialChar \ldots{} P9 et du décalage G92 sont dans les unités définies dans le fichier ini. Cette différence existe parce que, sinon, la signification d'un emplacement changeait selon que G20 ou G21 était actif lorsque G28, G30, G10, L2, ou G92.3 était programmé. \layout Subsection Les longueurs/diamètres de la table d'outils sont dans les unités du fichier ini \layout Standard Dans EMC2, les longueurs (compensation) et diamètres de la table d'outils sont seulement dans les unités du fichier ini. Cette différence existe parce que autrement, la longueur d'un outil et son diamètre aurait changé selon que G20 ou G21 aurait été actif dans les modes G43, G41, G42. Ce qui aurait rendu impossible, sans modification de la table d'outils, l'exécution de g-code avec la machine en unités non natives, même pour un g-code bien écrit (ligne en début avec G20 ou G21 et mêmes unités tout au long du programme). \layout Subsection G84, G87 non implémentés \layout Standard G84 et G87 ne sont pas actuellement implémentés, mais serons peut être ajoutés à de futures versions d'emc2. \layout Subsection G28, G30 avec des mots d'axes \layout Standard Quand \family typewriter G28 \family default ou \family typewriter G30 \family default est programmé avec un mot d'axe présent, EMC2 déplace cet axe seul. Il est commun sur les autres contrôles machine. Pour déplacer certains axes vers un point intermédiaire puis les déplacer tous vers un point pré-défini, écrire deux lignes de gcode: \layout LyX-Code G0 X- Y- (Les axes se déplacent vers le point intermédiaire) \newline G28 (Les axes se déplacent vers leurs origines) \layout Subsection M62, M63 non implémentés \layout Standard M62 et M63 ne sont pas encore implémentés, mais serons peut être ajoutés à de futures versions d'emc2.. \layout Subsection G0 réduit les longs mouvements angulaires pour les rendre inférieurs à un tour \layout Standard Comme décrit précédemment, G0 réduit les mouvements angulaires à moins d'un tour. Ce qui peut produire des trajectoires différentes de celles produites avec RS274NGC. \layout Section Différences ne changeant pas la signification des programmes bien écrits en RS274NGC \layout Subsection G33, G76 codes de taraudage \layout Standard Ces codes ne sont pas définis dans RS274NGC. \layout Subsection G38.2 \layout Standard La pointe de la sonde n'est pas rétractée après un mouvement G38.2. Ce mouvement de retrait sera peut être ajouté dans de futures versions d'emc2. \layout Subsection G38.3\SpecialChar \ldots{} G38.5 \layout Standard Ces codes ne sont pas définis dans RS274NGC \layout Subsection O-codes \layout Standard Ces codes ne sont pas définis dans RS274NGC \layout Subsection M50\SpecialChar \ldots{} M53 survitesses \layout Standard Ces codes ne sont pas définis dans RS274NGC \layout Subsection G43, G43.1 \layout Subsubsection Longueurs d'outil négatives \layout Standard Les spécifications du RS274NGC disent \begin_inset Quotes eld \end_inset il est prévu que \begin_inset Quotes erd \end_inset toutes les longueurs d'outils soient positives. Toutefois, G43 fonctionne aussi avec des longueurs d'outils négatives. \layout Subsubsection Outils de tour \layout Standard La compensation de longueur d'outil G43 peut décaler l'outil dans les deux dimensions X et Z. Cette fonctionnalité est très utile sur les tours. \layout Subsubsection Longueurs d'outil dynamiques \layout Standard EMC2 permet la spécification d'une longueur d'outil calculée par \family typewriter G43.1 I K. \layout Subsection G41.1, G42.1 \layout Standard EMC2 permet la spécification dans le gcode d'un diamètre d'outil et sur un tour, de son orientation. Le format est \family typewriter G41.1/G42.1 D- L \family default -, où \family typewriter D \family default est le diamètre et \family typewriter L \family default (si spécifié) est l'orientation de l'outil de tour. \layout Subsection G43 sans mot H \layout Standard Dans ngc, cela n'est pas permis. Dans EMC2, il règle la cote de longueur du décalage pour l'outil courant. Si aucun outil n'est chargé actuellement, c'est une erreur. Cette différence a été apportée pour que l'utilisateur n'ait pas à spécifier le numéro d'outil à deux endroits pour chaque changement d'outil et parce que c'est plus cohérent avec la manière de travailler de G \family typewriter 41/G42 \family default quand le mot D n'est pas spécifié. \layout Subsection Axes U, V et W \layout Standard EMC2 gère des machines avec un maximum de 9 axes en définissant un jeu supplémen taire de 3 axes linéaires nommés U, V et W. \the_end