106 lines
2.7 KiB
Markdown
106 lines
2.7 KiB
Markdown
# 🔧 Pole Engineering Project Automation
|
|
|
|
Automatisation complète du traitement des projets de poteaux utilitaires.
|
|
|
|
---
|
|
|
|
## ⚡ Installation rapide
|
|
|
|
```bash
|
|
pip install pillow openpyxl reportlab google-generativeai
|
|
```
|
|
|
|
---
|
|
|
|
## 🚀 Utilisation
|
|
|
|
```bash
|
|
# Utilisation minimale
|
|
python pole_automation.py E65-BK7-26-132679
|
|
|
|
# Avec chemins personnalisés
|
|
python pole_automation.py E65-BK7-26-132679 \
|
|
--base-dir /Users/moi/Projets \
|
|
--depart-dir /Users/moi/départ \
|
|
--gemini-key AIza...VotreCléAPI
|
|
```
|
|
|
|
### Variable d'environnement (recommandé pour la clé API)
|
|
```bash
|
|
export GEMINI_API_KEY="AIza...VotreCléAPI"
|
|
python pole_automation.py E65-BK7-26-132679
|
|
```
|
|
|
|
---
|
|
|
|
## 📁 Structure des dossiers
|
|
|
|
### Dossier **départ** (source)
|
|
```
|
|
départ/
|
|
1d1-PBO345 rue saint-eugene/
|
|
photo_poteau.jpg
|
|
photo_ancrage.jpg
|
|
1d1-PBO345.xlsx
|
|
2sd2-PBO678 boul. des erables/
|
|
...
|
|
```
|
|
|
|
### Convention de nommage des sous-dossiers
|
|
| Partie | Exemple | Signification |
|
|
|--------------|---------|----------------------------------|
|
|
| `1` | `1` | Numéro de séquence |
|
|
| `d` ou `sd` | `d` | Avec (`d`) ou Sans dérogation (`sd`) |
|
|
| `1` | `1` | Nombre d'ancrages |
|
|
| `-PBO345` | `-PBO345` | Référence du poteau |
|
|
| `rue saint…` | _(optionnel)_ | Adresse |
|
|
|
|
### Projet créé automatiquement
|
|
```
|
|
<base-dir>/E65-BK7-26-132679/
|
|
compilation/ ← Tous les PDFs finaux ici
|
|
ingénierie/
|
|
RSA-UDS/ ← Dossiers renommés depuis départ
|
|
plan/
|
|
```
|
|
|
|
---
|
|
|
|
## 🔄 Logique de renommage
|
|
|
|
| Type | Nouveau nom | Prochain saut |
|
|
|---------|---------------------------|---------------|
|
|
| `sd` | `10-PBO345` | +1 |
|
|
| `d` | `11-PBO345 rue saint-x` | +2 (CDC) |
|
|
|
|
---
|
|
|
|
## 🤖 Intégration Gemini AI
|
|
|
|
Le script envoie les images JPG de chaque dossier à Gemini qui identifie :
|
|
- **Poteau** → converti en PDF avec le numéro séquentiel (ex: `12-PBO345.pdf`)
|
|
- **Ancrage** → converti en PDF avec le numéro suivant (ex: `13-PBO345.pdf`)
|
|
|
|
**Sans clé Gemini :** un algorithme de fallback classe les images par nom de fichier.
|
|
|
|
---
|
|
|
|
## 📄 Fichiers PDF générés (dans `compilation/`)
|
|
|
|
Pour chaque poteau, dans l'ordre :
|
|
1. `{seq}-{ref}.pdf` ← Images du **poteau**
|
|
2. `{seq}-{ref}.pdf` ← Images de l'**ancrage**
|
|
3. `{seq}-{ref}.pdf` ← Fichier **Excel** converti
|
|
|
|
---
|
|
|
|
## 🛠️ Configuration
|
|
|
|
Modifiez les constantes en haut du script :
|
|
|
|
```python
|
|
DEFAULT_BASE_DIR = Path.home() / "Projects" # Dossier racine des projets
|
|
DEFAULT_DEPART_DIR = Path.home() / "départ" # Dossier source
|
|
GEMINI_MODEL = "gemini-1.5-flash" # Modèle Gemini à utiliser
|
|
```
|