Atelier Laser
Workbench FreeCAD 1.1 Cible LinuxCNC Testé sur PrintNC + LT-80W-AA-PRO

Du dessin FreeCAD
au G-code laser.

Un atelier FreeCAD qui transforme votre géométrie 2D/3D en G-code de marquage et de découpe laser pour CNC : gravure noir plein, photo tramée, suivi de surfaces courbes, découpe multi-passes, et une série d'outils de test et de calibration guidés.

Atelier Laser — PrintNC
● Présentation

Un atelier pensé pour le laser sur CNC

L'Atelier Laser ajoute à FreeCAD 16 modes regroupés par thème : gravure à plat, gravure sur surface 3D courbe, découpe multi-passes, tests & calibration, et assemblage de jobs. Chaque mode génère un fichier G-code prêt pour LinuxCNC, avec estimation de durée, aperçu du trajet dans la vue 3D et fichier de cadrage à vérifier avant de lancer.

Pour qui ?

Pour qui pilote un module laser monté sur une fraiseuse CNC sous LinuxCNC et veut générer proprement ses parcours depuis FreeCAD, sans écrire de G-code à la main. L'atelier a été développé sur une PrintNC équipée d'un module diode LT-80W-AA-PRO, mais le profil machine se règle entièrement depuis les Préférences.

La philosophie : on mesure, on ne devine pas

Rien n'est supposé sur l'optique du laser. Le comportement du point (foyer, divergence en défocus, noircissement selon la puissance) se règle à partir de mesures réelles sur chute : bandes de calibration, grilles de test, nuancier. Le logiciel s'appuie sur ces mesures plutôt que sur un modèle théorique.

Le point d'entrée : le Guide rapide

La première icône de la barre d'outils (livre ouvert) ouvre un Guide rapide qui résume le flux de travail et répond à « quel mode pour quoi ? ». Chaque panneau s'ouvre aussi sur un résumé court avec un bouton « En savoir plus » et, pour les concepts clés, un petit schéma explicatif.

● Matériel & principe

Comment l'atelier parle à la machine

Le laser est piloté comme une broche LinuxCNC : la puissance passe par la commande S (PWM), il n'y a pas de sortie analogique dédiée. Le zéro Z est toujours fait sur la surface de la pièce, et la mise au point se fait en descendant le bec à la focale.

Chaîne de commande

  • Laser = broche $1 (sélecteur multi-broche LinuxCNC).
  • Puissance par segment via S (0 → échelle max de la machine, S1000 par défaut).
  • Armement unique par M3 à puissance nulle + temporisation, désarmement M5.
  • Compensation d'outil G43 H<n> en tête de job (offsets X/Y + Z palpé du laser).

Module laser testé — LT-80W-AA-PRO

Module diode (10 W optiques). La pièce carrée qui entoure le nez a été retirée pour pouvoir suivre les surfaces courbes sans collision : le contrôle anti-collision de l'atelier ne modélise donc que le nez conique restant (réglable en Préférences).

Nez : pointe Ø5 mm, sommet du cône Ø16 mm, hauteur 18 mm. Focale ~8 mm.

Prérequis machine avant de lancer un fichier

Sur LinuxCNC, il faut avoir fait T<outil laser> M6 dans la session (T100 par défaut, réglable en Préférences). Le G43 de l'en-tête applique alors les offsets X/Y et le Z palpé de l'outil laser. Ce prérequis est rappelé en commentaire dans chaque fichier généré.

● Installation

Cloner dans le dossier Mod de FreeCAD

Le dépôt est le workbench : on le clone directement dans le dossier Mod de FreeCAD. Pas de build, pas de dépendance à installer — FreeCAD charge les fichiers Python au démarrage.

git clone https://github.com/atelierduverdier/LaserAtelier.git \
  ~/.local/share/FreeCAD/<version>/Mod/LaserAtelier

Adaptez <version> à votre version de FreeCAD (par ex. v1-1), puis redémarrez FreeCAD : l'atelier « Atelier Laser » apparaît dans le sélecteur d'ateliers. Toute évolution du dépôt est reprise après un simple redémarrage.

Rien d'autre à installer

Aucun système de build, aucun linter, aucune CI. Les réglages (G-code perso, préréglages matériau, profil du bec, préférences) sont mémorisés entre deux lancements dans un fichier laser_atelier_config.json, dans le dossier de configuration utilisateur de FreeCAD.

● Prise en main

Le flux de travail en six étapes

C'est le fil conducteur de tout l'atelier, résumé dans le Guide rapide : on calibre une fois, on teste sur une chute, on prépare le motif, on génère, on vérifie le cadrage, puis on grave.

1

Calibrer

Une fois : focale, calibration du point (bande de défocus), offsets X/Y du laser — dans les Préférences.

2

Tester

Sur une chute : grille de test ou rampe puissance/vitesse pour trouver les bons réglages du matériau.

3

Motif

Hachures, texte/forme, image ou projection sur surface courbe selon ce que vous gravez.

4

G-code

Marquage, gravure remplie ou découpe génèrent le fichier .ngc.

5

Cadrage

Chaque mode propose un fichier d'aperçu séparé (rectangle englobant, laser éteint) à lancer d'abord.

6

Graver

Sur LinuxCNC, faire T<laser> M6 puis lancer le fichier.

Communs à tous les modes

Estimation de durée tenant compte des accélérations, aperçu du trajet dans la vue 3D, aperçu de cadrage en fichier séparé, préréglages matériau, et mémorisation des derniers réglages de chaque panneau (rouvrir un mode retrouve les valeurs de la dernière fois).

● Les modes

16 modes, regroupés par thème

Ils apparaissent dans cet ordre dans la barre d'outils et le menu « Atelier Laser ». Voici chaque panneau, avec sa capture et le cas d'usage.

Gravure à plat

Sur une pièce plane : remplissage, texte/forme en noir, ou photo.

Panneau Hachures 2D

Hachures 2D (géométrie)

Remplit une face 2D de hachures parallèles, croisées ou en défocus — crée la géométrie des hachures, à graver ensuite avec le Marquage.

Quand ? Préparer un remplissage, seul ou avant une projection sur surface courbe.
Panneau Gravure remplie

Gravure remplie (noir)

Grave un texte ou une forme 2D en noir plein : remplissage en défocus rentré du bord + contour repassé net au foyer. Styles de trait, préréglages matériau, compensation puissance/défocus.

Quand ? Un logo, un texte, une forme pleine sur une pièce plate.
Panneau Gravure photo

Gravure photo (trame de points)

Convertit une image en trame de points laser : tramage par diffusion Floyd-Steinberg ou par durée de pulse variable, aperçu du tramage en direct, option négatif, largeur de point réglable.

Quand ? Graver une photo, un portrait, un dégradé photographique.

Sur surface 3D

Suivre le relief d'une pièce bombée, sans écraser le foyer.

Panneau Projection sur surface 3D

Projection sur surface 3D

Projette un motif 2D sur une surface courbe (sonde par tessellation, quasi instantanée). Le panneau s'ouvre d'abord, puis on sélectionne motif et surface dans la vue — l'état reconnu s'affiche en direct.

Quand ? Poser des hachures ou un motif à plat sur une pièce bombée avant marquage.
Panneau Marquage de motif

Marquage de motif (plat ou courbe)

Grave un motif filaire, à plat ou en suivant le relief d'un modèle 3D, avec 5 styles de trait (plein, tirets, pointillé, vague défocus, défocus point élargi) et le nuancier matériau.

Quand ? Générer le G-code d'un tracé filaire, sur pièce plane ou courbe.
Panneau Découpe multi-passes courbe

Découpe multi-passes (courbe)

Combine le suivi de relief du marquage courbe avec la logique multi-passes / kerf / imbrication de la découpe à plat.

Quand ? Découper le long d'une surface qui n'est pas parfaitement plane.

Découpe

Traverser le matériau en plusieurs passes.

Panneau Découpe plate

Découpe multi-passes (matériau plat)

Passes progressives, compensation de kerf, ordre trous-avant-contour, attaches (ponts de matière), amorce (lead-in hors du bord fini) et copies en matrice pour découper une série en un seul job.

Quand ? Découper une ou plusieurs pièces dans une plaque à plat.

Tests & calibration

Trouver les bons réglages et caler l'optique — tous avec préréglages d'usine (★).

Panneau Calibration kerf

Calibration kerf

Génère un carré test pour mesurer le kerf réel du laser (largeur du trait de coupe), à réinjecter dans la découpe.

Quand ? Avant une découpe où les cotes doivent être justes.
Panneau Grille de test

Grille de test puissance/vitesse

Matrice de cellules à puissance/vitesse variables, étiquetées, avec cadre net autour de chaque cellule. Champ Hauteur (Z) de test pour rejouer la même matrice à une autre hauteur de bec.

Quand ? Trouver le couple puissance/vitesse d'un nouveau matériau, par paliers discrets.
Panneau Rampe puissance/vitesse

Rampe puissance/vitesse (lignes)

Longues lignes, une par vitesse, chacune à puissance croissante de gauche à droite (rampe Z optionnelle). Règle graduée en chiffres verticaux pour lire la puissance sous n'importe quel point.

Quand ? Le complément continu de la grille : voir où le trait commence à marquer et où il sature.
Panneau Bande de calibration défocus

Bande de calibration défocus

Rangée de courts traits à hauteurs de bec croissantes, étiquetés en hauteur et en puissance — pour mesurer le foyer (trait le plus fin) et la divergence du point, puis renseigner la calibration.

Quand ? Une fois, pour caler le modèle de défocus dans les Préférences.
Panneau Test des offsets X/Y

Test des offsets X/Y du laser

Job mixte fraise + laser : fraise une croix sur X0 Y0, puis grave une croix laser au même point programmé. L'écart mesuré entre les deux croix corrige les offsets X/Y dans tool.tbl.

Quand ? Après le montage du laser, pour aligner son axe sur celui de la broche.
Panneau Nuancier matériau

Nuancier matériau

La palette de gris mesurée d'un matériau : chaque ton = un réglage (puissance, vitesse, défocus) + son résultat constaté (noirceur 0-100 %, largeur). Les modes Marquage et Gravure remplie proposent « Appliquer ce ton ».

Quand ? Après les grilles/rampes, pour capitaliser les réglages qui marchent.

Assemblage & réglages

Empiler des opérations et centraliser la configuration.

Panneau Job combiné

Job combiné

Empile plusieurs opérations (marquage, découpe, grille) dans un seul fichier G-code, avec un seul armement du laser et une transition anti-collision entre opérations.

Quand ? Enchaîner marquage puis découpe d'une même pièce sans relancer.
Panneau Préférences

Préférences

Tous les réglages machine centralisés : calibration du point, Z de travail, marge de survol, profil du bec, numéro d'outil laser, échelle de puissance, sécurité… appliqués immédiatement, sans redémarrer.

Quand ? À l'installation, puis dès qu'un réglage machine change.
● Calibration en profondeur

Caler l'optique et le matériau, une fois

Le cœur de l'atelier : deux mesures du point calibrent le modèle de défocus, la fluence relie puissance et largeur de trait, le test d'offsets aligne le laser, et le nuancier capitalise les gris qui marchent.

Le point & le modèle de défocus

Pour noircir une surface en un seul passage, le remplissage éloigne le bec du foyer : le point s'élargit et des hachures espacées se recouvrent. Le modèle est un cône de divergence linéaire calibré à partir de deux mesures réelles — le point au foyer, puis le point à un défocus connu — jamais deviné. La Bande de calibration défocus fournit ces mesures ; on les saisit une seule fois dans les Préférences (« point au foyer », « défocus de test », « point au défocus de test ») et tous les modes concernés les réutilisent. Le remplissage est automatiquement rentré du rayon de point pour rester à l'intérieur du contour.

Schéma : plus le bec remonte, plus le point s'élargit
Remonter le bec (défocus) élargit le point : c'est ce qui permet de noircir en un passage.
Schéma : remplissage défocus rentré du bord puis contour net au foyer
Gravure remplie : remplissage en défocus rentré du bord, puis contour repassé net au foyer.

Puissance vs défocus (la fluence)

Défocaliser étale la même puissance sur un point plus large : l'énergie déposée par unité de surface — la fluence — baisse, et sous un seuil le trait ne marque plus. Pour un trait balayé à la vitesse v, avec un point de diamètre d et une puissance P, la fluence vaut :

F ∝ P / (d · v)

Les modes Gravure remplie et Marquage (style Défocus) exposent une section « Puissance vs défocus » : on renseigne un réglage de référence connu bon sur le matériau (puissance, vitesse, largeur de point d'une gravure réussie), et l'atelier soit indique la fluence obtenue par rapport à cette référence, soit compense la puissance automatiquement pour retrouver la même fluence à la largeur et la vitesse courantes. Dans le Marquage, on saisit directement la largeur de point voulue (l'atelier en déduit la hauteur de défocus), plus intuitif qu'une remontée de bec.

Offsets X/Y — aligner le laser sur la broche

Le laser n'est pas monté exactement sur l'axe de la broche : il faut mesurer son décalage. Le Test des offsets fraise une croix, puis grave une croix laser au même point programmé. L'écart signé entre les deux (au pied à coulisse) est l'erreur d'offset :

MesureCorrection dans tool.tbl (outil laser)
dX = X croix laser − X croix fraiséeX_nouveau = X_actuel − dX
dY = Y croix laser − Y croix fraiséeY_nouveau = Y_actuel − dY
Schéma : écart entre la croix fraisée et la croix laser = erreur d'offset
L'écart entre la croix fraisée (broche) et la croix laser au même point programmé donne la correction à porter dans tool.tbl.
Prévoir large

Si un signe d'offset est faux, la croix laser peut partir loin. Faites le test sur une chute large, lunettes laser obligatoires. C'est le seul mode qui fait ses propres changements d'outil (T<fraise> M6 puis T<laser> M6).

Le nuancier — capitaliser les gris

La noirceur n'étant pas linéaire avec la puissance, l'atelier ne se fie pas à un modèle mais à des mesures. Après une grille ou une rampe de test, on note dans le Nuancier chaque ton utile : le réglage (puissance, vitesse, défocus) et son résultat constaté (noirceur à l'œil en %, largeur de trait). Les modes Marquage et Gravure remplie proposent alors « Appliquer ce ton » — puissance, vitesse et style Défocus réglés d'un clic sur un rendu déjà validé (le logiciel choisit le ton mesuré le plus proche). C'est la fondation des futurs dégradés et photos calibrés.

● Préférences

Tous les réglages machine, au même endroit

La commande Préférences (icône engrenage) centralise la configuration. Tout est enregistré dans laser_atelier_config.json et appliqué immédiatement. Une valeur invalide est ignorée avec un avertissement, et la valeur par défaut conservée.

RéglageDéfautRôle
Dossier G-codeDossier proposé par défaut à la sauvegarde (repli sur /tmp s'il n'est pas accessible).
Vitesse rapide (estimation)6000Vitesse G0 supposée pour l'estimation de durée. N'affecte que l'estimation.
Marge de survol (transits)10,0Marge ajoutée au Z de travail pour les déplacements à vide. 0 = transits au Z de travail.
Puissance de cadrage (S)0Puissance du faisceau pendant l'aperçu cadrage. 0 = laser éteint ; sinon très faible.
Point au foyer0,15Calibration du point : diamètre au foyer (mesuré à la bande de défocus).
Défocus de test3,0Calibration du point : hauteur de la 2ᵉ mesure au-dessus du foyer.
Point au défocus de test1,0Calibration du point : diamètre mesuré à ce défocus.
Z de travail (foyer)8,5Z de travail proposé par défaut dans tous les panneaux. Chaque panneau reste modifiable.
Marge de survol (marquage)0,5Marge de transit proposée dans les modes de marquage (0 recommandé sur pièce plate).
Sélecteur broche$1Sélecteur multi-broche ajouté aux commandes S/M3/M5 (LinuxCNC : laser = spindle 1).
Numéro d'outil laser100Numéro (tool.tbl) de l'outil laser : compensation G43 H<n> et Test des offsets.
Échelle de puissance max (S)1000Valeur S = pleine puissance. Fixe le maximum des champs de puissance et le plafond de la fluence.
Temporisation d'armement2,0Pause G4 après l'armement, le temps que l'électronique du module soit prête.
Hauteur bec minimale1,5Butée de sécurité anti-collision : le bec ne descend jamais plus près de la surface.
Bec : diamètres et hauteur5 / 16 / 18Profil du bec pour le contrôle anti-collision sur surface courbe.

Extrait des réglages les plus utiles — la liste complète (vitesses de cadrage, accélération d'estimation, seuils d'avertissement d'épaisseur/pas Z…) figure dans le README du dépôt.

● G-code & LinuxCNC

Ce que génère l'atelier

Chaque générateur renvoie un G-code assaini pour LinuxCNC (dialecte RS274). Le format est pensé pour un laser piloté en broche PWM.

Structure d'un job

  • En-tête : G21 / G90 / G94 / G43 H<laser>, puis M5 $1.
  • Armement unique : M3 $1 à puissance nulle + temporisation.
  • Puissance par segment via S…, S0 sur les rapides.
  • Désarmement M5 $1, arrêt propre au M2.

Assainissement obligatoire

LinuxCNC rejette les parenthèses imbriquées dans les commentaires et les octets non-ASCII (accents français). Le générateur remplace les parenthèses internes et translittère les accents à chaque sortie — l'opération est idempotente (sûre pour les jobs combinés).

Portabilité — deux réglages clés

Le numéro d'outil laser (défaut 100) et l'échelle de puissance S (défaut 1000) sont dans les Préférences : une machine dont le laser est un autre outil de la table, ou dont la broche est configurée S0-255, s'adapte entièrement depuis l'interface, sans toucher au code. Le sélecteur de broche $1 est lui aussi réglable.

Contrôleurs sans compensation d'outil (GRBL…)

Le sélecteur multi-broche $1 et la compensation G43 sont propres à LinuxCNC. Pour un contrôleur qui ne les supporte pas, il faut adapter la fonction cmd_tool_comp() dans laser_core.py — non couvert par les Préférences.

● Performances

Suivi de surface : de la minute à la milliseconde

La sonde de hauteur Z (pour le marquage/découpe courbe et la projection) reposait au départ sur une intersection géométrique OpenCascade par point (~5 ms chacune) — des minutes sur un remplissage dense. Elle utilise maintenant une tessellation unique de la surface suivie d'une interpolation barycentrique par point (quelques microsecondes).

Calcul (plaque ondulée 100×60 mm, ~48 000 points)AvantAprèsGain
Projection du motif sur la surface 3D66,2 s0,06 s×1200
G-code marquage courbe (1ᵉʳ calcul)107,0 s0,18 s×600
Hachures 0,2 mm sur 24 faces à trou2,6 s0,08 s×33

Précision préservée : l'écart Z entre le maillage et la vraie surface est borné à 0,05 mm (erreur max mesurée 0,046 mm sur 300 points) — négligeable face à la tolérance de focus du laser (~0,1 mm).

● FAQ & dépannage

Questions fréquentes

Les points qui reviennent le plus souvent à l'usage.

En photo, si je mets un pas de trame de 1 mm avec un point de 2 mm, ça se chevauche ?

Oui, beaucoup. Le pas de trame est la distance entre les centres des points ; avec un point de 2 mm (rayon 1 mm) et un pas de 1 mm, le bord de chaque point atteint le centre du voisin — les points fusionnent en X, en Y et en diagonale. Le rendu s'écrase en noir plein et le dégradé disparaît.

La règle (rappelée dans l'infobulle du champ « largeur du point ») : la largeur de point doit être proche du pas de trame. Pour un pas de 1 mm, visez un point d'environ 0,8 à 1 mm ; pour un point de 2 mm, un pas d'environ 2 mm. Attention : l'aperçu à l'écran affiche un pixel par point et ne montre pas le chevauchement — faites toujours un essai sur chute.

Mes traits sont en pointillé à haute vitesse, c'est un bug ?

Non. Le laser est piloté en S/PWM : à chaque changement de puissance, la machine marque une micro-pause aux frontières de paliers, ce qui hache le trait à grande vitesse. Les rampes utilisent le lissage de trajectoire G64 et une commande S insérée sur les lignes G1 pour rester fluides. Réduire le nombre de paliers aide aussi.

Ma photo est verticale mais elle apparaît à l'horizontale dans le tramage ?

L'orientation EXIF des photos de téléphone est appliquée automatiquement au chargement. Si l'orientation ne convient toujours pas, le champ Rotation du panneau (0°/90°/180°/270°, sens horaire) permet d'orienter la gravure sur la pièce.

Pourquoi mon G-code exige T<laser> M6 avant de tourner ?

Le laser n'est pas sur l'axe de la broche. Le G43 de l'en-tête applique les offsets X/Y et le Z palpé de l'outil laser — mais seulement si celui-ci est l'outil courant. Sans T<laser> M6 préalable, les coordonnées seraient interprétées en position broche (foyer faux, X/Y décalés). Le numéro d'outil laser se règle dans les Préférences.

Je n'ai pas la même machine ni le même laser. Ça marche ?

Oui, pour l'essentiel via les Préférences : profil du bec (anti-collision), Z de travail, calibration du point, numéro d'outil laser, échelle de puissance S, sélecteur de broche. Deux points restent dans le code : la fonction cmd_tool_comp() (pour un contrôleur sans G43) et le tableau FOCUS_TABLE (hauteur de bec par épaisseur pour la découpe à plat, propre au LT-80W-AA-PRO). Le mode Test des offsets suppose une machine mixte fraise + laser sous LinuxCNC.

GRBL est-il supporté ?

Pas directement. Le format cible LinuxCNC (broche $1, compensation G43). Adapter à GRBL demande de retoucher l'en-tête et l'armement dans laser_core.py — c'est un choix de conception, pas une limite de principe.