Tout le G-code de LinuxCNC

1. Conventions d’écriture du G-code

Dans une commande type, le tiret () signifie une valeur réelle et les signes
(<>) indiquent un item facultatif.

Si L- est écrit dans une commande, le signe fera référence à Lnombre.
De la même manière, le signe dans H- peut être appelé le Hnombre et
ainsi de suite pour les autres lettres. Une valeur facultative sera
écrite .

Dans les blocs de G-code, le mot axes signifie n’importe quel axe défini dans la configuration.

Une valeur réelle peut être:

  • – un nombre explicite, 4 par exemple.
  • – une expression, [2+2] par exemple.
  • – une valeur de paramètre, #88 par exemple.
  • – une fonction unaire de la valeur, acos[0] par exemple.

Dans la plupart des cas, si des mots d’axes sont donnés
parmi XYZABCUVW, ils spécifient le point de destination.

Les axes sont donnés dans le système de coordonnées courant,
à moins qu’explicitement décrit comme étant dans le système de coordonnées
absolues (machine).

Les axes sont facultatifs, tout axe omis gardera sa valeur courante.

Tout item dans un bloc de G-code, non explicitement décrit comme facultatif,
sera requis. Une erreur sera signalée si un item requis est omis.

Dans les commandes, les valeurs suivant les lettres sont souvent
données comme des nombres explicites. Sauf indication contraire, les
nombres explicites peuvent être des valeurs réelles. Par exemple, G10
L2
pourrait aussi bien être écrite G[2*5] L[1+1]. Si la valeur du
paramètre 100 étaient 2, G10 L#100 signifierait également la même
chose.

2. Table d’index du G-code

Sections Descriptions

G0

Interpolation linéaire en vitesse rapide

G1

Interpolation linéaire en vitesse travail

G2/G3

Interpolation circulaire sens horaire/anti-horaire

G4

Temporisation

G5

Spline cubique

G5.1

B-Spline quadratique

G5.2

NURBS, ajout point de contrôle

G5.3

NURBS, exécute

G7

Mode diamètre (sur les tours)

G8

Mode rayon (sur les tours)

G10 L1

Ajuste les valeurs de l’outil en table d’outils

G10 L10

Modifie les valeurs de l’outil dans la table d’outils

G10 L11

Fixe les valeurs de l’outil dans la table d’outils

G10 L2

Fixe l’origine d’un système de coordonnées

G10 L20

Fixe l’origine du système de coord. aux valeurs calculées

G18 G19

Choix du plan de travail

G20 G21

Unités machine

G28 G28.1

Aller à une position prédéfinie

G30 G30.1

Aller à une position
prédéfinie

G33

Mouvement avec broche synchronisée

G33.1

Taraudage rigide

G38

Mesures au palpeur

G40

Révocation de la compensation de rayon d’outil

G41 G42

Compensation de rayon d’outil

G41.1 G42.1

Comp. dynamique de rayon d’outil à gauche/à droite

G43

Compensation de longueur d’outil d’après une table d’outils

G43.1

Compensation dynamique de longueur d’outil

G49

Révocation de la compensation de
longueur d’outil

G53

Déplacements en coordonnées
machine (Absolues)

G54 à G59.3

Choix du système de coordonnées (1 à 9)

G61 G61.1

Mode trajectoire exacte/mode arrêts exacts

G64

Mode trajectoire continue avec tolérance

G73

Cycle de perçage avec brise copeau

G76

Cycle de filetage multipasses (tour)

G80

Révocation des codes modaux

G81

Cycle de perçage

G82

Autres cycles de perçage

G83

Perçage avec débourrage

G84

Taraudage à droite (pas encore implémenté)

G85

Alésage, retrait en vitesse travail

G86

Alésage, retrait en vitesse rapide

G87

Cycle d’alésage arrière (pas encore implémenté)

G88

Cycle alésage, Stop, Retrait manuel
(pas encore implémenté)

G89

Cycle d’alésage avec tempo, recul vitesse travail

G90

Types de déplacement

G90.1 G91.1

Arc I,J,K, centre absolu ou relatif

G92

Décalages d’origines avec mise à jour des paramètres

G92.1 G92.2

Révocation des décalages d’origine

G92.3

Applique contenu des paramètres aux déc. d’origine

G93

Modes de vitesse

G96

Vitesse de coupe constante (IPM ou m/mn)

G97

Vitesse en tours par minute

G98

Options de retrait des cycles de perçage

3. G0 Interpolation linéaire en vitesse rapide

G0 axes

Pour un mouvement linéaire en vitesse rapide, programmer G0 axes,
tous les mots d’axe sont facultatifs. Le G0 est facultatif si le mode mouvement
courant est déjà G0. Cela produit un mouvement linéaire vers le point de
destination à la vitesse rapide courante (ou moins vite si la machine n’atteint
pas cette vitesse). Il n’est pas prévu d’usiner la matière quand une
commande G0 est exécutée. Un G0 seul peut être utilisé pour passer le mode
de mouvement courant en G0.

Exemple avec G0:
G90 (Fixe les déplacements en mode absolu)
G0 X1 Y-2.3 (mouvement linéaire en vitesse rapide du point courant à X1 Y-2.3)
M2 (fin de programme)
  • Voir les sections G90 et M2 pour plus
    d’informations.

Si la compensation d’outil est active, le mouvement sera
différent de celui décrit ci-dessus, voir la section
sur la compensation de d’outil.

Si G53 est programmé sur la même ligne, le mouvement sera également
différent, voir la section sur les mouvements en coordonnées absolues.

C’est une erreur si:

  • Un mot d’axe est indiqué sans valeur réelle.
  • Un mot d’axe est indiqué qui n’est pas configuré.

4. G1 Interpolation linéaire en vitesse travail

G1 axes

Pour un mouvement linéaire en vitesse travail, (pour usiner ou non)
programmer G1 axes, tous les mots d’axe sont facultatifs. Le G1 est
facultatif si le mode de mouvement courant est déjà G1.
Cela produira un mouvement linéaire vers le point de destination à
la vitesse de travail courante (ou moins vite si la machine n’atteint
pas cette vitesse). Un G1 seul peut être utilisé pour passer le mode de
mouvement courant en G1.

Exemple avec G1:
G90 (Fixe les déplacements en mode absolu)
G1 X1.2 Y-3 F10 (mouvement linéaire à 10 unités/mn du point courant à X1.2 Y-3)
Z-2.3 (mouvement linéaire à 10 unités/mn du point courant à Z-2.3)
Z1 F25 (mouvement linéaire de l'axe Z à 25 unités/mn vers Z1)
M2 (Fin de programme)
  • Voir les sections G90 et M2 pour plus
    d’informations.

Si la compensation d’outil est active, le mouvement sera
différent de celui décrit ci-dessus, voir la section
sur la compensation d’outil.
Si G53 est programmé sur la même ligne, le mouvement sera également
différent, voir la section sur les mouvements en coordonnées absolues.

C’est une erreur si:

  • – Aucune vitesse d’avance travail n’est fixée.
  • – un mot d’axe est indiqué sans valeur réelle.
  • – un mot d’axe est indiqué qui n’est pas configuré.

5. G2, G3 Interpolation circulaire en vitesse travail

G2 ou G3 axes décalages (format centre)
G2 ou G3 axes R- (format rayon)
G2 ou G3 décalages  (cercles complet)

Un mouvement circulaire ou hélicoïdal est spécifié en sens horaire
avec G2 ou en sens anti-horaire avec G3. La direction est vue depuis
le côté positif de l’axe autour duquel le mouvement se produit.

Les axes de cercle ou les hélicoïdes, doivent être parallèles aux
axes X, Y ou Z du système de coordonnées machine.
Les axes (ou, leurs équivalents, les plans perpendiculaires aux axes)
sont sélectionnés avec G17 (axe Z, plan XY),
G18 (axe Y, plan XZ), ou G19 (axe X, plan YZ).
Les plans 17,1, 18,1 et 19,1 ne sont pas actuellement pris en charge.
Si l’arc est circulaire, il se trouve dans un plan parallèle au plan sélectionné.

Pour programmer un hélicoïde, inclure le mot d’axe perpendiculaire au
plan de l’arc. Par exemple, si nous sommes dans le plan G17, inclure
un mot Z, ceci provoquera un mouvement de l’axe Z vers valeur programmée
durant tout le mouvement circulaire XY.

Pour programmer un arc supérieur à un tour complet, utiliser un
mot P spécifiant alors le nombre de tours complets en plus de l’arc.
Si P n’est pas spécifié, le comportement sera comme si P1 avait été
donné: ceci étant, un seul tour complet ou partiel sera effectué,
donnant un arc plus petit ou égal à un tour complet.
Par exemple, si un arc de 180° est programmé avec P2, le mouvement résultant
sera d’un tour et demi. Pour chaque incrément de P au delà de 1, un tour complet
sera ajouté à l’arc programmé. Les arcs hélicoïdaux multitours sont
supportés ce qui donne des mouvements très intéressants pour usiner des
alésages ou des filetages.

Si une ligne de G-code crée un arc et inclus le mouvement d’un
axe rotatif, l’axe rotatif tournera à vitesse constante de sorte que
le mouvement de l’axe rotatif commence et se termine en même temps que
les autres axes XYZ. De telles lignes sont rarement programmées.

Si la compensation d’outil est active, le mouvement sera
différent de celui décrit ci-dessus, voir les sections
sur G40 et sur G41-G42.

Le centre de l’arc est absolu ou relatif, tel que fixé par
G90.1 ou G91.1, respectivement.

C’est une erreur si:

  • Aucune vitesse d’avance travail n’est spécifiée.

Deux formats sont possibles pour spécifier un arc: Le format centre et
le format rayon.

5.1. Arc au format centre (format recommandé)

Les arcs au format centre sont plus précis que les arcs au format rayon, c’est
le format à privilégier.

La distance entre la position courante et le centre de l’arc et,
facultativement, le nombre de tours, sont utilisés pour programmer des arcs
inférieurs au cercle complet. Il est permis d’avoir le point final de l’arc
égal à la position courante.

Le décalage entre le centre de l’arc et la position courante ainsi
que facultativement, le nombre de tours, sont utilisés pour programmer des
cercles complets.

Une erreur d’arrondi peut se produire quand un arc est programmé avec une
précision inférieure à 4 décimales (0.0000) pour les pouces et à moins de
3 décimales (0.000) pour les millimètres.

Arc en mode distance relative

Les décalages par rapport au centre de l’arc sont des distances relatives au
point de départ de l’arc. Le mode distance relative de l’arc est le
mode par défaut.

Un ou plusieurs mots d’axe et un ou plusieurs décalages doivent être programmés
pour un arc qui fait moins de 360 degrés.

Aucun mot d’axe mais un ou plusieurs décalages doivent être programmés pour un
cercle complet. Le mot P, par défaut à 1, est facultatif.

Pour d’avantage d’information sur les arcs en mode relatif, voir la
section G91.1.

Arc en mode distance absolue

Les décalages par rapport au centre de l’arc sont des distances absolues depuis
la position 0 courante des axes (origine machine).

Un ou plusieurs mots d’axe et tous les décalages doivent être programmés pour
les arcs de moins de 360 degrés.

Aucun mots d’axe mais tous les décalages doivent être programmés pour un
cercle complet. Le mot P, par défaut à 1, est facultatif.

Pour d’avantage d’information sur les arcs en mode absolu, voir la
section G90.1.

Plan XY (G17)
G2 ou G3 
  • Z – hélicoïde
  • I – décalage en X
  • J – décalage en Y
  • P – nombre de tours
Plan XZ (G18)
G2 ou G3 
  • Y – hélicoïde
  • I – décalage en X
  • K – décalage en Z
  • P – nombre de tours
YZ-plane (G19)
G2 ou G3 
  • X – hélicoïde
  • J – décalage en Y
  • K – décalage en Z
  • P – nombre de tours

C’est une erreur si:

  • Aucune vitesse d’avance travail n’est fixée avec le mot F.
  • Aucun décalage n’est programmé.
  • Quand l’arc est projeté dans le plan courant, la distance depuis le point
    courant et le centre diffère de la distance entre le point final et le centre,
    de plus de (.05 pouce/.5 mm) OU ((.0005 pouce/.005mm) ET .1% du rayon).

Déchiffrer le message d’erreur Le rayon à la fin de l’arc diffère de celui
du début:

  • début – position courante
  • centre – la position du centre telle que calculée avec les paramètres I,J ou
    K
  • fin – le point final programmé
  • r1 – le rayon entre le point de départ et le centre
  • r2 – le rayon entre le point final et le centre

5.2. Exemples d’arcs au format centre

Calculer des arcs à la main peut être difficile.
Il est possible de dessiner l’arc à l’aide d’un programme de DAO
pour obtenir les coordonnées et les décalages.
Garder à l’esprit les tolérances, il pourrait être nécessaire de modifier
la précision de la DAO pour obtenir les résultats souhaités.
Une autre option consiste à calculer les coordonnées et les décalages
en utilisant des formules. Comme vous pouvez le voir sur la figure suivante
un triangle peut être formé à partir de la position courante,
de la position de fin et du centre de l’arc.

Sur la figure suivante, vous voyez que la position de départ est X0 Y0, la
position finale est X1 Y1. La position du centre de l’arc est X1 Y0.
Ceci donne un décalage de 1 depuis la position de départ sur l’axe X et
0 sur l’axe Y. Dans ce cas seul le décalage I est nécessaire.

Le G-code de cet exemple serait:

G0 X0 Y0
G2 X1 Y1 I1 F10 (arc en sens horaire dans le plan XY)
images/g2_fr.png
Figure 1. Exemple avec G2

Dans cet autre exemple, nous pouvons voir les différences de décalages
pour Y selon que nous faisons un mouvement G2 ou un mouvement G3.
Pour le mouvement G2 la position de départ est en X0 Y0, alors que
pour le mouvement G3 elle est en X0 Y1. Le centre de l’arc est en
X1 Y0.5 pour les deux. Le décalage J du mouvement G2 est 0.5 alors que
celui du mouvement G3 est -0.5.

Le G-code de cet exemple serait:

G0 X0 Y0
G2 X0 Y1 I1 J0.5 F25 (arc en sens horaire dans le plan XY)
G3 X0 Y0 I1 J-0.5 F25 (arc en sens anti-horaire dans le plan XY)
images/g2-3_fr.png
Figure 2. Exemple avec G2-G3

Voici un exemple au format centre pour usiner une hélice:

G0 X0 Y0 Z0
G17 G2 X10 Y16 I3 J4 Z-1 (Arc hélicoïdal avec ajout de Z)
exemple avec P
G0 X0 Y0 Z0
G2 X0 Y1 Z-1 I1 J0.5 P2 F25

Cet exemple signifie, faire un mouvement circulaire ou hélicoïdal en
sens horaire (vu du côté positif sur l’axe Z), dont l’axe est parallèle
à l’axe Z, se terminant en X10, Y16 et Z9, avec son centre décalé
de 3 unités dans la direction X, par rapport à la position X courante.
Son centre décalé dans la direction Y de 4 unités depuis la position Y courante.
Si la position courante est X7, Y7 au départ, le centre sera en X10, Y11.
Si la valeur de départ en Z est 9, ce sera un arc circulaire. Autrement,
ce sera un arc hélicoïdal. Le rayon de cet arc serait de 5 unités.

Dans le format centre, le rayon de l’arc n’est pas spécifié, mais il
peut facilement être trouvé puisque c’est la distance entre le
point courant et le centre du cercle, ou le point final de l’arc et le centre.

5.3. Arcs au format rayon (format non recommandé)

G2 ou G3 axes R-
  • R – rayon depuis la position courante

Ce n’est pas une bonne pratique de programmer au format rayon des
arcs qui sont presque des cercles entiers ou des demi-cercles, car un
changement minime dans l’emplacement du point d’arrivée va produire un
changement beaucoup plus grand dans l’emplacement du centre du cercle
(et donc, du milieu de l’arc). L’effet de grossissement est tellement
important, qu’une erreur d’arrondi peut facilement produire un usinage
hors tolérance. Par exemple, 1% de déplacement de l’extrémité d’un arc
de 180 degrés produit 7% de déplacement du point situé à 90 degrés le
long de l’arc. Les cercles presque complets sont encore pires.
Autrement, l’usinage d’arcs, inférieurs à 165 degrés ou compris entre
195 et 345 degrés sera possible.

Dans le format rayon, les coordonnées du point final de l’arc, dans le
plan choisi, sont spécifiées en même temps que le rayon de l’arc.
Programmer G2 axes R- (ou utiliser G3 au lieu de G2 ). R est le
rayon. Les mots d’axes sont facultatifs sauf au moins un
des deux du plan choisi, qui doit être utilisé. Un rayon positif
indique que l’arc fait moins de 180 degrés, alors qu’un rayon négatif
indique un arc supérieur à 180 degrés. Si l’arc est hélicoïdal, la
valeur du point d’arrivée de l’arc dans les coordonnées de l’axe
perpendiculaire au plan choisi sera également spécifiée.

C’est une erreur si:

  • Les deux mots d’axes pour le plan choisi sont omis.
  • Le point d’arrivée de l’arc est identique au point courant.

Voici un exemple de commande pour usiner un arc au format rayon:

G17 G2 X10 Y15 R20 Z5 (arc au format rayon)

Cet exemple signifie, faire un mouvement en arc ou hélicoïdal en sens horaire
(vu du côté positif de l’axe Z), se terminant en X=10, Y=15 et Z=5,
avec un rayon de 20. Si la valeur de départ de Z est 5, ce sera un arc
de cercle parallèle au plan XY sinon, ce sera un arc hélicoïdal.

6. G4 Tempo

G4 P-
  • P – durée de la temporisation en secondes (un flottant)

Les axes s’immobiliseront pour une durée de P secondes. Cette commande n’affecte
pas la broche, les arrosages ni les entrées/sorties.

C’est une erreur si:

  • Le nombre P est négatif ou n’est pas spécifié.

7. G5 Spline cubique

G5 X- Y-  P- Q-
  • I – offset incrémental en X, du point de départ au premier point de contrôle
  • J – offset incrémental en Y, du point de départ au premier point de contrôle
  • P – offset incrémental en X, du point de départ au second point de contrôle
  • Q – offset incrémental en Y, du point de départ au second point de contrôle

G5 crée une B-spline cubique dans le plan XY avec les axes X et Y seuls.
P et Q doivent être tous les deux spécifiés pour chaque commande G5.

Pour la première d’une série de commandes G5, I et J doivent être tous les deux
spécifiés. Pour les commandes G5 suivantes de la série, soit I et J sont
spécifiés tous les deux, soit aucun ne l’est. Si aucun n’est spécifié, la
direction de départ de ce cube rejoindra automatiquement la direction de fin du
cube précédent (comme si I et J étaient les négatifs des P et Q précédents).

Par exemple, pour programmer une courbe en forme de N:

G5 Simple spline cubique initiale
G90 G17
G0 X0 Y0
G5 I0 J3 P0 Q-3 X1 Y1

Une seconde courbe en N qui s’attache doucement à celle-ci peux maintenant être
faite sans spécifier I et J:

G5 Simple spline cubique subséquente
G5 P0 Q-3 X2 Y2

C’est une erreur si:

  • P et Q ne sont pas spécifiés tous les deux
  • Un seul, de I ou J est spécifié
  • Aucun de I ou J n’est spécifié à la première série de commandes G5
  • Un axe autre que X ou Y est spécifié
  • Le plan courant n’est pas G17

8. G5.1 Spline quadratique

G5.1 X- Y- I- J-
  • I – Offset incrémental en X, du point de départ au point de contrôle
  • J – Offset incrémental en Y, du point de départ au point de contrôle

G5.1 crée une B-spline quadratique dans le plan XY avec les seuls axes X et Y.
Ne pas spécifier I ou J donne un offset nul pour l’axe non spécifié,
un ou les deux doivent donc être donnés.

Par exemple, pour programmer une parabole, entre l’origine X-2 Y4 et X2 Y4:

G5.1 Simple spline quadratique
G90 G17
G0 X-2 Y4
G5.1 X2 I2 J-8

C’est une erreur si:

  • Les offsets I et J ne sont pas spécifiés ou sont à zéro
  • Un autre axe que X ou Y est spécifié
  • Le plan actif n’est pas G17

9. G5.2 G5.3 Block NURBS

G5.2   
X- Y- 
...
G5.3
Attention
G5.2, G5.3 sont expérimentaux, il n’ont pas encore été testés
totalement.

G5.2 est pour ouvrir un bloc de données définissant un NURBS et G5.3 pour
fermer le bloc de données. Dans les lignes entre ces deux codes, les points de
contrôle de la courbe sont définis avec deux éléments, leur poids relatif (P)
et le paramètre (L) qui détermine l’ordre de la courbe.

Les coordonnées courantes, avant la premiére commande G5.2, est toujours prise
comme premier point de contrôle du NURBS. Pour définir le poids pour le
premier point de contrôle, premièrement programmer G5.2 P- sans donner X ni Y.

Le poids par défaut si P n’est pas spécifié est 1. L’ordre par défaut si L n’est
pas spécifié est 3.

G5.2 Exemple
G0 X0 Y0 (mouvement en vitesse rapide)
F10 (set feed rate)
G5.2 P1 L3
     X0 Y1 P1
     X2 Y2 P1
     X2 Y0 P1
     X0 Y0 P2
G5.3
; Les mouvements en vitesse rapide montrent le même parcours sans le bloc NURBS
G0 X0 Y1
   X2 Y2
   X2 Y0
   X0 Y0
M2
Simple sortie NURBS


images/nurbs01.png

D’autres informations sur NURBS sont disponibles ici:

10. G7 Mode diamètre sur les tours

G7

Sur un tour, programmer G7 pour passer l’axe X en mode diamètre. En
mode diamètre, les mouvements de l’axe X font la moitié de la cote
programmée. Par exemple, X10 placera l’outil à 5 unités du centre, ce
qui produira bien une pièce d’un diamètre de 10 unités.

11. G8 Mode rayon sur les tours

G8

Sur un tour, programmer G8 pour passer l’axe X en mode rayon. En mode
rayon, les mouvements de l’axe X sont égaux à la cote programmée. Ce
qui signifie que X10 placera l’outil à 10 unités du centre et aura pour
résultat une pièce d’un diamètre de 20 unités. G8 est le mode par
défaut à la mise sous tension.

12. G10 L1 Ajustements dans la table d’outils

G10 L1 P- axes 
  • P – numéro d’outil
  • R – rayon de bec
  • I – angle frontal (tour)
  • J – angle arrière (tour)
  • Q – orientation (tour)

G10 L1 ajuste les valeurs de la table d’outils pour l’outil N°P aux valeurs
passées dans les paramètres. Les nouvelles valeurs peuvent être passées depuis
un programme ou depuis la fenêtre d’entrées manuelles (MDI). Un G10 L1 valide,
réécrit et recharge la table d’outils.

Exemples avec G10 L1:
G10 L1 P1 Z1.5 (fixe le décalage en Z de l'outil 1 à 1.5 de l'origine machine)
G10 L1 P2 R0.15 Q3 (fixe le rayon de bec de l'outil 2 à 0.15 avec une orientation 3)

C’est une erreur si:

  • La compensation d’outil est active
  • Le mot P n’est pas spécifié
  • Le mot P ne correspond pas à un numéro d’outil valide de la table d’outils.

D’autres informations sur l’orientation des outils de tour sont disponibles ici.

13. G10 L2 Établissement de l’origine d’un système de coordonnées

G10 L2 P- 
  • P – système de coordonnées (0 à 9)
  • R – rotation autour de l’axe Z

G10 L2 décale l’origine des axes dans le système de coordonnées spécifié par
la valeur du mot d’axe. Le décalage s’effectue à partir de l’origine machine
établie par la prise d’origine machine (homing). Les valeurs de ce décalage vont
remplacer toutes celles en effet sur le système de coordonnées spécifié. Les
mots d’axe inutilisés resteront inchangés.

Programmer P0 à P9 pour spécifier le système de coordonnées à décaler.

Tableau 1. Systèmes de coordonnées
Valeur P Système de coordonnées G-code

0

Actif courant

n/a

1

1

G54

2

2

G55

3

3

G56

4

4

G57

5

5

G58

6

6

G59

7

7

G59.1

8

8

G59.2

9

9

G59.3

Facultativement, programmer R pour indiquer la rotation des axes XY autour
de l’axe Z.
La direction de rotation est anti-horaire comme vue depuis le côté positif de
l’axe Z.

Tous les mots d’axe sont facultatifs.

Être en mode relatif (G91) est sans effet sur G10 L2.

Concepts importants:

  • G10 L2 Pn ne change pas l’actuel système de coordonnées par celui spécifié
    par P, il est nécessaire d’utiliser G54 à 59.3 pour sélectionner le système de
    coordonnées.
  • Quand un mouvement de rotation est en cours, jogger un axe, déplacera celui-ci
    seulement dans le sens négatif ou positif et non pas le long de l’axe de
    rotation.
  • Si un décalage d’origine créé avec G92 est actif avant la commande G10 L2,
    il reste actif après.
  • Le système de coordonnées dont l’origine est définie par la commande G10
    peut être actif ou non au moment de l’exécution de G10. Si il est actif à
    ce moment là, les nouvelles coordonnées prennent effet immédiatement.

C’est une erreur si:

  • Le nombre P n’est pas évalué comme étant un nombre entier compris entre 0 et 9.
  • Un axe est programmé mais n’est pas défini dans la configuration.
Premier exemple avec G10 L2:
G10 L2 P1 X3.5 Y17.2

Place l’origine du premier système de coordonnées (celui sélectionné par G54)
au points X3.5 et Y17.2 (en coordonnées absolues).
La coordonnée Z de l’origine, ainsi que les coordonnées de tous les autres axes,
restent inchangées puisque seuls X et Y étaient spécifiés.

Deuxième exemple avec G10 L2:
G10 L2 P1 X0 Y0 Z0 (révoque les décalages en X, Y et Z du système N°1)

L’exemple précédent fixe les origines XYZ du système de coordonnées G54, à
l’origine machine.

Les systèmes de coordonnées sont décrits en détail ici.

14. G10 L10 modifie les offsets d’outil dans la table d’outils

G10 L10 P- axes 
  • P – numéro d’outil
  • R – rotation autour de l’axe Z
  • I – angle frontal (tour)
  • J – angle arrière (tour)
  • Q – orientation (tour)

G10 L10 modifie les valeurs de l’outil P dans la table d’outils, de sorte
que si la compensation d’outil est rechargée, avec la machine à la position
courante et avec les G5x et G92 actifs, les coordonnées courantes pour
l’axe spécifié deviendront les coordonnées spécifiées. Les axes non spécifiés
dans la commande G10 L10 ne seront pas modifiés.

Exemple avec G10 L10:
M6 T1 G43 (appel l'outil 1 et active la correction de longueur d'outil)
G10 L10 P1 Z1.5 (fixe la position courante en Z à 1.5 dans la table d'outils)
G43 (recharge l'offset de longueur d'outil depuis la table d'outils modifiée)
M2 (fin de programme)

Pour d’autres détals voir les commandes M6,
Tn et G43/G43.1.

C’est une erreur si:

  • La compensation d’outil est activée.
  • Le mot P n’est pas spécifié.
  • Le mot P ne correspond pas à un numéro d’outil valide de la table d’outils.

15. G10 L11 modifie les offsets d’outil dans la table d’outils

G10 L11 P- axes 
  • P – numéro d’outil
  • R – rotation autour de l’axe Z
  • I – angle frontal (tour)
  • J – angle arrière (tour)
  • Q – orientation (tour)

G10 L11 est identique à G10 L10 excepté qu’au lieux de fixer les valeurs
par rapport aux décalages de coordonnées courants, il les fixe de sorte que les
coordonnées courantes deviennent celles spécifiées par les paramètres si la
nouvelle compensation d’outil est rechargée et que la machine est placée dans
le système de coordonnées G59.3, système sans aucun décalage G92 actif.

Ceci permet à l’utilisateur de fixer le système de coordonnées G59.3 à
un point fixe de la machine et d’utiliser cet emplacement pour mesurer
l’outil sans s’occuper des autres décalages courants actifs.

C’est une erreur si:

  • La compensation d’outil est activée
  • Le mot P n’est pas spécifié.
  • Le mot P ne correspond pas à un numéro d’outil valide de la table d’outils.

16. G10 L20 Établissement de l’origine d’un système de coordonnées

G10 L20 P- axes
  • P – système de coordonnées (0-9)

G10 L20 est similaire à G10 L2 excepté qu’au lieu d’ajuster les offsets à des
valeurs données, il les place à des valeurs calculées de sorte que les
coordonnées courantes deviennent les valeurs données en paramètres.

Exemple avec G10 L20:
G10 L20 P1 X1.5 (fixe la position courante en X du système de coordonnées G54
à 1.5)

C’est une erreur si:

  • Le nombre P n’est pas évalué comme une entier compris entre 0 et 9.
  • Un axe non défini dans la configuration est programmé.

17. G17 à G19.1 Choix du plan de travail

Ces codes sélectionnent le plan de travail courant comme décrit ci-dessous:

  • G17 – XY (par défaut)
  • G18 – ZX
  • G19 – YZ
  • G17.1 – UV
  • G18.1 – WU
  • G19.1 – VW

Les plans UV, WU et VW ne supportent pas les arcs. Il est de bonne pratique
d’inclure la sélection du plan de travail dans le préambule du programme G-code.
Les effets de la sélection d’un plan de travail sont discutés dans la section
sur les arcs.

18. G20, G21 Choix des unités machine

  • G20 – pour utiliser le pouce comme unité de longueur.
  • G21 – pour utiliser le millimètre comme unité de longueur.

C’est toujours une bonne pratique de programmer soit G20, soit G21, dans
le préambule du programme, avant tout mouvement et de ne plus en changer
ailleurs dans le programme.

19. G28, G28.1 Aller à une position prédéfinie

Attention
Pour une bonne répétabilité de la position et que la position soit correctement
enregistrée avec G28.1, faire la prise d’origine générale avant d’utiliser G28.

G28 utilise les valeurs enregistrées dans les paramètres 5161 à 5166 comme
points finaux des mouvements des axes X Y Z A B C U V W.
Les valeurs des paramètres sont des coordonnées machine absolues, en unités
machine natives, telles que fixées dans le fichier ini. Tous les axes définis
dans le fichier ini seront déplacés lors d’un G28.

  • G28 – effectue un mouvement en vitesse rapide de la position courante à la
    position absolue enregistrée dans les paramètres 5161 à 5166.
  • G28 axes – effectue un déplacement en vitesse rapide à la position
    spécifiée par axes y compris les décalages, puis effectuera un mouvement en
    vitesse rapide aux coordonnées absolues stockées dans les paramètres 5161
    à 5166 pour les axes spécifiés.
  • G28.1 – enregistre la position absolue courante dans les paramètres 5161
    à 5166.
Exemple avec G28
G28 Z2.5 (vitesse rapide vers Z2.5 puis emplacement spécifié dans les paramètres enregistrés de G28)

C’est une erreur si:

  • La compensation d’outil est active.

20. G30, G30.1 Aller à une position prédéfinie

Attention
Pour une bonne répétabilité de la position et que la position soit correctement
enregistrée avec G30.1, faire la prise d’origine générale avant d’utiliser G30.
  • G30 – effectue un mouvement en vitesse rapide de la position courante à la
    position absolue stockée dans les paramètres 5181 à 5186.
    Les valeurs stockées dans les paramètres font référence au système de
    coordonnées absolues qui est le système de coordonnées machine.
  • G30 axes – effectue un déplacement en vitesse rapide depuis la position
    courante jusqu’à la position spécifiée par axes, y compris les décalages,
    suivi d’un mouvement rapide à la position absolue stockée dans les paramètres
    5181 à 5186 pour les axes spécifiés. Les axes non spécifiés ne bougeront pas.
  • G30.1 – enregistre la position absolue courante dans les paramètres 5181 à
    5186.
Note
Les paramètres de G30 peuvent être utilisés pour déplacer l’outil quand un M6
est programmé avec la variable [TOOL_CHANGE_AT_G30]=1 dans la section
[EMCIO] du fichier ini.
Exemple avec G30
G30 Z2.5 (mvt rapide à Z2.5 puis déplacement selon les paramètres de G30
stockés)

C’est une erreur si:

  • La compensation de d’outil est active.

21. G33 Mouvement avec broche synchronisée

G33 X- Y- Z- K-
  • K – distance par tour

Pour un mouvement avec broche synchronisée dans une direction, programmer
G33 X- Y- Z- K- où K donne la longueur du mouvement en XYZ pour chaque tour
de broche. Par exemple, si il commence à Z=0, G33 Z-1 K.0625 produira
un mouvement d’un pouce de long en Z en même temps que 16 tours de broche.
Cette commande peut être la base d’un programme pour faire un filetage de
16 filets par pouce. Un autre exemple en métrique, G33 Z-15 K1.5 produira
un mouvement de 15mm de long pendant que la broche fera 10 tours soit un
pas de 1.5mm.

Les mouvements avec broche synchronisée utilisent l’index de broche et les pins
spindle at speed pour le filetage multi-passes. Un mouvement avec G33 se
termine au point final programmé.

Note
K suit la ligne d’avance décrite par X- Y- Z-. K n’est pas parallèle à
l’axe Z si les points d’arrivée des axes X et Y sont utilisés, par exemple pour
réaliser un filetage conique.
Informations techniques

Au début de chaque passe G33, LinuxCNC utilise la vitesse de broche et les
limites d’accélération de la machine pour calculer combien de temps prendra Z
pour accélérer après chaque impulsion d’index et détermine de combien de degrés
la broche tournera pendant ce temps là. Il ajoute alors cet angle à la position
de l’index puis calcule la position de Z utilisant l’angle de broche correct.
Cela signifie que Z aura atteints la position correcte juste en fin
d’accélération à la bonne vitesse, il peux immédiatement usiner le bon filetage.

Connections de hAL

Les pins motion.spindle-at-speed et l’index encoder.n.phase-Z pour la broche
doivent être connectés dans le fichier HAL pour que G33 soit opérationnel.
Voir le Manuel de l’intégrateur pour plus d’informations sur les mouvements
synchronisés avec la broche.

Exemple avec G33:
G90 (mode distance absolue)
G0 X1 Z0.1 (positionnement en vitesse rapide)
S100 M3 (broche en rotation à 100tr/mn)
G33 Z-2 K0.125 (mouvement vers Z -2 avec une avance de 0.125 par tour)
G0 X1.25 (mouvement de dégagement en vitesse rapide)
Z0.1 (mouvement en vitesse rapide à Z0.1)
M2 (fin de programme)
  • Voir les sections G90, G0
    et M2 pour plus d’informations.

C’est une erreur si:

  • Tous les axes sont omis.
  • La broche ne tourne pas quand cette commande est exécutée.
  • Le mouvement linéaire requis excède les limites de vitesse machine
    en raison de la vitesse de broche.

22. G33.1 Taraudage Rigide

G33.1 X- Y- Z- K-
  • K – distance par tour

Pour un taraudage rigide avec broche synchronisée et mouvement de retour,
programmer G33.1 X- Y- Z- K-K- donne la longueur du mouvement
pour chaque tour de broche. Un mouvement de taraudage rigide suit cette
séquence:

Attention
Si pour un taraudage rigide, les coordonnées X et Y spécifiées ne sont pas
les coordonnées courantes lors de l’appel de G33.1, le mouvement ne
s’effectuera pas le long de l’axe Z mais de la position courante jusqu’aux
coordonnées X et Y spécifiées.
  1. Un mouvement aux coordonnées spécifiées, synchronisé avec la rotation de
    la broche, avec le ratio donné et débutant à l’impulsion d’index du codeur
    de broche.
  2. Quand le point final est atteint, la commande inverse le sens de rotation
    de la broche (ex: de 300 tours/mn en sens horaire à 300 tours/mn en sens
    anti-horaire)
  3. Le mouvement reste synchronisé en continu avec la broche, même ‘au delà’
    de la coordonnée du point final spécifié pendant l’arrêt de la broche et
    son inversion.
  4. Le mouvement synchronisé se poursuit pour revenir aux coordonnées initiales.
  5. Quand les coordonnées initiale sont atteintes, la commande inverse la
    broche une seconde fois (ex: de 300tr/mn sens anti-horaire à 300tr/mn en
    sens horaire)
  6. Le mouvement reste synchronisé même ‘au delà’ des coordonnées initiales
    pendant que la broche s’arrête, puis s’inverse.
  7. Un mouvement non synchronisé ramène le mobile en arrière, aux
    coordonnées initiales.

Tous les mouvements avec broche synchronisée ont besoin d’un index de broche,
pour conserver la trajectoire prévue et que les passes se chevauchent
exactement. Un mouvement avec G33.1 se termine aux coordonnées initiales.
Les mots d’axes sont facultatifs, sauf au moins un qui doit être utilisé.

Exemple avec G33.1:
G90 (mode distance absolue)
G0 X1.000 Y1.000 Z0.100 (mouvement rapide au point de départ taraudage rigide
en 20 filets par pouce)
G33.1 Z-0.750 K0.05 (et une profondeur de filet de 0.750)
M2 (fin de programme)
  • Voir les sections G90, G0
    et M2 pour plus d’informations.

C’est une erreur si:

  • Tous les axes sont omis.
  • La broche ne tourne pas quand cette commande est exécutée.
  • Le mouvement linéaire requis excède les limites de vitesse machine
    en raison d’une vitesse de broche trop élevée.

23. G38.x Mesure au palpeur

G38.x axes
  • G38.2 – palpe vers la pièce, stoppe au toucher, signale une erreur en cas de
    défaut.
  • G38.3 – palpe vers la pièce, stoppe au toucher.
  • G38.4 – palpe en quittant la pièce, stoppe en perdant le contact, signal une
    erreur en cas de défaut.
  • G38.5 – palpe en quittant la pièce, stoppe en perdant le contact.
Important
Cette commande n’est pas utilisable si la machine n’a pas été configurée pour
exploiter un signal de sonde entre HAL et LinuxCNC.
Le signal de la sonde doit être envoyé sur une broche d’entrée puis transmis à
motion.probe-entrée (bit, In). G38.x utilise la valeur de cette broche pour
déterminer quand la sonde a touché ou perdu le contact. TRUE si le contact de
la sonde est fermé (Touché), FALSE si il est ouvert.

Programmer G38.x axes, pour effectuer une mesure au palpeur. Les mots d’axe
sont facultatifs excepté au moins un. Les mots d’axe définissent ensemble,
le point de destination, à partir de l’emplacement actuel, vers lequel la
sonde se déplace. Si le palpeur n’a pas déclenché avant que la destination soit
atteinte, G38.2 et G38.4 signaleront une erreur. L’outil dans la broche doit
être un palpeur ou un actionneur de contact.

En réponse à cette commande, la machine déplace le point contrôlé
(qui est le centre de la boule du stylet du palpeur) en ligne droite,
à la vitesse travail courante, vers le point programmé.
En mode vitesse inverse du temps, la vitesse est telle que le mouvement
depuis le point courant jusqu’au point programmé, prendra le temps spécifié.
Le mouvement s’arrête (dans les limites d’accélération de la machine)
lorsque le point programmé est atteint ou quand l’entrée du palpeur
bascule dans l’état attendu selon la première éventualité.

Le tableau de signification des différents codes de mesure.

Tableau 2. Codes de mesure
Code État ciblé Sens de destination Signal d’erreur

G38.2

Touché

Vers la pièce

Oui

G38.3

Touché

Vers la pièce

Non

G38.4

Quitté

Depuis la pièce

Oui

G38.5

Quitté

Depuis la pièce

Non

Après une mesure réussie, les paramètres 5061 à 5069
contiendront les coordonnées des axes XYZABCUVW, pour l’emplacement du
point contrôlé à l’instant du changement d’état du palpeur.
Après une mesure manquée, ils contiendront les coordonnées du point programmé.
Le paramètre 5070 est mis à 1 si la mesure est réussie et à 0 si elle est
manquée. Si la mesure n’a pas réussi, G38.2 et G38.4 signaleront une erreur
en affichant un message à l’écran si l’interface graphique choisie le permet.

Un commentaire de la forme (PROBEOPEN filename.txt) ouvrira le
fichier filename.txt et y enregistrera les 9 coordonnées de
XYZABCUVW pour chaque mesure réussie.
Le fichier doit être fermé avec le commentaire
(PROBECLOSE).

Dans le répertoire des exemples, le fichier smartprobe.ngc montre
l’utilisation d’un palpeur et l’enregistrement des coordonnées de la pièce
dans un fichier. Le fichier smartprobe.ngc peut être utilisé par ngcgui
avec un minimum de modifications.

C’est une erreur si:

  • Le point programmé est le même que le point courant.
  • Aucun mot d’axe n’est utilisé.
  • La compensation de d’outil est activée.
  • La vitesse travail est à zéro.
  • Le palpeur est déjà au contact de la cible.

24. G40 Révocation de la compensation de rayon d’outil

  • G40 – révoque la compensation de rayon d’outil. Le mouvement suivant, de
    sortie de compensation, doit être une droite au moins aussi longue que le
    diamètre de l’outil. Ce n’est pas une erreur de désactiver la compensation
    quand elle est déjà inactive.
Exemple avec G40
; la position courante est X1 après la fin du mvt avec compensation
G40 (révoque la compensation)
G0 X1.6 (mouvement linéaire aussi long que le diamètre d'outil)
M2 (fin de programme)
  • Voir les sections G0 et M2
    pour plus d’informations.

C’est une erreur si:

  • Un mouvement en arc avec G2 ou G3 suit un G40.
  • Le mouvement suivant la révocation de compensation est inférieur au
    diamètre de l’outil.

25. G41, G42 Compensation de rayon d’outil

G41  (compensation à gauche du profil)
G42  (compensation à droite du profil)
  • D – Numéro d’outil

Le mot D est facultatif. En son absence ou si il est à zéro, le rayon de l’outil
courant est utilisé. Si le mot D est présent, il devrait normalement correspondre
au numéro de l’outil monté dans la broche, bien que cela ne soit pas
indispensable, il doit par contre correspondre à un numéro d’outil valide.

Pour activer la compensation d’outil à gauche du profil,
programmer G41. G41 applique la compensation d’outil à gauche de la
ligne programmée vu de l’extrémité positive de l’axe perpendiculaire au plan.

Pour activer la compensation d’outil à droite du profil,
programmer G42. G42 applique la correction d’outil à droite de la
ligne programmée vu de l’extrémité positive de l’axe perpendiculaire au plan.

Le mouvement d’entrée doit être au moins aussi long que le rayon de l’outil.
Le mouvement d’entrée peut être effectué en vitesse rapide.

La compensation d’outil ne peut être effectuée que si le plan XY ou
le plan XZ est actif.

Les commandes définies par l’utilisateur, M100 à M199, sont autorisées
lorsque la compensation d’outil est activée.

Le comportement de la machine, quand la compensation d’outil est activée,
est décrit dans la section sur la compensation d’outil.

C’est une erreur si:

  • Le nombre D ne correspond, ni à zéro, ni à un numéro d’outil valide.
  • Le plan YZ est le plan de travail actif.
  • La compensation d’outil est activée alors qu’elle est déjà active.

26. G41.1, G42.1 Compensation dynamique d’outil

G41.1 D-  (à gauche du profil)
G42.1 D-  (à droite du profil)
  • Le mot D spécifie le diamètre de l’outil.
  • Le mot L spécifie l’orientation de l’outil, est à 0 par défaut si
    non spécifié.

Pour activer la compensation dynamique d’outil à gauche du profil,
programmer G41.1 D- L-.

Pour activer la compensation dynamique d’outil à droite du profil,
programmer G42.1 D- L-.

C’est une erreur si:

  • Le plan YZ est le plan de travail actif.
  • La valeur de L n’est pas comprise entre 0 et 9 inclus.
  • Le nombre L est utilisée alors que le plan XZ n’est pas le plan actif.
  • La compensation d’outil est activée alors qu’elle est déjà active.

27. G43 Activation de la compensation de longueur d’outil

  • H – Numéro d’outil
  • G43 – Utilise l’outil courant chargé par le dernier Tn M6. G43 modifie les
    mouvements ultérieurs en décalant les coordonnées de Z et/ou de X, de la
    longueur de l’outil. G43 ne provoque aucun mouvement. L’effet de la
    compensation ne se produira qu’au cours du prochain mouvement des axes compensés,
    de sorte que le point final de ce mouvement sera la position compensée.
  • G43 H- – Utilise l’offset de l’outil correspondant fourni par la table
    d’outils. Ce n’est pas une erreur d’avoir la valeur de H à zéro, le numéro de
    l’outil courant sera utilisé.
Exemple de ligne avec G43 H-
G43 H1 (ajuste les offsets d'outil avec les valeurs de l'outil 1 fournies par
la table d'outils)

C’est une erreur si:

  • La valeur de H n’est pas un entier, il est négatif, ou il ne correspond, ni
    à zéro, ni à un numéro d’outil valide.

28. G43.1 Compensation dynamique de longueur d’outil

G43.1 axes
  • G43.1 axes – Modifie les mouvements ultérieurs en décalant les coordonnées
    de Z et/ou de X, selon les offsets stockés dans la table d’outils. G43.1 ne
    provoque aucun mouvement. L’effet de la compensation ne se produira qu’au cours
    du prochain mouvement des axes compensés de sorte que le point final de ce
    mouvement sera la position compensée.
Exemple avec G43.1
G90 (passe en mode absolu)
T1 M6 G43 (charge l'outil N°1 et son offset de longueur, Z est à la position
machine 0 et la visu affiche Z1.500)
G43.1 Z0.250 (décale l'outil courant de 0.250, la visu affiche maintenant
Z1.250)
M2 (fin de programme)
  • Voir les sections G90 & T et
    M2 pour plus d’informations.

C’est une erreur si:

  • Une commande de mouvement est sur la même ligne que G43.1

29. G49 Révocation de la compensation de longueur d’outil

Pour révoquer la compensation de longueur d’outil, programmer G49.

Ce n’est pas une erreur de programmer une compensation qui est déjà
utilisée. Ce n’est pas non plus une erreur de révoquer une compensation de
longueur d’outil alors qu’aucune n’est couramment utilisée.

30. G53 Mouvement en coordonnées absolues

G53 axes

Pour un déplacement exprimé en coordonnées système, programmer
G53 sur la même ligne qu’un mouvement linéaire. G53 n’est pas modal, il doit
donc être programmé sur chaque ligne où il doit être actif. G0 ou G1 ne
doivent pas se trouver sur la même ligne si un d’eux est déjà actif.
Par exemple:

Exemple avec G53
G53 G0 X0 Y0 Z0 (mouvement linéaire rapide des axes à leur positions d'origine)
G53 X2 (mouvement linéaire rapide à la coordonnée absolue X=2)

C’est une erreur si:

  • G53 est utilisé sans que G0 ou G1 ne soit actif.
  • G53 est utilisé alors que la compensation d’outil est active.

Étudier le chapitre sur les systèmes de coordonnées et de leurs décalages, pour bien maîtriser ces concepts.

31. G54 à G59.3 Choix du système de coordonnées

  • G54 – Système de coordonnées pièce 1
  • G55 – Système de coordonnées pièce 2
  • G56 – Système de coordonnées pièce 3
  • G57 – Système de coordonnées pièce 4
  • G58 – Système de coordonnées pièce 5
  • G59 – Système de coordonnées pièce 6
  • G59.1 – Système de coordonnées pièce 7
  • G59.2 – Système de coordonnées pièce 8
  • G59.3 – Système de coordonnées pièce 9

Le code G54 est apparié avec le système de coordonnées pièce N°1,
pour le choisir programmer G54 et ainsi de suite pour les autres systèmes.

Les systèmes de coordonnées stockent les valeurs de chacun des axes dans les
variables indiquées dans le tableau ci-dessous.

Tableau 3. Paramètres des systèmes de coordonnées pièce
Choix CS X Y Z A B C U V W R

G54

1

5221

5222

5223

5224

5225

5226

5227

5228

5229

5230

G55

2

5241

5242

5243

5244

5245

5246

5247

5248

5249

5250

G56

3

5261

5262

5263

5264

5265

5266

5267

5268

5269

5270

G57

4

5281

5282

5283

5284

5285

5286

5287

5288

5289

5290

G58

5

5301

5302

5303

5304

5305

5306

5307

5308

5309

5310

G59

6

5321

5322

5323

5324

5325

5326

5327

5328

5329

5330

G59.1

7

5341

5342

5343

5344

5345

5346

5347

5348

5349

5350

G59.2

8

5361

5362

5363

5364

5365

5366

5367

5368

5369

5370

G59.3

9

5381

5382

5383

5384

5385

5386

5387

5388

5389

5390

C’est une erreur si:

  • Un de ces G-codes est utilisé alors que la compensation d’outil est active.

Voir la section sur les systèmes de coordonnée
pour une vue complète.

32. G61, G61.1 Contrôle de trajectoire exacte

  • G61 – Met la machine en mode de trajectoire exacte. G61 suivra exactement
    la trajectoire programmée même si cela doit aboutir à un arrêt complet
    momentané du mobile.
  • G61.1 – Met la machine en mode arrêts exacts.

33. G64 Contrôle de trajectoire continue avec tolérance

G64 >
  • P- – Déviation maximale tolérée par rapport à la trajectoire programmée.
  • Q- – Tolérance naïve cam.
  • G64 – Recherche de la meilleure vitesse possible.
  • G64 P- – Mélange entre meilleure vitesse et tolérance de déviation.
  • G64 P- Q- – Est le moyen d’affiner encore pour obtenir le meilleur
    compromis entre vitesse et précision de la trajectoire. La vitesse sera
    réduite si nécessaire pour maintenir la trajectoire, même si ça doit aboutir
    à un arrêt complet momentané. Le détecteur naïve cam est activé. Quand il
    y a une série de mouvements linéaires XYZ en vitesse travail, avec une
    même vitesse de déplacement, inférieure à Q-, ils sont regroupés en
    un seul segment linéaire, ainsi la vitesse s’en trouve améliorée puisqu’il
    n’y a plus de décélération/arrêt/accélération aux points de jonction des
    segments. Sur les mouvements G2/G3 dans le plan G17 (XY) lorsque le
    maximum d’écart entre un arc et une ligne droite est inférieur à
    la déviation maximale P-, la tolérance de l’arc est divisée en deux lignes
    (depuis le début de l’arc jusqu’au milieu et du milieu jusqu’à la fin). Ces
    deux lignes sont ensuite soumises à l’algorithme naïve cam. Ainsi, les cas
    ligne-arc, arc-arc et arc-ligne et le cas ligne-ligne, bénéficient de
    l’algorithme naïve cam, ce qui améliore les performances en simplifiant
    les trajectoires. Il est permis de programmer ce mode même si il est déjà actif.
Exemple de ligne de programme avec G64
G64 P0.015 (fixe la déviation d'usinage à 0.015 maximum de la trajectoire
programmée)

Il est de bonne pratique de spécifier un type de contrôle de trajectoire
dans le préambule de chaque programme G-code.

34. G73 Cycle de perçage avec brise copeaux

G73 axes R- Q- 
  • R- – Position du plan de retrait en Z
  • Q- – Incrément delta parallèle à l’axe Z
  • L- – Répétition

Le cycle G73 est destiné au perçage profond ou au fraisage avec brise-copeaux.
Les retraits, au cours de ce cycle, fragmentent les copeaux longs (fréquents
lors de l’usinage de l’aluminium). Ce cycle utilise la valeur Q- qui
représente un incrément delta parallèle à l’axe Z. Le cycle se décompose de la
manière suivante:

  1. Un mouvement préliminaire. Comme décrit dans cet exposé sur le mouvement préliminaire
  2. Un mouvement de l’axe Z seul, en vitesse travail, sur la position la moins
    profonde entre, l’incrément delta ou la position de Z programmée.
  3. Une petite remontée en vitesse rapide.
  4. Répétition des étapes 2 et 3 jusqu’à ce que la position programmée de Z
    soit atteinte à l’étape 2.
  5. Un mouvement de l’axe Z en vitesse rapide jusqu’au plan de retrait.

C’est une erreur si:

  • La valeur de Q est négative ou égale à zéro.
  • Le nombre R n’est pas spécifié.

35. G76 Cycle de filetage préprogrammé

G76 P- Z- I- J- R- K- Q- H- E- L-
images/g76-threads_fr.png
  • Ligne pilote – La ligne pilote est une ligne imaginaire, parallèle à
    l’axe de la broche (Z), située en sécurité à l’extérieur du matériau à
    fileter. La ligne pilote va du point initial en Z jusqu’à la fin du
    filetage donnée par la valeur de Z dans la commande.
  • P- – Le pas du filet en distance de déplacement par tour.
  • Z- – La position finale du filetage. A la fin du cycle, l’outil sera
    à cette position Z.
Note
En mode diamètre G7, les valeurs I, J et K sont des mesures de diamètre.
En mode rayon G8, les valeurs I, J et K sont des mesures de rayon.
  • I- – La crête du filet est une distance entre la ligne pilote et la
    surface de la pièce. Une valeur négative de I,
    indique un filetage externe et une valeur positive, indique un
    filetage interne. C’est généralement à ce diamètre nominal que le
    matériau est cylindré avant de commencer le cycle G76.
  • J- – Une valeur positive, spécifie la profondeur de la passe initiale.
    La première passe sera à J au delà de la crête du filet I.
  • K- – Une valeur positive, spécifie la profondeur finale du filet.
    La dernière passe du filetage sera à K au delà de la crête du filet I.

Paramètres facultatifs:

  • R- – La profondeur de dégressivité. R1.0 spécifie une profondeur
    de passe constante pour les passes successives du filetage.
    R2.0 spécifie une surface constante.
    Les valeurs comprises entre 1.0 et 2.0 spécifient
    une profondeur décroissante mais une surface croissante.
    Enfin, les valeurs supérieures à 2.0 sélectionnent une surface décroissante.
Attention
Les valeurs inutilement hautes de dégressivité, produiront un nombre inutilement
important de passes. (dégressivité = plongée par paliers)
  • Q- – L’angle de pénétration oblique. C’est l’angle (en degrés)
    décrivant de combien, les passes successives doivent être décalées
    le long de l’axe Z. C’est utilisé pour faire enlever plus de matériau
    d’un côté de l’outil que de l’autre.
    Une valeur positive de Q fait couper d’avantage le bord de l’outil.
    Typiquement, les valeurs sont 29, 29.5 ou 30 degrés.
  • H- – Le nombre de passes de finition. Les passes de finition sont
    des passes additionnelles en fond de filet.
    Pour ne pas faire de passe de finition, programmer H0.

Les entrées et sorties de filetage peuvent être programmées coniques
avec les valeurs de E et L.

  • E- – Spécifie la longueur des parties coniques le long de l’axe Z.
    L’angle du cône ira de la profondeur de la dernière passe à la
    crête du filet I. E2.0 donnera un cône d’entrée et de sortie
    d’une longueur de 2.0 unités dans le sens du filetage. Pour
    un cône à 45 degrés, programmer E identique à K.
  • L- – Spécifie quelles extrémités du filetage doivent être coniques.
    Programmer L0 pour aucune (par défaut), L1 pour une
    entrée conique, L2 pour une sortie conique, ou L3 pour l’entrée et
    la sortie coniques.

L’outil fera une brève pause pour la synchronisation
avec l’impulsion d’index avant chaque passe de filetage. Une gorge de
dégagement sera requise à l’entrée, à moins que le début du filetage
ne soit après l’extrémité de la pièce ou qu’un cône d’entrée soit utilisé.

À moins d’utiliser un cône de sortie, le mouvement de sortie (retour
rapide sur X initial) n’est pas synchronisé sur la vitesse de broche.
Avec une broche lente, la sortie pourrait se faire sur une petite
fraction de tour. Si la vitesse de broche est augmentée après qu’un
certain nombre de passes soient déjà faites, la sortie va prendre
une plus grande fraction de tour, il en résultera un usinage très
brutal
pendant ce nouveau mouvement de sortie. Ceci peut être évité en
prévoyant une gorge de sortie, ou en ne changeant pas la vitesse de
broche pendant le filetage.

La position finale de l’outil sera à la fin de la ligne pilote.
Un mouvement de sécurité peut être nécessaire avec un filetage interne,
pour sortir l’outil de la pièce.

C’est une erreur si:

  • Le plan de travail actif n’est pas ZX.
  • D’autres mots d’axes que X ou Y, sont spécifiés.
  • La dégressivité R est inférieure à 1.0.
  • Tous les mots requis ne sont pas spécifiés.
  • P, J, K ou H est négatif.
  • E- est supérieur à la moitié de la longueur de la ligne pilote.
Connections de HAL

Les pins motion.spindle-at-speed et l’index encoder.n.phase-Z doivent être
connectées dans le fichier HAL pour que G76 soit opérationnel.
Voir le Manuel de l’intégrateur pour plus d’informations sur les mouvements
synchronisés avec la broche.

Informations techniques

Le cycle préprogrammé G76 est basé sur le mouvement avec broche synchronisée G33,
voir les informations technique relatives à G33.

Un programme de filetage, g76.ngc montre l’utilisation d’un cycle de
filetage G76, il peut être visualisé et exécuté sur n’importe quelle machine
utilisant la configuration sim/lathe.ini.

Exemple de G-Code avec G76
G0 Z-0.5 X0.2
G76 P0.05 Z-1 I-0.075 J0.008 K0.045 Q29.5 L2 E0.045

Sur l’image ci-dessous, l’outil est à la position finale après que le cycle
G76 soit terminé. On voit que le parcours d’entrée de l’outil sur la droite,
spécifié par Q29.5 et le parcours de sortie conique à gauche comme
spécifié par L2 E0.045. Les lignes blanches sont les mouvements de coupe.

images/g76-01.png
Figure 3. Parcours d’outil de l’exemple

36. Les cycles de perçage G81 à G89

Les cycles de perçage de G81 à G89 et la révocation de ces cycle G80,
sont décrits dans cette section. Des exemples sont donnés plus bas avec
les descriptions.

Tous les cycles de perçage sont effectués dans le respect du plan
de travail courant. N’importe lequel des six plans de travail peut être
choisi. Dans cette section, la plupart des descriptions supposeront que
le plan de travail XY est le plan courant. Le comportement reste
analogue pour les autres plans de travail et les mots corrects doivent
être utilisés. Par exemple, dans le plan G17.1, l’action de retrait
s’effectue parallèlement à l’axe W et les positions ou incréments sont
donnés avec U et W. Dans ce cas, substituer U, V, W avec X, Y, Z dans les
instructions suivantes.

Les mots d’axes rotatifs ne sont pas autorisés dans les cycles de perçage.
Quand le plan actif est X, Y, Z, les mots d’axes U, V, W ne sont pas autorisés.
De même, si le plan actif est U, V, W, les mots d’axes X, Y, Z ne sont
pas autorisés.

36.1. Mots communs

Tous les cycles de perçage utilisent les groupes X, Y, Z ou U, V, W selon
le plan sélectionné, ainsi que le mot R. La position de R- (signifiant
retrait) est perpendiculaire au plan de travail courant (axe Z pour le plan XY,
axe X pour le plan YZ, axe Y pour le plan XZ, etc.). Quelques cycles de
perçage utilisent des arguments supplémentaires.

36.2. Mots sticky

Dans les cycles de perçage, un nombre est qualifié de sticky (persistante,
collant) si, quand le même cycle est répété sur plusieurs lignes de code en
colonne, le nombre doit être indiqué la première fois, mais il
devient facultatif pour le reste des lignes suivantes. Les nombres
sticky conservent leur valeur tant qu’ils ne sont pas explicitement
programmés avec une nouvelle valeur. La valeur de R est toujours sticky.

En mode de déplacements incrémentaux (G91), les valeurs X, Y, est R
sont traitées comme des incréments depuis la position courante, Z est
un incrément depuis la position de l’axe Z avant le mouvement
impliquant l’axe Z. En mode de déplacements absolus, les valeurs de X,
Y, R, et Z sont des positions absolues dans le système de coordonnées courant.

36.3. Répétition de cycle

Le mot L est facultatif et représente le nombre de répétitions.
L=0 n’est pas permis. Si les fonctionnalités de répétition sont utilisées,
elles le sont normalement en mode relatif, de sorte que la même séquence de
mouvements se répète à plusieurs emplacements régulièrement espacés le long
d’une ligne droite. Quand L>1 en mode relatif et XY comme plan courant,
les positions X et Y sont déterminées en ajoutant les valeurs X et Y de
la commande à celles de la position courante, pour le premier trajet ou
ensuite, à celles de la position finale du précédent trajet, pour les
répétitions. Ainsi, si vous programmez L10, vous obtiendrez 10 cycles.
Le premier cycle sera la distance X, Y depuis la position d’origine.
Les positions de R- et Z- ne changent pas durant toutes les
répétitions. En mode absolu, L>1 signifie faire le même cycle à la même
place plusieurs fois
, omis, le mot L est équivalent à L=1. La valeur de L
n’est pas sticky.

36.4. Mode de retrait

La hauteur du mouvement de retrait à la fin de chaque répétition
(appelée plan de retrait dans les descriptions suivantes) est
déterminée par le mode de retrait: retrait sur la position initiale de
Z, si elle est au dessus de la valeur de R et que le mode de retrait
est G98, OLD_Z, sinon, à la position de R. Voir la section
sur les options du plan de retrait.

36.5. Erreurs des cycles de perçage

Il y a une erreur si:

  • Tous les mots X, Y et Z sont manquants durant un cycle de perçage.
  • Des mots d’axes de différents groupes (XYZ) (UVW) sont utilisés.
  • Un nombre P est requis mais un nombre P négatif est utilisé.
  • Un nombre L est utilisé mais n’est pas un entier positif.
  • Un mouvement d’axe rotatif est utilisé durant un cycle de perçage.
  • Une vitesse inverse du temps est activée durant un cycle de perçage.
  • La compensation d’outil est activée durant un cycle de perçage.

Quand le plan XY est actif, la valeur de Z est sticky, et c’est une
erreur si:

  • La valeur de Z est manquante alors qu’un même cycle de perçage n’a
    pas encore été activé.
  • La valeur de R est inférieure à celle de Z.

Si un autre plan est actif, les conditions d’erreur sont analogues à
celles du plan XY décrites ci-dessus.

36.6. Mouvement préliminaire et Intermédiaire

Le mouvement préliminaire est un ensemble de mouvements commun à tous les
cycles de perçage.

Tout au début de l’exécution d’un cycle de perçage, si la position
actuelle de Z est en dessous de la position de retrait R, l’axe Z va
à la position R. Ceci n’arrive qu’une fois, sans tenir compte de la
valeur de L.

En plus, au début du premier cycle et à chaque répétition, un ou deux
des mouvements suivants sont faits:

  1. Un déplacement en ligne droite, parallèle au plan XY, vers le position
    programmée.
  2. Un déplacement en ligne droite, de l’axe Z seul vers la position de
    retrait R, si il n’est pas déjà à cette position R.

Si un autre plan est actif, le mouvement préliminaire et intermédiaire
est analogue.

36.7. Pourquoi utiliser les cycles de perçage?

Il y a au moins deux raisons pour utiliser les cycles de perçage. La
première est l’économie de code et la seconde la sécurité offerte par le
mouvement préliminaire qui permet de ne pas s’occuper du point de départ
du cycle.

37. G80 Révocation des codes modaux

  • G80 – Révoque, tant qu’il est actif, tous les codes de mouvements modaux du
    groupe 1 auquel il appartient. Il est révoqué lui même par tout g-code du même
    groupe.

C’est une erreur si:

  • Des mots d’axes sont programmés quand G80 est actif.
Exemple 1 avec G80:
G90 G81 X1 Y1 Z1.5 R2.8 (cycle de perçage en mode de déplacement absolu)
G80 (révoque G81)
G0 X0 Y0 Z0 (active les mouvements en vitesse rapide et déplace le
mobile en X0, Y0 et Z0)

L’exemple 1 produit les mêmes déplacements et le même état final de la machine
que l’exemple suivant:

Exemple avec G0:
G90 G81 X1 Y1 Z1.5 R2.8 (cycle de perçage en mode de déplacement absolu)
G0 X0 Y0 Z0 (active les mouvements en vitesse rapide et déplace le
mobile en X0, Y0 et Z0)

L’avantage du premier exemple est que la ligne du G80 révoque clairement le cycle
G81. Avec ce premier programme, le programmeur doit revenir en mode
mouvement avec G0, comme c’est fait sur la ligne suivante, ou tout autre
mot G de mouvement.

Si un cycle de perçage n’est pas révoqué avec G80 ou un autre mot G
de mouvement, le cycle de perçage attend de se répéter en utilisant
la prochaine ligne de code contenant un ou plusieurs mots d’axe. Le fichier
suivant perce (G81) un ensemble de huit trous, tel que montré sur l’image qui
suit.

Exemple 2 avec G80:
N100 G90 G0 X0 Y0 Z0 (coordonnées d'origine)
N110 G1 X0 G4 P0.1
N120 G81 X1 Y0 Z0 R1 (cycle de perçage)
N130 X2
N140 X3
N150 X4
N160 Y1 Z0.5
N170 X3
N180 X2
N190 X1
N200 G80 (révocation du cycle G81)
N210 G0 X0 (mouvement en vitesse rapide)
N220 Y0
N230 Z0
N240 M2 (fin du programme)
Note
Noter que la position de Z change après les quatre premiers trous.
C’est également un des rares cas dans lesquels les numéros de lignes sont
présents, permettant d’envoyer le lecteur sur une ligne de code spécifique.
images/G81mult.png

L’utilisation du G80 de la ligne N200 est facultative puisqu’il y a un G0
sur la ligne suivante qui révoque le cycle G81. Mais utiliser G80,
comme l’exemple 2 le montre, donne une meilleure lisibilité au programme. Sans
ce G80, il ne serait pas aussi évident que tous les blocs compris entre N120 et
N200 appartiennent au cycle de perçage.

38. G81 Cycle de perçage

G81 (X- Y- Z- ) ou (U- V- W- ) R- L-

Le cycle G81 est destiné au perçage.

  1. Un mouvement préliminaire, comme décrit sur cette page.
  2. Un déplacement de l’axe Z seul à la vitesse programmée, vers la
    position Z programmée.
  3. Retrait de l’axe Z en vitesse rapide jusqu’au plan de retrait R.
Exemple 1: G81 en position absolue

Supposons que la position courante soit, X1, Y2, Z3 dans
le plan XY, la ligne de code suivante est interprétée:

G90 G81 G98 X4 Y5 Z1.5 R2.8

Le mode de déplacements absolus est appelé (G90), le plan de retrait
est positionné sur OLD_Z (G98), l’appel du cycle de perçage G81 va
lancer ce cycle une fois. La position X deviendra celle demandée,
X4. La position de Y deviendra celle demandée, Y5. La position de Z
deviendra celle demandée, Z1.5. La valeur de R fixe le plan de retrait
de Z à 2.8. La valeur de OLD_Z est 3. Les mouvements suivants vont se
produire.

images/G81ex1.png
  • Un mouvement en vitesse rapide, parallèle au plan XY vers X4, Y5, Z3
  • Un mouvement en vitesse rapide, parallèle à l’axe Z vers X4, Y5, Z2.8
  • Un mouvement en vitesse travail, parallèle à l’axe Z vers X4, Y5, Z1.5
  • Un mouvement en vitesse rapide, parallèle à l’axe Z vers X4, Y5, Z3

Exemple 2: Supposons que la position courante soit, X1, Y2, Z3 dans
le plan XY, la ligne de codes suivante est interprétée:

G91 G81 G98 X4 Y5 Z-0.6 R1.8 L3

Le mode de déplacements incrémentaux est appelé (G91), le plan de
retrait est positionné sur OLD_Z (G98), l’appel du cycle de perçage
G81 demande 3 répétitions du cycle. La valeur demandée de X est 4,
la
valeur demandée de Y est 5, la valeur demandée de Z est -0.6 et le
retrait R est à 1.8. La position initiale de X sera 5 (1+4), la
position initiale de Y sera 7 (2+5), le plan de retrait sera positionné
sur 4.8 (1.8+3) et Z positionné sur 4.2 (4.8-0.6). OLD_Z est à 3.

Le premier mouvement en vitesse rapide le long de l’axe Z vers X1, Y2,
Z4.8), puisque OLD_Z est inférieur au plan de retrait.

La première répétition produira 3 mouvements.

  1. Un déplacement en vitesse rapide, parallèle au plan XY vers X5, Y7, Z4.8
  2. Un déplacement en vitesse travail, parallèle à l’axe Z vers X5, Y7, Z4.2
  3. Un déplacement en vitesse rapide, parallèle à l’axe Z vers X5, Y7, Z4.8

La deuxième répétition produira 3 mouvements. La position de X est
augmentée de 4 et passe à 9, la position de Y est augmentée de 5 et
passe à 12.

  1. Un déplacement en vitesse rapide, parallèle au plan XY vers X9, Y12, Z4.8
  2. Un déplacement en vitesse travail, parallèle à l’axe Z vers X9, Y12, Z4.2
  3. Un déplacement en vitesse rapide, parallèle à l’axe Z vers X9, Y12, Z4.8

La troisième répétition produira 3 mouvements. La position de X est
augmentée de 4 et passe à 13, la position de Y est augmentée de 5 et
passe à 17.

  1. Un déplacement en vitesse rapide, parallèle au plan XY vers X13, Y17, Z4.8
  2. Un déplacement en vitesse travail, parallèle à l’axe Z vers X13, Y17, Z4.2
  3. Un déplacement en vitesse rapide, parallèle à l’axe Z vers X13, Y17, Z4.8
images/G81ex2.png

Exemple 3: G81 en position relative

Supposons maintenant que le premier g81 de la ligne de
code soit exécuté, mais de (0, 0, 0) plutôt que de (1, 2, 3).
G90 G81 G98 X4 Y5 Z1.5 R2.8 Depuis OLD_Z est inférieur à la valeur de R,
il n’ajoute rien au mouvement, mais puisque la valeur initiale de Z est
inférieure à la valeur spécifiée dans R, un premier mouvement de Z sera
effectué durant le mouvement préliminaire.

images/G81.png

Exemple 4: G81 en absolu avec R > Z

Il s’agit de la trajectoire pour le second bloc de code de G81.

G91 G81 G98 X4 Y5 Z-0.6 R1.8 L3

Cette trajectoire commence en (0, 0, 0), l’interpréteur ajoute les
valeurs initiales Z0 et R 1.8 et déplace le mobile en vitesse rapide
vers cet emplacement. Après ce premier déplacement initial de Z, la
répétition fonctionne de manière identique à celle de l’exemple 3 avec
le mouvement final de Z à 0.6 en dessous de la valeur de R.

images/G81a.png

Exemple 5: G81 en relatif avec R > Z

G90 G98 G81 X4 Y5 Z-0.6 R1.8

Puisque ce tracé commence en (X0, Y0, Z0), l’interpréteur ajoute R1.8 au Z0
initial et déplace le mobile en vitesse rapide à cet emplacement, comme dans
l’exemple 4. Après ce mouvement initial à une hauteur Z0.6, le
mouvement en vitesse rapide se terminera en X4 Y5.
Alors la hauteur Z sera à 0.6 en dessous de la valeur de R. La fonction de
répétition fera encore déplacer Z au même emplacement.

39. G82 Cycle de perçage avec temporisation

G82 (X- Y- Z- ) ou (U- V- W- ) R- L- P-

Le cycle G82 est destiné au perçage.
Les mouvements du cycle G82 ressemblent à ceux de G81 avec une
temporisation supplémentaire en fin de mouvement Z. La longueur de
cette temporisation, exprimée en secondes, est spécifiée par un mot P#
sur la ligne du G82.

  1. Un mouvement préliminaire. Comme décrit sur cette page.
  2. Un déplacement de l’axe Z seul en vitesse programmée, vers la position Z programmée.
  3. Une temporisation de P secondes.
  4. Retrait de l’axe Z en vitesse rapide jusqu’au plan de retrait R.
G90 G82 G98 X4 Y5 Z1.5 R2.8 P2

Sera équivalent à l’exemple 3 ci-dessus mais avec une temporisation de
2 secondes en fond de trou.

40. G83 Cycle de perçage avec débourrage

G83 (X- Y- Z-) or (U- V- W-) R- L- Q-

Le cycle G83 est destiné au perçage profond ou au fraisage avec
brise-copeaux. Les retraits, au cours de ce cycle, dégagent les copeaux du
trou et fragmentent les copeaux longs (qui sont fréquents lors du perçage dans
l’aluminium). Ce cycle utilise la valeur Q qui représente un incrément
delta le long de l’axe Z.

donnera:

  1. Un mouvement préliminaire, comme décrit sur cette page.
  2. Un mouvement de l’axe Z seul, en vitesse travail, sur la position la
    moins profonde entre, un incrément delta, ou la position de Z programmée.
  3. Un mouvement en vitesse rapide au plan de retrait.
  4. Une plongée en vitesse rapide dans le même trou, presque jusqu’au fond.
  5. Répétition des étapes 2, 3 et 4 jusqu’à ce que la position programmée
    de Z soit atteinte à l’étape 2.
  6. Un mouvement de l’axe Z en vitesse rapide vers le plan de retrait.

C’est une erreur si:

  • La valeur de Q est négative ou égale à zéro.

41. G84 Cycle de taraudage à droite

Ce code n’est pas encore implémenté dans LinuxCNC. Il est accepté mais son
comportement n’est pas défini. Voir le taraudage rigide.

42. G85 Cycle d’alésage, sans temporisation, retrait en vitesse travail

G85 (X- Y- Z-) or (U- V- W-) R- L-

Le cycle G85 est destiné à l’alésage, mais peut être utilisé pour
le perçage ou le fraisage.

  1. Un mouvement préliminaire, comme décrit sur cette page.
  2. Un déplacement de l’axe Z seul en vitesse travail, vers la position Z programmée.
  3. Retrait de l’axe Z en vitesse travail vers le plan de retrait.

43. G86 Cycle d’alésage, arrêt de broche, retrait en vitesse rapide

G86 (X- Y- Z-) or (U- V- W-) R- L- P-

Le cycle G86 est destiné à l’alésage. Ce cycle utilise la valeur P pour
une temporisation en secondes.

  1. Un mouvement préliminaire, comme décrit sur cette page.
  2. Un déplacement de l’axe Z seul en vitesse travail, vers la position Z programmée.
  3. Une temporisation de P secondes.
  4. L’arrêt de rotation de la broche.
  5. Retrait de l’axe Z en vitesse rapide vers le plan de retrait.
  6. Reprise de la rotation de la broche dans la même direction que
    précédemment.

La broche doit tourner avant le lancement de ce cycle. C’est une
erreur si:

  • La broche ne tourne pas avant que ce cycle ne soit exécuté.

44. G87 Alésage inverse

Ce code n’est pas encore implémenté dans LinuxCNC. Il est accepté mais son
comportement n’est pas défini.

45. G88 Alésage, arrêt de broche, retrait en manuel

Ce code n’est pas encore implémenté dans LinuxCNC. Il est accepté mais son
comportement n’est pas défini.

46. G89 Cycle d’alésage, temporisation, retrait en vitesse travail

G89 (X- Y- Z-) or (U- V- W-) R- L- P-

Le cycle G89 est destiné à l’alésage. Il utilise la valeur de P
pour une temporisation en secondes.

  1. Un mouvement préliminaire, comme décrit sur cette page.
  2. Un déplacement de l’axe Z seul en vitesse travail, vers la position Z programmée.
  3. Temporisation de P secondes.
  4. Retrait de l’axe Z en vitesse travail vers le plan de retrait.

46.1. Pourquoi utiliser les cycles de perçage ?

Il y a au moins deux raisons, la première est l’économie de code. Un
simple trou demande plusieurs lignes de code pour être exécuté.

Nous avons montré plus haut, comment les cycles
de perçage peuvent être utilisés pour produire 8 trous avec dix
lignes de code. Le programme ci-dessous permet de produire le même jeu
de 8 trous en utilisant cinq lignes pour le cycle de perçage. Il ne
suit pas exactement le même parcours et ne perce pas dans le même ordre
que l’exemple précédent, mais le programme a été écrit de manière
économique, une bonne pratique qui devrait être courante avec les
cycles de perçage.

Exemple 5: perçage de huit trous, réécrit.

G90 G0 X0 Y0 Z0 (coordonnées d'origine)
G1 F10 X0 G4 P0.1
G91 G81 X1 Y0 Z-1 R1 L4 (cycle de perçage)
G90 G0 X0 Y1
Z0
G91 G81 X1 Y0 Z-.5 R1 L4 (cycle de perçage)
G80 (révocation du cycle G81)
M2 (fin de programme)
images/eight.png

Exemple 6: Douze trous en carré

Cet exemple montre l’utilisation du mot L pour répéter une série
incrémentale de cycles de perçage pour des blocs de code successifs
dans le même mode mouvements G81. Ici, nous produisons 12 trous au
moyen de cinq lignes de code dans le mouvement modal.

G90 G0 X0 Y0 Z0 (coordonnées d'origine)
G1 F50 X0 G4 P0.1
G91 G81 X1 Y0 Z-0.5 R1 L4 (cycle de perçage)
X0 Y1 R0 L3 (répétition)
X-1 Y0 L3 (répétition)
X0 Y-1 L2 (répétition)
G80 (révocation du cycle G81)
G90 G0 X0 (retour vers l'origine en vitesse rapide)
Y0
Z0
M2 (fin de programme)
images/twelve.png

La deuxième raison d’utiliser les cycles de perçages, c’est qu’il
produisent un mouvement préliminaire et retournent à une position
prévisible et contrôlable, quel que soit le point de départ du cycle.

47. G90, G91: Modes de déplacement

  • G90 est le mode de déplacement absolu, les valeurs d’axes
    X, Y, Z, A, B, C, U, V, W représentent les positions dans le système de
    coordonnées courant. Les exceptions à cette règle sont décrites dans
    la section sur les cycles de perçage.
  • G91 est le mode de déplacement relatif, en mode relatif, les
    valeurs d’axes représentent un incrément depuis la position courante.
Exemple avec G90
G90 (passe en mode de déplacement absolu)
G0 X2.5 (déplacement linéaire en vitesse rapide à la coordonnée X=2.5 en
incluant tous les offsets en cours)
Exemple avec G91
G91 (passe en mode de déplacement relatif)
G0 X2.5 (déplacement linéaire en vitesse rapide, à +2.5 en X de la position
courante)
  • Voir G0 pour plus d’information.

48. G90.1, G91.1: Mode de déplacement en arc (I, J et K)

  • G90.1 – Mode de déplacement absolu pour les offsets I, J et K. Quand
    G90.1 est actif, I et J doivent être tous les deux spécifiés avec G2/G3 pour
    le plan XY ou J et K pour le plan XZ, sinon c’est une erreur.
  • G91.1 – Mode de déplacement relatif pour les offsets I, J et K. G91.1
    replace I, J et K à leur fonctionnement normal.

49. G92 Décalage d’origine des systèmes de coordonnées

G92 axes

Voir ce chapitre pour une vision générale
des systèmes de coordonnées.

G92 fixera de nouvelles valeurs de coordonnées au point actuel (sans
faire de mouvement). Les mots d’axes contiennent les valeurs souhaitées. Au
moins un mot d’axe est obligatoire, les autres sont facultatifs. Si il
n’y a pas de mot d’axe pour un axe donné, les coordonnées de cet axe
resteront inchangées.

Quand G92 est exécuté, les origines de tous les systèmes de
coordonnées sont déplacées. Elles seront déplacées de sorte que les valeurs du
point contrôlé courant, dans le système de coordonnées courant, deviendront
celles spécifiées dans la ligne du G92. Les origines de tous les systèmes de
coordonnées sont décalées de la même distance.

Par exemple, supposons que le point courant soit à X=4 et qu’aucun
décalage G92 ne soit actif. La ligne G92 X7 est programmée, toutes les
origines seront décalées de -3 en X, ce qui fera que le point courant
deviendra X=7. Ce -3 est enregistré dans le paramètre 5211.

Être en mode de déplacement relatif est sans effet sur l’action de G92.

Des décalages G92 peuvent déjà être actifs quand G92 est appelé. Si
c’est le cas, ils seront remplacés par le nouveau décalage, de sorte que le
point courant devienne la valeur spécifiée.

C’est une erreur si:

  • Tous les mots d’axes sont omis.

LinuxCNC conserve les décalages G92 et les réutilise au prochain démarrage
du logiciel. Pour éviter cela, programmer un G92.1 qui les effacera, ou
un G92.2 qui supprimera les valeurs enregistrées.

Voir le chapitre sur les systèmes de coordonnées.

Voir la section sur les décalages G92.

Voir la section sur les paramètres.

50. G92.1, G92.2 Remise à zéro des décalages des systèmes de coordonnées

  • G92.1 – Positionne les décalages d’axes à 0 et passe les paramètres
    5211 à 5219 à zéro.
  • G92.2 – Positionne les décalages d’axes à 0, laisse les valeurs des
    paramètres inchangées, elles ne seront pas utilisées.

51. G92.3 Restauration des décalages d’axe

  • G92.3 – Positionne les décalages d’axes aux valeurs enregistrées dans
    les paramètres 5211 à 5219.

Il est possible de positionner les décalages d’axes dans un programme puis de
ré-utiliser les mêmes dans un autre programme. Pour cela, programmer G92 dans
le premier programme, ce qui positionnera les paramètres 5211 à
5219. Ne pas utiliser G92.1 dans la suite du premier programme. Les
valeurs des paramètres seront enregistrées lors de la sortie du premier
programme et rétablies au chargement du second programme. Utiliser
G92.3 vers le début du deuxième programme, ce qui restaurera les
décalages d’axes enregistrés par le premier.

52. G93, G94, G95: Choix des modes de vitesse

  • G93 – Passe en mode inverse du temps. Dans le mode vitesse inverse du
    temps, le mot F signifie que le mouvement doit être terminé en [1/F]
    minutes. Par exemple, si la valeur de F est 2.0, les mouvements
    doivent être terminés en 1/2 minute.

    Quand le mode vitesse inverse du temps est actif, le mot F doit
    apparaître sur chaque ligne contenant un mouvement G1, G2, ou G3. Les
    mots F qui sont sur des lignes sans G1, G2, ou G3 sont ignorés. Être en
    mode vitesse inverse du temps est sans effet sur les mouvements G0
    (vitesse rapide).

  • G94 – Passe en mode unités par minute. Dans le mode vitesse en unités
    par minute, le mot F indique le déplacement du point contrôlé en millimètres
    par minute, en pouces par minute, ou en degrés par minute, selon l’unité
    utilisée.
  • G95 – Passe en mode unités par tour. Dans le mode vitesse en unités
    par tour, le mot F donne le déplacement du point contrôlé à effectuer sur
    l’axe Z, en millimètres par tour de broche ou en pouces, selon l’unité utilisée.

C’est une erreur si:

  • Le mode vitesse inverse du temps est actif et qu’une ligne avec G1,
    G2, ou G3 (explicitement ou implicitement) n’a pas de mot F.
  • Une nouvelle vitesse n’a pas été spécifiée après un passage en G94 ou G95.

53. G96, G97: Modes de contrôle de la broche

G96  S- (vitesse de coupe constante)
G97         (mode tr/mn)
  • D- – Vitesse de broche maximale en tours par minute.
  • S- – Vitesse de coupe constante.
  • G96 D- S- – Passe à une vitesse de coupe constante de S pieds par minute,
    si G20 est actif, ou S mètres par minute, si G21 est actif. D- est facultatif.

    Lorsque G96 est utilisé, s’assurer que X0 dans le système de coordonnées
    en cours (y compris les compensations d’outils) est bien le centre de
    rotation, sinon LinuxCNC ne donnera pas la vitesse de broche désirée.
    G96 n’est pas affecté par les mode rayon ou diamètre.

  • G97 – Vitesse de coupe en tr/mn.
Exemple avec G96
G96 D2500 S250 (passe à une vitesse de coupe constante de 250 m/mn maximum pour
une vitesse de broche maximale de 2500tr/mn).

C’est une erreur si:

  • S n’est pas spécifié avec G96.
  • Une vitesse est spécifiée en mode G96 et la broche ne tourne pas.

54. G98, G99: Options du plan de retrait

Quand la broche se rétracte pendant les cycles de perçage, il
existe deux options pour indiquer comment elle doit se rétracter:

  1. G98 Retrait perpendiculaire au plan de travail courant jusqu’à
    la position qui était celle de cet axe juste avant le début du cycle de
    perçage. (à moins que cette position ne soit inférieure à celle indiquée
    par le mot R, auquel cas, c’est cette dernière qui serait utilisée).
images/G81g98d.png
  1. G99 Retrait perpendiculaire au plan de travail courant jusqu’à la position
    indiquée par le mot R.
images/G81ret.png

Ne pas oublier que la signification du mot R change selon que le mode de
déplacement est absolu ou relatif.

Le plan de retrait initial (G98) est annulé chaque fois que le mode de
mouvement est abandonné, que ce soit explicitement avec G80 ou implicitement
(tout code de mouvement qui n’est pas un cycle).
Basculer d’un mode de cycle à un autre, par exemple entre G81 et G83
n’annule pas le plan de retrait initial. Il est permis de basculer entre
G98 et G99 durant une série de cycles de perçage.