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