Capitolo 1
Adattarlo alla tua ruota
Wheelly non è un oggetto unico: è un insieme di generatori che disegnano i pezzi attorno alla ruota che hai davvero. La pagina di questo capitolo è dove dici loro com'è fatta quella ruota - il diametro, quanti filtri porta, quale magnete ci hai incollato - e tutto quello che viene dopo, dai pezzi stampati ai disegni, discende da lì.
Se costruisci sulla stessa ruota attorno a cui è stato disegnato questo progetto - una ruota portafiltri manuale da Ø158 mm - e usi lo stesso magnete diametrale da Ø8 × 1 mm, puoi passare direttamente al capitolo successivo: i pezzi pubblicati vanno già bene, e i numeri di questa pagina sono quelli da cui sono stati generati.
Cosa serve
Pezzi
Attrezzi
- un computer con Python 3.12
- un browser
- un calibro, per l'unica misura che torna nel modello
Passo 1 Fai girare i generatori
- I pezzi non sono file STL che esistono e basta: sono generati, e per cambiarne uno fai girare il generatore. Ti servono Python 3.12 e due librerie: CadQuery, che costruisce i solidi, ed ezdxf, che scrive i disegni.
- Dal repository: `cd mechanics/wheelly-cad`, poi `uv venv --python python3.12 .venv` e `VIRTUAL_ENV=.venv uv pip install cadquery ezdxf`. Vanno bene anche il semplice `python -m venv` e `pip install cadquery ezdxf`, solo più lenti.
- Usa sempre l'interprete dentro `.venv`, mai quello di sistema: `./.venv/bin/python`. Il Python di sistema non ha nessuna delle due librerie, e l'errore che ti dà punta alla cosa sbagliata.
Passo 2 Apri la pagina

- `./.venv/bin/python ui.py` apre l'editor su http://127.0.0.1:8760/ e lancia il browser. Con `--porta N` lo metti su un'altra porta, con `--no-apri` il browser non si apre: è quello che vuoi se lavori via SSH.
- La pagina elenca tutti i parametri divisi in sezioni, con il loro significato, dove sono usati e se sono stati misurati su un pezzo vero, dichiarati da un fornitore o assunti. Quest'ultima colonna vale la pena di leggerla prima di fidarti di un numero: la maggior parte dei difetti trovati in questo progetto veniva da valori assunti che nessuno aveva controllato.
- La pagina non rilegge i file da sola. Se cambi un generatore o un parametro su disco devi riavviarla: altrimenti stai guardando i valori letti all'avvio, e non coincideranno con quello che produce il build.
- Il disegno a destra si aggiorna mentre scrivi, e sotto le catene di quote mostrano cosa ha fatto ogni modifica agli accoppiamenti che contano: l'imbocco sull'albero, lo schiacciamento delle guarnizioni, se la vite M2 passa ancora. Una modifica che ne rompe uno lì diventa rossa, prima che tu abbia stampato qualsiasi cosa.
Passo 3 Cambia quello che ti serve, e solo quello
- Le modifiche vanno in `src/parameters_local.py`, che sovrascrive `src/parameters.py` e lascia intatta la base. Così la tua ruota e quella di riferimento restano fianco a fianco, e un aggiornamento futuro del progetto non ti porta via i tuoi numeri senza che te ne accorga.
- Per una ruota diversa contano il diametro del disco rotante, il numero di posizioni dei filtri e il magnete, diametro e spessore. Se cambi il magnete, la staffa del sensore si sposta con lui: il traferro è una conseguenza, non un'impostazione.
- Tutto il resto ha un valore predefinito che funziona. Un parametro che non capisci è un parametro da lasciare stare: ognuno dice quali pezzi dipendono da lui, e certi ne alimentano sei.
Passo 4 Lancia il build, e controlla che sia andato a buon fine
- `./.venv/bin/python build.py` rigenera tutto: solidi, disegni e controlli. Ci mette una ventina di minuti.
- `./.venv/bin/python build.py --solo-dxf` fa solo la geometria 2D, in pochi secondi. Usalo mentre iteri su una quota, e il build completo per confermare che niente si compenetra.
- Leggi la fine del build prima di stampare. Il senso sta nei controlli: misurano i solidi prodotti e dicono se due pezzi si compenetrano, se le viti arrivano ancora, se la ruota passa ancora libera dalla scatola. Un build finito in errore lascia su disco i file STEP precedenti, e sembrano identici a quelli buoni.
- I pezzi da stampare escono in `out/`, e lì non esce nient'altro: `out/tools/` contiene gli attrezzi di prova e `out/drawings/` i disegni. Con una cartella sola, aprendola per mandare in stampa finisci per stampare un attrezzo al posto di un pezzo, e ti costa un'ora.