Atelier du Verdier Atelier Laser
Version 2.99.50 Workbench FreeCAD 1.1 Cible LinuxCNC · GRBL · grblHAL 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
≈ 224 heures pour en arriver là, du 15/07/2026 au 18/08/2026 : ≈ 193 h de développement (586 commits, 281 versions) et ≈ 31 h d'atelier, dont 12,5 h de laser chronométrées sur les 70 fichiers gravés — 620 m de trait brûlé et 283 mesures relevées sur le bois. Le code est écrit par Claude (Anthropic). JE décide, éprouve chaque version sur le bois et tranche : la plupart des défauts corrigés ici ont été trouvés en regardant une planche, pas en relisant du code.
● Présentation

Un atelier pensé pour le laser sur CNC

L'Atelier Laser ajoute à FreeCAD 21 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, GRBL ou grblHAL (au choix, par profil laser), 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.

Panneau Guide rapide : le flux de travail et « quel mode pour quoi ? »
Le Guide rapide, tel qu'il s'ouvre.
● 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 (Préférences), puis calibration du point (bande de défocus) et offsets X/Y — mesurés et saisis directement dans les panneaux ★1 et ★2.

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.

Workflow type : tracé → placement → projection → gravure

Un enchaînement qui marche pour tout (pièce plate ou 3D) : 1. créer ou charger le tracé (SVG, ShapeString, sketch) ; 2. le placer en X/Y par rapport au futur zéro pièce (les coordonnées du document = les coordonnées machine) ; 3. le projeter sur la pièce (mode Projection) — contrôle visuel : le tracé est posé sur la surface, on voit exactement où il tombe (dessus, fond de poche, dôme…) ; 4. graver : Marquage pour des traits (sélectionner les objets projetés), Gravure remplie pour du noir plein (sélectionner la forme fermée source, pas le projeté).

Deux règles à retenir : la hauteur Z du tracé dans le document est visuelle — le G-code suppose toujours zéro Z machine sur la surface gravée (zéro papier) ; et un job = une seule surface de référence (dessus ou fond de poche — pour graver aux deux hauteurs, deux jobs avec re-zéro entre les deux). Sur une vraie surface 3D, sélectionner tracé + objet de référence dans Marquage active le suivi de relief.

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). Mieux : les réglages sont attachés à la forme — écrits à la génération dans une propriété de l'objet sélectionné, sauvegardée avec le document (.FCStd). Rouvrir le même mode avec cette forme sélectionnée re-propose ses réglages : chaque forme garde sa recette de gravure. Et chaque génération crée un objet Job dans l'arborescence (« Job Marquage - Logo »…) : double-clic = re-sélection des sources et réouverture du panneau pré-rempli, prêt à modifier et régénérer. La granularité descend jusqu'à la sous-sélection : deux faces d'un même sketch/SVG = deux recettes et deux Jobs distincts. Le tout est rangé dans un dossier « Atelier Laser » de l'arbre, et le bouton « Jobs sélectionnés → job combiné » empile plusieurs Jobs (chacun avec sa recette) en un fichier unique, sans rouvrir les panneaux.

Un panneau capture la sélection 3D à son ouverture. Le bouton « Reprendre la sélection de la vue », présent dans les cinq modes qui travaillent sur une sélection, la relit sans fermer le panneau — et une ligne d'état au-dessus dit en permanence si ce qu'on a en main est identique à la vue ou différent, avec le nombre d'objets. Volontairement manuel et non automatique : réappliquer une sélection réapplique aussi les réglages stockés sur l'objet, ce qui écraserait en silence ce qu'on vient de taper.

● Les modes

21 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 Importer un dessin SVG

Importer un dessin SVG

Lit le .svg directement et crée un objet par tracé d'origine, sélectionnable séparément. Sans le détour par le DXF, qui émiettait un crâne de 23 tracés en plus de 210 fragments — impossible à reprendre. La couleur de remplissage est reportée sur l'objet, pour distinguer les pièces à l'œil.

Quand ? Tout début de projet, dès que le dessin vient d'Inkscape ou d'une banque de motifs.
Mode d'emploi
  1. Parcourir… et choisir le fichier .svg.
  2. OK crée un objet par <path>. C'est de la géométrie, pas de G-code.
  3. Placer l'ensemble en X/Y, puis enchaîner sur Marquage, Gravure remplie ou Hachures.

Hors périmètre pour l'instant, et annoncé plutôt que subi : <use>, dégradés, <clipPath>/masques, images matricielles embarquées, et les classes CSS d'un bloc <style>. Chacun produit un avertissement, jamais un échec silencieux.

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.
Mode d'emploi Trois types de remplissage : parallèles, croisées, défocus, rentrés du bord
  1. Sélectionner la face 2D (ou esquisse fermée) à remplir.
  2. Choisir le type : parallèles, croisées ou défocus.
  3. Régler espacement, angle et retrait du bord (« Auto (½ point) ») pour que la brûlure ne déborde pas.
  4. OK crée l'objet Hachures — c'est de la géométrie, pas de G-code.
  5. Enchaîner : Marquage pour graver, ou Projection sur une surface 3D.

Texte gravé (contour)

Le pendant du mode Calligraphie pour les polices classiques. Une calligraphie est le dessin d'une plume — son axe médian est le geste. Une police classique n'a pas de plume : son contour est son dessin, et en extraire un axe réduit les empattements à de petites barres. Ce mode trace donc le pourtour exact du glyphe, pris sur les vraies courbes de la police et aplati à 0,02 mm.

Quand ? Un texte dans une serif, une italique, une grotesque — tout ce qui n'a pas été dessiné à la plume.
Mode d'emploi
  1. Choisir la police — le spécimen les écrit toutes avec ton texte — et taper le texte.
  2. Donner la largeur voulue en mm ; la hauteur suit.
  3. OK pose les contours dans le document, placeables comme n'importe quel objet.
  4. Enchaîner avec Marquage de motif (lettres creuses) ou Gravure remplie (lettres pleines) — les contreformes se creusent toutes seules.
Panneau Calligraphie (pleins et déliés)

Calligraphie (pleins et déliés)

Grave un texte dans une vraie police calligraphique (.otf/.ttf lue sur ton disque) en un seul passage. On extrait le squelette de la lettre et sa largeur locale ; la largeur devient une hauteur Z — la tête se lève pour élargir le trait dans les pleins, redescend pour les déliés. Rien n'est rempli ni repassé : un plein est un endroit où la tête était haute.

Quand ? Une signature, un nom, un titre à l'anglaise — là où le trait unique d'une police mono-trait serait trop sec.
Mode d'emploi
  1. Choisir un fichier de police et taper le texte. Les scripts à fort contraste donnent le plus bel effet ; une police bâton n'a pas de pleins à montrer.
  2. Régler la largeur du texte en mm — c'est elle qui décide si les pleins sont gravables, puisqu'un texte deux fois plus grand demande des pleins deux fois plus larges.
  3. Choisir le matériau (sa table de brûlures pilote la hauteur) et l'avance — plus elle est lente, plus la tête a le temps de monter.
  4. Lire le verdict : il dit si les pleins demandés tiennent, et propose la taille qui les ferait tenir. Puis Aperçu du tracé gravé, qui montre le trait bornes et pente Z comprises.

Les polices ne sont pas fournies — celles du commerce sont presque toutes en licence « usage personnel ». Le mode lit la tienne sur ton disque, il ne la copie nulle part.

Panneau Texte (trait simple)

Texte (trait simple)

Grave du texte en police mono-trait : chaque lettre est dessinée d'un seul trait par branche (comme un traceur à plume), pas en contour rempli. Idéal au gros point / défocus. Polices Hershey mono-trait (domaine public) — bâton (Sans) ou cursive (Script) — majuscules, minuscules, chiffres et accents.

Quand ? Du texte lisible en trait unique, sans remplissage — étiquettes, titres, numéros.
Mode d'emploi
  1. Taper le texte (plusieurs lignes possibles), choisir une police et régler la hauteur (des capitales) et les espacements.
  2. OK crée un objet fil TexteTraitSimple dans l'arbre (coin bas-gauche à l'origine).
  3. Le sélectionner et ouvrir Marquage pour le graver — tous les styles, préréglages, suivi de surface courbe et job combiné.
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, remplissage en dégradé (la puissance varie le long d'une direction réglable), préréglages matériau, compensation puissance/défocus. Un aperçu photo (rendu réaliste) montre le résultat brûlé — teintes selon puissance/vitesse, superpositions plus foncées — avant de lancer.

Quand ? Un logo, un texte, une forme pleine sur une pièce plate.
Mode d'emploi Remplissage hachuré au défocus rentré du bord + contour net repassé au foyer
  1. Sélectionner la forme 2D fermée (face, esquisse, texte).
  2. Poser le zéro : X/Y au coin de référence, Z sur la surface (le champ « Décalage de surface » sert à un fond de poche).
  3. Choisir un ton du Nuancier ou un préréglage matériau ; sinon régler puissance/vitesse et cocher « Puissance vs défocus ».
  4. Régler le remplissage : espacement (resserré automatiquement à la largeur brûlée mesurée), angle, style, dégradé éventuel.
  5. Activer le contour (repassé net au foyer, le remplissage se glisse dessous : pas de liseré).
  6. Vérifier avec l'Aperçu photo, puis « Générer et sauvegarder le G-code… ». Relire le G0 Z… en tête du fichier avant de lancer.
Panneau Gravure photo

Gravure photo (trame de points)

Convertit une image en gravure laser, 8 tramages : Diffusion (Floyd-Steinberg) et Durée variable (points), Lignes calibrées (nuancier) (puissance modulée par pixel via le nuancier mesuré), Diffusion en lignes (points fins rapides), Gros points Z (le diamètre du point fait le gris), Similigravure (trame à 45° façon journal : le gris est une surface, aucune calibration requise) et Lignes gravées (un trait continu dont l'épaisseur fait le gris, lu dans la table des largeurs brûlées — aucun bois nu). Ces tramages rendent le gris par une géométrie, jamais en demandant au bois de produire une teinte. La similigravure grave forcément au foyer (son point est le grain) ; la spirale, elle, peut depuis la v2.54 faire porter la largeur par la hauteur plutôt que par la puissance : la tête se lève progressivement et le trait devient un fuseau continu de 0,18 à 3,43 mm sur hêtre, là où la puissance ne donnait que des marches d'un pas — le prix étant le détail, chiffré par le panneau avant de graver ; et les traits qui enflent ont depuis la v2.53 un sélecteur de défocus limité aux hauteurs mesurées — sur hêtre, le défocus 15 à F650 bat désormais le foyer (1,73× contre 1,67×) avec un pas six fois plus large : moins de détail, plus de style. Tonalité (gamma) avec aperçu en direct, et mire des tramages pour comparer les sept sur chute, chaque bande dans son régime. Bouton photo de démonstration (Maupassant par Nadar, 1888, domaine public) et préréglages ★ (portrait qualité, essai rapide, équilibré, artistique) pour démarrer sans tâtonner.

Quand ? Graver une photo, un portrait, un dégradé photographique.
Mode d'emploi Une image en dégradé transformée en trame de points de diamètre croissant
  1. Charger l'image (« Parcourir… » ou la photo de démonstration). Aucune sélection dans la vue 3D.
  2. Régler la largeur, le pas de trame (finesse ET durée), l'angle et le gamma.
  3. Choisir le tramage et la puissance ; « Mire des tramages » les compare sur chute. Sur bois, « Lignes gravées » est celui qui a été retenu à l'établi — il ne dépend d'aucune courbe de calibration.
  4. Régler le Seuil blanc. Il compte particulièrement en « Lignes gravées » : le niveau le plus bas de ce tramage n'est pas « rien » mais la puissance la plus faible mesurée, si bien qu'un pixel blanc pur grave quand même un trait fin — 33 % de couverture au pas 0,30 sur hêtre, un fond blanc sortant gris uni. Au-dessus de 0, le bois reste nu sous ce seuil, le faisceau s'éteignant sans que la tête s'arrête.
  5. Plafonner la Puissance maxi du trait si le bois est entamé. À pleine puissance le trait atteint sa largeur maximale mais il peut creuser, et la surface ressort striée : la table des largeurs mesure la largeur, jamais la profondeur, elle ne peut donc pas le prévoir. Sur le papier on y perd : sur hêtre à F800, pas 0,30, S900 donne 0,28 mm au lieu de 0,30, soit 58 points de contraste au lieu de 67. Mais le bois dit autre chose, mesuré le 31/07/2026 par deux voies indépendantes — deux portraits identiques gravés à 100 % et à 90 %, puis une planche de dix aplats classée à l'œil : la noirceur sature vers S900-950 (S925 y est jugé plus foncé que S1000, et les noirs profonds sortent plus denses à 90 %). Au-delà on creuse sans noircir, donc ces points perdus sont en grande partie théoriques. 92 % est le réglage retenu à l'atelier ; l'œil ne distingue rien sous ~75 S d'écart, inutile d'affiner davantage, et le constat vaut pour ce bois à cette vitesse.
  6. Choisir ce que devient ce qui passe sous le seuil : Bois nu (net et franc — fond blanc, dessin encré, logo) ou Pointillé dégressif (le trait le plus fin, mais espacé, de plus en plus clairsemé vers le blanc pur — photographie, dégradé doux). Le pointillé fait ce que la largeur ne peut pas : la table des largeurs s'arrêtant à la puissance la plus basse mesurée, espacer le trait est le seul moyen de descendre sous le plancher du mode, et la couverture balaie alors continûment 0 → 33 % au lieu de sauter.
  7. Zéro machine : X/Y au coin bas-gauche (l'image y est posée), Z sur la surface.
  8. Vérifier avec « Aperçu photo » — le rendu du résultat sur fond bois, peint comme le tramage choisi brûle, en vignette dans le panneau et en grand au bouton. Puis « Aperçu des points » (vue 3D) et « Aperçu cadrage » (fichier séparé, à blanc) avant de générer — compter ~2-4 points/seconde sur les tramages à points.

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.
Mode d'emploi Un motif 2D projeté sur une surface courbe, sondée par tessellation
  1. Préparer le motif 2D à plat et la surface 3D cible.
  2. Dans la vue, sélectionner le(s) motif(s) et la surface ensemble ; l'état passe au vert quand c'est valide.
  3. OK : crée l'objet projeté Motif_Projete.
  4. Enchaîner avec Marquage ou Découpe courbe (objet projeté + modèle 3D) pour suivre le relief.
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 8 styles de trait (plein, tirets, pointillé, vague défocus, défocus point élargi, dégradé de largeur, dégradé de largeur le long du tracé — ce dernier fait varier la largeur du début à la fin du trait, deux cases en mm, donc un vrai fuseau sur une spirale là où le dégradé directionnel suit la position ; sur une boucle fermée, au choix marche visible ou aller-retour sans raccord ; une case « faire varier aussi la puissance » superpose une rampe de S aux deux dégradés de largeur, avec un bouton qui calcule la valeur à teinte constante et prévient quand elle tombe sous la plus basse puissance mesurée — et le dégradé de puissance le long du tracé, qui fait l'inverse : le bec ne bouge pas et c'est la puissance qui rampe, du clair au foncé, deux cases en S — le trait s'épaissit tout de même avec S, 0,10 à 0,30 mm sur hêtre au foyer, car à basse puissance seul le cœur du faisceau dépasse le seuil de brûlure ; c'est donc d'abord un dégradé de teinte), le nuancier matériau, le ton sur mesure interpolé (largeur + noirceur → vitesse calculée) et la mire des styles (les 6 styles gravés en bandes étiquetées sur chute). Deux planches de référence à graver sur chute : la mire des styles (le même trait dans les 6 styles) et la planche des styles (exemples) — un mot exemple gravé dans chaque style, numéroté et légendé au foyer, pour voir le rendu réel sur de vraies lettres. Un aperçu photo (rendu réaliste) montre le tracé brûlé avant de lancer.

Quand ? Générer le G-code d'un tracé filaire, sur pièce plane ou courbe.
Mode d'emploi Le tracé gravé suit le relief de la surface, à plat comme en courbe
  1. Sélectionner le motif : à plat, le motif 2D ; sur courbe, l'objet projeté et le modèle 3D.
  2. Zéro machine : X/Y au coin, Z sur le point haut de la surface.
  3. Matériau/ton : préréglage, ton du Nuancier (« Calculer le réglage (interpolé) »), ou puissance/vitesse à la main.
  4. Choisir le style de trait (plein, tirets, pointillé, vague défocus, point élargi).
  5. Vérifier (« Aperçu photo », « Mire des styles ») puis « Générer et sauvegarder le G-code… ».
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.
Mode d'emploi Découpe en plusieurs passes qui suivent le relief d'une surface courbe
  1. Sélectionner l'objet projeté et le modèle 3D d'origine, ensemble.
  2. Zéro machine : X/Y au coin, Z sur le point haut ; le relief est sondé à chaque point.
  3. Matériau : préréglage, ou épaisseur / passes / puissance / vitesse. Chaque passe recule le foyer dans la matière.
  4. Kerf, trous-avant-contour et optimisation par proximité, comme à plat.
  5. Vérifier (« Aperçu cadrage », « Aperçu du trajet ») puis générer.

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.
Mode d'emploi Contour découpé en plusieurs passes, avec des attaches (ponts de matière)
  1. Sélectionner le(s) profil(s) fermé(s) à découper.
  2. Zéro machine : X/Y au coin, Z sur le dessus de la pièce (le foyer descend passe après passe).
  3. Matériau : préréglage, ou épaisseur / passes / puissance / vitesse ; le kerf compense la largeur du trait.
  4. Ajouter attaches (ponts) et amorce ; copies en matrice pour une série.
  5. Vérifier (« Aperçu cadrage », « Aperçu du trajet »), générer, relire le G0 Z… et la hauteur de bec.

Tests & calibration

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

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 et la divergence. Option multi-bandes : plusieurs bandes côte à côte, une par vitesse, tous les niveaux de gris en un seul job.

Quand ? Une fois, pour caler le modèle de défocus.
Mode d'emploi Rangée de traits à hauteurs de bec croissantes : le plus fin donne le foyer, les larges la divergence
  1. Zéro Z sur la surface. Aucune sélection.
  2. Régler le balayage en hauteur (Z) et la puissance/vitesse ; option multi-bandes (une par vitesse).
  3. Graver, puis mesurer : le trait le plus fin → Z de foyer + point au foyer ; un trait large → défocus de test + point au défocus.
  4. Saisir les trois mesures dans la section « ② Entrer les mesures (calibration du point) » du panneau.
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.
Mode d'emploi Croix fraisée et croix laser au même X0 Y0 : l'écart mesuré corrige les offsets dans tool.tbl
  1. Lunettes laser. Chute sur le martyre, fraise à graver montée, zéro X/Y au centre de la chute.
  2. Régler la taille de la croix, la fraise (profondeur/vitesse) et le laser (puissance/vitesse).
  3. Lancer ; monter la glissière laser pendant la pause du 2ᵉ changement d'outil.
  4. Saisir l'écart dX/dY en section « ② Entrer les mesures » : la correction à reporter dans tool.tbl (X ← X − dX, idem Y) est calculée.
Panneau Assistant matériau

Assistant matériau

Caractérise un matériau du début à la fin dans un seul panneau : grave les trois planches (foyer, défocus, largeur du point), mesure au pied à coulisse, saisis les valeurs, garde une photo — l'atelier en déduit les largeurs brûlées et les espacements de remplissage pour tous tes futurs jobs. Section ④ : état du modèle (feed-aware ou non, tons mesurés) et une sonde d'interpolation pour prévoir une largeur avant de graver.

Quand ? Point d'entrée recommandé pour un nouveau matériau, à la place des planches et grilles séparées.
Mode d'emploi
  1. Aucune sélection. Choisir/taper le nom du matériau.
  2. ① Graver les trois planches : Planche 1 (foyer, S × F), Planche 2 (défocus, S × F, niveaux 15/36 mm), Planche 3 (largeur du point) — trois fichiers séparés, recadrés au zéro pièce.
  3. ② Entrer les mesures : largeurs brûlées au pied à coulisse, dans les mêmes grilles que la Grille de test.
  4. ③ Photo du résultat : une ou plusieurs photos rangées par matériau, pour comparer au réel plus tard.
  5. ④ Déduire : état du modèle (couverture par niveau de défocus, sensibilité au feed, nombre de tons), sonde d'interpolation (S/F/défocus → largeur prédite), bouton pour graver le nuancier physique des tons mesurés.
Panneau Grille de test

Grille de test puissance/vitesse

Nouveau matériau à calibrer de façon standard ? Préfère l'Assistant matériau (planches, mesures et déductions regroupées) ; cette grille sert aux plages personnalisées ou à la découpe. Matrice de cellules à puissance/vitesse variables, étiquetées, avec cadre net autour de chaque cellule. Un préréglage recommandé (« objectif ») remplit la grille prête à graver ; les largeurs brûlées se saisissent inline (section ②). Champ Hauteur (Z) de test pour rejouer la matrice à une autre hauteur, et style de trait du remplissage (plein / tirets / pointillé). Section « Mesure sur photo » : la grille peut graver une mire (4 croix + réglette + régime FOYER/DEFOCUS), et une fiche de grille est déposée à côté du G-code — la photo redressée se lit alors d'un coup : noirceur de toutes les cases, repères bois nu / noir max déplaçables, plancher de bruit mesuré sur le grain, versement au nuancier avec le régime.

Quand ? Trouver le couple puissance/vitesse d'un nouveau matériau, par paliers discrets.
Mode d'emploi Planches de calibration : traits au foyer, traits au défocus et largeur du point
  1. Aucune sélection requise : la grille ne dépend d'aucun objet du document.
  2. Choisir un Objectif, qui remplit toute la grille selon la donnée cherchée. Il y en a quatre : Des TONS pour le nuancier — clairs, au point élargi (16 aplats du très clair au foncé, pour compléter le bas du nuancier) ; Des LARGEURS de trait — à un défocus libre (traits isolés et horizontaux, espacés pour se mesurer un par un — les largeurs au foyer, elles, se mesurent sur la Planche 1, dont le cadrage est automatique) ; Des TONS pour le nuancier — noirceur en aplat (photo) (des aplats à vitesse, défocus et pas d'une vraie photo — c'est la planche qui alimente la courbe noirceur → énergie) ; et Une DÉCOUPE — trouver le réglage qui traverse (contours seuls, on cherche la case qui traverse en une passe). Chacun affiche sa note : quoi mesurer, où le reporter, et le piège propre à cette planche.
  3. Ou tout régler à la main : gravure/découpe, plages de puissance (colonnes) et vitesse (lignes), nombre de cellules.
  4. Régler taille des cellules, plein/contour, étiquettes S/F.
  5. Hauteur (Z) de test : rejouer la grille à une autre hauteur (bec défocalisé).
  6. Graver sur chute, choisir la meilleure cellule ; saisir les largeurs brûlées en section « ② Entrer les mesures ». Le jugement à l'œil se saisit sur place aussi, dans « Noirceur jugée à l'œil » au bas de la même section — plus d'aller-retour vers le Nuancier avec les valeurs retenues de mémoire.
  7. Le défocus des cellules est libre : la saisie ② ouvre une grille pour la hauteur demandée même si ce niveau n'a jamais été mesuré, plus une par niveau déjà connu du matériau. Un niveau ne sert d'ancrage que s'il porte au moins deux puissances — une mesure unique donnerait la même largeur à S200 et à S1000. Et « Enregistrer les mesures » fusionne au lieu de remplacer.
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.
Mode d'emploi Lignes à puissance croissante de gauche à droite, une par vitesse, avec règle graduée
  1. Zéro Z sur la surface. Aucune sélection.
  2. Régler la longueur des lignes et la liste des vitesses (une ligne par vitesse).
  3. Régler la rampe de puissance (min→max) et le nombre de paliers ; rampe Z optionnelle.
  4. Graver : lire sous la règle graduée où le trait apparaît et où il sature, à chaque vitesse.
Panneau Calibration kerf

Calibration kerf

Deux géométries : un carré pour mesurer le kerf (taille dessinée − taille mesurée), et un tenon + mortaise à jeux gradués pour valider l'ajustement réel une fois le kerf connu.

Quand ? Avant une découpe où les cotes — ou l'emboîtement — doivent être justes.
Mode d'emploi Carré pour mesurer le kerf, et tenon + mortaise à jeux gradués pour valider l'ajustement
  1. Choisir le test : carré (mesure) ou tenon + mortaise (validation).
  2. OK crée la géométrie ; la découper en Découpe multi-passes avec compensation de kerf = 0.
  3. Saisir la taille mesurée en section « ② Entrer les mesures » : le kerf = dessiné − mesuré est calculé, à reporter en « Compensation de kerf ».
  4. Valider avec le tenon + mortaise : retenir le jeu (gravé sous chacune) qui donne l'ajustement voulu.
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). Dans les modes Marquage et Gravure remplie, choisir un ton l'applique aussitôt. Depuis la v2.39, les tons peuvent venir d'une lecture sur photo (grille + mire + fiche) au lieu du seul jugement à l'œil — chaque ton versé porte alors son régime (défocus et pas), sans quoi deux familles se mélangeraient dans une même courbe.

Quand ? Après les grilles/rampes, pour capitaliser les réglages qui marchent.
Mode d'emploi Palette de gris mesurés, du clair au foncé, un ton par réglage
  1. Graver d'abord une grille/rampe/planche ; garder les tons qui plaisent.
  2. Choisir un matériau, ou taper un nouveau nom.
  3. Pour chaque ton : « + Ajouter » et saisir le réglage (S, F, défocus) + le résultat (noirceur 0-100 %, largeur).
  4. OK enregistre : le tableau nourrit dégradés, photos calibrées et « ton sur mesure ».
Panneau Catalogue

Catalogue (planche de référence)

Grave en un seul job une planche de référence : les 6 styles de trait du Marquage (sur un mot exemple) + un exemple de Gravure remplie, chaque bloc titré. À garder une fois les réglages calés — on voit le rendu réel de chaque style (plein, tirets, pointillé, vague, point élargi, dégradé) sur son matériau. Aperçu photo (rendu réaliste, chaque style bien distinct) avant de graver. La gravure photo se teste dans son propre mode (Gravure photo).

Quand ? Après calibration, pour avoir sous la main « voilà ce que donne chaque mode/style ».

Assemblage & réglages

Empiler des opérations et centraliser la configuration.

Panneau Job combiné

Job combiné

Assemble plusieurs opérations en un seul fichier (un armement, transitions anti-collision). Chaque opération s'ajoute depuis son vrai mode (bouton « ➕ Ajouter au job combiné ») avec toutes ses options — plus de fenêtres simplifiées. Un aperçu photo peint tout le job d'un coup (gravures + découpes) avant lancement.

Quand ? Enchaîner marquage puis découpe d'une même pièce sans relancer.
Mode d'emploi Plusieurs opérations empilées en un seul fichier, un seul armement M3/M5
  1. Dans chaque mode combinable, régler l'opération puis « ➕ Ajouter au job combiné ».
  2. Revenir ici : ordonner la liste (monter / descendre / supprimer).
  3. Vérifier (« Aperçu cadrage », « Aperçu du trajet », « Aperçu photo » de tout le job).
  4. OK : un seul fichier, un seul armement (M3) / désarmement (M5, M2).
Panneau Préférences

Préférences

Tous les réglages machine centralisés, avec des profils laser (un par module : outil, calibration du point, Z, bec, échelle S, et son propre nuancier / largeurs brûlées / préréglages matériau — prêt pour un 2ᵉ laser IR) : appliqués immédiatement, sans redémarrer. Export / import de toute la config + les photos de résultat en un .zip, à ranger en lieu sûr.

Une case y pèse plus lourd que les autres : « Puissance par M67 ». Sous LinuxCNC, un mot S glissé entre deux G1 arrête la machine — 76 ms par bloc au lieu de 22,5, mesuré sur deux fichiers jumeaux. Tous les tramages qui modulent la puissance s'en trouvaient saccadés et trois fois trop longs. M67 E0 Q… est la sortie synchronisée avec le mouvement : la puissance change sans jamais interrompre le geste. Sans effet en GRBL, qui n'a pas ce problème.

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.

Par où commencer ? — première calibration

Vous venez d'installer l'atelier et rien n'est réglé ? Faites ces gravures dans l'ordre — les étapes ★1 et ★2 une seule fois pour la machine, l'étape ★3 pour chaque nouveau matériau. Chaque panneau de calibration rappelle son numéro d'étape en tête et suit le même fil : ① graver, ② entrer les mesures (juste en dessous, plus besoin d'aller les chercher ailleurs) et garder une ③ photo du résultat. Pour un nouveau matériau, l'Assistant matériau regroupe tout le fil — planches, saisie, déductions — dans un seul panneau.

  1. ★1 — Bande de calibration défocus. Pour trouver le foyer et la divergence :
    1. charge le préréglage ★ « Recherche du foyer (fin) » pour le point le plus net ;
    2. charge le préréglage ★ « Divergence (large + rampe) » pour un point large mais toujours visible (la puissance y monte avec la hauteur).
    Grave, mesure → saisis dans la section ② Entrer les mesures (calibration du point) du panneau.
  2. ★2 — Test des offsets X/Y. Pour aligner l'axe du laser : charge le préréglage ★ « Croix standard (10 mm) », grave, saisis l'écart en section  : la correction à reporter dans tool.tbl est calculée (LinuxCNC ; à sauter en GRBL ou laser seul).
  3. ★3 — Grille de test. Pour caractériser un matériau : un préréglage recommandé (objectif) remplit la grille prête à graver ; après gravure, saisis les largeurs en section et les gris au Nuancier.
  4. ★4 — Calibration kerf. Pour tenir les cotes : charge le préréglage ★ « Standard (20 mm) » (test Carré), mesure en section → le kerf calculé se reporte en Compensation de kerf.

Complément : la Rampe puissance/vitesse (préréglage ★ « Gravure MDF (puissance/vitesse) ») donne la version continue de l'étape 3.

La hiérarchie des tests — dans l'ordre

Chaque test alimente le suivant. Les étapes machine se font une seule fois par laser ; pour un nouveau matériau, trois planches séparées :

  1. Une fois par laser — la Bande de calibration défocus (deux mesures du point, saisies dans le panneau) puis le Test offsets fraise + laser (X/Y du laser dans tool.tbl). Sans le point calibré, les planches au défocus seraient fausses.
  2. Nouveau matériau — trois boutons « Planche 1 / 2 / 3 » dans l'Assistant matériau (qui regroupe planches, saisie et déductions dans un seul panneau) : trois G-codes séparés, chacun recadré au zéro pièce (coin bas-gauche, sur le dessus) :
    • Planche 1 — Foyer (S × F). Grille de traits au foyer (puissances jusqu'à s_max × vitesses jusqu'au maxi machine). Mesurer la largeur brûlée de chaque trait, et noter ceux qui restent vierges : un trait vierge est une donnée — c'est le seuil du matériau.
    • Planche 2 — Défocus (S × F). Une grille par niveau de défocus (~15 et 36 mm), en balayant la vitesse (jusqu'à ~F2000). Mesurer les largeurs : le modèle de largeur au défocus devient sensible au feed.
    • Planche 3 — Largeur du point. La bande de calibration du point (Ø au foyer + Ø à une hauteur connue), gravée avec des valeurs par défaut — les réglages fins restent dans le mode « Bande de calibration défocus ».
    Les largeurs des planches 1–2 se saisissent dans la section « ② Entrer les mesures » du panneau Grille de test (une grille de saisie par planche/niveau, verrouillée par défaut). La Gravure remplie resserre alors l'espacement de ses hachures à la largeur réellement brûlée — interpolée en (S, F) puis entre les niveaux selon le défocus du job — dès qu'elle est plus étroite que le point optique : fini les lignes visibles sur les tons clairs. Les noirceurs (tons) se découvrent avec la Rampe ou la Grille puis se consignent au Nuancier.
    Toutes ces mesures restent dans la config locale — rien de spécifique à votre machine ne part avec l'atelier.
  3. Après le nuancier (facultatif, pour choisir à l'œil) — la Mire des styles (Marquage) et la Mire des tramages (Gravure photo).
Plan des planches de calibration matériau : foyer, défocus, largeur du point
Les planches de calibration matériau : 1 (traits au foyer, S × F), 2 (traits au défocus, S × F aux niveaux 15/36 mm), 3 (largeur du point), avec ce qu'il faut mesurer sur chacune.

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 la section « ② Entrer les mesures » de son panneau (« 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). Dans les modes Marquage et Gravure remplie, choisir alors un ton du nuancier l'applique aussitôt — puissance, vitesse et style Défocus réglés 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,0Z 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). Il referme aussi tout commentaire resté ouvert : un « ( » sans son « ) » fait échouer le chargement du fichier (« Unclosed comment found ») — le job ne démarre même pas. RS274 n'a pas de commentaire multi-ligne, donc fermer en fin de ligne est toujours la bonne réparation.

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ôleur GRBL — dialecte intégré

Choisir le dialecte GRBL dans les Préférences (réglé par profil laser — créez un profil par machine) : le G-code émis est du GRBL 1.1 pur — pas de sélecteur de broche ni de T/M6/G43, pas de G64 (le lissage de trajectoire est natif chez GRBL, réglé par la junction deviation $11), armement en M4 (mode laser). Côté machine : $32=1 et $30 égal à l'échelle de puissance S des Préférences. Le zéro Z se pose sur la surface par le moyen de son choix (cale, réglet à la hauteur de focale…) — aucun palpeur requis. Seul le Test des offsets X/Y (job mixte fraise+laser) reste propre à LinuxCNC. Variante grblHAL : comme GRBL, mais avec le changement d'outil et la compensation T/M6 + G43 H (firmware compilé avec la table d'outils, option N_TOOLS). Ces deux dialectes n'ont jamais fait tourner une ligne sur une machine réelle (la machine de développement tourne sous LinuxCNC). Ce qui est garanti, et vérifié à chaque exécution des tests sur quatre familles de jobs : aucune commande inconnue de GRBL (ni M67/M68, ni G64, ni G10, ni sélecteur $n), tout en ASCII, aucune ligne au-delà des 128 octets du tampon de réception (la plus longue mesurée : 86 caractères), M4/M5/M2 présents. Reste à vérifier sur une vraie carte : que le contrôleur accepte le fichier et que le laser tire à la bonne puissance. À noter aussi : les tramages photo produisent des jobs très denses (~172 000 blocs pour un portrait de 120 × 180 mm) — une carte alimentée en série devient le goulot, celles qui lisent une carte SD ou du WiFi non. Retours bienvenus via les issues GitHub.

● Machine — LinuxCNC

La config LinuxCNC du laser

L'atelier génère le G-code ; voici comment la PrintNC l'exécute. La config machine (HAL / INI / table d'outils) est publiée à part, dans le dépôt printnc-config — carte Flexi-HAL + Remora, laser LaserTree LT-80W-AA-PRO piloté en PWM direct.

Le laser = broche $1

  • Armer / éteindre : M3 $1 S0 / M5 $1. Puissance : S0…1000.
  • Sortie PWM directe (flexi.SP.SPINDLE_PWM) : duty% = S / 10, rien à calibrer.
  • Interlock AUX3 : spindle.1.on pilote un relais 24 V. Seul M5 $1 ouvre le relais — la vraie coupure (une pause programme ne coupe pas le faisceau).
  • Outil T100 : offsets X 0 / Y +88,75 (tool.tbl, appliqués par G43 H100), foyer 8,0 mm sous le nez.

Aide-mémoire

  • Palper le laser : T100 M6 puis G43 H100.
  • Tir de visée faible : M3 $1 S20.
  • Puissance 50 % : S500 $1.
  • Extinction réelle : M5 $1.
Puissance asservie à la vitesse réelle

Le PWM sort à puissance fixe (M3). Quand la machine ralentit (accélérations de début de trait, coins), elle brûlerait plus longtemps au même endroit à S constant → début de trait plus épais. Le HAL multiplie donc la consigne par le rapport vitesse réelle / vitesse demandée avant conversion, pour une énergie déposée constante par mm :

duty(%) = ( S × vitesse_réelle / vitesse_demandée ) / 10

Conséquence directe sur l'atelier : à l'arrêt la vitesse est nulle → la puissance tombe à 0. Un G4 (temporisation faisceau allumé) ne graverait donc rien. C'est pourquoi le générateur produit tous les points comme des micro-segments (un court G1 dont l'avance reproduit le temps d'exposition), jamais des dwells à l'arrêt.

# remora-flexi.hal — section LASER (extrait)
loadrt limit1 names=laser_reqvel_floor,laser_ratio_clamp
loadrt div2   names=laser_velratio
loadrt mult2  names=laser_dyn
loadrt scale  names=laser_scale
setp laser_scale.gain 0.1           # S/10 = rapport cyclique %
setp laser_reqvel_floor.min 0.1     # evite la division par zero a l'arret
net laser-reqvel    motion.requested-vel   => laser_reqvel_floor.in
net laser-curvel    motion.current-vel      => laser_velratio.in0
net laser-reqvel-f  laser_reqvel_floor.out  => laser_velratio.in1
net laser-ratio     laser_velratio.out      => laser_ratio_clamp.in
net laser-ratio-c   laser_ratio_clamp.out   => laser_dyn.in1
net laser-spd       spindle.1.speed-out     => laser_dyn.in0
net laser-dyn       laser_dyn.out           => laser_scale.in
net laser-pwm       laser_scale.out         => flexi.SP.SPINDLE_PWM
net laser-arm       spindle.1.on            => flexi.output.AUX3   # interlock relais 24V
at-speed — le correctif qui débloque un job laser seul

Un job 100 % laser pilote spindle.1, mais le planificateur attend spindle.0.at-speed — que le VFD (broche de fraisage) rapporte FALSE à l'arrêt. Sans correctif : laser allumé, machine en position, plus aucun mouvement. Le HAL calcule un at-speed effectif = VFD à vitesse OU broche 0 arrêtée. Procédure complète (palpage, modes Martyre / Pièce, pièges) : WORKFLOW_LASER.md.

● 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).

Sonde de hauteur Z : avant, une intersection géométrique par point ; après, une tessellation unique puis interpolation barycentrique
Avant : une intersection géométrique par point (~5 ms chacune). Après : la surface est tessellée une seule fois, puis chaque point est interpolé dans son triangle (~µs).
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, et la cause est identifiée. Sous LinuxCNC, un mot S glissé entre deux G1 arrête le mouvement, même sur des segments parfaitement alignés — deux fichiers de géométrie rigoureusement identique l'ont tranché, l'un à S constant fluide, l'autre à S variable saccadé à l'oreille. Le remède est la case « Puissance par M67 » des Préférences : la puissance voyage alors par M67 E0 Q…, une sortie synchronisée avec le mouvement, appliquée au bloc suivant sans vider la file de trajectoire. On garde un palier par segment, mais la machine ne s'arrête plus entre les paliers. Le lissage G64 P0.05 émis par tous les jobs joue son rôle par ailleurs.

Ce qui ne marche pas, et a été essayé : réduire le nombre de paliers de puissance pour allonger les segments. De 161 à 8 niveaux, la longueur moyenne d'un segment ne passe que de 0,36 à 0,73 mm sur une photo réelle — un segment par pixel est structurel sur une image bruitée, et huit niveaux de gris auraient abîmé l'image pour rien. Sur GRBL/grblHAL la question ne se pose pas : leur mode laser ($32=1, armement M4) traverse les G1 consécutifs sans s'arrêter quand seule la puissance change.

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 : dialecte de G-code (LinuxCNC / GRBL / grblHAL, par profil laser), 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 : le tableau FOCUS_TABLE (hauteur de bec par épaisseur pour la découpe à plat, propre au LT-80W-AA-PRO) et le mode Test des offsets (job mixte fraise + laser, propre à LinuxCNC).

GRBL est-il supporté ?

Oui. Un réglage dialecte de G-code (dans les Préférences, par profil laser) permet de choisir LinuxCNC (défaut), GRBL ou grblHAL. En GRBL, le G-code émis est du GRBL 1.1 pur : pas de sélecteur de broche ni de T/M6/G43, pas de G64 (lissage natif par la junction deviation $11), armement en M4 (mode laser). grblHAL ajoute le changement d'outil et la compensation T/M6 + G43 H. Ces deux dialectes n'ont jamais fait tourner une ligne sur une machine réelle (la machine de développement tourne sous LinuxCNC) — mais le G-code qu'ils produisent est relu et mis sous test : aucune commande inconnue de GRBL, tout en ASCII, aucune ligne au-delà du tampon de réception. Retours bienvenus via les issues GitHub. Voir la carte « Contrôleur GRBL » plus haut pour le détail, dont la limite de densité des jobs photo.