Files
prep-step/README.md
T
davideandClaude Sonnet 5 6726dd2216 Add app icon, product name/version, and document them
- New app.ico (from the Cevolani favicon, background made transparent and
  cropped tighter to the logo so it stays legible at 16/24px), wired up via
  ApplicationIcon in the csproj and re-read at runtime for the window icon.
- Named the product "Cevolani StepPrep" and set Version=0.1.0 in the csproj;
  shown in the window title. The CadSearchGui folder/namespace/csproj keep
  their technical name, only the product-facing name changed.
- Updated CLAUDE.md, README.md and docs/architettura.md to reflect the
  product name/version, UiStile.cs, app.ico, and that this app is a
  pre-process step ahead of Creo Distributed Batch.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-21 11:00:01 +02:00

105 lines
3.8 KiB
Markdown

# Cevolani StepPrep
App Windows Forms (.NET 10, progetto `CadSearchGui`) 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` (se
presente accanto all'eseguibile). Se manca, si può selezionare un DB
esistente con **Apri DB...** o generarne uno nuovo con **Aggiorna
indice**, che scansiona il disco (di default `X:\`, tutte le cartelle di primo
livello che trova) e indicizza tutti i file.
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 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).
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/` accanto al file di distinta originale.
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/`.
5. **Verifica completezza assiemi** / **Report STEP realizzati** — confronta
la distinta con l'indice (per capire se manca qualche sotto-componente)
e con la cartella `step/` (per capire quali STEP sono già stati
realizzati).
## Requisiti
- Windows
- [.NET 10 SDK](https://dotnet.microsoft.com/download) (per build/run da sorgente)
- Accesso alla share di rete con i file CAD (`X:\` di default) per
l'indicizzazione
## Build
```powershell
cd CadSearchGui
dotnet build -c Release
```
## Avvio
Da sorgente:
```powershell
cd CadSearchGui
dotnet run -c Release
```
Oppure l'eseguibile già compilato:
```powershell
cd CadSearchGui\bin\Release\net10.0-windows
.\CadSearchGui.exe
```
## Pubblicazione (eseguibile standalone)
Genera un `.exe` self-contained per Windows x64, senza bisogno del runtime
.NET installato sulla macchina di destinazione:
```powershell
cd CadSearchGui
dotnet publish -c Release -r win-x64 --self-contained true -p:PublishSingleFile=true -o publish
```
L'eseguibile risultante è in `CadSearchGui\publish\CadSearchGui.exe`.
## Struttura del progetto
Tutto il codice è in `CadSearchGui/` (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
`CadSearchGui.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:
```powershell
cd CadSearchGui.Tests
dotnet test
```