🔥 Extension Inkscape pour l'optimisation de découpe laser
🔥 Inkscape extension for laser cutting optimization
OptimLaser est une extension Inkscape qui optimise un dessin vectoriel pour la découpe laser.
✨ Fonctionnalités principales :
- ✂️ Supprime les tracés en double (lignes superposées), sauf les courbes de Bézier ;
- 🎨 Supprime les chemins dont la couleur n'est pas gérée par la découpeuse ;
- 🚀 Optimise l'ordre de découpe pour réduire les déplacements à vide ;
- 💾 Sauvegarde le fichier optimisé sous un nouveau nom (suffixe « - découpe ») ;
- 🖥️ Interface graphique dynamique avec mémorisation des derniers réglages.
- 🩶 Les éléments gris sont préservés pour la gravure.
Copiez le dossier optimlaser dans le répertoire d'extensions d'Inkscape :
| 🖥️ Système | 📂 Emplacement |
|---|---|
| 🪟 Windows | %appdata%\inkscape\extensions</b> |
| 🐧 Linux | ~/.config/inkscape/extensions/ |
| 🍎 macOS | ~/Library/Application Support/org.inkscape.Inkscape/config/inkscape/extensions/ |
🔁 Redémarrez Inkscape après la copie.
Màj est téléchargeable ici : https://github.com/FrankSAURET/Maj
Dans Inkscape, allez dans :
La fenêtre de paramétrage s'ouvre automatiquement.
| ⚙️ Paramètre | 📝 Description |
|---|---|
| 📏 Tolérance de détection (mm) | Distance en dessous de laquelle deux tracés sont considérés comme superposés (défaut : 0,15 mm). |
| 🔀 Chevauchement partiel | Active la détection des segments partiellement superposés. |
| 🌐 Optimisation globale | Active la réorganisation de l'ordre des chemins pour minimiser les trajets à vide. |
| 🧠 Stratégie d'optimisation | Choix entre : Plus proche voisin (rapide), Optimisation locale (2-opt amélioré), Zonage (découpage géographique en colonnes ou lignes). |
| 🔢 Itérations max | Nombre maximal d'itérations pour la stratégie d'optimisation locale. |
| 📐 Direction / Taille du zonage | Pour la stratégie Zonage : direction (colonnes ou lignes) et taille des zones en mm. |
| ⚙️ Paramètre | 📝 Description |
|---|---|
| 🎨 Supprimer les couleurs non gérées | Supprime tous les éléments dont la couleur de trait n'est pas dans la liste des couleurs gérées. |
| 💾 Sauvegarder sous Découpe | Enregistre le fichier optimisé avec le suffixe « - découpe ». |
| ⏱️ Vitesses (mm/s) | Préréglages de vitesses de découpe par matériau (ex. : Contreplaqué, Acrylique, Carton…). Vitesse de découpe et vitesse à vide configurables. Les préréglages sont éditables et personnalisables. |
| 🌈 Ordre des couleurs | Définit l'ordre de priorité des couleurs pour la découpe. Les couleurs peuvent être réordonnées, ajoutées ou supprimées. |
Le fichier OptimLaser.json dans le dossier de l'extension contient :
- 🎨 colors : liste ordonnée des couleurs gérées par la découpeuse ;
- ⏱️ speeds : préréglages de vitesses par matériau ;
- 💾 last_used : derniers paramètres utilisés (sauvegardés automatiquement).
L'interface d'OptimLaser est traduisible grâce au système gettext.
Un fichier modèle de traduction vierge (.pot) se trouve dans :
Pour créer une traduction :
1️⃣ Copiez le fichier OptimLaser.pot et renommez-le en OptimLaser.po ;
2️⃣ Traduisez les chaînes msgstr "" dans le fichier .po avec un éditeur de texte ou un outil comme Poedit ;
3️⃣ Compilez le fichier .po en .mo avec la commande :
msgfmt OptimLaser.po -o OptimLaser.mo4️⃣ Placez les fichiers .po et .mo dans le dossier :
(par exemple optimlaser/locale/de/LC_MESSAGES/ pour l'allemand)
🤝 Contribuer avec une traduction : si vous réalisez une traduction, envoyez-moi le fichier .po ou faites une pull request sur le dépôt GitHub — je l'intégrerai avec plaisir !
Tout le code est proposé sous licence GPLv2. ✍️ Auteur : Frank SAURET
OptimLaser is an Inkscape extension that optimizes vector drawings for laser cutting.
✨ Key features:
- ✂️ Removes duplicate paths (overlapping lines), except Bézier curves;
- 🎨 Removes paths whose color is not managed by the laser cutter;
- 🚀 Optimizes cutting order to reduce idle travel distance;
- 💾 Saves the optimized file with a new name (suffix " - découpe");
- 🖥️ Dynamic GUI with automatic memorization of last-used settings.
Copy the optimlaser folder into Inkscape's extensions directory:
| 🖥️ System | 📂 Location |
|---|---|
| 🪟 Windows | %appdata%\inkscape\extensions\ |
| 🐧 Linux | ~/.config/inkscape/extensions/ |
| 🍎 macOS | ~/Library/Application Support/org.inkscape.Inkscape/config/inkscape/extensions/ |
🔁 Restart Inkscape after copying.
In Inkscape, go to:
The settings window opens automatically.
| ⚙️ Setting | 📝 Description |
|---|---|
| 📏 Detection tolerance (mm) | Distance below which two paths are considered overlapping (default: 0.15 mm). |
| 🔀 Partial overlap | Enables detection of partially overlapping segments. |
| 🌐 Global optimization | Enables reordering of paths to minimize idle travel. |
| 🧠 Optimization strategy | Choose from: Nearest neighbor (fast), Local optimization (improved 2-opt), Zoning (geographic grouping by columns or rows). |
| 🔢 Max iterations | Maximum iterations for the local optimization strategy. |
| 📐 Zoning direction / size | For the Zoning strategy: direction (columns or rows) and zone size in mm. |
| ⚙️ Setting | 📝 Description |
|---|---|
| 🎨 Remove unmanaged colors | Removes all elements whose stroke color is not in the managed colors list. |
| 💾 Save as "Découpe" | Saves the optimized file with the " - découpe" suffix. |
| ⏱️ Speeds (mm/s) | Cutting speed presets per material (e.g., Plywood, Acrylic, Cardboard…). Cutting speed and idle speed are configurable. Presets are editable and customizable. |
| 🌈 Color order | Defines the priority order of colors for cutting. Colors can be reordered, added, or removed. |
The OptimLaser.json file in the extension folder contains:
- 🎨 colors: ordered list of colors managed by the laser cutter;
- ⏱️ speeds: cutting speed presets per material;
- 💾 last_used: last-used parameters (saved automatically).
OptimLaser's interface is translatable using the gettext system.
A blank translation template file (.pot) is located at:
To create a translation:
1️⃣ Copy the file OptimLaser.pot and rename it to OptimLaser.po;
2️⃣ Translate the msgstr "" strings in the .po file using a text editor or a tool like Poedit;
3️⃣ Compile the .po file into .mo with the command:
msgfmt OptimLaser.po -o OptimLaser.mo4️⃣ Place both .po and .mo files in:
(e.g. optimlaser/locale/de/LC_MESSAGES/ for German)
🤝 Contribute a translation: if you create a translation, send me the .po file or submit a pull request on the GitHub repository — I'll gladly include it!
All code is offered under GPLv2 license. ✍️ Author: Frank SAURET