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:
125
README.md
Normal file
125
README.md
Normal 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 |
|
||||
Reference in New Issue
Block a user