/ docs / src / gcode / gcode_fr.txt
gcode_fr.txt
   1  :lang: fr
   2  :toc:
   3  
   4  = Tout le G-code de LinuxCNC
   5  
   6  [[cha:Le-G-code]]
   7  
   8  == Conventions d'écriture du G-code
   9  
  10  Dans une commande type, le tiret ('-') signifie une valeur réelle et les signes
  11  ('<>') indiquent un item facultatif.
  12  
  13  Si 'L-' est écrit dans une commande, le signe '-' fera référence à 'Lnombre'.
  14  De la même manière, le signe '-' dans 'H-' peut être appelé le 'Hnombre' et
  15  ainsi de suite pour les autres lettres. Une valeur facultative sera
  16  écrite '<L->'.
  17  
  18  Dans les blocs de G-code, le mot 'axes' signifie n'importe quel axe
  19  défini dans la configuration.
  20  
  21  Une valeur réelle peut être:
  22  
  23  * - un nombre explicite, '4' par exemple.
  24  * - une expression, '[2+2]' par exemple.
  25  * - une valeur de paramètre, '#88' par exemple.
  26  * - une fonction unaire de la valeur, 'acos[0]' par exemple.
  27  
  28  Dans la plupart des cas, si des mots d'axes sont donnés
  29  parmi 'XYZABCUVW', ils spécifient le point de destination.
  30  
  31  Les axes sont donnés dans le système de coordonnées courant,
  32  à moins qu'explicitement décrit comme étant dans le système de coordonnées
  33  absolues (machine).
  34  
  35  Les axes sont facultatifs, tout axe omis gardera sa valeur courante.
  36  
  37  Tout item dans un bloc de G-code, non explicitement décrit comme facultatif,
  38  sera requis. Une erreur sera signalée si un item requis est omis.
  39  
  40  Dans les commandes, les valeurs suivant les lettres sont souvent
  41  données comme des nombres explicites. Sauf indication contraire, les
  42  nombres explicites peuvent être des valeurs réelles. Par exemple, 'G10
  43  L2' pourrait aussi bien être écrite 'G[2*5] L[1+1]'. Si la valeur du
  44  paramètre '100' étaient '2', 'G10 L#100' signifierait également la même
  45  chose.
  46  
  47  
  48  [[sec:Table-des-index-du-G-code]]
  49  == Table d'index du G-code
  50  (((Table des index du G Code)))
  51  
  52  [width="75%", options="header", cols="2^,5<"]
  53  |==============================================================================
  54  |Sections                        | Descriptions
  55  |<<sec:G0,G0>>  | Interpolation linéaire en vitesse rapide
  56  |<<sec:G1,G1>> | Interpolation linéaire en vitesse travail
  57  |<<sec:G2-G3,G2/G3>>  | Interpolation circulaire sens horaire/anti-horaire
  58  |<<sec:G4-Tempo,G4>>           | Temporisation
  59  |<<sec:G5-Cubic-Spline,G5>>         |Spline cubique
  60  |<<sec:G5_1-Quadratic-Spline,G5.1>> |B-Spline quadratique
  61  |<<sec:G5_2-G5_3-NURBS,G5.2>>       |NURBS, ajout point de contrôle
  62  |<<sec:G5_2-G5_3-NURBS,G5.3>>       |NURBS, exécute
  63  |<<sec:G7-Mode-diametre,G7>>   | Mode diamètre (sur les tours)
  64  |<<sec:G8-Mode-rayon,G8>>| Mode rayon (sur les tours)
  65  |<<sec:G10-L1,G10 L1>>   | Ajuste les valeurs de l'outil en table d'outils
  66  |<<sec:G10-L10,G10 L10>> | Modifie les valeurs de l'outil dans la table d'outils
  67  |<<sec:G10-L11,G10 L11>> | Fixe les valeurs de l'outil dans la table d'outils
  68  |<<sec:G10-L2,G10 L2>>   | Fixe l'origine d'un système de coordonnées
  69  |<<sec:G10-L20,G10 L20>> | Fixe l'origine du système de coord. aux valeurs calculées
  70  |<<sec:G17-G18-G19,G18 G19>>  | Choix du plan de travail
  71  |<<sec:G20-G21-Unites-Machine,G20 G21>>         | Unités machine
  72  |<<sec:G28-G28_1-Aller-a-une-position,G28 G28.1>> | Aller à une position prédéfinie
  73  |<<sec:G30-G30_1-Aller-a-une-position-predefinie,G30 G30.1>> | Aller à une position
  74  prédéfinie
  75  |<<sec:G33-Broche-synchronisee,G33>>   | Mouvement avec broche synchronisée
  76  |<<sec:G33_1-Taraudage-rigide,G33.1>>    | Taraudage rigide
  77  |<<sec:G38-x-Palpeur,G38>> | Mesures au palpeur
  78  |<<sec:G40,G40>>           | Révocation de la compensation de rayon d'outil
  79  |<<sec:G41-G42,G41 G42>>       | Compensation de rayon d'outil
  80  |<<sec:G41_1-G42_1,G41.1 G42.1>> | Comp. dynamique de rayon d'outil à gauche/à droite
  81  |<<sec:G43,G43>> | Compensation de longueur d'outil d'après une table d'outils
  82  |<<sec:G43_1,G43.1>> | Compensation dynamique de longueur d'outil
  83  |<<sec:G49-Revocation-Longueur-Outil,G49>>  | Révocation de la compensation de
  84  longueur d'outil
  85  |<<sec:G53-Mouvement-Coordonnees-Absolues,G53>> | Déplacements en coordonnées
  86  machine (Absolues)
  87  |<<sec:G54-a-G59_3,G54 à G59.3>>     | Choix du système de coordonnées (1 à 9)
  88  |<<sec:G61-G61_1,G61 G61.1>>   | Mode trajectoire exacte/mode arrêts exacts
  89  |<<sec:G64,G64>>| Mode trajectoire continue avec tolérance
  90  |<<sec:G73-Percage-avec-brise-copeaux,G73>> | Cycle de perçage avec brise copeau
  91  |<<sec:G76-Filetage,G76>>      | Cycle de filetage multipasses (tour)
  92  |<<sec:G80-Revocation-modaux,G80>>       | Révocation des codes modaux
  93  |<<sec:G81-Cycle-de-percage,G81>>        | Cycle de perçage
  94  |<<sec:G82-Cycle-de-percage,G82>>        | Autres cycles de perçage
  95  |<<sec:G83-Percage-avec-debourrage,G83>> | Perçage avec débourrage
  96  |<<sec:G84-Taraudage-a-droite,G84>>      | Taraudage à droite '(pas encore implémenté)'
  97  |<<sec:G85-Alesage-retrait-travail,G85>> | Alésage, retrait en vitesse travail
  98  |<<sec:G86-Alesage-retrait-rapide,G86>>  | Alésage, retrait en vitesse rapide
  99  |<<sec:G87-Back-Boring,G87>>        | Cycle d'alésage arrière '(pas encore implémenté)'
 100  |<<sec:G88-Alesage-Retrait-Manuel-Out,G88>> | Cycle alésage, Stop, Retrait manuel
 101  '(pas encore implémenté)'
 102  |<<sec:G89-Alesage-Tempo,G89>> | Cycle d'alésage avec tempo, recul vitesse travail
 103  |<<sec:G90-G91,G90>>       | Types de déplacement
 104  |<<sec:G90_1-G91_1,G90.1 G91.1>>     | Arc I,J,K, centre absolu ou relatif
 105  |<<sec:G92,G92>> | Décalages d'origines avec mise à jour des paramètres
 106  |<<sec:G92_1-G92_2,G92.1 G92.2>> | Révocation des décalages d'origine
 107  |<<sec:G92_3,G92.3>> | Applique contenu des paramètres aux déc. d'origine
 108  |<<sec:G93-G94-G95-Modes,G93>>   | Modes de vitesse
 109  |<<sec:G96-G97-Broche,G96>>    | Vitesse de coupe constante (IPM ou m/mn)
 110  |<<sec:G96-G97-Broche,G97>>    | Vitesse en tours par minute
 111  |<<sec:G98-G99-Set,G98>>       | Options de retrait des cycles de perçage
 112  |==============================================================================
 113  
 114  [[sec:G0]]
 115  == G0 Interpolation linéaire en vitesse rapide
 116  (((G0 Interpolation linéaire en vitesse rapide)))(((rapide)))
 117  
 118  ----
 119  G0 axes
 120  ----
 121  
 122  Pour un mouvement linéaire en vitesse rapide, programmer 'G0 axes',
 123  tous les mots d'axe sont facultatifs. Le 'G0' est facultatif si le mode mouvement
 124  courant est déjà 'G0'. Cela produit un mouvement linéaire vers le point de
 125  destination à la vitesse rapide courante (ou moins vite si la machine n'atteint
 126  pas cette vitesse). Il n'est pas prévu d'usiner la matière quand une
 127  commande G0 est exécutée. Un G0 seul peut être utilisé pour passer le mode
 128  de mouvement courant en G0.
 129  
 130  .Exemple avec G0:
 131  ----
 132  G90 (Fixe les déplacements en mode absolu)
 133  G0 X1 Y-2.3 (mouvement linéaire en vitesse rapide du point courant à X1 Y-2.3)
 134  M2 (fin de programme)
 135  ----
 136  
 137  * Voir les sections <<sec:G90-G91,G90>> et <<sec:M2-M30,M2>> pour plus
 138  d'informations.
 139  
 140  Si la compensation d'outil est active, le mouvement sera
 141  différent de celui décrit ci-dessus, voir la section
 142  <<sec:Compensation-rayon-d-outil, sur la compensation de d'outil>>.
 143  
 144  Si 'G53' est programmé sur la même ligne, le mouvement sera également
 145  différent, voir la section <<sec:G53-Mouvement-Coordonnees-Absolues, sur les
 146  mouvements en coordonnées absolues>>.
 147  
 148  ////
 149  Si un mouvement 'G0' déplace seulement des axes rotatifs et que la
 150  position de la cible pour ces axes est dans une échelle de -360 à 360 degrés,
 151  le mouvement sera organisé pour que chaque axe rotatif fasse moins d'un tour
 152  complet.
 153  ////
 154  
 155  C'est une erreur si:
 156  
 157  * Un mot d'axe est indiqué sans valeur réelle.
 158  * Un mot d'axe est indiqué qui n'est pas configuré.
 159  
 160  [[sec:G1]]
 161  == G1 Interpolation linéaire en vitesse travail
 162  (((G1 Interpolation linéaire en vitesse travail)))
 163  
 164  ----
 165  G1 axes
 166  ----
 167  
 168  Pour un mouvement linéaire en vitesse travail, (pour usiner ou non)
 169  programmer 'G1 axes', tous les mots d'axe sont facultatifs. Le 'G1' est
 170  facultatif si le mode de mouvement courant est déjà 'G1'.
 171  Cela produira un mouvement linéaire vers le point de destination à
 172  la vitesse de travail courante (ou moins vite si la machine n'atteint
 173  pas cette vitesse). Un G1 seul peut être utilisé pour passer le mode de
 174  mouvement courant en G1.
 175  
 176  .Exemple avec G1:
 177  ----
 178  G90 (Fixe les déplacements en mode absolu)
 179  G1 X1.2 Y-3 F10 (mouvement linéaire à 10 unités/mn du point courant à X1.2 Y-3)
 180  Z-2.3 (mouvement linéaire à 10 unités/mn du point courant à Z-2.3)
 181  Z1 F25 (mouvement linéaire de l'axe Z à 25 unités/mn vers Z1)
 182  M2 (Fin de programme)
 183  ----
 184  
 185  * Voir les sections <<sec:G90-G91,G90>> et <<sec:M2-M30,M2>> pour plus
 186  d'informations.
 187  
 188  Si la compensation d'outil est active, le mouvement sera
 189  différent de celui décrit ci-dessus, voir la section
 190  <<sec:Compensation-rayon-d-outil, sur la compensation d'outil>>.
 191  Si 'G53' est programmé sur la même ligne, le mouvement sera également
 192  différent, voir la section <<sec:G53-Mouvement-Coordonnees-Absolues, sur les
 193  mouvements en coordonnées absolues>>.
 194  
 195  C'est une erreur si:
 196  
 197  * - Aucune vitesse d'avance travail n'est fixée.
 198  * - un mot d'axe est indiqué sans valeur réelle.
 199  * - un mot d'axe est indiqué qui n'est pas configuré.
 200  
 201  [[sec:G2-G3]]
 202  == G2, G3 Interpolation circulaire en vitesse travail
 203  (((G2 Interpolation circulaire sens horaire)))
 204  (((G3 Interpolation circulaire anti-horaire)))
 205  
 206  ----
 207  G2 ou G3 axes décalages (format centre)
 208  G2 ou G3 axes R- (format rayon)
 209  G2 ou G3 décalages <P-> (cercles complet)
 210  ----
 211  
 212  Un mouvement circulaire ou hélicoïdal est spécifié en sens horaire
 213  avec 'G2' ou en sens anti-horaire avec 'G3'. La direction est vue depuis
 214  le côté positif de l'axe autour duquel le mouvement se produit.
 215  
 216  Les axes de cercle ou les hélicoïdes, doivent être parallèles aux
 217  axes X, Y ou Z du système de coordonnées machine.
 218  Les axes (ou, leurs équivalents, les plans perpendiculaires aux axes)
 219  sont sélectionnés avec 'G17' (axe Z, plan XY),
 220  'G18' (axe Y, plan XZ), ou 'G19' (axe X, plan YZ).
 221  Les plans '17,1', '18,1' et '19,1' ne sont pas actuellement pris en charge.
 222  Si l'arc est circulaire, il se trouve dans un plan parallèle au plan sélectionné.
 223  
 224  Pour programmer un hélicoïde, inclure le mot d'axe perpendiculaire au
 225  plan de l'arc. Par exemple, si nous sommes dans le plan 'G17', inclure
 226  un mot 'Z', ceci provoquera un mouvement de l'axe 'Z' vers valeur programmée
 227  durant tout le mouvement circulaire 'XY'. 
 228  
 229  Pour programmer un arc supérieur à un tour complet, utiliser un
 230  mot 'P' spécifiant alors le nombre de tours complets en plus de l'arc.
 231  Si 'P' n'est pas spécifié, le comportement sera comme si 'P1' avait été
 232  donné: ceci étant, un seul tour complet ou partiel sera effectué,
 233  donnant un arc plus petit ou égal à un tour complet.
 234  Par exemple, si un arc de 180° est programmé avec P2, le mouvement résultant
 235  sera d'un tour et demi. Pour chaque incrément de P au delà de 1, un tour complet
 236  sera ajouté à l'arc programmé. Les arcs hélicoïdaux multitours sont
 237  supportés ce qui donne des mouvements très intéressants pour usiner des
 238  alésages ou des filetages.
 239  
 240  Si une ligne de G-code crée un arc et inclus le mouvement d'un
 241  axe rotatif, l'axe rotatif tournera à vitesse constante de sorte que
 242  le mouvement de l'axe rotatif commence et se termine en même temps que
 243  les autres axes XYZ. De telles lignes sont rarement programmées.
 244  
 245  Si la compensation d'outil est active, le mouvement sera
 246  différent de celui décrit ci-dessus, voir les sections
 247  <<sec:G40, sur G40>> et <<sec:G41-G42, sur G41-G42>>.
 248  
 249  Le centre de l'arc est absolu ou relatif, tel que fixé par
 250   <<sec:G90_1-G91_1,G90.1 ou G91.1>>, respectivement.
 251  
 252  C'est une erreur si:
 253  
 254  * Aucune vitesse d'avance travail n'est spécifiée.
 255  
 256  Deux formats sont possibles pour spécifier un arc: Le format centre et
 257  le format rayon.
 258  
 259  === Arc au format centre (format recommandé)
 260  
 261  Les arcs au format centre sont plus précis que les arcs au format rayon, c'est
 262  le format à privilégier.
 263  
 264  La distance entre la position courante et le centre de l'arc et,
 265  facultativement, le nombre de tours, sont utilisés pour programmer des arcs
 266  inférieurs au cercle complet. Il est permis d'avoir le point final de l'arc
 267  égal à la position courante.
 268  
 269  Le décalage entre le centre de l'arc et la position courante ainsi
 270  que facultativement, le nombre de tours, sont utilisés pour programmer des
 271  cercles complets.
 272  
 273  Une erreur d'arrondi peut se produire quand un arc est programmé avec une
 274  précision inférieure à 4 décimales (0.0000) pour les pouces et à moins de
 275  3 décimales (0.000) pour les millimètres.
 276  
 277  .Arc en mode distance relative
 278  Les décalages par rapport au centre de l'arc sont des distances relatives au
 279  point de départ de l'arc. Le mode distance relative de l'arc est le
 280  mode par défaut.
 281  
 282  Un ou plusieurs mots d'axe et un ou plusieurs décalages doivent être programmés
 283  pour un arc qui fait moins de 360 degrés.
 284  
 285  Aucun mot d'axe mais un ou plusieurs décalages doivent être programmés pour un
 286  cercle complet. Le mot 'P', par défaut à 1, est facultatif.
 287  
 288  Pour d'avantage d'information sur les arcs en mode relatif, voir la
 289   <<sec:G90_1-G91_1,section G91.1>>.
 290  
 291  .Arc en mode distance absolue
 292  Les décalages par rapport au centre de l'arc sont des distances absolues depuis
 293  la position 0 courante des axes (origine machine).
 294  
 295  Un ou plusieurs mots d'axe et 'tous' les décalages doivent être programmés pour
 296  les arcs de moins de 360 degrés.
 297  
 298  Aucun mots d'axe mais tous les décalages doivent être programmés pour un
 299  cercle complet. Le mot 'P', par défaut à 1, est facultatif.
 300  
 301  Pour d'avantage d'information sur les arcs en mode absolu, voir la
 302  <<sec:G90_1-G91_1,section G90.1>>.
 303  
 304  .Plan XY (G17)
 305  ----
 306  G2 ou G3 <X- Y- Z- I- J- P->
 307  ----
 308  * 'Z' - hélicoïde
 309  * 'I' - décalage en X
 310  * 'J' - décalage en Y
 311  * 'P' - nombre de tours
 312  
 313  .Plan XZ (G18)
 314  ----
 315  G2 ou G3 <X- Z- Y- I- K- P->
 316  ----
 317  * 'Y' - hélicoïde
 318  * 'I' - décalage en X
 319  * 'K' - décalage en Z
 320  * 'P' - nombre de tours
 321  
 322  .YZ-plane (G19)
 323  ----
 324  G2 ou G3 <Y- Z- X- J- K- P->
 325  ----
 326  * 'X' - hélicoïde
 327  * 'J' - décalage en Y
 328  * 'K' - décalage en Z
 329  * 'P' - nombre de tours
 330  
 331  C'est une erreur si:
 332  
 333  * Aucune vitesse d'avance travail n'est fixée avec <<sec:F-Vitesse,le mot F>>.
 334  
 335  * Aucun décalage n'est programmé.
 336  
 337  * Quand l'arc est projeté dans le plan courant, la distance depuis le point
 338  courant et le centre diffère de la distance entre le point final et le centre,
 339  de plus de (.05 pouce/.5 mm) OU ((.0005 pouce/.005mm) ET .1% du rayon).
 340  
 341  Déchiffrer le message d'erreur 'Le rayon à la fin de l'arc diffère de celui
 342  du début:'
 343  
 344  * 'début' - position courante
 345  * 'centre' - la position du centre telle que calculée avec les paramètres I,J ou
 346   K
 347  * 'fin' - le point final programmé
 348  * 'r1' - le rayon entre le point de départ et le centre
 349  * 'r2' - le rayon entre le point final et le centre
 350  
 351  === Exemples d'arcs au format centre
 352  
 353  Calculer des arcs à la main peut être difficile.
 354  Il est possible de dessiner l'arc à l'aide d'un programme de DAO
 355  pour obtenir les coordonnées et les décalages.
 356  Garder à l'esprit les tolérances, il pourrait être nécessaire de modifier
 357  la précision de la DAO pour obtenir les résultats souhaités.
 358  Une autre option consiste à calculer les coordonnées et les décalages
 359  en utilisant des formules. Comme vous pouvez le voir sur la figure suivante
 360  un triangle peut être formé à partir de la position courante,
 361  de la position de fin et du centre de l'arc.
 362  
 363  Sur la figure suivante, vous voyez que la position de départ est X0 Y0, la
 364  position finale est X1 Y1. La position du centre de l'arc est X1 Y0.
 365  Ceci donne un décalage de 1 depuis la position de départ sur l'axe X et
 366  0 sur l'axe Y. Dans ce cas seul le décalage I est nécessaire.
 367  
 368  Le G-code de cet exemple serait:
 369  ----
 370  G0 X0 Y0
 371  G2 X1 Y1 I1 F10 (arc en sens horaire dans le plan XY)
 372  ----
 373  
 374  [[fig:G2-Exemple]]
 375  .Exemple avec G2
 376  
 377  image::images/g2_fr.png[align="center", alt="Exemple avec G2"]
 378  
 379  Dans cet autre exemple, nous pouvons voir les différences de décalages
 380  pour Y selon que nous faisons un mouvement G2 ou un mouvement G3.
 381  Pour le mouvement G2 la position de départ est en X0 Y0, alors que
 382  pour le mouvement G3 elle est en X0 Y1. Le centre de l'arc est en
 383  X1 Y0.5 pour les deux. Le décalage J du mouvement G2 est 0.5 alors que
 384  celui du mouvement G3 est -0.5.
 385  
 386  Le G-code de cet exemple serait:
 387  ----
 388  G0 X0 Y0
 389  G2 X0 Y1 I1 J0.5 F25 (arc en sens horaire dans le plan XY)
 390  G3 X0 Y0 I1 J-0.5 F25 (arc en sens anti-horaire dans le plan XY)
 391  ----
 392  
 393  [[fig:G2-G3-Exemple]]
 394  .Exemple avec G2-G3
 395  
 396  image::images/g2-3_fr.png[align="center", alt="Exemple avec G2-G3"]
 397  
 398  Voici un exemple au format centre pour usiner une hélice:
 399  ----
 400  G0 X0 Y0 Z0
 401  G17 G2 X10 Y16 I3 J4 Z-1 (Arc hélicoïdal avec ajout de Z)
 402  ----
 403  
 404  .exemple avec P
 405  ----
 406  G0 X0 Y0 Z0
 407  G2 X0 Y1 Z-1 I1 J0.5 P2 F25
 408  ----
 409  
 410  Cet exemple signifie, faire un mouvement circulaire ou hélicoïdal en
 411  sens horaire (vu du côté positif sur l'axe Z), dont l'axe est parallèle
 412  à l'axe Z, se terminant en X10, Y16 et Z9, avec son centre décalé
 413  de 3 unités dans la direction X, par rapport à la position X courante.
 414  Son centre décalé dans la direction Y de 4 unités depuis la position Y courante.
 415  Si la position courante est X7, Y7 au départ, le centre sera en X10, Y11.
 416  Si la valeur de départ en Z est 9, ce sera un arc circulaire. Autrement,
 417  ce sera un arc hélicoïdal. Le rayon de cet arc serait de 5 unités.
 418  
 419  Dans le format centre, le rayon de l'arc n'est pas spécifié, mais il
 420  peut facilement être trouvé puisque c'est la distance entre le
 421  point courant et le centre du cercle, ou le point final de l'arc et le centre.
 422  
 423  ////
 424  === Cercles complets
 425  
 426  ----
 427  G2 ou G3 I- J- K-
 428  ----
 429  
 430  Pour faire un cercle complet de 360 degrés depuis la position
 431  courante, programmer un seul décalage I, J ou K depuis la position
 432  courante pour G2/G3. Pour programmer une hélicoïde sur 360 degrés
 433  dans le plan XY spécifier seulement le mot Z.
 434  
 435  C'est une erreur si:
 436  
 437  * Le décalage K est utilisé dans le plan XY
 438  * Le décalage J est utilisé dans le plan XZ
 439  * Le décalage I est utilisé dans le plan YZ
 440  ////
 441  
 442  === Arcs au format rayon (format non recommandé)
 443  
 444  ----
 445  G2 ou G3 axes R-
 446  ----
 447  
 448  * R - rayon depuis la position courante
 449  
 450  Ce n'est pas une bonne pratique de programmer au format rayon des
 451  arcs qui sont presque des cercles entiers ou des demi-cercles, car un
 452  changement minime dans l'emplacement du point d'arrivée va produire un
 453  changement beaucoup plus grand dans l'emplacement du centre du cercle
 454  (et donc, du milieu de l'arc). L'effet de grossissement est tellement
 455  important, qu'une erreur d'arrondi peut facilement produire un usinage
 456  hors tolérance. Par exemple, 1% de déplacement de l'extrémité d'un arc
 457  de 180 degrés produit 7% de déplacement du point situé à 90 degrés le
 458  long de l'arc. Les cercles presque complets sont encore pires.
 459  Autrement, l'usinage d'arcs, inférieurs à 165 degrés ou compris entre
 460  195 et 345 degrés sera possible.
 461  
 462  Dans le format rayon, les coordonnées du point final de l'arc, dans le
 463  plan choisi, sont spécifiées en même temps que le rayon de l'arc.
 464  Programmer 'G2 axes R-' (ou utiliser 'G3' au lieu de 'G2' ). R est le
 465  rayon. Les mots d'axes sont facultatifs sauf au moins un
 466  des deux du plan choisi, qui doit être utilisé. Un rayon positif
 467  indique que l'arc fait moins de 180 degrés, alors qu'un rayon négatif
 468  indique un arc supérieur à 180 degrés. Si l'arc est hélicoïdal, la
 469  valeur du point d'arrivée de l'arc dans les coordonnées de l'axe
 470  perpendiculaire au plan choisi sera également spécifiée.
 471  
 472  C'est une erreur si:
 473  
 474  * Les deux mots d'axes pour le plan choisi sont omis.
 475  * Le point d'arrivée de l'arc est identique au point courant.
 476  
 477  
 478  Voici un exemple de commande pour usiner un arc au format rayon:
 479  ----
 480  G17 G2 X10 Y15 R20 Z5 (arc au format rayon)
 481  ----
 482  
 483  Cet exemple signifie, faire un mouvement en arc ou hélicoïdal en sens horaire
 484  (vu du côté positif de l'axe Z), se terminant en X=10, Y=15 et Z=5,
 485  avec un rayon de 20. Si la valeur de départ de Z est 5, ce sera un arc
 486  de cercle parallèle au plan XY sinon, ce sera un arc hélicoïdal.
 487  
 488  [[sec:G4-Tempo]]
 489  == G4 Tempo
 490  (((G4 Temporisation)))
 491  
 492  ----
 493  G4 P-
 494  ----
 495  
 496  * 'P' - durée de la temporisation en secondes (un flottant)
 497  
 498  Les axes s'immobiliseront pour une durée de P secondes. Cette commande n'affecte
 499  pas la broche, les arrosages ni les entrées/sorties.
 500  
 501  C'est une erreur si:
 502  
 503  * Le nombre P est négatif ou n'est pas spécifié.
 504  
 505  [[sec:G5-Cubic-Spline]]
 506  == G5 Spline cubique
 507  (((G5 Cubic spline)))
 508  
 509  ----
 510  G5 X- Y- <I- J-> P- Q-
 511  ----
 512  * 'I' - offset incrémental en X, du point de départ au premier point de contrôle
 513  * 'J' - offset incrémental en Y, du point de départ au premier point de contrôle
 514  * 'P' - offset incrémental en X, du point de départ au second point de contrôle
 515  * 'Q' - offset incrémental en Y, du point de départ au second point de contrôle
 516  
 517  G5 crée une B-spline cubique dans le plan XY avec les axes X et Y seuls.
 518  P et Q doivent être tous les deux spécifiés pour chaque commande G5.
 519  
 520  Pour la première d'une série de commandes G5, I et J doivent être tous les deux
 521  spécifiés. Pour les commandes G5 suivantes de la série, soit I et J sont
 522  spécifiés tous les deux, soit aucun ne l'est. Si aucun n'est spécifié, la
 523  direction de départ de ce cube rejoindra automatiquement la direction de fin du
 524  cube précédent (comme si I et J étaient les négatifs des P et Q précédents).
 525  
 526  Par exemple, pour programmer une courbe en forme de N:
 527  
 528  .G5 Simple spline cubique initiale
 529  ----
 530  G90 G17
 531  G0 X0 Y0
 532  G5 I0 J3 P0 Q-3 X1 Y1
 533  ----
 534  
 535  Une seconde courbe en N qui s'attache doucement à celle-ci peux maintenant être
 536  faite sans spécifier I et J:
 537  
 538  .G5 Simple spline cubique subséquente
 539  ----
 540  G5 P0 Q-3 X2 Y2
 541  ----
 542  
 543  C'est une erreur si:
 544  
 545  * P et Q ne sont pas spécifiés tous les deux
 546  * Un seul, de I ou J est spécifié
 547  * Aucun de I ou J n'est spécifié à la première série de commandes G5
 548  * Un axe autre que X ou Y est spécifié
 549  * Le plan courant n'est pas G17
 550  
 551  [[sec:G5_1-Quadratic-Spline]]
 552  == G5.1 Spline quadratique
 553  (((G5.1 Quadratic spline)))
 554  
 555  ----
 556  G5.1 X- Y- I- J-
 557  ----
 558  * 'I' - Offset incrémental en X, du point de départ au point de contrôle
 559  * 'J' - Offset incrémental en Y, du point de départ au point de contrôle
 560  
 561  G5.1 crée une B-spline quadratique dans le plan XY avec les seuls axes X et Y.
 562  Ne pas spécifier I ou J donne un offset nul pour l'axe non spécifié,
 563  un ou les deux doivent donc être donnés.
 564  
 565  Par exemple, pour programmer une parabole, entre l'origine X-2 Y4 et X2 Y4:
 566  
 567  .G5.1 Simple spline quadratique
 568  ----
 569  G90 G17
 570  G0 X-2 Y4
 571  G5.1 X2 I2 J-8
 572  ----
 573  
 574  C'est une erreur si:
 575  
 576  * Les offsets I et J ne sont pas spécifiés ou sont à zéro
 577  * Un autre axe que X ou Y est spécifié
 578  * Le plan actif n'est pas G17
 579  
 580  [[sec:G5_2-G5_3-NURBS]]
 581  == G5.2 G5.3 Block NURBS
 582  (((G5.2 G5.3 NURBS Block)))
 583  
 584  ----
 585  G5.2 <P-> <X- Y-> <L->
 586  X- Y- <P->
 587  ...
 588  G5.3
 589  ----
 590  
 591  WARNING: G5.2, G5.3 sont expérimentaux, il n'ont pas encore été testés
 592  totalement.
 593  
 594  G5.2 est pour ouvrir un bloc de données définissant un NURBS et G5.3 pour
 595  fermer le bloc de données. Dans les lignes entre ces deux codes, les points de
 596  contrôle de la courbe sont définis avec deux éléments, leur 'poids' relatif (P)
 597  et le paramètre (L) qui détermine l'ordre de la courbe.
 598  
 599  Les coordonnées courantes, avant la premiére commande G5.2, est toujours prise
 600  comme premier point de contrôle du NURBS. Pour définir le poids pour le
 601  premier point de contrôle, premièrement programmer G5.2 P- sans donner X ni Y.
 602  
 603  Le poids par défaut si P n'est pas spécifié est 1. L'ordre par défaut si L n'est
 604  pas spécifié est 3.
 605  
 606  .G5.2 Exemple
 607  ----
 608  G0 X0 Y0 (mouvement en vitesse rapide)
 609  F10 (set feed rate)
 610  G5.2 P1 L3
 611       X0 Y1 P1
 612       X2 Y2 P1
 613       X2 Y0 P1
 614       X0 Y0 P2
 615  G5.3
 616  ; Les mouvements en vitesse rapide montrent le même parcours sans le bloc NURBS
 617  G0 X0 Y1
 618     X2 Y2
 619     X2 Y0
 620     X0 Y0
 621  M2
 622  ----
 623  
 624  .Simple sortie NURBS
 625  
 626  image:images/nurbs01.png[align="center", alt="Simple sortie NURBS"]
 627  
 628  D'autres informations sur NURBS sont disponibles ici:
 629  
 630  http://wiki.linuxcnc.org/cgi-bin/wiki.pl?NURBS[http://wiki.linuxcnc.org/cgi-bin/wiki.pl?NURBS]
 631  
 632  [[sec:G7-Mode-diametre]]
 633  == G7 Mode diamètre sur les tours
 634  (((G7 Mode diamètre sur les tours)))
 635  
 636  ----
 637  G7
 638  ----
 639  
 640  Sur un tour, programmer 'G7' pour passer l'axe X en mode diamètre. En
 641  mode diamètre, les mouvements de l'axe X font la moitié de la cote
 642  programmée. Par exemple, X10 placera l'outil à 5 unités du centre, ce
 643  qui produira bien une pièce d'un diamètre de 10 unités.
 644  
 645  [[sec:G8-Mode-rayon]]
 646  == G8 Mode rayon sur les tours
 647  (((G8 Mode rayon sur les tours)))
 648  
 649  ----
 650  G8
 651  ----
 652  
 653  Sur un tour, programmer 'G8' pour passer l'axe X en mode rayon. En mode
 654  rayon, les mouvements de l'axe X sont égaux à la cote programmée. Ce
 655  qui signifie que X10 placera l'outil à 10 unités du centre et aura pour
 656  résultat une pièce d'un diamètre de 20 unités. G8 est le mode par
 657  défaut à la mise sous tension.
 658  
 659  [[sec:G10-L1]]
 660  == G10 L1 Ajustements dans la table d'outils
 661  (((G10 L1 Ajustements dans la table d'outils)))
 662  
 663  ----
 664  G10 L1 P- axes <R- I- J- Q->
 665  ----
 666  * 'P' - numéro d'outil
 667  * 'R' - rayon de bec
 668  * 'I' - angle frontal (tour)
 669  * 'J' - angle arrière (tour)
 670  * 'Q' - orientation (tour)
 671  
 672  'G10 L1' ajuste les valeurs de la table d'outils pour l'outil N°'P' aux valeurs
 673  passées dans les paramètres. Les nouvelles valeurs peuvent être passées depuis
 674  un programme ou depuis la fenêtre d'entrées manuelles (MDI). Un G10 L1 valide,
 675  réécrit et recharge la table d'outils. 
 676  
 677  .Exemples avec G10 L1:
 678  ----
 679  G10 L1 P1 Z1.5 (fixe le décalage en Z de l'outil 1 à 1.5 de l'origine machine)
 680  G10 L1 P2 R0.15 Q3 (fixe le rayon de bec de l'outil 2 à 0.15 avec une orientation 3)
 681  ----
 682  
 683  C'est une erreur si:
 684  
 685  * La compensation d'outil est active
 686  * Le mot P n'est pas spécifié
 687  * Le mot P ne correspond pas à un numéro d'outil valide de la table d'outils.
 688  
 689  D'autres informations sur l'orientation <<sec:Orientations-des-outils-de-tour,
 690  des outils de tour sont disponibles ici>>.
 691  
 692  [[sec:G10-L2]]
 693  == G10 L2 Établissement de l'origine d'un système de coordonnées
 694  (((G10 L2 Établissement de l'origine d'un système de coordonnées)))
 695  
 696  ----
 697  G10 L2 P- <axes R->
 698  ----
 699  * 'P' - système de coordonnées (0 à 9)
 700  * 'R' - rotation autour de l'axe Z
 701  
 702  G10 L2 décale l'origine des axes dans le système de coordonnées spécifié par
 703  la valeur du mot d'axe. Le décalage s'effectue à partir de l'origine machine
 704  établie par la prise d'origine machine (homing). Les valeurs de ce décalage vont
 705  remplacer toutes celles en effet sur le système de coordonnées spécifié. Les
 706  mots d'axe inutilisés resteront inchangés.
 707  
 708  Programmer P0 à P9 pour spécifier le système de coordonnées à décaler.
 709  
 710  [[sec:Systeme-Coordonnees]]
 711  .Systèmes de coordonnées
 712  
 713  [width="50%", options="header", cols="^,^,^"]
 714  |=========================================
 715  |Valeur P| Système de coordonnées | G-code
 716  |       0|          Actif courant | n/a
 717  |       1|                      1 | G54
 718  |       2|                      2 | G55
 719  |       3|                      3 | G56
 720  |       4|                      4 | G57
 721  |       5|                      5 | G58
 722  |       6|                      6 | G59
 723  |       7|                      7 | G59.1
 724  |       8|                      8 | G59.2
 725  |       9|                      9 | G59.3
 726  |==========================================
 727  
 728  Facultativement, programmer 'R' pour indiquer la rotation des axes 'XY' autour
 729  de l'axe 'Z'.
 730  La direction de rotation est anti-horaire comme vue depuis le côté positif de
 731  l'axe Z.
 732   
 733  Tous les mots d'axe sont facultatifs.
 734  
 735  Être en mode relatif ('G91') est sans effet sur 'G10 L2'.
 736  
 737  Concepts importants:
 738  
 739  * G10 L2 Pn ne change pas l'actuel système de coordonnées par celui spécifié
 740  par P, il est nécessaire d'utiliser G54 à 59.3 pour sélectionner le système de
 741  coordonnées.
 742  * Quand un mouvement de rotation est en cours, jogger un axe, déplacera celui-ci
 743  seulement dans le sens négatif ou positif et non pas le long de l'axe de
 744  rotation.
 745  * Si un décalage d'origine créé avec 'G92' ou 'G92' est actif avant la
 746  commande 'G10 L2', il reste actif après.
 747  * Le système de coordonnées dont l'origine est définie par la commande 'G10'
 748  peut être actif ou non au moment de l'exécution de 'G10'. Si il est actif à
 749  ce moment là, les nouvelles coordonnées prennent effet immédiatement.
 750  
 751  C'est une erreur si:
 752  
 753  * Le nombre P n'est pas évalué comme étant un nombre entier compris entre 0 et 9.
 754  * Un axe est programmé mais n'est pas défini dans la configuration.
 755  
 756  .Premier exemple avec G10 L2:
 757  ----
 758  G10 L2 P1 X3.5 Y17.2
 759  ----
 760  
 761  Place l'origine du premier système de coordonnées (celui sélectionné par G54)
 762  au points X3.5 et Y17.2 (en coordonnées absolues).
 763  La coordonnée Z de l'origine, ainsi que les coordonnées de tous les autres axes,
 764  restent inchangées puisque seuls X et Y étaient spécifiés.
 765  
 766  .Deuxième exemple avec G10 L2:
 767  ----
 768  G10 L2 P1 X0 Y0 Z0 (révoque les décalages en X, Y et Z du système N°1)
 769  ----
 770  
 771  L'exemple précédent fixe les origines XYZ du système de coordonnées G54, à
 772  l'origine machine.
 773  
 774  Les systèmes de coordonnées <<cha:Systemes-de-coordonnees, sont décrits en
 775  détail ici>>.
 776  
 777  [[sec:G10-L10]]
 778  == G10 L10 modifie les offsets d'outil dans la table d'outils
 779  (((G10 L10 modifie les offsets d'outil dans la table d'outils)))
 780  
 781  ----
 782  G10 L10 P- axes <R- I- J- Q->
 783  ----
 784  * 'P' - numéro d'outil
 785  * 'R' - rotation autour de l'axe Z
 786  * 'I' - angle frontal (tour)
 787  * 'J' - angle arrière (tour)
 788  * 'Q' - orientation (tour)
 789  
 790  G10 L10 modifie les valeurs de l'outil 'P' dans la table d'outils, de sorte
 791  que si la compensation d'outil est rechargée, avec la machine à la position
 792  courante et avec les G5x et G52/G92 actifs, les coordonnées courantes pour
 793  l'axe spécifié deviendront les coordonnées spécifiées. Les axes non spécifiés
 794  dans la commande G10 L10 ne seront pas modifiés.
 795  
 796  .Exemple avec G10 L10:
 797  ----
 798  M6 T1 G43 (appel l'outil 1 et active la correction de longueur d'outil)
 799  G10 L10 P1 Z1.5 (fixe la position courante en Z à 1.5 dans la table d'outils)
 800  G43 (recharge l'offset de longueur d'outil depuis la table d'outils modifiée)
 801  M2 (fin de programme)
 802  ----
 803  Pour d'autres détals voir les commandes <<sec:M6-Appel-Outil, M6>>,
 804  <<sec:T-Choix-Outil, Tn>> et <<sec:G43, G43>>/<<sec:G43_1,G43.1>>.
 805  
 806  C'est une erreur si:
 807  
 808  * La compensation d'outil est activée.
 809  * Le mot P n'est pas spécifié.
 810  * Le mot P ne correspond pas à un numéro d'outil valide de la table d'outils.
 811  
 812  [[sec:G10-L11]]
 813  == G10 L11 modifie les offsets d'outil dans la table d'outils
 814  (((G10 L11 modifie les offsets d'outil dans la table d'outils)))
 815  
 816  ----
 817  G10 L11 P- axes <R- I- J- Q->
 818  ----
 819  * 'P' - numéro d'outil
 820  * 'R' - rotation autour de l'axe Z
 821  * 'I' - angle frontal (tour)
 822  * 'J' - angle arrière (tour)
 823  * 'Q' - orientation (tour)
 824  
 825  G10 L11 est identique à G10 L10 excepté qu'au lieux de fixer les valeurs
 826  par rapport aux décalages de coordonnées courants, il les fixe de sorte que les
 827  coordonnées courantes deviennent celles spécifiées par les paramètres si la
 828  nouvelle compensation d'outil est rechargée et que la machine est placée dans
 829  le système de coordonnées G59.3, système sans aucun décalage G52/G92 actif.
 830  
 831  Ceci permet à l'utilisateur de fixer le système de coordonnées G59.3 à
 832  un point fixe de la machine et d'utiliser cet emplacement pour mesurer
 833  l'outil sans s'occuper des autres décalages courants actifs.
 834  
 835  C'est une erreur si:
 836  
 837  * La compensation d'outil est activée
 838  * Le mot P n'est pas spécifié.
 839  * Le mot P ne correspond pas à un numéro d'outil valide de la table d'outils.
 840  
 841  [[sec:G10-L20]]
 842  == G10 L20 Établissement de l'origine d'un système de coordonnées
 843  (((G10 L20 Établissement de l'origine d'un système de coordonnées)))
 844  
 845  ----
 846  G10 L20 P- axes
 847  ----
 848  * 'P' - système de coordonnées (0-9)
 849  
 850  G10 L20 est similaire à G10 L2 excepté qu'au lieu d'ajuster les offsets à des
 851  valeurs données, il les place à des valeurs calculées de sorte que les
 852  coordonnées courantes deviennent les valeurs données en paramètres.
 853  
 854  .Exemple avec G10 L20:
 855  ----
 856  G10 L20 P1 X1.5 (fixe la position courante en X du système de coordonnées G54
 857  à 1.5)
 858  ----
 859  
 860  C'est une erreur si:
 861  
 862  * Le nombre P n'est pas évalué comme une entier compris entre 0 et 9.
 863  * Un axe non défini dans la configuration est programmé.
 864  
 865  [[sec:G17-G18-G19]]
 866  == G17 à G19.1 Choix du plan de travail
 867  (((G17 Plan XY)))
 868  (((G18 Plan XZ)))
 869  (((G19 Plan YZ)))
 870  
 871  Ces codes sélectionnent le plan de travail courant comme décrit ci-dessous:
 872  
 873  * G17 - XY (par défaut)
 874  * G18 - ZX
 875  * G19 - YZ
 876  * G17.1 - UV
 877  * G18.1 - WU
 878  * G19.1 - VW
 879  
 880  Les plans UV, WU et VW ne supportent pas les arcs. Il est de bonne pratique
 881  d'inclure la sélection du plan de travail dans le préambule du programme G-code.
 882  Les effets de la sélection d'un plan de travail sont discutés dans la section
 883  <<sec:G2-G3, sur les arcs>>.
 884  
 885  [[sec:G20-G21-Unites-Machine]]
 886  == G20, G21 Choix des unités machine
 887  (((G20 Pouce)))
 888  (((G21 Millimètre)))
 889  
 890  * 'G20' - pour utiliser le pouce comme unité de longueur.
 891  * 'G21' - pour utiliser le millimètre comme unité de longueur.
 892  
 893  C'est toujours une bonne pratique de programmer soit 'G20', soit 'G21', dans
 894  le préambule du programme, avant tout mouvement et de ne plus en changer
 895  ailleurs dans le programme.
 896  
 897  [[sec:G28-G28_1-Aller-a-une-position]]
 898  == G28, G28.1 Aller à une position prédéfinie
 899  (((G28)))
 900  (((G28.1)))
 901  
 902  [WARNING]
 903  Pour une bonne répétabilité de la position et que la position soit correctement
 904  enregistrée avec G28.1, faire la prise d'origine générale avant d'utiliser G28.
 905  
 906  G28 utilise les valeurs enregistrées dans les paramètres 5161 à 5166 comme
 907  points finaux des mouvements des axes X Y Z A B C U V W.
 908  Les valeurs des paramètres sont des coordonnées machine 'absolues', en unités
 909  machine natives, telles que fixées dans le fichier ini. Tous les axes définis
 910  dans le fichier ini seront déplacés lors d'un G28.
 911  
 912  * G28 - effectue un mouvement en vitesse rapide de la position courante à la
 913  position 'absolue' enregistrée dans les paramètres 5161 à 5166.
 914  
 915  * 'G28 axes' - effectue un déplacement en vitesse rapide à la position
 916  spécifiée par 'axes' y compris les décalages, puis effectuera un mouvement en
 917  vitesse rapide aux coordonnées 'absolues' stockées dans les paramètres 5161
 918  à 5166 pour les axes spécifiés.
 919  
 920  * G28.1 - enregistre la position 'absolue' courante dans les paramètres 5161
 921  à 5166.
 922  
 923  .Exemple avec G28
 924  ----
 925  G28 Z2.5 (vitesse rapide vers Z2.5 puis emplacement spécifié dans les paramètres enregistrés de G28)
 926  ----
 927   
 928  C'est une erreur si:
 929  
 930  * La compensation d'outil est active.
 931  
 932  [[sec:G30-G30_1-Aller-a-une-position-predefinie]]
 933  == G30, G30.1 Aller à une position prédéfinie
 934  (((G30)))
 935  (((G30.1)))
 936  
 937  [WARNING]
 938  Pour une bonne répétabilité de la position et que la position soit correctement
 939  enregistrée avec G30.1, faire la prise d'origine générale avant d'utiliser G30.
 940  
 941  * 'G30' - effectue un mouvement en vitesse rapide de la position courante à la
 942  position 'absolue' stockée dans les paramètres 5181 à 5186.
 943  Les valeurs stockées dans les paramètres font référence au système de
 944  coordonnées absolues qui est le système de coordonnées machine.
 945  
 946  * 'G30 axes' - effectue un déplacement en vitesse rapide depuis la position
 947  courante jusqu'à la position spécifiée par 'axes', y compris les décalages,
 948  suivi d'un mouvement rapide à la position 'absolue' stockée dans les paramètres
 949  5181 à 5186 pour les axes spécifiés. Les axes non spécifiés ne bougeront pas.
 950  
 951  * 'G30.1' - enregistre la position absolue courante dans les paramètres 5181 à
 952  5186.
 953  
 954  [NOTE]
 955  Les paramètres de 'G30' peuvent être utilisés pour déplacer l'outil quand un M6
 956  est programmé avec la variable '[TOOL_CHANGE_AT_G30]=1' dans la section
 957  '[EMCIO]' du fichier ini.
 958  
 959  .Exemple avec G30
 960  ----
 961  G30 Z2.5 (mvt rapide à Z2.5 puis déplacement selon les paramètres de G30
 962  stockés)
 963  ----
 964  
 965  C'est une erreur si:
 966  
 967  * La compensation de d'outil est active.
 968  
 969  [[sec:G33-Broche-synchronisee]]
 970  == G33 Mouvement avec broche synchronisée
 971  (((G33 Mouvement avec broche synchronisée)))
 972  
 973  ----
 974  G33 X- Y- Z- K-
 975  ----
 976  
 977  * 'K' - distance par tour
 978  
 979  Pour un mouvement avec broche synchronisée dans une direction, programmer
 980  'G33 X- Y- Z- K-' où K donne la longueur du mouvement en XYZ pour chaque tour
 981  de broche. Par exemple, si il commence à 'Z=0', 'G33 Z-1 K.0625' produira
 982  un mouvement d'un pouce de long en Z en même temps que 16 tours de broche.
 983  Cette commande peut être la base d'un programme pour faire un filetage de
 984  16 filets par pouce. Un autre exemple en métrique, 'G33 Z-15 K1.5' produira
 985  un mouvement de 15mm de long pendant que la broche fera 10 tours soit un
 986  pas de 1.5mm.
 987  
 988  Les mouvements avec broche synchronisée utilisent l'index de broche et les pins
 989  'spindle at speed' pour le filetage multi-passes. Un mouvement avec 'G33' se
 990  termine au point final programmé.
 991  
 992  [NOTE]
 993  K suit la ligne d'avance décrite par 'X- Y- Z-'. K n'est pas parallèle à
 994  l'axe Z si les points d'arrivée des axes X et Y sont utilisés, par exemple pour
 995  réaliser un filetage conique.
 996  
 997  .Informations techniques[[g33-tech-info]]
 998  Au début de chaque passe G33, LinuxCNC utilise la vitesse de broche et les
 999  limites d'accélération de la machine pour calculer combien de temps prendra Z
1000  pour accélérer après chaque impulsion d'index et détermine de combien de degrés
1001  la broche tournera pendant ce temps là. Il ajoute alors cet angle à la position
1002  de l'index puis calcule la position de Z utilisant l'angle de broche correct.
1003  Cela signifie que Z aura atteints la position correcte juste en fin
1004  d'accélération à la bonne vitesse, il peux immédiatement usiner le bon filetage.
1005  
1006  .Connections de hAL
1007  Les pins 'spindle.N.at-speed' et l'index 'encoder.n.phase-Z' pour la broche
1008  doivent être connectés dans le fichier HAL pour que G33 soit opérationnel.
1009  Voir le Manuel de l'intégrateur pour plus d'informations sur les mouvements
1010  synchronisés avec la broche.
1011  
1012  .Exemple avec G33:
1013  ----
1014  G90 (mode distance absolue)
1015  G0 X1 Z0.1 (positionnement en vitesse rapide)
1016  S100 M3 (broche en rotation à 100tr/mn)
1017  G33 Z-2 K0.125 (mouvement vers Z -2 avec une avance de 0.125 par tour)
1018  G0 X1.25 (mouvement de dégagement en vitesse rapide)
1019  Z0.1 (mouvement en vitesse rapide à Z0.1)
1020  M2 (fin de programme)
1021  ----
1022  
1023  * Voir les sections <<sec:G90-G91,G90>>, <<sec:G0,G0>>
1024  et <<sec:M2-M30,M2>> pour plus d'informations.
1025  
1026  C'est une erreur si:
1027  
1028  * Tous les axes sont omis.
1029  * La broche ne tourne pas quand cette commande est exécutée.
1030  * Le mouvement linéaire requis excède les limites de vitesse machine
1031  en raison de la vitesse de broche.
1032  
1033  [[sec:G33_1-Taraudage-rigide]]
1034  == G33.1 Taraudage Rigide
1035  (((G33.1 Taraudage rigide)))
1036  
1037  ----
1038  G33.1 X- Y- Z- K-
1039  ----
1040  
1041  * 'K' - distance par tour
1042  
1043  Pour un taraudage rigide avec broche synchronisée et mouvement de retour,
1044  programmer 'G33.1 X- Y- Z- K-' où 'K-' donne la longueur du mouvement
1045  pour chaque tour de broche. Un mouvement de taraudage rigide suit cette
1046  séquence:
1047  
1048  [WARNING]
1049  Si pour un taraudage rigide, les coordonnées X et Y spécifiées ne sont pas
1050  les coordonnées courantes lors de l'appel de G33.1, le mouvement ne
1051  s'effectuera pas le long de l'axe Z mais de la position courante jusqu'aux
1052  coordonnées X et Y spécifiées.
1053  
1054  . Un mouvement aux coordonnées spécifiées, synchronisé avec la rotation de
1055  la broche, avec le ratio donné et débutant à l'impulsion d'index du codeur
1056  de broche.
1057  . Quand le point final est atteint, la commande inverse le sens de rotation
1058  de la broche (ex: de 300 tours/mn en sens horaire à 300 tours/mn en sens
1059  anti-horaire)
1060  . Le mouvement reste synchronisé en continu avec la broche, même 'au delà'
1061  de la coordonnée du point final spécifié pendant l'arrêt de la broche et
1062  son inversion.
1063  . Le mouvement synchronisé se poursuit pour revenir aux coordonnées initiales.
1064  . Quand les coordonnées initiale sont atteintes, la commande inverse la
1065  broche une seconde fois (ex: de 300tr/mn sens anti-horaire à 300tr/mn en
1066  sens horaire)
1067  . Le mouvement reste synchronisé même 'au delà' des coordonnées initiales
1068  pendant que la broche s'arrête, puis s'inverse.
1069  . Un mouvement 'non synchronisé' ramène le mobile en arrière, aux
1070  coordonnées initiales.
1071  
1072  Tous les mouvements avec broche synchronisée ont besoin d'un index de broche,
1073  pour conserver la trajectoire prévue et que les passes se chevauchent
1074  exactement. Un mouvement avec 'G33.1' se termine aux coordonnées initiales.
1075  Les mots d'axes sont facultatifs, sauf au moins un qui doit être utilisé.
1076  
1077  .Exemple avec G33.1:
1078  ----
1079  G90 (mode distance absolue)
1080  G0 X1.000 Y1.000 Z0.100 (mouvement rapide au point de départ taraudage rigide
1081  en 20 filets par pouce)
1082  G33.1 Z-0.750 K0.05 (et une profondeur de filet de 0.750)
1083  M2 (fin de programme)
1084  ----
1085  
1086  * Voir les sections <<sec:G90-G91,G90>>, <<sec:G0,G0>>
1087  et <<sec:M2-M30,M2>> pour plus d'informations.
1088  
1089  C'est une erreur si:
1090  
1091  * Tous les axes sont omis.
1092  * La broche ne tourne pas quand cette commande est exécutée.
1093  * Le mouvement linéaire requis excède les limites de vitesse machine
1094     en raison d'une vitesse de broche trop élevée.
1095  
1096  [[sec:G38-x-Palpeur]]
1097  == G38.x Mesure au palpeur
1098  (((G38.2 Palpeur)))(((G38.3 Palpeur)))(((G38.4 Palpeur)))(((G38.5 Palpeur)))
1099  
1100  ----
1101  G38.x axes
1102  ----
1103  
1104  * 'G38.2' - palpe vers la pièce, stoppe au toucher, signale une erreur en cas de
1105  défaut.
1106  * 'G38.3' - palpe vers la pièce, stoppe au toucher.
1107  * 'G38.4' - palpe en quittant la pièce, stoppe en perdant le contact, signal une
1108  erreur en cas de défaut.
1109  * 'G38.5' - palpe en quittant la pièce, stoppe en perdant le contact.
1110  
1111  
1112  [IMPORTANT]
1113  Cette commande n'est pas utilisable si la machine n'a pas été configurée pour
1114  exploiter un signal de sonde entre HAL et LinuxCNC.
1115  Le signal de la sonde doit être envoyé sur une broche d'entrée puis transmis à
1116  'motion.probe-entrée (bit, In)'. G38.x utilise la valeur de cette broche pour
1117  déterminer quand la sonde a touché ou perdu le contact. TRUE si le contact de
1118  la sonde est fermé (Touché), FALSE si il est ouvert.
1119  
1120  Programmer 'G38.x axes', pour effectuer une mesure au palpeur. Les mots d'axe
1121  sont facultatifs excepté au moins un. Les mots d'axe définissent ensemble,
1122  le point de destination, à partir de l'emplacement actuel, vers lequel la
1123  sonde se déplace. Si le palpeur n'a pas déclenché avant que la destination soit
1124  atteinte, G38.2 et G38.4 signaleront une erreur. L'outil dans la broche doit
1125  être un palpeur ou un actionneur de contact.
1126  
1127  En réponse à cette commande, la machine déplace le point contrôlé
1128  (qui est le centre de la boule du stylet du palpeur) en ligne droite,
1129  à la vitesse travail courante, vers le point programmé.
1130  En mode vitesse inverse du temps, la vitesse est telle que le mouvement
1131  depuis le point courant jusqu'au point programmé, prendra le temps spécifié.
1132  Le mouvement s'arrête (dans les limites d'accélération de la machine)
1133  lorsque le point programmé est atteint ou quand l'entrée du palpeur
1134  bascule dans l'état attendu selon la première éventualité.
1135  
1136  Le tableau de signification des différents codes de mesure.
1137  
1138  [[sec:Codes-de-mesure]]
1139  .Codes de mesure
1140  
1141  [width="90%", options="header"]
1142  |==========================================================
1143  |Code  | État ciblé    | Sens de destination | Signal d'erreur
1144  |G38.2 | Touché        | Vers la pièce       | Oui
1145  |G38.3 | Touché        | Vers la pièce       | Non
1146  |G38.4 | Quitté        | Depuis la pièce     | Oui
1147  |G38.5 | Quitté        | Depuis la pièce     | Non
1148  |==========================================================
1149  
1150  Après une mesure réussie, <<sec:Log-des-mesures,les paramètres 5061 à 5069>>
1151  contiendront les coordonnées des axes XYZABCUVW, pour l'emplacement du
1152  point contrôlé à l'instant du changement d'état du palpeur.
1153  Après une mesure manquée, ils contiendront les coordonnées du point programmé.
1154  Le paramètre 5070 est mis à 1 si la mesure est réussie et à 0 si elle est
1155  manquée. Si la mesure n'a pas réussi, G38.2 et G38.4 signaleront une erreur
1156  en affichant un message à l'écran si l'interface graphique choisie le permet.
1157  
1158  Un commentaire de la forme '(PROBEOPEN filename.txt)' ouvrira le
1159  fichier 'filename.txt' et y enregistrera les 9 coordonnées de
1160  XYZABCUVW pour chaque mesure réussie.
1161  Le fichier doit être fermé avec <<sec:Log-des-mesures,le commentaire>>
1162  '(PROBECLOSE)'.
1163  
1164  Dans le répertoire des exemples, le fichier 'smartprobe.ngc' montre
1165  l'utilisation d'un palpeur et l'enregistrement des coordonnées de la pièce
1166  dans un fichier. Le fichier 'smartprobe.ngc' peut être utilisé par 'ngcgui'
1167  avec un minimum de modifications.
1168  
1169  C'est une erreur si:
1170  
1171  * Le point programmé est le même que le point courant.
1172  * Aucun mot d'axe n'est utilisé.
1173  * La compensation de d'outil est activée.
1174  * La vitesse travail est à zéro.
1175  * Le palpeur est déjà au contact de la cible.
1176  
1177  [[sec:G40]]
1178  == G40 Révocation de la compensation de rayon d'outil
1179  (((G40 Révocation de la compensation de rayon)))
1180  
1181  * 'G40' - révoque la compensation de rayon d'outil. Le mouvement suivant, de
1182  sortie de compensation, doit être une droite au moins aussi longue que le
1183  diamètre de l'outil. Ce n'est pas une erreur de désactiver la compensation
1184  quand elle est déjà inactive.
1185  
1186  .Exemple avec G40
1187  ----
1188  ; la position courante est X1 après la fin du mvt avec compensation
1189  G40 (révoque la compensation)
1190  G0 X1.6 (mouvement linéaire aussi long que le diamètre d'outil)
1191  M2 (fin de programme)
1192  ----
1193  
1194  * Voir les sections <<sec:G0,G0>> et <<sec:M2-M30,M2>>
1195  pour plus d'informations.
1196  
1197  C'est une erreur si:
1198  
1199  * Un mouvement en arc avec G2 ou G3 suit un G40.
1200  * Le mouvement suivant la révocation de compensation est inférieur au
1201  diamètre de l'outil.
1202  
1203  [[sec:G41-G42]]
1204  == G41, G42 Compensation de rayon d'outil
1205  (((G41 Compensation d'outil)))
1206  (((G42 Compensation d'outil)))
1207  
1208  ----
1209  G41 <D-> (compensation à gauche du profil)
1210  G42 <D-> (compensation à droite du profil)
1211  ----
1212  
1213  * 'D' - Numéro d'outil
1214  
1215  Le mot D est facultatif. En son absence ou si il est à zéro, le rayon de l'outil
1216  courant est utilisé. Si le mot D est présent, il devrait normalement correspondre
1217  au numéro de l'outil monté dans la broche, bien que cela ne soit pas
1218  indispensable, il doit par contre correspondre à un numéro d'outil valide.
1219  
1220  Pour activer la compensation d'outil à gauche du profil,
1221  programmer 'G41'. G41 applique la compensation d'outil à gauche de la
1222  ligne programmée vu de l'extrémité positive de l'axe perpendiculaire au plan.
1223  
1224  Pour activer la compensation d'outil à droite du profil,
1225  programmer 'G42'. G42 applique la correction d'outil à droite de la
1226  ligne programmée vu de l'extrémité positive de l'axe perpendiculaire au plan.
1227  
1228  Le mouvement d'entrée doit être au moins aussi long que le rayon de l'outil.
1229  Le mouvement d'entrée peut être effectué en vitesse rapide.
1230  
1231  La compensation d'outil ne peut être effectuée que si le plan XY ou
1232  le plan XZ est actif.
1233  
1234  Les commandes définies par l'utilisateur, M100 à M199, sont autorisées
1235  lorsque la compensation d'outil est activée.
1236  
1237  Le comportement de la machine, quand la compensation d'outil est activée,
1238  est décrit dans la section <<sec:Compensation-rayon-d-outil,
1239  sur la compensation d'outil>>.
1240  
1241  C'est une erreur si:
1242  
1243  * Le nombre D ne correspond, ni à zéro, ni à un numéro d'outil valide.
1244  * Le plan YZ est le plan de travail actif.
1245  * La compensation d'outil est activée alors qu'elle est déjà active.
1246  
1247  [[sec:G41_1-G42_1]]
1248  == G41.1, G42.1 Compensation dynamique d'outil
1249  (((G41.1 Compensation dynamique)))
1250  (((G42.1 Compensation dynamique)))
1251  
1252  ----
1253  G41.1 D- <L-> (à gauche du profil)
1254  G42.1 D- <L-> (à droite du profil)
1255  ----
1256  
1257  * Le mot D spécifie le diamètre de l'outil.
1258  * Le mot L spécifie l'orientation de l'outil, est à 0 par défaut si
1259  non spécifié.
1260  
1261  Pour activer la compensation dynamique d'outil à gauche du profil,
1262  programmer 'G41.1 D- L-'.
1263  
1264  Pour activer la compensation dynamique d'outil à droite du profil,
1265  programmer 'G42.1 D- L-'.
1266  
1267  C'est une erreur si:
1268  
1269  * Le plan YZ est le plan de travail actif.
1270  * La valeur de L n'est pas comprise entre 0 et 9 inclus.
1271  * Le nombre L est utilisée alors que le plan XZ n'est pas le plan actif.
1272  * La compensation d'outil est activée alors qu'elle est déjà active.
1273  
1274  Plus d'informations sur <<sec:Orientations-des-outils-de-tour, l'orientation des
1275  outils>>, sur <<fig:Outil-Positions-1-2-3-4, les outils de tour en 1-2-3-4>> et
1276  <<fig:Outil-Positions-5-6-7-8, les outils de tour en 5-6-7-8>>.
1277  
1278  [[sec:G43]]
1279  == G43 Activation de la compensation de longueur d'outil
1280  (((G43 Activation de la compensation de longueur d'outil)))
1281  
1282  * 'H' - Numéro d'outil
1283  * 'G43' - Utilise l'outil courant chargé par le dernier Tn M6. G43 modifie les
1284  mouvements ultérieurs en décalant les coordonnées de Z et/ou de X, de la
1285  longueur de l'outil. G43 ne provoque aucun mouvement. L'effet de la
1286  compensation ne se produira qu'au cours du prochain mouvement des axes compensés,
1287  de sorte que le point final de ce mouvement sera la position compensée.
1288  * 'G43 H-' - Utilise l'offset de l'outil correspondant fourni par la table
1289  d'outils. Ce n'est pas une erreur d'avoir la valeur de H à zéro, le numéro de
1290  l'outil courant sera utilisé.
1291  
1292  .Exemple de ligne avec G43 H-
1293  ----
1294  G43 H1 (ajuste les offsets d'outil avec les valeurs de l'outil 1 fournies par
1295  la table d'outils)
1296  ----
1297  
1298  C'est une erreur si:
1299  
1300  * La valeur de H n'est pas un entier, il est négatif, ou il ne correspond, ni
1301  à zéro, ni à un numéro d'outil valide.
1302  
1303  [[sec:G43_1]]
1304  == G43.1 Compensation dynamique de longueur d'outil
1305  (((G43.1 Compensation dynamique de longueur d'outil)))
1306  
1307  ----
1308  G43.1 axes
1309  ----
1310  
1311  * 'G43.1 axes' - Modifie les mouvements ultérieurs en décalant les coordonnées
1312  de Z et/ou de X, selon les offsets stockés dans la table d'outils. G43.1 ne
1313  provoque aucun mouvement. L'effet de la compensation ne se produira qu'au cours
1314  du prochain mouvement des axes compensés de sorte que le point final de ce
1315  mouvement sera la position compensée.
1316  
1317  .Exemple avec G43.1
1318  ----
1319  G90 (passe en mode absolu)
1320  T1 M6 G43 (charge l'outil N°1 et son offset de longueur, Z est à la position
1321  machine 0 et la visu affiche Z1.500)
1322  G43.1 Z0.250 (décale l'outil courant de 0.250, la visu affiche maintenant
1323  Z1.250)
1324  M2 (fin de programme)
1325  ----
1326  * Voir les sections <<sec:G90-G91,G90>> & <<sec:T-Choix-Outil,T>> et
1327  <<sec:M2-M30,M2>> pour plus d'informations.
1328  
1329  ////
1330  Pour utiliser la compensation dynamique de longueur d'outil depuis un
1331  programme, utiliser 'G43.1 I- K-', où 'I-' donne la compensation de
1332  longueur d'outil en X (pour les tours) et 'K-' donne la compensation
1333  de longueur en Z (pour les tours et les fraiseuses).
1334  ////
1335  
1336  C'est une erreur si:
1337  
1338  * Une commande de mouvement est sur la même ligne que 'G43.1'
1339  
1340  [[sec:G49-Revocation-Longueur-Outil]]
1341  == G49 Révocation de la compensation de longueur d'outil
1342  (((G49 Révocation de compensation de longueur d'outil)))
1343  
1344  Pour révoquer la compensation de longueur d'outil, programmer 'G49'.
1345  
1346  Ce n'est pas une erreur de programmer une compensation qui est déjà
1347  utilisée. Ce n'est pas non plus une erreur de révoquer une compensation de
1348  longueur d'outil alors qu'aucune n'est couramment utilisée.
1349  
1350  [[sec:G53-Mouvement-Coordonnees-Absolues]]
1351  == G53 Mouvement en coordonnées absolues
1352  (((G53 Mouvement en coordonnées absolues)))
1353  
1354  ----
1355  G53 axes
1356  ----
1357  
1358  Pour un déplacement exprimé en coordonnées système, programmer 
1359  'G53' sur la même ligne qu'un mouvement linéaire. 'G53' n'est pas modal, il doit
1360  donc être programmé sur chaque ligne où il doit être actif. 'G0' ou 'G1' ne
1361  doivent pas se trouver sur la même ligne si un d'eux est déjà actif.
1362  Par exemple:
1363  
1364  .Exemple avec G53
1365  ----
1366  G53 G0 X0 Y0 Z0 (mouvement linéaire rapide des axes à leur positions d'origine)
1367  G53 X2 (mouvement linéaire rapide à la coordonnée absolue X=2)
1368  ----
1369  
1370  C'est une erreur si:
1371  
1372  * 'G53' est utilisé sans que G0 ou G1 ne soit actif.
1373  * 'G53' est utilisé alors que la compensation d'outil est active.
1374  
1375  Étudier le <<cha:Systemes-de-coordonnees, chapitre sur les systèmes de
1376  coordonnées>> et de leurs décalages, pour bien maîtriser ces concepts.
1377  
1378  [[sec:G54-a-G59_3]]
1379  == G54 à G59.3 Choix du système de coordonnées
1380  
1381  * 'G54' - Système de coordonnées pièce 1
1382  * 'G55' - Système de coordonnées pièce 2
1383  * 'G56' - Système de coordonnées pièce 3
1384  * 'G57' - Système de coordonnées pièce 4
1385  * 'G58' - Système de coordonnées pièce 5
1386  * 'G59' - Système de coordonnées pièce 6
1387  * 'G59.1' - Système de coordonnées pièce 7
1388  * 'G59.2' - Système de coordonnées pièce 8
1389  * 'G59.3' - Système de coordonnées pièce 9
1390  
1391  Le code 'G54' est apparié avec le système de coordonnées pièce N°1,
1392  pour le choisir programmer 'G54' et ainsi de suite pour les autres systèmes.
1393  
1394  Les systèmes de coordonnées stockent les valeurs de chacun des axes dans les
1395  variables indiquées dans le tableau ci-dessous.
1396  
1397  .Paramètres des systèmes de coordonnées pièce[[sec:Coordonnees-Piece]]
1398  
1399  [width="80%", options="header", cols="<,11*^"]
1400  |============================================================
1401  |Choix |CS|X   |Y   |Z   |A   |B   |C   |U   |V   |W   |R
1402  |G54   |1 |5221|5222|5223|5224|5225|5226|5227|5228|5229|5230
1403  |G55   |2 |5241|5242|5243|5244|5245|5246|5247|5248|5249|5250
1404  |G56   |3 |5261|5262|5263|5264|5265|5266|5267|5268|5269|5270
1405  |G57   |4 |5281|5282|5283|5284|5285|5286|5287|5288|5289|5290
1406  |G58   |5 |5301|5302|5303|5304|5305|5306|5307|5308|5309|5310
1407  |G59   |6 |5321|5322|5323|5324|5325|5326|5327|5328|5329|5330
1408  |G59.1 |7 |5341|5342|5343|5344|5345|5346|5347|5348|5349|5350
1409  |G59.2 |8 |5361|5362|5363|5364|5365|5366|5367|5368|5369|5370
1410  |G59.3 |9 |5381|5382|5383|5384|5385|5386|5387|5388|5389|5390
1411  |============================================================
1412  
1413  
1414  C'est une erreur si:
1415  
1416  * Un de ces G-codes est utilisé alors que la compensation d'outil est active.
1417  
1418  Voir la section <<cha:Systemes-de-coordonnees, sur les systèmes de coordonnée>>
1419  pour une vue complète.
1420  
1421  [[sec:G61-G61_1]]
1422  == G61, G61.1 Contrôle de trajectoire exacte
1423  (((G61 Trajectoire exacte)))
1424  (((G61.1 Arrêt exact)))
1425  (((Trajectoire contrôlée)))
1426  
1427  * 'G61' - Met la machine en mode de trajectoire exacte. G61 suivra exactement
1428  la trajectoire programmée même si cela doit aboutir à un arrêt complet
1429  momentané du mobile.
1430  * 'G61.1' - Met la machine en mode arrêts exacts.
1431  
1432  [[sec:G64]]
1433  == G64 Contrôle de trajectoire continue avec tolérance
1434  (((Contrôle de trajectoire continue avec tolérance)))
1435  
1436  ----
1437  G64 <P- <Q->>
1438  ----
1439  
1440  * 'P-' - Déviation maximale tolérée par rapport à la trajectoire programmée.
1441  * 'Q-' - Tolérance <<cha:Concepts-pour-utilisateur,naïve cam>>.
1442  * 'G64' - Recherche de la meilleure vitesse possible.
1443  * 'G64 P-' - Mélange entre meilleure vitesse et tolérance de déviation.
1444  * 'G64 P- Q-' - Est le moyen d'affiner encore pour obtenir le meilleur
1445  compromis entre vitesse et précision de la trajectoire. La vitesse sera
1446  réduite si nécessaire pour maintenir la trajectoire, même si ça doit aboutir
1447  à un arrêt complet momentané. Le 'détecteur naïve cam' est activé. Quand il
1448  y a une série de mouvements linéaires XYZ en vitesse travail, avec une
1449  même vitesse de déplacement, inférieure à 'Q-', ils sont regroupés en
1450  un seul segment linéaire, ainsi la vitesse s'en trouve améliorée puisqu'il
1451  n'y a plus de décélération/arrêt/accélération aux points de jonction des
1452  segments. Sur les mouvements G2/G3 dans le plan 'G17' (XY) lorsque le
1453  maximum d'écart entre un arc et une ligne droite est inférieur à
1454  la déviation maximale 'P-', la tolérance de l'arc est divisée en deux lignes
1455  (depuis le début de l'arc jusqu'au milieu et du milieu jusqu'à la fin). Ces
1456  deux lignes sont ensuite soumises à l'algorithme 'naïve cam'. Ainsi, les cas
1457  ligne-arc, arc-arc et arc-ligne et le cas ligne-ligne, bénéficient de
1458  l'algorithme 'naïve cam', ce qui améliore les performances en simplifiant
1459  les trajectoires. Il est permis de programmer ce mode même si il est déjà actif.
1460  
1461  .Exemple de ligne de programme avec G64
1462  ----
1463  G64 P0.015 (fixe la déviation d'usinage à 0.015 maximum de la trajectoire
1464  programmée)
1465  ----
1466  
1467  Il est de bonne pratique de spécifier un type de contrôle de trajectoire
1468  dans le préambule de chaque programme G-code.
1469  
1470  [[sec:G73-Percage-avec-brise-copeaux]]
1471  == G73 Cycle de perçage avec brise copeaux
1472  (((G73 Cycle de perçage avec brise copeaux)))
1473  
1474  ----
1475  G73 axes R- Q- <L->
1476  ----
1477  
1478  * 'R-' - Position du plan de retrait en Z
1479  * 'Q-' - Incrément 'delta' parallèle à l'axe Z
1480  * 'L-' - Répétition
1481  
1482  Le cycle 'G73' est destiné au perçage profond ou au fraisage avec brise-copeaux.
1483  Les retraits, au cours de ce cycle, fragmentent les copeaux longs (fréquents
1484  lors de l'usinage de l'aluminium). Ce cycle utilise la valeur 'Q-' qui
1485  représente un incrément 'delta' parallèle à l'axe Z. Le cycle se décompose de la
1486  manière suivante:
1487  
1488  . Un mouvement préliminaire. Comme décrit dans <<sec:Mouvement-Preliminaire, cet
1489   exposé sur le mouvement préliminaire>>
1490  . Un mouvement de l'axe Z seul, en vitesse travail, sur la position la moins
1491  profonde entre, l'incrément 'delta' ou la position de Z programmée.
1492  . Une petite remontée en vitesse rapide.
1493  . Répétition des étapes 2 et 3 jusqu'à ce que la position programmée de Z
1494  soit atteinte à l'étape 2.
1495  . Un mouvement de l'axe Z en vitesse rapide jusqu'au plan de retrait.
1496  
1497  C'est une erreur si:
1498  
1499  * La valeur de Q est négative ou égale à zéro.
1500  * Le nombre R n'est pas spécifié.
1501  
1502  [[sec:G76-Filetage]]
1503  == G76 Cycle de filetage préprogrammé
1504  (((G76 Cycle de filetage multi-passe)))
1505  
1506  ----
1507  G76 P- Z- I- J- R- K- Q- H- E- L-
1508  ----
1509  
1510  image::images/g76-threads_fr.png[]
1511  
1512  * 'Ligne pilote' - La ligne pilote est une ligne imaginaire, parallèle à
1513      l'axe de la broche (Z), située en sécurité à l'extérieur du matériau à
1514      fileter. La ligne pilote va du point initial en Z jusqu'à la fin du
1515      filetage donnée par la valeur de 'Z' dans la commande.
1516  
1517  * 'P-' - Le pas du filet en distance de déplacement par tour.
1518  
1519  * 'Z-' - La position finale du filetage. A la fin du cycle, l'outil sera
1520      à cette position 'Z'.
1521  
1522  [NOTE]
1523  En mode diamètre G7, les valeurs 'I', 'J' et 'K' sont des mesures de diamètre.
1524  En mode rayon G8, les valeurs 'I', 'J' et 'K' sont des mesures de rayon.
1525  
1526  * 'I-' - La crête du filet est une distance entre la ligne pilote et la
1527      surface de la pièce. Une valeur négative de 'I',
1528      indique un filetage externe et une valeur positive, indique un
1529      filetage interne. C'est généralement à ce diamètre nominal que le
1530      matériau est cylindré avant de commencer le cycle 'G76'.
1531  
1532  * 'J-' - Une valeur positive, spécifie la profondeur de la passe initiale.
1533       La première passe sera à 'J' au delà de la crête du filet 'I'.
1534  
1535  * 'K-' - Une valeur positive, spécifie la profondeur finale du filet.
1536      La dernière passe du filetage sera à 'K' au delà de la crête du filet 'I'.
1537  
1538  Paramètres facultatifs:
1539  
1540  * 'R-' - La profondeur de dégressivité. 'R1.0' spécifie une profondeur
1541      de passe constante pour les passes successives du filetage.
1542      'R2.0' spécifie une surface constante.
1543      Les valeurs comprises entre 1.0 et 2.0 spécifient
1544      une profondeur décroissante mais une surface croissante.
1545      Enfin, les valeurs supérieures à 2.0 sélectionnent une surface décroissante.
1546  
1547  [WARNING]
1548  Les valeurs inutilement hautes de dégressivité, produiront un nombre inutilement
1549  important de passes. (dégressivité = plongée par paliers)
1550  
1551  * 'Q-' - L'angle de pénétration oblique. C'est l'angle (en degrés)
1552      décrivant de combien, les passes successives doivent être décalées
1553      le long de l'axe Z. C'est utilisé pour faire enlever plus de matériau
1554      d'un côté de l'outil que de l'autre.
1555      Une valeur positive de 'Q' fait couper d'avantage le bord de l'outil.
1556      Typiquement, les valeurs sont 29, 29.5 ou 30 degrés.
1557  
1558  * 'H-' - Le nombre de passes de finition. Les passes de finition sont
1559      des passes additionnelles en fond de filet.
1560      Pour ne pas faire de passe de finition, programmer 'H0'.
1561  
1562  Les entrées et sorties de filetage peuvent être programmées coniques
1563      avec les valeurs de 'E' et 'L'.
1564  
1565  * 'E-' - Spécifie la longueur des parties coniques le long de l'axe Z.
1566      L'angle du cône ira de la profondeur de la dernière passe à la
1567      crête du filet 'I'. 'E2.0' donnera un cône d'entrée et de sortie
1568      d'une longueur de 2.0 unités dans le sens du filetage. Pour
1569      un cône à 45 degrés, programmer 'E' identique à 'K'.
1570  
1571  * 'L-' - Spécifie quelles extrémités du filetage doivent être coniques.
1572      Programmer 'L0' pour aucune (par défaut), 'L1' pour une
1573      entrée conique, 'L2' pour une sortie conique, ou 'L3' pour l'entrée et
1574      la sortie coniques.
1575  
1576  L'outil fera une brève pause pour la synchronisation
1577  avec l'impulsion d'index avant chaque passe de filetage. Une gorge de
1578  dégagement sera requise à l'entrée, à moins que le début du filetage
1579  ne soit après l'extrémité de la pièce ou qu'un cône d'entrée soit utilisé.
1580  
1581  À moins d'utiliser un cône de sortie, le mouvement de sortie (retour
1582  rapide sur X initial) n'est pas synchronisé sur la vitesse de broche.
1583  Avec une broche lente, la sortie pourrait se faire sur une petite
1584  fraction de tour. Si la vitesse de broche est augmentée après qu'un
1585  certain nombre de passes soient déjà faites, la sortie va prendre
1586  une plus grande fraction de tour, il en résultera un usinage 'très
1587  brutal' pendant ce nouveau mouvement de sortie. Ceci peut être évité en
1588  prévoyant une gorge de sortie, ou en ne changeant pas la vitesse de
1589  broche pendant le filetage.
1590  
1591  La position finale de l'outil sera à la fin de la 'ligne pilote'.
1592  Un mouvement de sécurité peut être nécessaire avec un filetage interne,
1593  pour sortir l'outil de la pièce.
1594  
1595  C'est une erreur si:
1596  
1597  * Le plan de travail actif n'est pas ZX.
1598  * D'autres mots d'axes que X ou Y, sont spécifiés.
1599  * La dégressivité 'R' est inférieure à 1.0.
1600  * Tous les mots requis ne sont pas spécifiés.
1601  * 'P', 'J', 'K' ou 'H' est négatif.
1602  * 'E-' est supérieur à la moitié de la longueur de la ligne pilote.
1603  
1604  .Connections de HAL
1605  Les pins 'spindle.N.at-speed' et l'index 'encoder.n.phase-Z' doivent être
1606  connectées dans le fichier HAL pour que G76 soit opérationnel.
1607  Voir le Manuel de l'intégrateur pour plus d'informations sur les mouvements
1608  synchronisés avec la broche.
1609  
1610  .Informations techniques
1611  Le cycle préprogrammé G76 est basé sur le mouvement avec broche synchronisée G33,
1612  voir les <<g33-tech-info, informations technique relatives à G33>>.
1613  
1614  
1615  Un programme de filetage, 'g76.ngc' montre l'utilisation d'un cycle de
1616  filetage G76, il peut être visualisé et exécuté sur n'importe quelle machine
1617  utilisant la configuration 'sim/lathe.ini'.
1618  
1619  .Exemple de G-Code avec G76
1620  ----
1621  G0 Z-0.5 X0.2
1622  G76 P0.05 Z-1 I-0.075 J0.008 K0.045 Q29.5 L2 E0.045
1623  ----
1624  
1625  Sur l'image ci-dessous, l'outil est à la position finale après que le cycle
1626  G76 soit terminé. On voit que le parcours d'entrée de l'outil sur la droite,
1627  spécifié par Q29.5 et le parcours de sortie conique à gauche comme
1628  spécifié par L2 E0.045. Les lignes blanches sont les mouvements de coupe.
1629  
1630  .Parcours d'outil de l'exemple[[fig:G76-cycle-de-filetage]]
1631  
1632  image::images/g76-01.png[alt="Parcours d'outil de l'exemple"]
1633  
1634  [[sec:G81-a-G89]]
1635  == Les cycles de perçage G81 à G89
1636  (((Cycles de perçage G81-G89)))
1637  (((G81-G89, Cycles de perçage)))
1638  
1639  Les cycles de perçage de 'G81' à 'G89' et la révocation de ces cycle 'G80',
1640  sont décrits dans cette section. Des exemples sont donnés plus bas avec
1641  les descriptions.
1642  
1643  Tous les cycles de perçage sont effectués dans le respect du plan
1644  de travail courant. N'importe lequel des six plans de travail peut être
1645  choisi. Dans cette section, la plupart des descriptions supposeront que
1646  le plan de travail XY est le plan courant. Le comportement reste
1647  analogue pour les autres plans de travail et les mots corrects doivent
1648  être utilisés. Par exemple, dans le plan G17.1, l'action de retrait
1649  s'effectue parallèlement à l'axe W et les positions ou incréments sont
1650  donnés avec U et W. Dans ce cas, substituer U, V, W avec X, Y, Z dans les
1651  instructions suivantes.
1652  
1653  Les mots d'axes rotatifs ne sont pas autorisés dans les cycles de perçage.
1654  Quand le plan actif est X, Y, Z, les mots d'axes U, V, W ne sont pas autorisés.
1655  De même, si le plan actif est U, V, W, les mots d'axes X, Y, Z ne sont
1656  pas autorisés.
1657  
1658  === Mots communs
1659  
1660  Tous les cycles de perçage utilisent les groupes X, Y, Z ou U, V, W selon
1661  le plan sélectionné, ainsi que le mot 'R'. La position de R- (signifiant
1662  retrait) est perpendiculaire au plan de travail courant (axe Z pour le plan XY,
1663  axe X pour le plan YZ, axe Y pour le plan XZ, etc.). Quelques cycles de
1664  perçage utilisent des arguments supplémentaires.
1665  
1666  === Mots 'sticky'
1667  
1668  Dans les cycles de perçage, un nombre est qualifié de 'sticky' (persistante,
1669  collant) si, quand le même cycle est répété sur plusieurs lignes de code en
1670  colonne, le nombre doit être indiqué la première fois, mais il
1671  devient facultatif pour le reste des lignes suivantes. Les nombres
1672  'sticky' conservent leur valeur tant qu'ils ne sont pas explicitement
1673  programmés avec une nouvelle valeur. La valeur de R est toujours 'sticky'.
1674  
1675  En mode de déplacements incrémentaux (G91), les valeurs X, Y, est R
1676  sont traitées comme des incréments depuis la position courante, Z est
1677  un incrément depuis la position de l'axe Z avant le mouvement
1678  impliquant l'axe Z. En mode de déplacements absolus, les valeurs de X,
1679  Y, R, et Z sont des positions absolues dans le système de coordonnées courant.
1680  
1681  === Répétition de cycle
1682  
1683  Le mot L est facultatif et représente le nombre de répétitions.
1684  L=0 n'est pas permis. Si les fonctionnalités de répétition sont utilisées,
1685  elles le sont normalement en mode relatif, de sorte que la même séquence de
1686  mouvements se répète à plusieurs emplacements régulièrement espacés le long
1687  d'une ligne droite. Quand L>1 en mode relatif et XY comme plan courant,
1688  les positions X et Y sont déterminées en ajoutant les valeurs X et Y de
1689  la commande à celles de la position courante, pour le premier trajet ou
1690  ensuite, à celles de la position finale du précédent trajet, pour les
1691  répétitions. Ainsi, si vous programmez `L10`, vous obtiendrez 10 cycles.
1692  Le premier cycle sera la distance X, Y depuis la position d'origine.
1693  Les positions de R- et Z- ne changent pas durant toutes les
1694  répétitions. En mode absolu, L>1 signifie `faire le même cycle à la même
1695  place plusieurs fois`, omis, le mot L est équivalent à L=1. La valeur de L
1696  n'est pas 'sticky'.
1697  
1698  
1699  === Mode de retrait
1700  
1701  La hauteur du mouvement de retrait à la fin de chaque répétition
1702  (appelée 'plan de retrait' dans les descriptions suivantes) est
1703  déterminée par le mode de retrait: retrait sur la position initiale de
1704  Z, si elle est au dessus de la valeur de R et que le mode de retrait
1705  est 'G98', OLD_Z, sinon, à la position de R. Voir la section
1706  <<sec:G98-G99-Set, sur les options du plan de retrait>>.
1707  
1708  === Erreurs des cycles de perçage
1709  
1710  Il y a une erreur si:
1711  
1712  * Tous les mots X, Y et Z sont manquants durant un cycle de perçage.
1713  * Des mots d'axes de différents groupes (XYZ) (UVW) sont utilisés.
1714  * Un nombre P est requis mais un nombre P négatif est utilisé.
1715  * Un nombre L est utilisé mais n'est pas un entier positif.
1716  * Un mouvement d'axe rotatif est utilisé durant un cycle de perçage.
1717  * Une vitesse inverse du temps est activée durant un cycle de perçage.
1718  * La compensation d'outil est activée durant un cycle de perçage.
1719  
1720  Quand le plan XY est actif, la valeur de Z est 'sticky', et c'est une
1721  erreur si:
1722  
1723  * La valeur de Z est manquante alors qu'un même cycle de perçage n'a
1724     pas encore été activé.
1725  * La valeur de R est inférieure à celle de Z.
1726  
1727  Si un autre plan est actif, les conditions d'erreur sont analogues à
1728  celles du plan XY décrites ci-dessus.
1729  
1730  [[sec:Mouvement-Preliminaire]]
1731  === Mouvement préliminaire et Intermédiaire
1732  
1733  Le mouvement préliminaire est un ensemble de mouvements commun à tous les
1734  cycles de perçage.
1735  
1736  Tout au début de l'exécution d'un cycle de perçage, si la position
1737  actuelle de Z est en dessous de la position de retrait R, l'axe Z va
1738  à la position R. Ceci n'arrive qu'une fois, sans tenir compte de la
1739  valeur de L.
1740  
1741  En plus, au début du premier cycle et à chaque répétition, un ou deux
1742  des mouvements suivants sont faits:
1743  
1744  . Un déplacement en ligne droite, parallèle au plan XY, vers le position
1745     programmée.
1746  . Un déplacement en ligne droite, de l'axe Z seul vers la position de
1747     retrait R, si il n'est pas déjà à cette position R.
1748  
1749  Si un autre plan est actif, le mouvement préliminaire et intermédiaire
1750  est analogue.
1751  
1752  === Pourquoi utiliser les cycles de perçage?
1753  
1754  Il y a au moins deux raisons pour utiliser les cycles de perçage. La
1755  première est l'économie de code et la seconde la sécurité offerte par le
1756  mouvement préliminaire qui permet de ne pas s'occuper du point de départ
1757  du cycle.
1758  
1759  [[sec:G80-Revocation-modaux]]
1760  == G80 Révocation des codes modaux
1761  
1762  (((G80 Révocation des codes modaux)))
1763  
1764  * 'G80' - Révoque, tant qu'il est actif, tous les codes de mouvements modaux du
1765  groupe 1 auquel il appartient. Il est révoqué lui même par tout g-code du même
1766  groupe.
1767  
1768  C'est une erreur si:
1769  
1770  * Des mots d'axes sont programmés quand G80 est actif.
1771  
1772  .Exemple 1 avec G80:
1773  ----
1774  G90 G81 X1 Y1 Z1.5 R2.8 (cycle de perçage en mode de déplacement absolu)
1775  G80 (révoque G81)
1776  G0 X0 Y0 Z0 (active les mouvements en vitesse rapide et déplace le
1777  mobile en X0, Y0 et Z0)
1778  ----
1779  
1780  L'exemple 1 produit les mêmes déplacements et le même état final de la machine
1781  que l'exemple suivant:
1782  
1783  .Exemple avec G0:
1784  ----
1785  G90 G81 X1 Y1 Z1.5 R2.8 (cycle de perçage en mode de déplacement absolu)
1786  G0 X0 Y0 Z0 (active les mouvements en vitesse rapide et déplace le
1787  mobile en X0, Y0 et Z0)
1788  ----
1789  
1790  L'avantage du premier exemple est que la ligne du G80 révoque clairement le cycle
1791  G81. Avec ce premier programme, le programmeur doit revenir en mode
1792  mouvement avec G0, comme c'est fait sur la ligne suivante, ou tout autre
1793  mot G de mouvement.
1794  
1795  
1796  Si un cycle de perçage n'est pas révoqué avec G80 ou un autre mot G
1797  de mouvement, le cycle de perçage attend de se répéter en utilisant
1798  la prochaine ligne de code contenant un ou plusieurs mots d'axe. Le fichier
1799  suivant perce (G81) un ensemble de huit trous, tel que montré sur l'image qui
1800  suit.
1801  
1802  .Exemple 2 avec G80:
1803  ----
1804  N100 G90 G0 X0 Y0 Z0 (coordonnées d'origine)
1805  N110 G1 X0 G4 P0.1
1806  N120 G81 X1 Y0 Z0 R1 (cycle de perçage)
1807  N130 X2
1808  N140 X3
1809  N150 X4
1810  N160 Y1 Z0.5
1811  N170 X3
1812  N180 X2
1813  N190 X1
1814  N200 G80 (révocation du cycle G81)
1815  N210 G0 X0 (mouvement en vitesse rapide)
1816  N220 Y0
1817  N230 Z0
1818  N240 M2 (fin du programme)
1819  ----
1820  
1821  [NOTE]
1822  Noter que la position de Z change après les quatre premiers trous.
1823  C'est également un des rares cas dans lesquels les numéros de lignes sont
1824  présents, permettant d'envoyer le lecteur sur une ligne de code spécifique.
1825  
1826  image::images/G81mult.png[]
1827  
1828  L'utilisation du G80 de la ligne N200 est facultative puisqu'il y a un G0
1829  sur la ligne suivante qui révoque le cycle G81. Mais utiliser G80,
1830  comme l'exemple 2 le montre, donne une meilleure lisibilité au programme. Sans
1831  ce G80, il ne serait pas aussi évident que tous les blocs compris entre N120 et
1832  N200 appartiennent au cycle de perçage.
1833  
1834  [[sec:G81-Cycle-de-percage]]
1835  == G81 Cycle de perçage
1836  (((G81 Cycle de perçage)))
1837  
1838  ----
1839  G81 (X- Y- Z- ) ou (U- V- W- ) R- L-
1840  ----
1841  
1842  Le cycle 'G81' est destiné au perçage.
1843  
1844  . Un mouvement préliminaire, comme décrit <<sec:Mouvement-Preliminaire,
1845  sur cette page>>.
1846  . Un déplacement de l'axe Z seul à la vitesse programmée, vers la
1847     position Z programmée.
1848   . Retrait de l'axe Z en vitesse rapide jusqu'au plan de retrait R.
1849  
1850  .Exemple 1: G81 en position absolue[[sec:G81-exemple1]]
1851  
1852  Supposons que la position courante soit, X1, Y2, Z3 dans
1853  le plan XY, la ligne de code suivante est interprétée:
1854  ----
1855  G90 G81 G98 X4 Y5 Z1.5 R2.8
1856  ----
1857  
1858  Le mode de déplacements absolus est appelé '(G90)', le plan de retrait
1859  est positionné sur OLD_Z '(G98)', l'appel du cycle de perçage 'G81' va
1860  lancer ce cycle une fois. La position X deviendra celle demandée,
1861  X4. La position de Y deviendra celle demandée, Y5. La position de Z
1862  deviendra celle demandée, Z1.5. La valeur de R fixe le plan de retrait
1863  de Z à 2.8. La valeur de OLD_Z est 3. Les mouvements suivants vont se
1864  produire.
1865  
1866  image::images/G81ex1.png[]
1867  
1868  * Un mouvement en vitesse rapide, parallèle au plan XY vers X4, Y5, Z3
1869  * Un mouvement en vitesse rapide, parallèle à l'axe Z vers X4, Y5, Z2.8
1870  * Un mouvement en vitesse travail, parallèle à l'axe Z vers X4, Y5, Z1.5
1871  * Un mouvement en vitesse rapide, parallèle à l'axe Z vers X4, Y5, Z3
1872  
1873  'Exemple 2:' Supposons que la position courante soit, X1, Y2, Z3 dans
1874  le plan XY, la ligne de codes suivante est interprétée:
1875  ----
1876  G91 G81 G98 X4 Y5 Z-0.6 R1.8 L3
1877  ----
1878  
1879  Le mode de déplacements incrémentaux est appelé '(G91)', le plan de
1880  retrait est positionné sur OLD_Z '(G98)', l'appel du cycle de perçage
1881  'G81' demande 3 répétitions du cycle. La valeur demandée de X est 4,
1882  la
1883  valeur demandée de Y est 5, la valeur demandée de Z est -0.6 et le
1884  retrait R est à 1.8. La position initiale de X sera 5 (1+4), la
1885  position initiale de Y sera 7 (2+5), le plan de retrait sera positionné
1886  sur 4.8 (1.8+3) et Z positionné sur 4.2 (4.8-0.6). OLD_Z est à 3.
1887  
1888  Le premier mouvement en vitesse rapide le long de l'axe Z vers X1, Y2,
1889  Z4.8), puisque OLD_Z est inférieur au plan de retrait.
1890  
1891  La première répétition produira 3 mouvements.
1892  
1893  . Un déplacement en vitesse rapide, parallèle au plan XY vers X5, Y7, Z4.8
1894  . Un déplacement en vitesse travail, parallèle à l'axe Z vers X5, Y7, Z4.2
1895  . Un déplacement en vitesse rapide, parallèle à l'axe Z vers X5, Y7, Z4.8
1896  
1897  La deuxième répétition produira 3 mouvements. La position de X est
1898  augmentée de 4 et passe à 9, la position de Y est augmentée de 5 et
1899  passe à 12.
1900  
1901  . Un déplacement en vitesse rapide, parallèle au plan XY vers X9, Y12, Z4.8
1902  . Un déplacement en vitesse travail, parallèle à l'axe Z vers X9, Y12, Z4.2
1903  . Un déplacement en vitesse rapide, parallèle à l'axe Z vers X9, Y12, Z4.8
1904  
1905  La troisième répétition produira 3 mouvements. La position de X est
1906  augmentée de 4 et passe à 13, la position de Y est augmentée de 5 et
1907  passe à 17.
1908  
1909  . Un déplacement en vitesse rapide, parallèle au plan XY vers X13, Y17, Z4.8
1910  . Un déplacement en vitesse travail, parallèle à l'axe Z vers X13, Y17, Z4.2
1911  . Un déplacement en vitesse rapide, parallèle à l'axe Z vers X13, Y17, Z4.8
1912  
1913  image::images/G81ex2.png[]
1914  
1915  'Exemple 3:' G81 en position relative
1916  
1917  Supposons maintenant que le premier g81 de la ligne de
1918  code soit exécuté, mais de (0, 0, 0) plutôt que de (1, 2, 3).
1919  G90 G81 G98 X4 Y5 Z1.5 R2.8 Depuis OLD_Z est inférieur à la valeur de R,
1920  il n'ajoute rien au mouvement, mais puisque la valeur initiale de Z est
1921  inférieure à la valeur spécifiée dans R, un premier mouvement de Z sera
1922  effectué durant le mouvement préliminaire.
1923  
1924  image::images/G81.png[]
1925  
1926  'Exemple 4:' G81 en absolu avec R > Z
1927  
1928  Il s'agit de la trajectoire pour le second bloc de code de G81.
1929  ----
1930  G91 G81 G98 X4 Y5 Z-0.6 R1.8 L3
1931  ----
1932  
1933  Cette trajectoire commence en (0, 0, 0), l'interpréteur ajoute les
1934  valeurs initiales Z0 et R 1.8 et déplace le mobile en vitesse rapide
1935  vers cet emplacement. Après ce premier déplacement initial de Z, la
1936  répétition fonctionne de manière identique à celle de l'exemple 3 avec
1937  le mouvement final de Z à 0.6 en dessous de la valeur de R.
1938  
1939  image::images/G81a.png[]
1940  
1941  'Exemple 5:' G81 en relatif avec R > Z
1942  ----
1943  G90 G98 G81 X4 Y5 Z-0.6 R1.8
1944  ----
1945  
1946  Puisque ce tracé commence en (X0, Y0, Z0), l'interpréteur ajoute R1.8 au Z0
1947  initial et déplace le mobile en vitesse rapide à cet emplacement, comme dans
1948  'l'exemple 4'. Après ce mouvement initial à une hauteur Z0.6, le
1949  mouvement en vitesse rapide se terminera en X4 Y5.
1950  Alors la hauteur Z sera à 0.6 en dessous de la valeur de R. La fonction de
1951  répétition fera encore déplacer Z au même emplacement.
1952  
1953  [[sec:G82-Cycle-de-percage]]
1954  == G82 Cycle de perçage avec temporisation
1955  (((G82 Cycle de perçage avec tempo)))
1956  
1957  ----
1958  G82 (X- Y- Z- ) ou (U- V- W- ) R- L- P-
1959  ----
1960  
1961  Le cycle 'G82' est destiné au perçage.
1962  Les mouvements du cycle G82 ressemblent à ceux de G81 avec une
1963  temporisation supplémentaire en fin de mouvement Z. La longueur de
1964  cette temporisation, exprimée en secondes, est spécifiée par un mot P#
1965  sur la ligne du G82.
1966  
1967  . Un mouvement préliminaire. Comme décrit <<sec:Mouvement-Preliminaire, 
1968  sur cette page>>. 
1969  . Un déplacement de l'axe Z seul en vitesse programmée, vers la position Z programmée.
1970  . Une temporisation de 'P' secondes.
1971  . Retrait de l'axe Z en vitesse rapide jusqu'au plan de retrait 'R'.
1972  ----
1973  G90 G82 G98 X4 Y5 Z1.5 R2.8 P2
1974  ----
1975  
1976  Sera équivalent à l'exemple 3 ci-dessus mais avec une temporisation de
1977  2 secondes en fond de trou.
1978  
1979  
1980  [[sec:G83-Percage-avec-debourrage]]
1981  == G83 Cycle de perçage avec débourrage
1982  (((G83 Cycle de perçage avec débourrage)))
1983  
1984  ----
1985  G83 (X- Y- Z-) or (U- V- W-) R- L- Q-
1986  ----
1987  
1988  Le cycle 'G83' est destiné au perçage profond ou au fraisage avec
1989  brise-copeaux. Les retraits, au cours de ce cycle, dégagent les copeaux du
1990  trou et fragmentent les copeaux longs (qui sont fréquents lors du perçage dans
1991  l'aluminium). Ce cycle utilise la valeur 'Q' qui représente un incrément
1992  'delta' le long de l'axe Z.
1993  
1994  donnera:
1995  
1996  . Un mouvement préliminaire, comme décrit <<sec:Mouvement-Preliminaire, sur
1997  cette page>>.
1998  . Un mouvement de l'axe Z seul, en vitesse travail, sur la position la
1999    moins profonde entre, un incrément delta, ou la position de Z programmée.
2000  . Un mouvement en vitesse rapide au plan de retrait.
2001  . Une plongée en vitesse rapide dans le même trou, presque jusqu'au fond.
2002  . Répétition des étapes 2, 3 et 4 jusqu'à ce que la position programmée
2003     de Z soit atteinte à l'étape 2.
2004  . Un mouvement de l'axe Z en vitesse rapide vers le plan de retrait.
2005  
2006  C'est une erreur si:
2007  
2008  * La valeur de Q est négative ou égale à zéro.
2009  
2010  [[sec:G84-Taraudage-a-droite]]
2011  == G84 Cycle de taraudage à droite
2012  (((G84 Cycle de taraudage)))
2013  
2014  Ce code n'est pas encore implémenté dans LinuxCNC. Il est accepté mais son
2015  comportement n'est pas défini. Voir le <<sec:G33_1-Taraudage-rigide, taraudage
2016  rigide>>.
2017  
2018  [[sec:G85-Alesage-retrait-travail]]
2019  == G85 Cycle d'alésage, sans temporisation, retrait en vitesse travail
2020  (((G85 Cycle d'alésage)))
2021  
2022  ----
2023  G85 (X- Y- Z-) or (U- V- W-) R- L-
2024  ----
2025  
2026  Le cycle 'G85' est destiné à l'alésage, mais peut être utilisé pour
2027  le perçage ou le fraisage.
2028  
2029  . Un mouvement préliminaire, comme décrit <<sec:Mouvement-Preliminaire, sur
2030  cette page>>. 
2031  . Un déplacement de l'axe Z seul en vitesse travail, vers la position Z programmée.
2032  . Retrait de l'axe Z en vitesse travail vers le plan de retrait.
2033  
2034  [[sec:G86-Alesage-retrait-rapide]]
2035  == G86 Cycle d'alésage, arrêt de broche, retrait en vitesse rapide
2036  (((G86 Cycle d'alésage)))
2037  
2038  ----
2039  G86 (X- Y- Z-) or (U- V- W-) R- L- P-
2040  ----
2041  
2042  Le cycle 'G86' est destiné à l'alésage. Ce cycle utilise la valeur P pour
2043  une temporisation en secondes.
2044  
2045  . Un mouvement préliminaire, comme décrit sur <<sec:Mouvement-Preliminaire, cette
2046  page>>.
2047  . Un déplacement de l'axe Z seul en vitesse travail, vers la position Z programmée.
2048  . Une temporisation de P secondes.
2049  . L'arrêt de rotation de la broche.
2050  . Retrait de l'axe Z en vitesse rapide vers le plan de retrait.
2051  . Reprise de la rotation de la broche dans la même direction que
2052     précédemment.
2053  
2054  La broche doit tourner avant le lancement de ce cycle. C'est une
2055  erreur si:
2056  
2057  - La broche ne tourne pas avant que ce cycle ne soit exécuté.
2058  
2059  [[sec:G87-Back-Boring]]
2060  == G87 Alésage inverse
2061  (((G87 Alésage inverse)))
2062  
2063  Ce code n'est pas encore implémenté dans LinuxCNC. Il est accepté mais son
2064  comportement n'est pas défini.
2065  
2066  [[sec:G88-Alesage-Retrait-Manuel-Out]]
2067  == G88 Alésage, arrêt de broche, retrait en manuel
2068  (((G88 Cycle d'alésage)))
2069  
2070  Ce code n'est pas encore implémenté dans LinuxCNC. Il est accepté mais son
2071  comportement n'est pas défini.
2072  
2073  [[sec:G89-Alesage-Tempo]]
2074  == G89 Cycle d'alésage, temporisation, retrait en vitesse travail
2075  (((G89 Cycle d'alésage avec tempo)))
2076  
2077  ----
2078  G89 (X- Y- Z-) or (U- V- W-) R- L- P-
2079  ----
2080  
2081  Le cycle 'G89' est destiné à l'alésage. Il utilise la valeur de P
2082  pour une temporisation en secondes.
2083  
2084  . Un mouvement préliminaire, comme décrit <<sec:Mouvement-Preliminaire, sur
2085  cette page>>.
2086  . Un déplacement de l'axe Z seul en vitesse travail, vers la position Z programmée.
2087  . Temporisation de P secondes.
2088  . Retrait de l'axe Z en vitesse travail vers le plan de retrait.
2089  
2090  === Pourquoi utiliser les cycles de perçage ?
2091  
2092  Il y a au moins deux raisons, la première est l'économie de code. Un
2093  simple trou demande plusieurs lignes de code pour être exécuté.
2094  
2095  Nous avons montré plus haut, comment les cycles
2096  de perçage peuvent être utilisés pour produire 8 trous avec dix
2097  lignes de code. Le programme ci-dessous permet de produire le même jeu
2098  de 8 trous en utilisant cinq lignes pour le cycle de perçage. Il ne
2099  suit pas exactement le même parcours et ne perce pas dans le même ordre
2100  que l'exemple précédent, mais le programme a été écrit de manière
2101  économique, une bonne pratique qui devrait être courante avec les
2102  cycles de perçage.
2103  
2104  'Exemple 5:' perçage de huit trous, réécrit.
2105  ----
2106  G90 G0 X0 Y0 Z0 (coordonnées d'origine)
2107  G1 F10 X0 G4 P0.1
2108  G91 G81 X1 Y0 Z-1 R1 L4 (cycle de perçage)
2109  G90 G0 X0 Y1
2110  Z0
2111  G91 G81 X1 Y0 Z-.5 R1 L4 (cycle de perçage)
2112  G80 (révocation du cycle G81)
2113  M2 (fin de programme)
2114  ----
2115  
2116  image::images/eight.png[]
2117  
2118  'Exemple 6:' Douze trous en carré
2119  
2120  Cet exemple montre l'utilisation du mot L pour répéter une série
2121  incrémentale de cycles de perçage pour des blocs de code successifs
2122  dans le même mode mouvements G81. Ici, nous produisons 12 trous au
2123  moyen de cinq lignes de code dans le mouvement modal.
2124  ----
2125  G90 G0 X0 Y0 Z0 (coordonnées d'origine)
2126  G1 F50 X0 G4 P0.1
2127  G91 G81 X1 Y0 Z-0.5 R1 L4 (cycle de perçage)
2128  X0 Y1 R0 L3 (répétition)
2129  X-1 Y0 L3 (répétition)
2130  X0 Y-1 L2 (répétition)
2131  G80 (révocation du cycle G81)
2132  G90 G0 X0 (retour vers l'origine en vitesse rapide)
2133  Y0
2134  Z0
2135  M2 (fin de programme)
2136  ----
2137  
2138  image::images/twelve.png[]
2139  
2140  La deuxième raison d'utiliser les cycles de perçages, c'est qu'il
2141  produisent un mouvement préliminaire et retournent à une position
2142  prévisible et contrôlable, quel que soit le point de départ du cycle.
2143  
2144  [[sec:G90-G91]]
2145  == G90, G91: Modes de déplacement
2146  (((G90 Mode de déplacement absolu)))
2147  (((G91 Mode de déplacement relatif)))
2148  
2149  * 'G90' est le mode de déplacement absolu, les valeurs d'axes
2150  'X, Y, Z, A, B, C, U, V, W' représentent les positions dans le système de
2151  coordonnées courant. Les exceptions à cette règle sont décrites dans
2152  la section <<sec:G81-a-G89, sur les cycles de perçage>>.
2153  * 'G91' est le mode de déplacement relatif, en mode relatif, les
2154  valeurs d'axes représentent un incrément depuis la position courante.
2155  
2156  .Exemple avec G90
2157  ----
2158  G90 (passe en mode de déplacement absolu)
2159  G0 X2.5 (déplacement linéaire en vitesse rapide à la coordonnée X=2.5 en
2160  incluant tous les offsets en cours)
2161  ----
2162  
2163  .Exemple avec G91
2164  ----
2165  G91 (passe en mode de déplacement relatif)
2166  G0 X2.5 (déplacement linéaire en vitesse rapide, à +2.5 en X de la position
2167  courante)
2168  ----
2169  
2170  * Voir <<sec:G0,G0>> pour plus d'information.
2171  
2172  [[sec:G90_1-G91_1]]
2173  == G90.1, G91.1: Mode de déplacement en arc (I, J et K)
2174  
2175  * 'G90.1' - Mode de déplacement absolu pour les offsets I, J et K. Quand
2176  G90.1 est actif, I et J doivent être tous les deux spécifiés avec G2/G3 pour
2177  le plan XY ou J et K pour le plan XZ, sinon c'est une erreur.
2178  
2179  * 'G91.1' - Mode de déplacement relatif pour les offsets I, J et K. G91.1
2180  replace I, J et K à leur fonctionnement normal.
2181  
2182  [[sec:G92]]
2183  == G92 Décalage d'origine des systèmes de coordonnées
2184  (((G92 Décalages d'origine des systèmes de coordonnées)))
2185  
2186  ----
2187  G92 axes
2188  ----
2189  
2190  Voir ce chapitre <<cha:Systemes-de-coordonnees, pour une vision générale>>
2191  des systèmes de coordonnées.
2192  
2193  G92 fixera de nouvelles valeurs de coordonnées au point actuel (sans
2194  faire de mouvement). Les mots d'axes contiennent les valeurs souhaitées. Au
2195  moins un mot d'axe est obligatoire, les autres sont facultatifs. Si il
2196  n'y a pas de mot d'axe pour un axe donné, les coordonnées de cet axe
2197  resteront inchangées.
2198  
2199  Quand 'G92' est exécuté, les origines de tous les systèmes de
2200  coordonnées sont déplacées. Elles seront déplacées de sorte que les valeurs du
2201  point contrôlé courant, dans le système de coordonnées courant, deviendront
2202  celles spécifiées dans la ligne du G92. Les origines de tous les systèmes de
2203  coordonnées sont décalées de la même distance.
2204  
2205  Par exemple, supposons que le point courant soit à X=4 et qu'aucun
2206  décalage G92 ne soit actif. La ligne 'G92 X7' est programmée, toutes les
2207  origines seront décalées de -3 en X, ce qui fera que le point courant
2208  deviendra X=7. Ce -3 est enregistré dans le paramètre 5211.
2209  
2210  Être en mode de déplacement relatif est sans effet sur l'action de 'G92'.
2211  
2212  Des décalages G92 peuvent déjà être actifs quand 'G92' est appelé. Si
2213  c'est le cas, ils seront remplacés par le nouveau décalage, de sorte que le
2214  point courant devienne la valeur spécifiée.
2215  
2216  C'est une erreur si:
2217  
2218  * Tous les mots d'axes sont omis.
2219  
2220  LinuxCNC conserve les décalages G92 et les réutilise au prochain démarrage
2221  du logiciel. Pour éviter cela, programmer un 'G92.1' qui les effacera, ou
2222  un G92.2 qui supprimera les valeurs enregistrées.
2223  
2224  Voir le chapitre sur les <<cha:Systemes-de-coordonnees,systèmes de
2225  coordonnées>>.
2226  
2227  Voir la section sur les <<sec:G92-Decalages,décalages G92>>.
2228  
2229  Voir la section sur les <<sec:parametres,paramètres>>.
2230  
2231  [[sec:G92_1-G92_2]]
2232  == G92.1, G92.2 Remise à zéro des décalages des systèmes de coordonnées
2233  
2234  * 'G92.1' - Positionne les décalages d'axes à 0 et passe les paramètres
2235  5211 à 5219 à zéro.
2236  * 'G92.2' - Positionne les décalages d'axes à 0, laisse les valeurs des
2237  paramètres inchangées, elles ne seront pas utilisées.
2238  
2239  [[sec:G92_3]]
2240  == G92.3 Restauration des décalages d'axe
2241  
2242  * 'G92.3' - Positionne les décalages d'axes aux valeurs enregistrées dans
2243  les paramètres 5211 à 5219.
2244  
2245  Il est possible de positionner les décalages d'axes dans un programme puis de
2246  ré-utiliser les mêmes dans un autre programme. Pour cela, programmer 'G92' dans
2247  le premier programme, ce qui positionnera les paramètres 5211 à
2248  5219. Ne pas utiliser G92.1 dans la suite du premier programme. Les
2249  valeurs des paramètres seront enregistrées lors de la sortie du premier
2250  programme et rétablies au chargement du second programme. Utiliser
2251  'G92.3' vers le début du deuxième programme, ce qui restaurera les
2252  décalages d'axes enregistrés par le premier.
2253  
2254  
2255  [[sec:G93-G94-G95-Modes]]
2256  == G93, G94, G95: Choix des modes de vitesse
2257  (((G93, G94, G95: Choix des modes de vitesse)))
2258  
2259  * 'G93' - Passe en mode inverse du temps. Dans le mode vitesse inverse du
2260  temps, le mot 'F' signifie que le mouvement doit être terminé en '[1/F]'
2261  minutes. Par exemple, si la valeur de 'F' est '2.0', les mouvements
2262  doivent être terminés en '1/2' minute.
2263  +
2264  Quand le mode vitesse inverse du temps est actif, le mot 'F' doit
2265  apparaître sur chaque ligne contenant un mouvement 'G1', 'G2', ou 'G3'. Les
2266  mots F qui sont sur des lignes sans G1, G2, ou G3 sont ignorés. Être en
2267  mode vitesse inverse du temps est sans effet sur les mouvements G0
2268  (vitesse rapide).
2269  
2270  * 'G94' - Passe en mode unités par minute. Dans le mode vitesse en unités
2271  par minute, le mot 'F' indique le déplacement du point contrôlé en millimètres
2272  par minute, en pouces par minute, ou en degrés par minute, selon l'unité
2273  utilisée.
2274  
2275  * 'G95' - Passe en mode unités par tour. Dans le mode vitesse en unités
2276  par tour, le mot 'F' donne le déplacement du point contrôlé à effectuer sur
2277  l'axe Z, en millimètres par tour de broche ou en pouces, selon l'unité utilisée.
2278  
2279  C'est une erreur si:
2280  
2281  * Le mode vitesse inverse du temps est actif et qu'une ligne avec G1,
2282     G2, ou G3 (explicitement ou implicitement) n'a pas de mot F.
2283  * Une nouvelle vitesse n'a pas été spécifiée après un passage en G94 ou G95.
2284  
2285  [[sec:G96-G97-Broche]]
2286  == G96, G97: Modes de contrôle de la broche
2287  (((G96, G97: Vitesse de coupe constante, Vitesse de coupe en tr/mn)))
2288  
2289  ----
2290  G96 <D-> S- (vitesse de coupe constante)
2291  G97         (mode tr/mn)
2292  ----
2293  
2294  * 'D-' - Vitesse de broche maximale en tours par minute.
2295  * 'S-' - Vitesse de coupe constante.
2296  * 'G96 D- S-' - Passe à une vitesse de coupe constante de 'S' pieds par minute,
2297  si G20 est actif, ou 'S' mètres par minute, si G21 est actif. D- est facultatif.
2298  +
2299  Lorsque 'G96' est utilisé, s'assurer que 'X0' dans le système de coordonnées
2300  en cours (y compris les compensations d'outils) est bien le centre de
2301  rotation, sinon LinuxCNC ne donnera pas la vitesse de broche désirée.
2302  'G96' n'est pas affecté par les mode rayon ou diamètre.
2303  
2304  * 'G97' - Vitesse de coupe en tr/mn.
2305  
2306  .Exemple avec G96
2307  ----
2308  G96 D2500 S250 (passe à une vitesse de coupe constante de 250 m/mn maximum pour
2309  une vitesse de broche maximale de 2500tr/mn).
2310  ----
2311  
2312  C'est une erreur si:
2313  
2314  * S n'est pas spécifié avec G96.
2315  * Une vitesse est spécifiée en mode G96 et la broche ne tourne pas.
2316  
2317  [[sec:G98-G99-Set]]
2318  == G98, G99: Options du plan de retrait
2319  (((G98, G99 Retrait à la position initiale, Retrait sur R)))
2320  
2321  Quand la broche se rétracte pendant les cycles de perçage, il
2322  existe deux options pour indiquer comment elle doit se rétracter:
2323  
2324   . 'G98' Retrait perpendiculaire au plan de travail courant jusqu'à
2325     la position qui était celle de cet axe juste avant le début du cycle de
2326     perçage. (à moins que cette position ne soit inférieure à celle indiquée
2327     par le mot R, auquel cas, c'est cette dernière qui serait utilisée).
2328  
2329  image::images/G81g98d.png[]
2330  
2331  
2332   . 'G99' Retrait perpendiculaire au plan de travail courant jusqu'à la position
2333     indiquée par le mot 'R'.
2334  
2335  image::images/G81ret.png[]
2336  
2337  Ne pas oublier que la signification du mot R change selon que le mode de
2338  déplacement est absolu ou relatif.
2339  
2340  Le plan de retrait initial (G98) est annulé chaque fois que le mode de
2341  mouvement est abandonné, que ce soit explicitement avec G80 ou implicitement
2342  (tout code de mouvement qui n'est pas un cycle).
2343  Basculer d'un mode de cycle à un autre, par exemple entre G81 et G83
2344  n'annule pas le plan de retrait initial. Il est permis de basculer entre
2345  G98 et G99 durant une série de cycles de perçage.
2346  
2347  // vim: set syntax=asciidoc:
2348  
2349