Qu'est-ce qu'un simulateur de code G ?
Un simulateur de code G (ou simulateur code G) est un logiciel d'ingénierie assistée par ordinateur interactif conçu pour analyser, interpréter, rendre et vérifier les programmes de machines à commande numérique (CN) dans un environnement virtuel 3D avant toute exécution réelle. En interprétant ligne par ligne les blocs de code G normalisés (ISO 6983 / RS-274D), notre simulateur de code G en ligne calcule les trajectoires spatiales 3D, interpôle les parcours de coupe linéaires et circulaires, évalue les vitesses d'avance et de broche, estime le temps de cycle global et détecte les collisions potentielles—directement dans votre navigateur web, sans aucune installation de logiciel CAO/FAO complexe.
Dans le domaine de la fabrication de précision, les fraiseuses, tours, routeurs et imprimantes 3D CNC dépendent entièrement du G-code pour piloter les axes orthogonaux (X, Y, Z) et rotatifs (A, B, C). Exécuter un programme G-code non vérifié sur une fraiseuse industrielle présente de graves risques physiques et financiers : une simple erreur de syntaxe, un point décimal manquant ou une mauvaise définition de l'origine pièce (G54) peut provoquer une collision catastrophique de la broche, briser des outils en carbure ou endommager gravement l'équipement. L'utilisation d'un simulateur de code G garantit une sécurité optimale, préserve l'outillage et évite des réparations coûteuses.
Exemple d'usinage CNC concrétisé : Considérez un centre de usinage vertical 3 axes fraisant un support en aluminium 6061-T6. Le logiciel FAO génère un fichier de trajectoire définissant une fraise 2 lèvres de Ø10 mm tournant à une vitesse de broche S = 4000 tr/min, avec une avance F = 800 mm/min et une profondeur de passe axiale a_p = 2,0 mm. En collant le programme dans ce simulateur de code G, vous observez instantanément le parcours 3D de l'outil, vérifiez que les déplacements rapides (G00) dégagent parfaitement les brides de serrage, et confirmez que la durée totale de l'usinage est exactement de 3 minutes et 42 secondes avant d'appuyer sur le bouton de départ cycle.
Comment fonctionne le moteur du simulateur de code G ?
Le moteur de rendu principal de ce 3D simulateur de code G fonctionne comme un interpréteur numérique déterministe et un solveur cinématique spatial en temps réel. Lorsqu'un fichier texte G-code est chargé dans l'éditeur, le moteur exécute une chaîne de traitement multi-étapes :
- Analyse lexicale et syntaxique : L'analyseur parcourt chaque bloc, élimine les commentaires (entre parenthèses
()ou après point-virgule;), isole les lettres d'adresse (G,M,X,Y,Z,F,S,I,J,K,T) et convertit les valeurs numériques en variables à haute précision. - Gestionnaire d'état modal : Les contrôleurs CNC fonctionnent par états. Le simulateur conserve un état modal actif pour l'unité (Métrique G21 vs Impérial G20), le mode de programmation (Absolu G90 vs Incrémental G91), le code de mouvement actif (G00, G01, G02, G03), le plan de travail (G17 XY, G18 ZX, G19 YZ), l'origine pièce (G54 à G59), ainsi que l'état de la broche (M03, M04, M05) et du lubrifiant.
- Interpolation de trajectoires et d'arcs 3D : Pour les déplacements linéaires (G00, G01), le moteur calcule les vecteurs de déplacement euclidiens (Δx, Δy, Δz). Pour les arcs de cercle (G02, G03), il détermine les coordonnées du centre avec les vecteurs I, J, K ou le rayon R, calcule les angles et découpe la courbe en segments sub-millimétriques pour un rendu 3D WebGL fluide.
- Calcul cinématique du temps : Le simulateur évalue la durée de chaque déplacement en divisant la distance par la vitesse d'avance F programmée pour les coupes (G01), ou en utilisant la vitesse rapide maximale de la machine pour les déplacements G00.
- Détection de collision et d'immersion : Le moteur vérifie en permanence si la pointe de l'outil dépasse les limites de course de la machine (limX, limY, limZ) ou si un déplacement rapide G00 pénètre dans la matière brute sous le niveau Z zéro, déclenchant ainsi une alerte visuelle immédiate.
Guide de référence des commandes G-Code et M-Code
Une compréhension approfondie de la syntaxe des codes G et M est essentielle pour la préparation du travail et le débuggage des programmes CNC :
| Commande | Classification | Statut Modal | Fonction Standard & Description | Exemple d'utilisation |
|---|---|---|---|---|
G00 | Mouvement | Modal | Positionnement rapide linéaire : Déplace les axes à la vitesse maximale de la machine vers les coordonnées cibles. Utilisé hors matière. | G00 X50.0 Y25.0 Z5.0 |
G01 | Mouvement | Modal | Interpolation linéaire de travail : Déplace l'outil en ligne droite à la vitesse d'avance F programmée. Utilisé pour le fraisage et le contournage. | G01 Z-2.0 F250 |
G02 | Mouvement | Modal | Interpolation circulaire horaire (CW) : Réalise un arc de cercle dans le sens horaire selon le plan actif (G17/G18/G19) avec le centre I,J,K ou le rayon R. | G02 X20.0 Y10.0 I10.0 J0 F500 |
G03 | Mouvement | Modal | Interpolation circulaire anti-horaire (CCW) : Réalise un arc de cercle dans le sens anti-horaire à la vitesse d'avance F. | G03 X0.0 Y20.0 R10.0 F500 |
G17 | Sélection de plan | Modal | Sélectionne le plan XY pour l'interpolation circulaire (G02/G03) et la compensation de rayon d'outil (G41/G42). Standard en fraisage 3 axes. | G17 |
G18 | Sélection de plan | Modal | Sélectionne le plan ZX pour l'interpolation circulaire. Plan standard pour le tournage CNC. | G18 |
G19 | Sélection de plan | Modal | Sélectionne le plan YZ pour l'interpolation circulaire. | G19 |
G20 | Système d'unités | Modal | Définit le système d'unités en pouces (coordonnées et avances exprimées en pouces et pouces/min). | G20 |
G21 | Système d'unités | Modal | Définit le système d'unités en millimètres (coordonnées en mm, avances en mm/min). Standard international. | G21 |
G90 | Mode de positionnement | Modal | Mode absolu : Toutes les coordonnées X, Y, Z sont référencées par rapport à l'origine du système de coordonnées pièce (G54). | G90 |
G91 | Mode de positionnement | Modal | Mode incrémental : Les coordonnées indiquent un déplacement relatif depuis la position actuelle de l'outil. | G91 G01 Z-1.0 F100 |
G54 - G59 | Origine pièce | Modal | Origines pièces (WCS 1 à 6) : Définit le point zéro de référence sur le montage de la pièce. | G54 |
M03 | Contrôle broche | Non-modal | Démarrage broche sens horaire : Fait tourner la broche dans le sens horaire à la vitesse S programmée. | M03 S3500 |
M04 | Contrôle broche | Non-modal | Démarrage broche sens anti-horaire : Utilisé pour le taraudage à gauche ou certains outils spéciaux. | M04 S500 |
M05 | Contrôle broche | Non-modal | Arrêt de la broche : Stoppe la rotation. Toujours exécuté avant un changement d'outil. | M05 |
M06 | Changement d'outil | Non-modal | Changement automatique d'outil (ATC) : Ordonne le remplacement de l'outil actif par le numéro T spécifié. | T2 M06 |
M08 / M09 | Lubrification | Non-modal | M08 active l'arrosage de coupe ; M09 désactive les pompes de lubrification. | M08 / M09 |
M30 | Fin de programme | Non-modal | Fin de programme et réinitialisation : Stoppe la broche, coupe l'arrosage et remet le pointeur au bloc 1. | M30 |
Paramètres de sortie et télémétrie d'usinage
Notre simulateur de code G calcule en temps réel 12 paramètres de sortie offrant un retour analytique complet sur la géométrie et la productivité :
- État de la machine (IDLE / RUNNING / PAUSED / COLLISION) : Affiche le statut d'exécution du système.
- Position actuelle (X, Y, Z) : Coordonnées spatiales en direct de la pointe de l'outil dans l'origine WCS active.
- Vitesse d'avance programmée vs effective : Avance programmée F versus vitesse vectorielle réelle calculée.
- Vitesse et sens de broche : Vitesse de rotation réelle (RPM S) et sens de rotation (CW / CCW / STOPPED).
- Distance de coupe (L_cut) : Distance totale cumulée parcourue pendant les déplacements d'usinage matière (G01, G02, G03) en mm.
- Distance rapide (L_rapid) : Distance totale parcourue lors des déplacements rapides hors matière (G00) en mm.
- Débit de retrait matière (MRR) : Volume de matière enlevé par unité de temps (cm³/min).
- Temps de cycle écoulé (t_elapsed) : Temps réel écoulé depuis le début de la simulation au format
MM:SS. - Temps restant estimé (t_rem) : Durée projetée pour achever les blocs de G-code restants.
- Enveloppe de travail (X_range, Y_range, Z_range) : Dimensions maximales balayées par l'outil, indispensables pour vérifier l'encombrement.
Formules et équations d'usinage CNC
Voici le cadre mathématique régissant la cinématique de coupe et les exigences de puissance appliqués dans ce simulateur de code G :
1. Distance euclidienne 3D et durée de ligne droite
La distance spatiale en ligne droite Δd entre les coordonnées de départ (x1, y1, z1) et d'arrivée (x2, y2, z2) s'exprime par :
Δd = √((x2 - x1)² + (y2 - y1)² + (z2 - z1)²) [mm]Pour un mouvement de coupe (G01) à la vitesse d'avance F (mm/min), la durée du déplacement t_move est :
t_move = (Δd / F) × 60 [secondes]2. Rayon d'arc circulaire et longueur d'arc
Pour un arc circulaire (G02/G03) dans le plan XY avec les décalages de centre I, J depuis le point initial (x1, y1) :
Coordonnées du centre d'arc : x_c = x1 + I, y_c = y1 + J
Rayon d'arc calculé : R = √(I² + J²) [mm]L'angle de balayage d'arc Δθ et la longueur totale d'arc S_arc sont donnés par :
Δθ = θ_fin - θ_départ [radians]
S_arc = R × |Δθ| [mm]3. Vitesse de coupe superficielle (Vc)
La vitesse de coupe Vc représente la vitesse linéaire de l'arête de coupe par rapport à la pièce :
Vc = (π × D × N) / 1000 [m/min]Où D est le diamètre de l'outil en mm et N est la vitesse de rotation en tr/min (RPM). Pour trouver la vitesse N nécessaire :
N = (1000 × Vc) / (π × D) [tr/min]4. Avance par dent / Épaisseur de copeau (fz)
L'avance par dent fz représente l'épaisseur de matière enlevée par chaque arête de coupe :
fz = F / (N × z) [mm/dent]Où F est la vitesse d'avance de la table (mm/min), N la vitesse de broche (tr/min), et z le nombre de dents de la fraise.
5. Débit de matière enlevée (MRR)
Le débit volumétrique de matière enlevée lors du fraisage est défini par :
MRR = (a_p × a_e × F) / 1000 [cm³/min]Où a_p est la profondeur de passe axiale (mm), a_e la largeur de passe radiale (mm), et F la vitesse d'avance (mm/min).
6. Puissance nette de coupe (Pc) et couple de broche (Mc)
La puissance nette nécessaire à l'outil Pc dépend du MRR et de l'énergie spécifique de coupe du matériau kc (N/mm²) :
Pc = (MRR × kc) / (60 × 10&sup6; × η) [kW]Où η ≈ 0,80 - 0,88 représente le rendement de transmission de la machine. Le couple de broche Mc associé est :
Mc = (9550 × Pc) / N [N·m]7. Rugosité théorique de surface (Ra)
Pour le fraisage à bout sphérique ou le tournage avec un rayon de bec r_eps (mm) et une avance fz (mm) :
Ra ≈ (fz² / (32 × r_eps)) × 1000 [μm]8. Temps de cycle total d'un programme d'usinage
La durée totale d'exécution T_total additionne tous les mouvements d'usinage, déplacements rapides, changements d'outils et temporisations :
T_total = ∑ (L_cut / F) + ∑ (L_rapid / F_rapid) + (n_outils × t_ATC) + ∑ t_temporisation [min]Physique et cinématique de la coupe des métaux CNC
La coupe des métaux sur une fraiseuse CNC est un processus de déformation plastique intense. Lorsque la dent engagée pénètre dans la matière, le métal est cisallé le long de la zone de cisaillement primaire selon un angle φ, formant des copeaux continus ou fragmentés.
Le vecteur de force de coupe total agissant sur l'outil se décompose en trois composantes orthogonales :
- Force de coupe tangentielle (Fc) : Agit parallèlement à la vitesse de coupe Vc. Elle détermine le couple de broche (Mc = Fc · D / 2000) et la consommation d'énergie.
- Force d'avance (Ff) : Agit parallèlement au sens d'avance de l'outil. Elle s'applique directement sur les vis à billes et les guides linéaires des axes.
- Force de poussée radiale (Fp) : Repousse l'outil hors de la pièce. Elle provoque la flexion élastique de l'outil (δ = Fp · L³ / (3 E I)), entraînant des écarts dimensionnels et des bruits de broutement.
Applications industrielles de la simulation de code G
La validation virtuelle dans un simulateur de code G est une pratique courante dans les grands secteurs de la fabrication :
- Aéronautique : Usinage 5 axes de pièces monolithiques en titane ou en aluminium pour structures d'aéronefs où la matière brute coûte très cher.
- Automobile : Production en grande série de blocs moteurs et de carters où l'optimisation des temps de cycle procure des gains financiers colossaux.
- Outillage & Moules : Usinage de formes complexes en 3D dans des aciers traités (55–60 HRC) nécessitant des parcours sans fausse note durant des dizaines d'heures.
- Médical : Micro-fraisage de prothèses orthopédiques et d'implants dentaires en titane.
Tableaux de référence en ingénierie
Vitesses de coupe recommandées (Vc) et avances par dent (fz) pour fraises monobloc en carbure
| Matériau de la pièce | Dureté | Vitesse de coupe Vc (m/min) | Avance / dent fz (Outil Ø6mm) | Avance / dent fz (Outil Ø12mm) | Énergie spécifique kc (N/mm²) |
|---|---|---|---|---|---|
| Aluminium 6061-T6 / 7075-T6 | 95 HB | 300 – 900 | 0.04 mm | 0.09 mm | 700 |
| Acier à moyenne teneur en carbone (C45) | 180 HB | 120 – 220 | 0.03 mm | 0.06 mm | 1,800 |
| Acier allié (42CrMo4) | 320 HB | 90 – 160 | 0.025 mm | 0.05 mm | 2,100 |
| Acier inoxydable 316L (Austénitique) | 200 HB | 70 – 130 | 0.02 mm | 0.045 mm | 2,400 |
| Alliage de Titane (Ti-6Al-4V) | 36 HRC | 40 – 80 | 0.018 mm | 0.04 mm | 2,800 |
| Laiton de décolletage (CuZn39Pb3) | 120 HB | 250 – 600 | 0.04 mm | 0.08 mm | 750 |
Erreurs courantes de programmation en G-Code et risques de collision
- Plongée rapide dans la matière (G00 Z négatif) : Effectuer un mouvement rapide G00 directement dans le matériau au lieu d'avancer en G01 à vitesse contrôlée. Solution : Toujours positionner l'outil en rapide au-dessus de la pièce (Z+5.0 mm) avant de passer en G01.
- Omission de la vitesse d'avance (F) : Appeler un code de coupe (G01, G02, G03) sans définir la vitesse d'avance F. Solution : Indiquer toujours F sur la première ligne de travail.
- Incompatibilité de plan d'arc (G17 vs I, J, K) : Programmer un arc circulaire (G02/G03) en utilisant I, J alors qu'un mauvais plan (G18 ou G19) est actif. Solution : Appeler explicitement G17 avant les mouvements circulaires XY.
- Confusion entre Absolu (G90) et Incrémental (G91) : Oublier que le mode incrémental est actif et saisir des coordonnées absolues, déroutant totalement l'outil. Solution : Inclure systématiquement G90 dans le bloc de sécurité initial.
- Omission de la jauge outil (G43 H#) : Oublier d'activer la compensation de longueur d'outil après un changement d'outil, provoquant un crash sur l'axe Z. Solution : Placer
G43 H# Z50.0immédiatement après chaqueM06.
Foire aux questions (FAQ) sur le simulateur de code G
À quoi sert un simulateur de code G ?
Un simulateur de code G sert à analyser, visualiser et vérifier les programmes de machines CNC dans un environnement 3D avant l'usinage réel. Il permet de contrôler les trajectoires, les vitesses d'avance, d'estimer les temps de cycle et de détecter les collisions d'outils.
Comment le simulateur de code G 3D détecte-t-il les collisions ?
Le simulateur de code G suit la position exacte de la pointe de l'outil par rapport aux limites de la machine et au brut. Si un mouvement rapide (G00) pénètre dans la matière ou si un axe dépasse sa course maximale, une alerte visuelle est déclenchée.
Quelle est la différence entre G00 et G01 ?
G00 est un mouvement rapide à la vitesse maximale de la machine utilisé hors matière. G01 est un mouvement de coupe linéaire contrôlé à une vitesse d'avance F programmée (mm/min).
Comment sont programmés les arcs de cercle avec G02 et G03 ?
G02 réalise un arc circulaire dans le sens horaire, et G03 dans le sens anti-horaire. La géométrie est définie soit par le centre de l'arc (I, J, K), soit par la valeur du rayon R.
Que signifient G20 et G21 en G-code ?
G20 définit l'unité de mesure en pouces, tandis que G21 définit le système en millimètres (mm). Il est indispensable de définir le système d'unités dès le début du programme.
Ce simulateur nécessite-t-il une installation ?
Non. Ce simulateur de code G fonctionne entièrement dans votre navigateur web moderne à l'aide de technologies JavaScript et HTML5 Canvas / WebGL. Aucune installation ni plugin n'est requis.
Références et lectures complémentaires
- Smid, P. (2008). CNC Programming Handbook (3rd ed.). Industrial Press Inc.
- Groover, M. P. (2019). Fundamentals of Modern Manufacturing: Materials, Processes, and Systems (7th ed.). Wiley.
- Norme ISO 6983-1:2009. Systèmes d'automatisation industrielle et intégration — Commande numérique des machines — Format de programme et définitions des mots d'adresse. ISO.
