- Python 99.8%
- G-code 0.2%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
- FreeCAD workbench skeleton (package.xml, Init/InitGui, job object, commands) - portable core: neutral IR, machine profiles, preflight validation - GRBL 1.1/grblHAL postprocessor and built-in profile - 39 unit tests with a golden G-code reference - demo and CAM-reuse spike tools - ADRs (GPL-3.0-or-later, architecture, export-only, FreeCAD 1.1) and phase 0 report |
||
| docs | ||
| laserwb | ||
| Resources | ||
| tests | ||
| tools | ||
| .gitignore | ||
| freecad-laser-workbench-analyse-v2.md | ||
| freecad-laser-workbench-analyse.md | ||
| Init.py | ||
| InitGui.py | ||
| LICENSE | ||
| package.xml | ||
| pyproject.toml | ||
| README.md | ||
| THIRD_PARTY.md | ||
FreeCAD Laser Workbench
Atelier FreeCAD pour préparer des travaux de gravure et découpe laser : import de SVG, DXF, images et géométrie FreeCAD, définition d'opérations et de passes, génération et vérification des parcours, export de G-code pour GRBL (1.1 / grblHAL) et, à terme, d'autres contrôleurs.
- Contrôleur prioritaire : GRBL 1.1 / grblHAL
- Version FreeCAD cible : 1.1.x (compatibilité 26.3 testée)
- Licence : GPL-3.0-or-later
- Statut : phase 0 (squelette + noyau + postprocesseur GRBL)
Principe
La géométrie et les instructions machine sont séparées :
géométrie → opérations → parcours → IR neutre → postprocesseur → G-code
Le noyau (laserwb.core, laserwb.post) est du Python pur, testable sans
FreeCAD. La couche FreeCAD (laserwb.freecad) ne fait que l'adaptation
(document, interface, commandes). Les différences entre contrôleurs sont
décrites par des profils machine JSON, pas codées en dur.
Installation
Développement :
git clone http://git.yojik.eu/eric/FreecadLaserWorkbench
Puis, pour FreeCAD, lier ou copier le dépôt dans le répertoire Mod de
l'utilisateur (~/.local/share/FreeCAD/Mod sur Linux, %APPDATA%\FreeCAD\Mod
sur Windows), ou l'installer via l'Addon Manager en pointant sur ce dépôt.
Redémarrer FreeCAD et activer l'atelier Laser.
Tests
Aucune dépendance externe (le noyau est en Python pur) :
python3 -m unittest discover -s tests -t . -v
Démonstration hors FreeCAD :
python3 tools/demo_square.py
Dans FreeCAD, pour vérifier la réutilisation éventuelle de l'atelier CAM :
FreeCADCmd tools/spike_cam_reuse.py
Structure
package.xml métadonnées Addon Manager
Init.py / InitGui.py points d'entrée FreeCAD
laserwb/
core/ noyau Python pur (IR, profils, validation)
post/ postprocesseurs (GRBL)
profiles/ profils machine livrés (JSON)
freecad/ adaptateurs FreeCAD (document, GUI, commandes)
resources/ icônes
tests/ tests unitaires et fichiers de référence
tools/ scripts de démonstration et spikes
docs/ étude de faisabilité, ADR, rapports
Resources/ sources d'étude tierces (voir Resources/README.md)
Documentation
freecad-laser-workbench-analyse-v2.md: étude de faisabilité v2.docs/phase-0.md: rapport de phase 0.docs/adr/: décisions d'architecture.THIRD_PARTY.md: provenance et licences des sources étudiees/réutilisées.
Licence
GPL-3.0-or-later. Voir LICENSE. Les sources tierces étudiées sont recensées
dans THIRD_PARTY.md et Resources/README.md.