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>
126 lines
3.2 KiB
Markdown
126 lines
3.2 KiB
Markdown
# 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 |
|