Versione portata a 1.0.0 (csproj, CLAUDE.md) e voce [1.0.0] nel CHANGELOG con tutto il lavoro dalla 0.9.0: setup per-utente, nuovo nome "PrepStep - Cevolani", DB fisso nella cartella di installazione, "Elimina CSV delle distinte", guide aggiornate. Nuova LICENSE proprietaria (Davide Grilli, tutti i diritti riservati), riportata anche in <Copyright> dell'exe e AppCopyright del setup. README: sequenza completa di comandi per generare il setup. Documentazione riallineata al codice dopo un controllo file per file: nomi delle fasi come nella UI, "File → Nuovo" che non cancella file, mappa dei file e test nel README, riferimenti ad AssiemeCompleto (non esiste più) e ruolo di CaricaCodiciNoti/CaricaCandidati in fase 4. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
PrepStep - Cevolani
App Windows Forms (.NET 10, progetto PrepStep) per indicizzare, cercare e
recuperare i file CAD Pro-ENGINEER/Creo di un disco/share di rete, e per trasformare
l'estrazione "Distinta Base" del gestionale (file .xls/.xml) in un CSV con il
percorso CAD di ogni componente, fino a raccogliere in raw/ tutto il necessario per
l'esportazione STEP con Creo Distributed Batch: è un pre-processo per quel
passaggio, non lo sostituisce.
Funzionalità
- Indice CAD — all'avvio carica automaticamente
cad_index.dbdalla cartella di installazione (%LOCALAPPDATA%\Programs\PrepStep). Se manca, lo si crea con Aggiorna indice, oppure si apre un altro DB per la sola sessione con Apri DB.... Aggiorna indice scansiona il disco (di defaultX:\, tutte le cartelle di primo livello che trova) e indicizza tutti i file. La cartella di lavoro (dove finiscono il CSV e la cartellaraw/; gli STEP esportati con Creo vanno instep/, dentro la stessa cartella) è di default la cartella di installazione, modificabile in qualunque momento da File → Scegli cartella di lavoro... (la scelta viene ricordata). Dal menu File si ripuliscono ancheraw//step/e i CSV accumulati. - Importa Distinta Base — trascina (o scegli da file) l'estrazione
.xls/.xmldel gestionale (foglio "Distinta Base", colonne Componente/Descrizione): viene generato un CSV nella cartella di lavoro, con anteprima in griglia. Se il file segue la convenzione di nomeDBP_<codice>_<timestamp>del gestionale, l'assieme generale dell'estrazione viene aggiunto come riga in più nel CSV (il foglio elenca solo i componenti sotto l'assieme, non l'assieme stesso). Il bottone Verifica presenza (compare solo dopo un import riuscito) cerca i componenti nel database — è questo passo, non il solo import, a sbloccare la fase successiva. - Crea cartella raw — cerca nell'indice il percorso CAD di ogni
componente importato (assieme generale incluso) e copia i file trovati
in una cartella
raw/dentro la cartella di lavoro. - Trova componenti referenziati — legge i metadati dei file
.asminraw/per trovare ricorsivamente i sotto-assiemi/parti che li compongono, copiandoli a loro volta inraw/(passo opzionale se la distinta contiene solo parti singole). - Verifica completezza — mostra i file
.asmdella distinta già inraw/, trascinabili su Creo Distributed Batch per l'esportazione STEP (passo manuale, fuori da quest'app): scrive instep/, dentro la cartella di lavoro.
Guida utente passo-passo completa in docs/guida-utente.md
(stessa sintesi anche in-app da Aiuto → Guida, F1).
Requisiti
- Windows
- .NET 10 SDK (per build/run da sorgente)
- Accesso alla share di rete con i file CAD (
X:\di default) per l'indicizzazione
Build
cd PrepStep
dotnet build -c Release
Avvio
Da sorgente:
cd PrepStep
dotnet run -c Release
Oppure l'eseguibile già compilato:
cd PrepStep\bin\Release\net10.0-windows
.\PrepStep.exe
Pubblicazione (eseguibile standalone)
Genera un .exe self-contained per Windows x64, senza bisogno del runtime
.NET installato sulla macchina di destinazione:
cd PrepStep
dotnet publish -c Release -r win-x64 --self-contained true -p:PublishSingleFile=true -o publish
L'eseguibile risultante è in PrepStep\publish\PrepStep.exe — un unico
file, si copia e si lancia su un'altra macchina Windows senza bisogno di .NET
installato.
Setup di installazione
Per distribuire l'app agli utenti si genera un setup con Inno Setup 6.
Una volta sola, per installare Inno Setup (per l'utente corrente, senza admin):
winget install --id JRSoftware.InnoSetup -e --scope user
A ogni release, dalla root del repo:
# 1. aggiorna <Version> in PrepStep\PrepStep.csproj e la voce in CHANGELOG.md
# 2. chiudi l'app se è aperta (l'exe in uso blocca la build)
dotnet publish PrepStep -c Release -r win-x64 --self-contained true -p:PublishSingleFile=true -o PrepStep\publish
& "$env:LOCALAPPDATA\Programs\Inno Setup 6\ISCC.exe" installer\PrepStep.iss
Produce installer\Output\PrepStep-Setup-<versione>.exe (versione letta dall'exe, cioè
<Version> del csproj): è l'unico file da distribuire. Per provarlo sul proprio PC basta
lanciarlo (.\installer\Output\PrepStep-Setup-<versione>.exe). Il setup:
- installa solo per l'utente corrente, in
%LOCALAPPDATA%\Programs\PrepStep, senza chiedere i diritti di amministratore; - crea nel menu Start i collegamenti al programma e al disinstallatore (quello sul desktop è facoltativo);
- compare in "Impostazioni → App installate", da cui si disinstalla.
Se l'app è già installata, il setup chiede prima cosa fare: Sì aggiorna/reinstalla (DB e
impostazioni restano), No disinstalla, Annulla esce. Installazione silenziosa (aggiorna
senza chiedere) — es. per distribuirla da script:
PrepStep-Setup-<versione>.exe /VERYSILENT /SUPPRESSMSGBOXES.
Struttura del progetto
Il codice dell'app è tutto in PrepStep/ (GUI e indicizzazione integrate); accanto ci sono
il progetto di test PrepStep.Tests/, gli script standalone scripts/ e lo script del setup
installer/. Mappa file-per-file completa in docs/architettura.md.
Program.cs— entry point.Form1.cs— finestra principale, wizard a 5 fasi e menu; UI costruita interamente in codice (Form1.Designer.csè solo lo scheletro del template).Indexer.cs— scansione del disco e scrittura/aggiornamento del DB SQLite.DistintaBaseImporter.cs— parsing del file Distinta Base (SpreadsheetML XML o Excel binario/OpenXML tramite ExcelDataReader) e generazione CSV.AsmRecordReader.cs— lettura esatta dei record dei.asm(fase 4).AssemblyComponentScanner.cs— euristica testuale di fallback per i.asmfuori formato.ProgressForm.cs,ProgressoComponentiForm.cs— avanzamento di scansione e fase 4.PrtMancantiForm.cs— esito di "Trova componenti referenziati".GuidaForm.cs— guida in-app (Aiuto → Guida, F1).UiStile.cs— stile condiviso di bottoni, card e barre.
Il database generato (cad_index.db), i file Excel/CSV della distinta
trascinati nella root e le cartelle raw//step/ sono rigenerabili e non
sono tracciati in git (vedi .gitignore).
Test
PrepStep.Tests/ (xUnit) contiene unit test (lettore esatto e euristica di
estrazione dei componenti dai .asm, parsing del nome file Pro-E, import della
distinta) e integration test (scansione su disco, schema/vista SQL reale con focus
sui bug di case-sensitivity/duplicati già risolti, pipeline end-to-end). Da
eseguire:
cd PrepStep.Tests
dotnet test
Licenza
Software proprietario, © 2026 Davide Grilli, tutti i diritti riservati: vedi
LICENSE.