71 lines
2.5 KiB
Markdown
71 lines
2.5 KiB
Markdown
# Print Calculator (OrcaSlicer Edition)
|
|
|
|
Un'applicazione Full Stack (Angular + Python/FastAPI) per calcolare preventivi di stampa 3D precisi utilizzando **OrcaSlicer** in modalità headless.
|
|
|
|
## Funzionalità
|
|
|
|
* **Slicing Reale**: Usa il motore di OrcaSlicer per stimare tempo e materiale, non semplici approssimazioni geometriche.
|
|
* **Preventivazione Completa**: Calcola costo materiale, ammortamento macchina, energia e ricarico.
|
|
* **Configurabile**: Prezzi e parametri macchina modificabili via variabili d'ambiente.
|
|
* **Docker Ready**: Tutto containerizzato per un facile deployment.
|
|
|
|
## Prerequisiti
|
|
|
|
* Docker Desktop & Docker Compose installati.
|
|
|
|
## Avvio Rapido
|
|
|
|
1. Clona il repository.
|
|
2. Esegui lo script di avvio o docker-compose:
|
|
```bash
|
|
docker-compose up --build
|
|
```
|
|
*Nota: La prima build impiegherà alcuni minuti per scaricare OrcaSlicer (~200MB) e compilare il Frontend.*
|
|
|
|
3. Accedi all'applicazione:
|
|
* **Frontend**: [http://localhost](http://localhost)
|
|
* **API Docs**: [http://localhost:8000/docs](http://localhost:8000/docs)
|
|
|
|
## Configurazione Prezzi
|
|
|
|
Puoi modificare i prezzi nel file `docker-compose.yml` (sezione `environment` del servizio backend):
|
|
|
|
* `FILAMENT_COST_PER_KG`: Costo filamento al kg (es. 25.0).
|
|
* `MACHINE_COST_PER_HOUR`: Costo orario macchina (ammortamento/manutenzione).
|
|
* `ENERGY_COST_PER_KWH`: Costo energia elettrica.
|
|
* `MARKUP_PERCENT`: Margine di profitto percentuale (es. 20 = +20%).
|
|
|
|
## Struttura del Progetto
|
|
|
|
* `/backend`: API Python FastAPI. Include Dockerfile che scarica OrcaSlicer AppImage.
|
|
* `/frontend`: Applicazione Angular 19+ con Material Design.
|
|
* `/backend/profiles`: Contiene i profili di slicing (.ini). Attualmente configurato per una stima generica simil-Bambu Lab A1.
|
|
|
|
## Troubleshooting
|
|
|
|
### Errore Download OrcaSlicer
|
|
Se la build del backend fallisce durante il download di `OrcaSlicer.AppImage`, verifica la tua connessione internet o aggiorna l'URL nel `backend/Dockerfile`.
|
|
|
|
### Slicing Fallito (Costo 0 o Errore)
|
|
Se l'API ritorna errore o valori nulli:
|
|
1. Controlla che il file STL sia valido (manifold).
|
|
2. Controlla i log del backend: `docker logs print-calculator-backend`.
|
|
|
|
## Sviluppo Locale (Senza Docker)
|
|
|
|
**Backend**:
|
|
Richiede Linux (o WSL2) per eseguire l'AppImage di OrcaSlicer.
|
|
```bash
|
|
cd backend
|
|
pip install -r requirements.txt
|
|
# Assicurati di avere OrcaSlicer installato e nel PATH o aggiorna SLICER_PATH in slicer.py
|
|
uvicorn main:app --reload
|
|
```
|
|
|
|
**Frontend**:
|
|
```bash
|
|
cd frontend
|
|
npm install
|
|
npm start
|
|
```
|