Go to file
2026-09-10 13:54:19 +02:00
__pycache__ Version initiale 2026-09-10 13:54:19 +02:00
tests Version initiale 2026-09-10 13:54:19 +02:00
box_core.py Version initiale 2026-09-10 13:54:19 +02:00
box_maker.inx Version initiale 2026-09-10 13:54:19 +02:00
box_maker.py Version initiale 2026-09-10 13:54:19 +02:00
deploy.ps1 Version initiale 2026-09-10 13:54:19 +02:00
README.md Version initiale 2026-09-10 13:54:19 +02:00

Boîte à créneaux pour Inkscape

Extension Inkscape 1.x générant des pièces de boîte à découper au laser. Les parois s'assemblent par queues d'aronde droites (finger joints) à bords complémentaires, garantissant des ajustements serrés et réguliers.

Caractéristiques

  • Boîte fermée ou ouverte : 6 pièces (avant, arrière, gauche, droite, fond, couvercle) ou 5 (sans couvercle)
  • Dimensions intérieures ou extérieures : le calcul compense automatiquement l'épaisseur
  • Créneaux paramétrables : largeur 0 (défaut = 3 × épaisseur) ou valeur explicite, ajustée à un nombre impair par bord
  • Compensation du kerf : défaut 0,1 mm, élargit les créneaux, rétrécit les encoches pour un assemblage serré
  • Mise en page : espacement entre pièces configurable, centrage automatique sur la vue
  • Apparence : couleur et épaisseur du trait réglables
  • Étiquettes optionnelles : nom de chaque pièce en texte bleu, gravé avec les créneaux

Structure des pièces

Chaque pièce est un chemin SVG indépendant, placé dans le calque courant :

  • Sélectionnable et déplaçable individuellement
  • Nommée selon sa fonction (Avant, Arrière, etc.)
  • Polygone fermé à bords orthogonaux

Convention d'emboîtement

Garantit des bords complémentaires jumeaux :

Pièce Haut Droite Bas Gauche
Avant Mâle Mâle Mâle Mâle
Arrière Mâle Mâle Mâle Mâle
Gauche Mâle* Femelle Mâle Femelle
Droite Mâle* Femelle Mâle Femelle
Fond Femelle Femelle Femelle Femelle
Couvercle Femelle Femelle Femelle Femelle

* Haut mâle si couvercle présent, bord lisse si boîte ouverte.

  • Bord mâle : créneaux extrêmes en saillie
  • Bord femelle : créneaux extrêmes en creux
  • Coin plein : si aucun bord adjacent n'est femelle

Installation

Via script PowerShell (recommandé)

# Fermer Inkscape au préalable
.\deploy.ps1
# ou avec options :
.\deploy.ps1 -Uninstall
.\deploy.ps1 -Force                    # Ignore la vérification Inkscape ouvert
.\deploy.ps1 -FolderName 'ma-boite'    # Dossier personnalisé

Copie box_maker.inx, box_maker.py, box_core.py dans %APPDATA%\inkscape\extensions\boxMaker/.

Installation manuelle

Copier les trois fichiers dans %APPDATA%\inkscape\extensions\boxMaker/ (créer le dossier s'il n'existe pas). Inkscape explore récursivement ce répertoire.

Utilisation dans Inkscape

  1. Démarrer Inkscape
  2. Menu Extensions > Découpe laser > Boîte à créneaux…
  3. Configurer les paramètres (voir tableau ci-dessous)
  4. Cliquer Appliquer

Paramètres

Paramètre Défaut Plage Description
Longueur (mm) 100 5–5000 Dimension avant/arrière
Largeur (mm) 80 5–5000 Dimension gauche/droite
Hauteur (mm) 50 5–5000 Dimension haut/bas
Les dimensions sont Extérieures Extérieures / Intérieures Mode calcul
Boîte fermée ✓ ✓ / ☐ Avec couvercle
Épaisseur matière (mm) 3 0,5–50 MDF, plexiglas, etc.
Largeur créneaux (mm) 0 0–500 0 = auto (3 × épaisseur)
Kerf (mm) 0,1 0–2 Compensation laser
Espacement (mm) 5 0–100 Entre les pièces
Épaisseur trait (mm) 0,1 0,001–5 Largeur du vecteur
Couleur trait #FF0000 (rouge) Couleur RGB Pour la découpe laser
Nommer les pièces ☐ ✓ / ☐ Texte gravé (bleu)

Notes sur les paramètres :

  • Largeur créneaux 0 calcule automatiquement la meilleure approximation pour un nombre impair de créneaux par bord
  • Kerf = 0,1 mm typique pour lasers CO₂ ; ajuster selon le matériau et la machine
  • Les dimensions trop petites relatif à l'épaisseur lèvent une erreur (minimum 5 × épaisseur recommandé)
  • Étiquettes : texte gravé en bleu, pas de contour, à vérifier avant découpe

Tests

python -m pytest tests/

Validations :

  • Nombre impair de créneaux par bord
  • Complémentarité des bords mâles/femelles
  • Dimensions et orthogonalité des pièces
  • Compensation du kerf
  • Absence de chevauchements en mise en page

Utilisation CLI

# Environnement Python d'Inkscape
$env:PYTHONPATH = "C:\Program Files\Inkscape\share\inkscape\extensions"

# Génération SVG
& "C:\Program Files\Inkscape\bin\python.exe" box_maker.py `
  --length=100 `
  --width=80 `
  --height=50 `
  --thickness=3 `
  --finger=9 `
  --kerf=0.1 `
  --dim_type=exterior `
  --lid `
  --gap=5 `
  --stroke_color=0xff0000ff `
  --stroke_width=0.1 `
  --labels `
  entree.svg > sortie.svg

Le module box_core est indépendant d'Inkscape (Python pur, longueurs en mm).

Modules

Fichier Rôle
box_maker.inx Définition de l'interface Inkscape
box_maker.py Extension Inkscape, intégration SVG
box_core.py Géométrie pur Python, indépendant d'Inkscape
deploy.ps1 Script d'installation PowerShell
tests/test_box_core.py Tests unitaires géométrie

Repère de coordonnées

  • Origine (0, 0) : coin haut-gauche de la pièce
  • x : vers la droite
  • y : vers le bas (SVG)
  • Tous les bords sont orthogonaux (horizontaux/verticaux uniquement)