Initial commit: IMP3D Corrector - XYZ correction for 3D printers

Features:
- G-code parser for movement commands
- XYZ corrector with skew, scale, offset, and rotation
- Simple calibration (1 square) and advanced calibration (5 squares)
- Multi-point measurement analysis
- Profile management (create, edit, delete, list)
- CLI interface with interactive calibration

Generated with Crush

Assisted-by: GLM-5 via Crush <crush@charm.land>
This commit is contained in:
Augustin
2026-02-20 14:12:11 +01:00
commit a57721216b
12 changed files with 1476 additions and 0 deletions

125
README.md Normal file
View File

@@ -0,0 +1,125 @@
# IMP3D Corrector
Correction de plan XYZ pour imprimantes 3D avec problèmes de calibration.
## Problèmes résolus
- **Skew X-Y**: Axes X et Y non perpendiculaires
- **Erreurs d'échelle**: Dimensions incorrectes sur les bords
- **Décalage d'origine**: Position zéro mal alignée
- **Rotation du plateau**: Léger angle du plateau
- **Asymétries**: Différences de dimensions selon la position
## Installation
```bash
python -m venv .venv
.venv/bin/pip install -e .
```
## Utilisation
### Calibration simple (1 carré)
Pour une calibration rapide:
```bash
# Générer le G-code de calibration
imp3d-corrector calibrate -w 220 -d 220 -o calibration.gcode
# Imprimer, mesurer, puis créer le profil
imp3d-corrector create ma_printer
```
### Calibration avancée (5 carrés) - RECOMMANDÉE
Pour une calibration précise avec détection des problèmes:
```bash
# 1. Générer le G-code avec 5 carrés (coins + centre)
imp3d-corrector calibrate-advanced -w 220 -d 220 -o calibration_advanced.gcode
# 2. Imprimer le fichier
# 3. Mesurer chaque carré et créer le profil
imp3d-corrector create-advanced ma_printer
```
Le système analysera:
- **Échelle moyenne** (compensation globale)
- **Skew** (angle entre X et Y)
- **Asymétrie** (différence gauche/droite, haut/bas)
- **Variance** (uniformité des dimensions sur le plateau)
### Analyser sans créer de profil
```bash
imp3d-corrector analyze
```
### Appliquer les corrections
```bash
imp3d-corrector correct mon_fichier.gcode -p ma_printer -o fichier_corrigé.gcode
```
### Gestion des profils
```bash
# Lister les profils
imp3d-corrector list
# Afficher un profil
imp3d-corrector show ma_printer
# Modifier un profil
imp3d-corrector edit ma_printer
# Supprimer un profil
imp3d-corrector delete ma_printer
```
## Structure du projet
```
imp3d_corrector/
├── cli.py # Interface en ligne de commande
├── config/
│ └── profile_manager.py # Gestion des profils
└── core/
├── corrector.py # Logique de correction XYZ
├── gcode_parser.py # Parser G-code
└── advanced_calibration.py # Calibration multi-points
```
## Workflow recommandé
1. **Première calibration**: Utilisez `calibrate-advanced` pour avoir une vue complète
2. **Analysez** les résultats - si des problèmes d'asymétrie sont détectés, vérifiez votre matériel
3. **Créez le profil** avec les corrections calculées
4. **Testez** avec un carré simple pour valider
## Exemple de configuration YAML
Les profils sont stockés dans `~/.config/imp3d_corrector/profiles/`:
```yaml
name: ma_printer
skew_xy: 0.5
offset_x: 0.0
offset_y: 0.0
scale_x: 1.002
scale_y: 0.998
rotation: 0.0
bed_width: 220.0
bed_depth: 220.0
```
## Interprétation des résultats
| Problème détecté | Cause probable | Solution |
|-----------------|----------------|----------|
| Skew élevé | Axes non perpendiculaires | Ajustement mécanique ou compensation logicielle |
| Asymétrie X | Courroie X détendue d'un côté | Vérifier la tension de courroie |
| Asymétrie Y | Courroie Y détendue d'un côté | Vérifier la tension de courroie |
| Variance élevée | Problème de linéarité | Vérifier les rails/roulements |