| __pycache__ | ||
| tests | ||
| box_core.py | ||
| box_maker.inx | ||
| box_maker.py | ||
| deploy.ps1 | ||
| README.md | ||
Boîte à créneaux pour Inkscape
Extension Inkscape 1.x qui génère le patron d'une boîte à découper au laser. Les faces s'assemblent par queues d'aronde droites (créneaux, finger joints) dont la largeur est paramétrable. Chaque pièce est un objet indépendant, déplaçable seul pour optimiser le placement sur la plaque.
Table des matières
Fonctionnalités
- Boîte fermée (6 pièces : avant, arrière, gauche, droite, fond, couvercle) ou ouverte (5 pièces, bord haut des côtés droit)
- Dimensions saisies intérieures ou extérieures (l'épaisseur est ajoutée automatiquement en mode intérieur)
- Largeur des créneaux paramétrable ;
0= 3 × l'épaisseur (défaut). La largeur est ajustée pour obtenir un nombre impair de créneaux par bord - Compensation du kerf (défaut 0,1 mm), voir section dédiée
- Chaque pièce = un chemin SVG fermé, nommé (Avant, Fond…), placé directement dans le calque courant : sélectionnable et déplaçable individuellement
- Pièces disposées en grille, espacement réglable, centrées sur la vue
- Couleur et épaisseur du trait réglables (défaut : rouge, 0,1 mm)
- Étiquettes optionnelles (texte bleu). Désactivées par défaut : le laser graverait le texte
- Message d'erreur si une dimension est trop petite (minimum 5 × l'épaisseur en dimension extérieure)
Installation
Copier box_maker.inx, box_maker.py et box_core.py dans %APPDATA%\inkscape\extensions\boxMaker\, puis redémarrer Inkscape.
Utilisation
- Menu Extensions > AlexDesign > Boîte à créneaux…
- Régler les paramètres, cocher Aperçu en direct si besoin
- Appliquer
En ligne de commande
Avec le Python d'Inkscape (PowerShell) :
$env:PYTHONPATH = "C:\Program Files\Inkscape\share\inkscape\extensions"
& "C:\Program Files\Inkscape\bin\python.exe" box_maker.py `
--length=100 --width=80 --height=50 --thickness=3 `
--kerf=0.1 --dim_type=interior --lid=false --labels=true `
--stroke_color=4278190335 entree.svg > sortie.svg
Les options booléennes exigent une valeur (--lid=true / --lid=false). La couleur est un entier RGBA (4278190335 = 0xff0000ff, rouge).
Le kerf : compensation du trait laser
Le problème
Le faisceau laser n'a pas une largeur nulle : il vaporise une bande de matière, le kerf (typiquement 0,05 à 0,3 mm selon la machine, la lentille, la matière et son épaisseur). Cette bande est centrée sur le trait du dessin, donc chaque bord découpé recule de kerf / 2 :
- une pièce de 100 mm sort à 100 − kerf ;
- un créneau de 9 mm sort à 9 − kerf ;
- une encoche de 9 mm sort à 9 + kerf.
Au montage, chaque créneau a donc un jeu d'un kerf complet dans son encoche : la boîte tient mal, voire pas du tout sans colle.
Ce que fait l'extension
Chaque contour est décalé vers l'extérieur de kerf / 2 avant d'être dessiné (offset_orthogonal dans box_core.py). Sur le dessin :
| Élément | Cote dessinée | Cote après découpe |
|---|---|---|
| Pièce de 100 mm | 100 + kerf | 100 mm |
| Créneau de 9 mm | 9 + kerf | 9 mm |
| Encoche de 9 mm | 9 − kerf | 9 mm |
Après passage du laser, les pièces retrouvent leurs cotes nominales et les créneaux remplissent exactement les encoches. Conséquence visible dans Inkscape : les pièces mesurent kerf de plus que les dimensions saisies, c'est normal.
Mesurer son kerf
- Dessiner un carré de 20 mm, le découper avec les réglages habituels (puissance, vitesse, matière).
- Mesurer le carré au pied à coulisse : kerf = 20 − cote mesurée. Pour plus de précision, découper une rangée de 10 carrés de 10 mm jointifs : kerf = (100 − longueur totale mesurée des 10 carrés) / 10.
Régler l'ajustement
- kerf = valeur mesurée : ajustement exact, montage à frottement.
- kerf plus grand : plus serré (montage au maillet, sans colle). Attention au bois, qui gonfle avec l'humidité.
- kerf plus petit : du jeu (montage facile, collage).
- kerf = 0 : pas de compensation, cotes du dessin = cotes nominales.
Le kerf dépend de la matière : refaire la mesure en changeant de matériau ou d'épaisseur.
Structure du projet
.
├── box_maker.inx # Interface de l'extension (paramètres, menu)
├── box_maker.py # Extension inkex : conversion en SVG, placement dans le calque
├── box_core.py # Géométrie pure Python (mm) : créneaux, kerf, mise en page
├── deploy.ps1 # Installation / désinstallation dans Inkscape
└── tests/
└── test_box_core.py # Tests unitaires de la géométrie