#LyX 1.3 created this file. For more info see http://www.lyx.org/ \lyxformat 221 \textclass book \begin_preamble \usepackage{a4} \end_preamble \language frenchb \inputencoding default \fontscheme bookman \graphics default \float_placement !h \paperfontsize 10 \spacing single \papersize Default \paperpackage a4 \use_geometry 0 \use_amsmath 0 \use_natbib 0 \use_numerical_citations 0 \paperorientation portrait \secnumdepth 5 \tocdepth 5 \paragraph_separation skip \defskip smallskip \quotes_language english \quotes_times 2 \papercolumns 1 \papersides 2 \paperpagestyle default \layout Chapter Systèmes de coordonnées et décalage G92 \layout Section Introduction \layout Standard Vous avez vu comme il est pratique d'utiliser la compensation de longueur d'outil, elle évite au programmeur d'avoir à connaitre en tout temps la hauteur de l'outil quand il écrit un programme. De la même manière, il est très intéressant d'utiliser un point de référence sur le brut ou la pièce et de faire travailler le programme à partir de ce point, sans avoir à tenir compte d'où est placée la pièce sur la machine pendant l'usinage. \layout Standard Ce chapitre va introduire les décalages et comment ils sont utilisés par EMC. Ce qui inclus: \layout Itemize Les coordonnées machine (G53 \begin_inset LatexCommand \index{G53} \end_inset ) \layout Itemize Les neuf décalages (G54 à G59.3 \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 \begin_inset LatexCommand \index{G59.3} \end_inset ) \layout Itemize Un jeu de décalages globaux (G92 \begin_inset LatexCommand \index{G92} \end_inset ). \layout Section Commande en coordonnées machine: G53 \layout Standard Indépendamment de tout décalage pouvant être actif, un G53 \begin_inset LatexCommand \index{G53} \end_inset dans une ligne de code indique à l'interpréteur de se déplacer aux positions réelles des axes (absolues), commandées dans la ligne. Par exemple: \layout Standard g53 g0 x0 y0 z0 \layout Standard déplacera le mobile depuis la position actuelle vers la position où les coordonnées des trois axes seront à zéro. Vous pouvez utiliser cette commande si vous avez une position fixe pour le changement d'outil ou si votre machine dispose d'un changeur automatique. Vous pouvez aussi utiliser cette commande pour dégager la zone de travail et accéder à la pièce dans l'étau. \layout Standard G53 est une commande non modale. Elle doit être utilisée sur chaque ligne où un mouvement basé sur les coordonné es machine est souhaité. \layout Section Décalages pièce (G54 à G59.3 \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 \begin_inset LatexCommand \index{G59.3} \end_inset ) \layout Standard \begin_inset Float figure wide false collapsed false \layout Standard \align center \begin_inset Graphics filename offsets.png display color width 80text% \end_inset \layout Caption \begin_inset LatexCommand \label{fig:décalages-ilots} \end_inset Décalages pour 8 ilots \end_inset \layout Standard \begin_inset Note collapsed true \layout Standard Ndt: le terme anglais fixture, souvent rencontré, signifie porte-pièce. \end_inset \layout Standard Le décalage d'origine est utilisé pour séparer le point de référence de la pièce, de l'origine machine, créant ainsi un système de coordonnées (relatif), propre à chaque pièce et séparé du système de coordonnées machine (absolu). Il permet, entre autre, dans le cas de pièces multiples mais semblables, de créer en décalant ses origine, le système de coordonnées de chaque pièce, le programme restant le même. Un cas typique d'utilisation de cette fonctionnalité, pour usiner huit ilots identiques sur la même pièce est illustré sur la figure \begin_inset LatexCommand \ref{fig:décalages-ilots} \end_inset \layout Standard Les valeurs des décalages sont enregistrées dans le fichier VAR qui est requis par le fichier INI durant le démarrage d'EMC. Dans l'exemple ci-dessous qui utilise \begin_inset LatexCommand \index{G55} \end_inset G55 la valeur de chacun des axes de G55 est enregistrée dans une variable numérotée. \layout Quote 5241\SpecialChar ~ \SpecialChar ~ \SpecialChar ~ 0.000000 \layout Quote 5242\SpecialChar ~ \SpecialChar ~ \SpecialChar ~ 0.000000 \layout Quote 5243\SpecialChar ~ \SpecialChar ~ \SpecialChar ~ 0.000000 \layout Quote 5244\SpecialChar ~ \SpecialChar ~ \SpecialChar ~ 0.000000 \layout Quote 5245\SpecialChar ~ \SpecialChar ~ \SpecialChar ~ 0.000000 \layout Quote 5246\SpecialChar ~ \SpecialChar ~ \SpecialChar ~ 0.000000 \layout Standard Dans le schéma d'un fichier VAR, la première variable contient la valeur du décalage de l'axe X, la seconde variable le décalage de l'axe Y et ainsi de suite pour les six axes. Il y a une série de variables de ce genre pour chacun des décalages pièce. \layout Standard Chacune des interfaces graphiques offre un moyen de fixer les valeurs de ces décalages. Vous pouvez également définir ces valeurs en modifiant le fichier VAR lui-même, puis faire un [reset], pour qu' EMC lise les nouvelles valeurs. Pour notre exemple, nous allons éditer directement le fichier pour que G55 prenne les valeurs suivantes: \layout Quote 5241\SpecialChar ~ \SpecialChar ~ \SpecialChar ~ 2.000000 \layout Quote 5242\SpecialChar ~ \SpecialChar ~ \SpecialChar ~ 1.000000 \layout Quote 5243\SpecialChar ~ \SpecialChar ~ -2.000000 \layout Quote 5244\SpecialChar ~ \SpecialChar ~ \SpecialChar ~ 0.000000 \layout Quote 5245\SpecialChar ~ \SpecialChar ~ \SpecialChar ~ 0.000000 \layout Quote 5246\SpecialChar ~ \SpecialChar ~ \SpecialChar ~ 0.000000 \layout Standard Vous pouvez voir que les positions zéro de G55 sont passées en X=2, Y=1 et Z=-2 éloignées donc de l'origine absolue (machine). \layout Standard Une fois que les valeurs sont assignées, un appel de G55 dans une ligne de programme décalera le point de référence zéro, l'origine, vers les valeurs enregistrées. La ligne suivante décalera chacun des axes vers sa nouvelle position d'origine. Contrairement à G53, les commandes G54 à G59.3 sont modales. Elles agissent sur toutes les lignes de g-code du programme après qu'une ait été rencontrée. Voyons le programme qui pourrait être écrit à l'aide de la figure \begin_inset LatexCommand \ref{fig:décalages-ilots} \end_inset , il suffira d'un seul point de référence pour chacune des pièces pour faire tout le travail. Le code suivant est proposé comme exemple pour faire un rectangle, il utilisera les décalages G55 que nous avons expliqué ci-dessus. \layout Quote G55 G0 x0 y0 z0 \layout Quote g1 f2 z-0.2000 \layout Quote x1 \layout Quote y1 \layout Quote x0 \layout Quote y0 \layout Quote g0 z0 \layout Quote g54 x0 y0 z0 \layout Quote m2 \layout Standard \begin_inset Quotes eld \end_inset Mais, \begin_inset Quotes erd \end_inset dites vous, \begin_inset Quotes eld \end_inset pourquoi y a-t-il un G54 vers la fin ? \begin_inset Quotes erd \end_inset C'est une pratique courante de quitter le système de coordonnées G54 avec l'ensemble des valeurs d'axes à zéro afin de laisser un code modal basé sur les positions machine absolues. Nous le faisons avec cette commande qui met la machine à zéro. Il aurait été possible d'utiliser G53 et d'arriver au même endroit, mais la commande n'aurait pas été modale, les commandes suivantes auraient voulu retourner dans le système de coordonnées du G55 toujours actif. \layout Quote \begin_inset LatexCommand \index{G54} \end_inset G54\SpecialChar ~ \SpecialChar ~ \SpecialChar ~ \SpecialChar ~ \SpecialChar ~ utilise les réglages du système de coordonnées 1 \layout Quote \begin_inset LatexCommand \index{G55} \end_inset G55\SpecialChar ~ \SpecialChar ~ \SpecialChar ~ \SpecialChar ~ \SpecialChar ~ utilise les réglages du système de coordonnées 2 \layout Quote \begin_inset LatexCommand \index{G56} \end_inset G56\SpecialChar ~ \SpecialChar ~ \SpecialChar ~ \SpecialChar ~ \SpecialChar ~ utilise les réglages du système de coordonnées 3 \layout Quote \begin_inset LatexCommand \index{G57} \end_inset G57\SpecialChar ~ \SpecialChar ~ \SpecialChar ~ \SpecialChar ~ \SpecialChar ~ utilise les réglages du système de coordonnées 4 \layout Quote \begin_inset LatexCommand \index{G58} \end_inset G58\SpecialChar ~ \SpecialChar ~ \SpecialChar ~ \SpecialChar ~ \SpecialChar ~ utilise les réglages du système de coordonnées 5 \layout Quote \begin_inset LatexCommand \index{G59} \end_inset G59\SpecialChar ~ \SpecialChar ~ \SpecialChar ~ \SpecialChar ~ \SpecialChar ~ utilise les réglages du système de coordonnées 6 \layout Quote G59.1 \begin_inset LatexCommand \index{G59.1} \end_inset \SpecialChar ~ \SpecialChar ~ \SpecialChar ~ utilise les réglages du système de coordonnées 7 \layout Quote G59.2 \begin_inset LatexCommand \index{G59.2} \end_inset \SpecialChar ~ \SpecialChar ~ \SpecialChar ~ utilise les réglages du système de coordonnées 8 \layout Quote G59.3 \begin_inset LatexCommand \index{G59.3} \end_inset \SpecialChar ~ \SpecialChar ~ \SpecialChar ~ utilise les réglages du système de coordonnées 9 \layout Subsection Système de coordonnées par défaut \layout Standard Une autre variable dans le fichier VAR joue un rôle important dans les décalages , c'est la variable 5220. Dans les fichiers par défaut, sa valeur est fixée à 1,00000. Ce qui signifie que lorsque EMC démarre, il doit utiliser le premier système de coordonnées comme système par défaut. Si vous définissez celui-ci à 9,00000 le neuvième système décalé sera utilisé par défaut au démarrage du système et aux réinitialisations. Toute valeur autre qu'un entier compris entre 1 et 9 provoquera une erreur au démarrage d'EMC. \layout Subsection Réglage des décalages avec G10 \layout Standard La commande G10 L- peut être utilisée pour modifier les valeurs des décalages dans un système de coordonnées. (add here) \layout Section G92 \begin_inset LatexCommand \index{G92} \end_inset Décalages d'axes \layout Standard G92 est la plus incomprise et la plus maligne des commandes programmables avec EMC. La façon dont elle fonctionne a un peu changé entre les premières versions et l'actuelle. Ces changements ont sans doute déconcerté de nombreux utilisateurs. Elle devrait être vue comme une commande produisant un décalage temporaire, qui s'applique à tous les autres décalages. \layout Standard En réponse à une critique de cette commande, Ray Henry l'a étudiée en comparant la façon dont les auteurs de l'interpréteur s'attendaient à ce qu'elle fonctionne et la façon dont elle fonctionnait sur sa mini-fraiseuse Grizzly. Dans les paragraphes ci-dessous, entre guillemets, vous trouverez des extraits de son document, disponible sur \begin_inset LatexCommand \url{http://www.linuxcnc.org} \end_inset . \layout Subsection Les commandes G92 \layout Standard Ce jeu de commandes inclus: \layout Description G92 Cette commande, utilisée avec des mots d'axes, fixe les valeurs des variables de décalage. \layout Description G92.1 \begin_inset LatexCommand \index{G92.1} \end_inset Cette commande met à zéro les valeurs des variables de g92. \layout Description G92.2 \begin_inset LatexCommand \index{G92.2} \end_inset Cette commande suspend, sans les mettre à zéro, les variables de g92. \layout Description G92.3 \begin_inset LatexCommand \index{G92.3} \end_inset Cette commande applique les valeurs de décalage qui ont été suspendues. \layout Standard Lorsque les commandes sont utilisées comme décrit ci-dessus, elles fonctionneron t à peu près comme vous vous y attendiez. \layout Quote L'utilisateur doit bien comprendre le fonctionnement des valeurs de g92. Elles sont basées sur l'emplacement de chaque axe au moment où la commande g92 est invoquée. Le document du NIST est clair, `` pour faire en sorte que le point actuel ait les coordonnées'' x0, y0 et z0 nous utiliserons g92 x0 y0 z0. G92 \emph on ne fonctionne pas depuis le système de coordonnées machine absolues \emph default . \emph on Il fonctionne à partir de l'emplacement actuel. \layout Quote G92 travaille également à partir d'un emplacement actuel déjà modifié par tout autre décalage actif au moment où la commande g92 est invoquée. Lors de test des différences entre les décalages de travail et les décalages réels, il a été constaté qu'un décalage g54 pouvait annuler un g92 et ainsi, donner l'apparence qu'aucun décalage n'était actif. Toutefois, le g92 était toujours actif, pour toutes les coordonnées et il a produit les décalages attendus pour tous les autres systèmes de coordonnée s. \layout Quote Il est probable que l'absence de contact d'origine machine et d'une bonne procédure de prise d'origine machine se traduira par de très grandes erreurs dans l'application des valeurs de g92 si elles existent dans le fichier VAR. Beaucoup d'utilisateurs d'EMC n'ont pas de contact d'origine machine sur leurs machines. Pour eux, l'origine machine devrait être trouvée en déplaçant chaque axe à l'emplacement supposé et en utilisant la commande de prise d'origine. Lorsque chaque axe est dans une position connue, la commande de prise d'origine recalculera comment les valeurs de g92 doivent être appliquées pour produire des résultats cohérents. Sans séquence de prise d'origine machine, les valeurs sont appliquées à la position de la machine au démarrage d'EMC. \layout Subsection Réglage des valeurs de G92 \layout Standard Il y a au moins deux façons d'établir les valeurs de G92. \layout Itemize Par un clic droit de la souris sur les afficheurs de position de tkemc, une fenêtre s'ouvre dans laquelle il est possible de saisir une valeur. \layout Itemize Par la commande G92. \layout Standard Toutes les deux, fonctionnent depuis l'emplacement courant de l'axe auquel le déplacement doit être appliqué. \layout Quote Programmer g92 x- y- z- a- b- c- fixe les valeurs des variables de G92 de sorte que chaque axe prenne la valeur associée à son nom. Ces valeurs sont assignées à la position courante des axes. Ces résultats satisfont les paragraphes un et deux du document du NIST. \layout Quote Les commandes G92 fonctionnent à partir de la position courante de l'axe, à laquelle elles ajoutent ou soustraient des valeurs pour donner à la position courante la valeur assignée par la commande g92. Elles prennent effet même si d'autres décalages sont déjà actifs. \layout Standard Ainsi, si l'axe X est actuellement en position X=2.0000, un G92 x0 fixera un décalage de -2.0000, de sorte que l'emplacement actuel de X devienne X=0.0000. Un nouveau G92 X5.0000 fixera un décalage de 3.0000 et l'affichage indiquera une position courante X=5.0000. \layout Standard Maintenant, un G92 X5 fixera un décalage de 0.0000 et l'affichage ne changera pas. \layout Subsection Prudence avec G92 \layout Standard Parfois, les valeurs de décalage d'un G92 restent bloquées dans le fichier VAR. Quand ça arrive, une ré-initialisation ou un redémarrage peut les rendre de nouveau actifs. Les variables sont numérotées \layout Quote 5211\SpecialChar ~ \SpecialChar ~ \SpecialChar ~ 0.000000 \layout Quote 5212\SpecialChar ~ \SpecialChar ~ \SpecialChar ~ 0.000000 \layout Quote 5213\SpecialChar ~ \SpecialChar ~ \SpecialChar ~ 0.000000 \layout Quote 5214\SpecialChar ~ \SpecialChar ~ \SpecialChar ~ 0.000000 \layout Quote 5215\SpecialChar ~ \SpecialChar ~ \SpecialChar ~ 0.000000 \layout Quote 5216\SpecialChar ~ \SpecialChar ~ \SpecialChar ~ 0.000000 \layout Standard où 5211 est le numéro du décalage de l'axe X et ainsi de suite. Si vous voyez des positions inattendues à la suite d'une commande de déplacemen t, ou même des chiffres inattendus dans l'affichage de la position lorsque vous démarrez, regardez ces variables dans le fichier VAR pour vérifier si elles contiennent des valeurs. Si c'est le cas, les mettre à zéro devrait solutionner le problème. \layout Quote Avec ces tests, nous pouvons voir qu'après une réinitialisation, G92 retourne aux conditions qu'il avait au démarrage de l'interpréteur. Le lecteur doit noter que nous avons établi ... qu'aucune de ces valeurs n'est écrite durant un démarrage normal si aucun G92 n'a été fixé au démarrage, aucune ne pourra être lue lors d'un redémarrage. \layout Quote Il est possible que ce soit le coeur du problème que certains ont vécu avec les différences entre l'ancien et le nouvel interpréteur. C'est possible, mais je laisse le soin à d'autres de faire des essais, pour vérifier que l'ancien interpréteur et les programmes écrivent les variables immédiatement et de constater ensuite que ces valeurs sont lues lors d'un redémarrage. \layout Standard D'autre part, si les valeurs de G92 existent dans le fichier VAR lorsque EMC a démarré \layout Quote ... À partir d'EMC avec les valeurs de g92 dans le fichier de variables, EMC appliquera ces valeurs à partir de l'emplacement actuel de chaque axe. Si la prise d'origine machine a été faite et que l'origine machine correspond bien au zéro des axes, tout sera correct. Une fois que la prise d'origine a été faite en utilisant les contacts d'origine machine ou en déplaçant chaque axe à une position connue et en appliquant la commande de prise d'origine, les commandes g92 et leurs valeurs fonctionnent comme prévu. \layout Quote Ces tests n'ont pas étudié l'effet produit par la lecture des variables dans le fichier alors qu'il contient des valeurs. Cela pourrait poser des problèmes si les décalages g92 avaient été enlevés avec g92.1 alors que le fichier de variables contenait encore les valeurs précédentes. \layout Standard C'est cette complexité qui nous amène à dire que les valeurs de G92 doivent être considérées comme provisoires. Elles devraient être utilisées pour définir des décalages globaux et à court terme. Les commandes de décalage d'origine G54 à 59.3 devraient être utilisées chaque fois que des décalages durables et prévisibles sont nécessaires. \layout Section Exemple de programme utilisant les décalages d'axes \layout Standard Cet exemple de projet de gravure fraise un jeu de quatre cercles de rayon .1 pouce dans une forme grossière d'étoile au centre du cercle. Nous pouvons configurer individuellement les formes de la façon suivante: \layout Quote \noindent G10 L2 P1 x0 y0 z0 (assure que g54 a mis la machine à zéro) \layout Quote \noindent g0 x-.1 y0 z0 \layout Quote \noindent g1 f1 z-.25 \layout Quote \noindent g3 x-.1 y0 i.1 j0 \layout Quote \noindent g0 z0 \layout Quote m2 \layout Standard Nous pouvons émettre une série de commandes pour créer des décalages pour les quatre autres cercles comme cela. \layout Quote G10 L2 P2 x0.5 (offsets g55 x value by 0.5 inch) \layout Quote G10 L2 P3 x-0.5 (offsets g56 x value by -0.5 inch) \layout Quote G10 L2 P4 y0.5 (offsets g57 y value by 0.5 inch) \layout Quote G10 L2 P5 y-0.5 (offsets g58 y value by -0.5 inch) \layout Standard Nous mettons ces ensemble dans le programme suivant. \layout Quote (Un programme de fraisage de cinq petits cercles dans un losange) \layout Quote G10 L2 P1 x0 y0 z0 (assure que g54 a mis la machine à zéro) \layout Quote G10 L2 P2 x0.5 (offsets g55 x value by 0.5 inch) \layout Quote G10 L2 P3 x-0.5 (offsets g56 x value by -0.5 inch) \layout Quote G10 L2 P4 y0.5 (offsets g57 y value by 0.5 inch) \layout Quote G10 L2 P5 y-0.5 (offsets g58 y value by -0.5 inch) \layout Quote g54 g0 x-.1 y0 z0 (center du cercle) \layout Quote g1 f1 z-.25 \layout Quote g3 x-.1 y0 i.1 j0 \layout Quote g0 z0 \layout Quote g55 g0 x-.1 y0 z0 (premier décalage circulaire) \layout Quote g1 f1 z-.25 \layout Quote g3 x-.1 y0 i.1 j0 \layout Quote g0 z0 \layout Quote g56 g0 x-.1 y0 z0 (second décalage circulaire) \layout Quote g1 f1 z-.25 \layout Quote g3 x-.1 y0 i.1 j0 \layout Quote g0 z0 \layout Quote g57 g0 x-.1 y0 z0 (troisième décalage circulaire) \layout Quote g1 f1 z-.25 \layout Quote g3 x-.1 y0 i.1 j0 \layout Quote g0 z0 \layout Quote g58 g0 x-.1 y0 z0 (décalage circulaire) \layout Quote g1 f1 z-.25 \layout Quote g3 x-.1 y0 i.1 j0 \layout Quote g54 g0 x0 y0 z0 \layout Quote m2 \layout Standard Maintenant vient le moment où l'on applique une série de décalages G92 à ce programme. Vous verrez qu'il c'est fait dans chaque cas de z0. Si la machine étaient à la position de zéro, un g92 z1.0000 placé en tête de programme le décalera d'un pouce. Vous pouvez également modifier l'ensemble du dessin dans le plan XY en ajoutant quelques décalages x et y avec g92. Si vous faites cela, vous devez ajouter une commande G92.1 juste avant le m2 qui termine le programme. Si vous ne le faites pas, d'autres programmes que vous pourriez lancer après celui-ci, utiliseront également les décalages g92. En outre, cela permettrait d'éviter d'écrire les valeurs de g92 lorsque vous arrêtez EMC et donc, d'éviter de les recharger quand vous démarrez à nouveau le programme. \layout Standard \the_end