davideandClaude Opus 5.5 4ae3d0e087 Aggiungi "Elimina CSV delle distinte" e allinea le guide alla cartella di installazione
Nuova voce "File → Elimina CSV delle distinte..." (EliminaCsv): elimina
i *.csv al primo livello della cartella di lavoro, che altrimenti si
accumulano uno per distinta importata. Chiede conferma mostrando
l'elenco dei file; gli .xls del gestionale e raw/step non sono toccati.

Guida utente e guida in-app: nuova sezione "Dove finiscono i file"
(DB sempre nella cartella di installazione, CSV/raw/step nella cartella
di lavoro, comandi di pulizia, come aprire la cartella nascosta in
AppData), fase 1 allineata al DB fisso e ad "Apri DB..." solo per la
sessione. Tolta dalla guida utente la sezione di installazione: chi la
legge ha già il programma installato (resta nel README).

Doc aggiornati nello stesso commit: CLAUDE.md, docs/architettura.md,
docs/guida-utente.md, CHANGELOG.md.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-09-23 08:39:58 +02:00

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à

  1. Indice CAD — all'avvio carica automaticamente cad_index.db dalla 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 che scansiona il disco (di default X:\, tutte le cartelle di primo livello che trova) e indicizza tutti i file. La cartella di lavoro (dove finiscono il CSV e la cartella raw/; gli STEP esportati con Creo vanno in step/, dentro la stessa cartella) è l'ultima scelta (ricordata tra un avvio e l'altro) o, la prima volta, la cartella di installazione, modificabile in qualunque momento da File → Scegli cartella di lavoro....
  2. Importa Distinta Base — trascina (o scegli da file) l'estrazione .xls/.xml del 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 nome DBP_<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.
  3. 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.
  4. Trova componenti referenziati — legge i metadati dei file .asm in raw/ per trovare ricorsivamente i sotto-assiemi/parti che li compongono, copiandoli a loro volta in raw/ (passo opzionale se la distinta contiene solo parti singole).
  5. Trascina su Creo — mostra i file .asm della distinta già in raw/, trascinabili su Creo Distributed Batch per l'esportazione STEP (passo manuale, fuori da quest'app): scrive in step/, 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: winget install JRSoftware.InnoSetup --scope user). Dalla root del repo, dopo il dotnet publish qui sopra:

& "$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). 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

Tutto il codice è in PrepStep/ (unico progetto nella solution, GUI e indicizzazione integrate):

  • Program.cs — entry point.
  • Form1.cs — finestra principale (indice CAD, import Distinta Base, griglia risultati); UI costruita interamente in codice, nessun designer visuale.
  • 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.
  • ProgressForm.cs — dialog di avanzamento durante l'aggiornamento indice.

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/ contiene unit test (regex di estrazione dei componenti dai .asm, parsing del nome file Pro-E) e integration test (schema/vista SQL reale, con focus sui bug di case-sensitivity/duplicati già risolti). Da eseguire:

cd PrepStep.Tests
dotnet test
S
Description
Tool per preparazione cartella compatibile con Creo Distribuited Batch per automazioni
Readme
1.3 MiB
0 Stars 1 Watchers 0 Forks
2026-09-23 08:53:36 +02:00
Languages
C# 98.5%
Inno Setup 1.5%