CLASSICISTRANIERI HOME PAGE - YOUTUBE CHANNEL
SITEMAP
Audiobooks by Valerio Di Stefano: Single Download - Complete Download [TAR] [WIM] [ZIP] [RAR] - Alphabetical Download  [TAR] [WIM] [ZIP] [RAR] - Download Instructions

Make a donation: IBAN: IT36M0708677020000000008016 - BIC/SWIFT:  ICRAITRRU60 - VALERIO DI STEFANO or
Privacy Policy Cookie Policy Terms and Conditions
G-code - Wikipédia

G-code

Un article de Wikipédia, l'encyclopédie libre.

Vous avez de nouveaux messages (diff ?).

G-code est le nom d'un langage de programmation pour piloter des machine-outils à commande numérique. Il a été développé par l'EIA au début des années 60, et finalement normalisé par l'ISO en février 1980 sous la référence RS274D/ ([ISO 6893]).

Compte tenu de l'absence de développements ultérieurs, de la grande variété des configurations de machines-outils, et du peu de demande pour une réelle interopérabilité, peu de contrôleurs à commande numérique respectent ce standard. Des extensions et variantes ont été ajoutées indépendamment par divers fabricants, ce qui fait que les opérateurs doivent connaître les différents dialectes et particularités des machines qu'ils utilisent, et les systèmes de CFAO doivent se limiter au plus petit dénominateur commun des machines qu'ils commandent.

Beaucoup de fabricants ont essayé de contourner cette difficulté à rester compatible en suivant la route traçée par Fanuc. Malheureusement, Fanuc n'est pas conforme à la norme RS-274 ou à ses précédents standards, et a été lent à ajouter de nouvelles fonctionnalités et à utiliser la puissance croissante des ordinateurs. Par exemple, ils ont transformé la commande g70/g71 en g20/21; ils ont utilisé des parenthèses pour les commentaires, ce qui à causé des problèmes lors de l'introduction des calculs mathématiques; ils n'ont commencé à utiliser les nanomètres que récemment (ce qui requiert 64 bits); ils ont introduit les nurbs pour compenser le faible débit des blocs depuis la mémoire (au lieu de mettre en place un cache).

Sommaire

[modifier] Exemples

G-code est aussi le nom d'une commande dans un programme CNC qui commence par la lettre G, et généralement c'est un code qui décrit le type d'action à exécuter, par exemple:

  • déplacement rapide
  • déplacement à vitesse contrôlée en ligne droite ou suivant un arc
  • série de déplacement à vitesse contrôlée en vue de réaliser un trou, une découpe de pièce à une dimension donnée, ou un profil décoratif ajouté sur le bord d'une pièce.
  • changer une palette
  • définir une information d'outil tel le décalage ('offset').

Il y a d'autres codes; les codes de types qui peuvent être assimilés à des mémoires dans un ordinateur

X position
Y position
Z position
A position
B position
C position
M code (un autre type d'action ou de code machine(*))(parfois référencé comme fonction 'diverse' ("Miscellaneous" en anglais)
F vitesse de déplacement
S vitesse de rotation
N numéro de ligne
R Rayon
T Sélection d'outil
I Axe X des données d'un arc
J Axe Y des données d'un arc
K Axe Z des données d'un arc

(*) Les codes M contrôlent l'ensemble de la machine, permettant son démarrage, son arrêt, la mise en route de l'arrosage, etc. Alors que les autres codes concernent le cheminement de l'outil.

Des machines différentes peuvent utiliser le même code pour effectuer des fonctions différentes: même les machines qui utilisent le même contrôleur CNC. Certains ont déclaré que le G-code "Fanuc" est standard, ce qui est faux. C'est simplement l'un des plus simple et des plus répandu.


Common Fanuc G Codes
G00 Déplacement rapide
G01 Interpolation linéaire
G02 Interpolation circulaire (sens horaire)
G03 Interpolation circulaire (sens anti-horaire)
G10/G11 Écriture de données/Effacement de données
G17 Sélection du plan X-Y
G18 Sélection du plan X-Z
G19 Sélection du plan Y-Z
G20 Programmation en pouces
G21 Programmation en mm
G28 Retour à la position d'origine
G31 Saute la fonction (utilisé pour les capteurs et les mesures de longueur d'outil)
G33 Filetage à pas constant
G34 Filetage à pas variable
G40 Pas de compensation de rayon d'outil
G41 Compensation de rayon d'outil à gauche
G42 Compensation de rayon d'outil à droite
G90 Déplacements en coordonnées absolues
G91 Déplacements en coordonnées relatives
G94/G95 Déplacement en Pouces par minute/Pouce par tour
G96/G97 Vitese de coupe constante (vitesse de surface constante)/Vitesse de rotation constante

Une version standardisée du G-code connue sous la dénomination BCL est utilisée, mais sur très peu de machines.

Le G-code est interprété par les traceurs photographique Gerber , les contrôleurs de machine-outil et certains de leurs opérateurs.

Les fichiers G-code sont produits par des programme de CFAO tels que SmartCAM, Gibbscam, Featurecam, Artcam, Edgecam, Surfcam, Mastercam, OneCNC, Router-CIM, Alphacam, TopSolid'Cam, etc. Ces applications utilisent en général des convertisseurs appelés post-processeurs pour optimiser le code en vue de son utilisation sur une machine particulière. Les post-processeurs sont généralement modifiables par l'utilisateur afin d'optimiser leur usage. Le G-code est aussi produit par certains programmes de CAO spécialisés dans la conception de circuit imprimé. De tels programmes doivent être adaptés pour chaque type de machine outil.

Quelques machines CNC utilisent des programmes "Interactifs", qui permettent de programmer avec des Agents en cachant partiellement ou totalement le G-code. Quelques exemples populaires sont Mazak Mazatrol, Hurco Ultimax et le langage interactif Mori Seiki's CAPS.

[modifier] Exemple

Ceci est un programme typique qui montre l'usage du G-Code pour tourner une pièce de 1 pouce de diamètre et 1 pouce de long. On part de l'hypothèse que la barre de matière est déjà dans la machine et qu'elle dépasse légèrement en longueur et en diamètre. (Attention: Ceci est un programme typique, il pourrait ne pas fonctionner sur une machine réelle! Soyez particulièrement attentifs au point 5 ci-dessous.)

Cheminement de l'outil
Agrandir
Cheminement de l'outil
Exemple
N01 M216 (Mise en route du contrôleur de charge)
N02 G00 X20 Z20 (Déplacement rapide en dehors de la pièce, pour donner le point de départ de l'outil)
N03 G50 S2000 (Définit la vitesse de rotation maximum de la broche)
N04 T03 (Choisit l'outil #3 dans le caroussel)
N05 G96 S854 M42 M03 M08 (Découpe à vitesse variable, 854 pieds/min, grande vitesse de broche, démarre la broche en rotation horaires, démarre l'arrosage)
N06 G00 X1.1 Z1.1 T0303 (Déplacement rapide vers un point situé à 0.1 pouce du bout de la barre et à 0.05 pouce du bord, en utilisant les valeurs de régalge de l'outil #3)
N07 M01 (Arrêt optionnel)
N08 G01 Z1.0 F.05 (Avance horizontalement jusqu'à ce que l'outil soit à 1 pouce de la référence)
N09 X0.0 (Descend jusqu'à ce que l'outil soit au centre - en face du bout de la barre)
N10 G00 Z1.1 (Avance rapide à 0.1 pouce du bout de la barre)
N11 X1.0 (Avance rapide jusqu'à la position coresspondant au diamètre extérieur fini)
N12 G01 Z0.0 (Avance horizontalement en coupant la barre à 1 pouce de diamètre jusqu'à la référence)
N13 G00 X1.1 (Avance rapide en s'écartant de 0.05 pouce de la surface de la pièce)
N14 G00 X20 Z20 (Avance rapide loin de la pièce)
N15 M05 M09 (Arrête la broche et coupe l'arrosage)
N16 M215 (Coupe le contrôleur de charge)
N17 M02 (Fin du programme)

Quelques remarques:

  1. On peut développer un style de programmation, même sur un programme aussi court. Le groupement des codes de la ligne N05 aurait pu être distribué sur plusieurs lignes. Ceci faciliterait le suivi pas à pas de l'exécution du programme.
  2. Beaucoup de codes sont "Modaux" ce qui veut dire qu'ils restent actifs tant que l'ordre n'a pas été annulé ou remplacé par un ordre contradictoire. Par exemple, après avoir choisi la vitesse de coupe variable (G97), elle reste active jusqu'à la fin du programme. En service, la vitesse de broche va augmenter au fur et à mesure que l'outil se rapproche du centre de manière à maintenir une vitesse de coupe constante. De la même manière, après avoir sélectionné la vitesse de déplacement rapide (G00) tous les mouvements seront rapides jusqu'a ce qu'une vitesse de déplacement (G01, G02, G03) soit sélectionnée.
  3. Il est d'usage courant d'avoir un contrôleur de charge/vitesse sur une machine à commande numérique. Ce contrôleur va arrêter la machine si la broche ou les vitesses de déplacement dépassent des valeurs prédéfinie s lors du paramétrage de la machine. Le rôle du contrôleur de charge est d'éviter la casse machine en cas de bris d'outil ou d'erreur de programmation. De plus, dans une certaine mesure il peut donner une information sur un outil qui devient trop usé et nécessite un remplacement ou un réaffutage.
  4. Il est d'usage courant d'amener l'outil rapidement à un point "sûr" proche de la pièce - dans ce cas à 0.1 pouce - et ensuite de démarrer le déplacement lent de l'outil. La distance de sécurité requise dépend du savoir faire et de l'aisance du programmeur.
  5. Si le programme est faux, la probabilité d'un crash machine est élevée! Ceci peut être très coûteux. Il est possible de prévoir à intervalles réguliers des arrêts optionnels (code M01) qui permettent au programme d'être éxécuté par séquences. Les arrêts optionnels restent dans le programme mais sont négligés lors d'une exécution normale. Heureusement, la plupart des programmes de CFAO sont livrés avec des simulateurs de déplacements affichant les mouvements lors de l'exécution du programme. Beaucoup de machines CNC modernes permettent aussi au programmeur d'exécuter une simulation et de vérifier les paramètres opératoires de la machine en tout point de l'exécution. Ceci permet au programmeur de découvrir des erreurs sémantiques (par opposition aux erreurs de syntaxe) avant de perdre des matériaux ou des outils avec un programme erroné.

[modifier] Codes CNC ISO de base

|
M03, M04, M05 Broche sens horaire, sens antihoraire, arrêt
|
M08, M09 Mise en route arrosage/ arrêt arrosage
M02 Arrêt du programme
M30 Fin du programme, réinitialisation
M99 Fin du sous-programme
M00, M01 Arrêt du programme, arrêt optionnele
|
G96, G97 Vitesse de surface constante, vitesse de broche constante
G50 Vitesse de broche maximum
G18, G19 Déplacement mm par tour, déplacement mm/min
G00, G01 Mouvement rapide, interpolation linéaire (coupe suivant une ligne droite)
|
F Vitesse de déplacement
S Vitesse de broche
|
Coordonnées d'axes X Y Z A B C



Exemple d'un programme simple de tournage CNC

Image:Cnc prog.jpg
le brut et la pièce produite par le programme
O1234
G50 S2000
G96 S300 M03
G00 T0606 (OUTIL D'ÉBAUCHE DE TOURNAGE)
G18 X37. Z0.
G01 X-1. F0.2
Z1.
G00 X30.
G01 Z-20.
X33.
X35. Z-21.
Z-25.
X37.
G00 X150. Z300.
M01
T0101 (PERCAGE 18MM)
G97 S1000
G19 M03
X0. Z5.
G01 Z-25. F100
G00 Z5.
X150. Z300.
M05
M30



Exemple d'un programme simple de fraisage CNC

Un exemple simple peut être un rectangle de 4 pouce x 2 pouce. Le code de base pourrait se lire comme suit:

Image:Cnc prog mill.jpg
le brut et la pièce produite par le programme
N1X0Y0T01
N2X0Y2000
N3X4000Y2000
N4X4000Y0
N5X0Y0
N6M00
Ligne 1 (N1) dit à la machine d'aller au point X0Y0 et de saisir l'outil #1
Ligne 2 dit à la machine d'aller au point X0Y2.000
Ligne 3 dit à la machine d'aller au point X4.000Y2.000
Ligne 4 dit à la machine d'aller au point X4.000Y0
Ligne 5 retourne vers l'origine machine
Ligne 6 arrête la machine
Notez que le programme ne prévoit rien pour le cheminement de l'outil. Si la machine est une défonceuse et utilise une fraise de rayon 6mm, la pièce sera en pratique 12mm plus petite que définie (6mm par coté). Pour corriger, une commande G-code command (dans ce cas) doit être utilisé pour corriger le cheminement de l'outil.
N1G44M0125
N2X0Y0T01
N3X0Y2000
N4X4000Y2000
N5X4000Y0
N6X0Y0
N7M00
Dans ce cas, le contrôleur voit la première ligne et ajuste la position de l'outil de coupe à 0.125 (ou 1/8 pouce) à l'extérieur du traçé de découpe. Maintenant la machine va créer une pièce conforme à celle dessinée. Selon l'outil de coupe utilisé, la correction peut être définie si nécessaire. Par exemple, un laser avec un faisceau très fin peut nécessiter une correction de .005 pouce, alors qu'une machine à jet d'eau avec une buse de diamètre intérieur 0.060 pouce va nécessiter une correction de 0.030 pouce.

[modifier] Voir aussi

[modifier] Liens

Static Wikipedia 2008 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -

Static Wikipedia 2007 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -

Static Wikipedia 2006 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -

Sub-domains

CDRoms - Magnatune - Librivox - Liber Liber - Encyclopaedia Britannica - Project Gutenberg - Wikipedia 2008 - Wikipedia 2007 - Wikipedia 2006 -

Other Domains

https://www.classicistranieri.it - https://www.ebooksgratis.com - https://www.gutenbergaustralia.com - https://www.englishwikipedia.com - https://www.wikipediazim.com - https://www.wikisourcezim.com - https://www.projectgutenberg.net - https://www.projectgutenberg.es - https://www.radioascolto.com - https://www.debitoformtivo.it - https://www.wikipediaforschools.org - https://www.projectgutenbergzim.com