Application web single-file (HTML + CSS + JS) pour générer et visualiser du G-code d'usinage CNC 3 axes simultanés (X, Y, Z) à partir d'un fichier STL.
Aucun serveur requis — tout tourne dans le navigateur, hors-ligne possible.
Web-based single-file app (HTML + CSS + JS) to generate and visualise CNC G-code with simultaneous 3-axis motion (X, Y, Z) from an STL file.
No server required — runs entirely in the browser, works offline.
Télécharge Magic_GCode_Generator.html, ouvre-le dans ton navigateur — c'est tout.
Download Magic_GCode_Generator.html, open it in your browser — that's it.
| Fonctionnalité | Feature |
|---|---|
| Import STL binaire et ASCII | Binary and ASCII STL import |
| Import G-code (.gcode .nc .tap .cnc) | G-code import (.gcode .nc .tap .cnc) |
| Stratégies raster X, Y, croisé | Raster X, Y, crossed toolpaths |
| Parcours 3 axes simultanés (G1 XYZ) | Simultaneous 3-axis motion (G1 XYZ) |
| 5 modes d'origine pièce | 5 workpiece origin modes |
| Visualisation brut (boîte translucide) | Stock block visualisation (translucent box) |
| Compatibilité GRBL, Mach3/4, LinuxCNC | GRBL, Mach3/4, LinuxCNC compatibility |
| Visualisation 3D Three.js — G0 jaune / G1 cyan | Three.js 3D viewer — G0 yellow / G1 cyan |
| Calcul asynchrone avec barre de progression | Async computation with progress bar |
Export .gcode avec en-tête commenté |
.gcode export with commented header |
| Interface responsive, thème sombre | Responsive UI, dark theme |
FR :
- Télécharge
Magic_GCode_Generator.html - Ouvre-le dans Chrome, Firefox ou Edge
- Charge un fichier STL
- Configure les paramètres (outil, avances, broche, pas latéral)
- Clique Générer → visualise → télécharge le
.gcode
EN :
- Download
Magic_GCode_Generator.html - Open it in Chrome, Firefox or Edge
- Load an STL file
- Set parameters (tool, feed rates, spindle, step-over)
- Click Generate → preview → download the
.gcode
- GRBL (balises
%, commentaires;) - Mach3 / Mach4 (G64 path blending)
- LinuxCNC (G21/G90/G94 standard)
- Renommage : fichier renommé
Magic_GCode_Generator.html - Brut positionné sur le 00 : coin bas-gauche du brut = position 00 (formule corner-dépendante partagée via
get00GCode()) - Repère OP suit le brut : axes XYZ affichés au coin bas-gauche de la face supérieure, taille réduite (×0.12 au lieu de ×0.35)
- Vue initiale : caméra ajustée sur l'ensemble machine au chargement, pas zoomed sur le brut seul
- Labels grille : itération en coords machine (distances OM, toujours positives) → multiples corrects (200, 400, …) quelle que soit la position de l'OM
- Rendu glyphes : canvas adaptatif (
Math.max(128, text.length×38+24)× 96 px, police 56 px) → nombres 4 chiffres lisibles sans artefacts
- Import G-code : bouton "Charger un fichier" accepte
.stlet.gcode/.nc/.tap/.cnc— routage automatique par extension - Visualisation G-code 3D : parser modal G0/G1/G90/G91, segments colorés — G0 en jaune (rapides), G1 en cyan (coupes)
- Statistiques à l'import : nb mouvements, dimensions zone usinée, longueur parcours coupe
- Brut affiché par défaut au lancement (100×100×30 mm) avant tout import STL
- Parcours outil STL en cyan vif (
#00E5FF) — meilleure visibilité sur fond sombre - Longueur du parcours affichée en mm (au lieu de m)
- Mentions de licence dans l'en-tête de chaque fichier G-code généré
- Brut 3D translucide avec arêtes dorées, dimensions auto depuis le STL
- 5 modes d'origine pièce (brut, centre XY, coin, coords STL, coords manuelles)
- Correction bug toggle wireframe modèle STL
- Valeurs par défaut usinage : avance 850, plongée 300, broche 14 500 tr/min
- Visualiseur Three.js r128 : modèle + parcours + axes XYZ
- Support touch (mobile)
- Génération G-code raster zigzag X/Y/croisé
- Compatibilité GRBL, Mach3/4, LinuxCNC
- Calcul asynchrone avec barre de progression
Voir FONCTIONNALITES.md pour la liste complète des fonctionnalités prévues (V1.4 → V2.0).
See FONCTIONNALITES.md for the full feature roadmap (V1.4 → V2.0).
Prochaines étapes prioritaires / Next priority milestones :
- V1.4 — Multi-passes (profondeur de passe, Z-level / depth per pass, Z-level)
- V1.5 — Import SVG / DXF (usinage 2D+ / 2.5D machining)
- V1.6 — Profils machines (machine profiles, localStorage)
- V1.7 — Bibliothèque de paramètres utilisateur (fichier
.mdlocal : outils, matériaux, machines / user parameter library via local.mdfile)
| Bibliothèque | Version | Licence | Chargement |
|---|---|---|---|
| Three.js | r128 | MIT | CDN Cloudflare |
Three.js est la seule dépendance externe. Elle est chargée automatiquement depuis le CDN Cloudflare au premier usage. Sans connexion internet, la visualisation 3D ne fonctionnera pas — le G-code est néanmoins généré et exportable normalement.
Pour un usage 100% hors-ligne : télécharge three.min.js et modifie la balise <script> dans le HTML pour pointer vers le fichier local.
Three.js — Copyright © 2010-2024 three.js authors — MIT License
Three.js is the only external dependency, loaded automatically from the Cloudflare CDN. Offline use: download three.min.js and update the <script> tag in the HTML to point to the local file. G-code generation works offline regardless.
MIT — libre d'utilisation, de modification et de distribution avec mention de l'auteur.
Free to use, modify and distribute with attribution.
Marc FONTAINE — FabLab BEN / Coop Alpha
Bègles (Gironde, France)
Contributions bienvenues — issues et pull requests ouverts.
Contributions welcome — issues and pull requests open.