Not needed anymore: the app no longer copies matched .stp files from step/ into a separate step_finali/ folder, or reports which distinta codes are still missing a STEP. Removed the "Crea cartella step_finali" button, GeneraReportStep, and ReportStepForm/EsitoStep. Phase 5 keeps "Verifica completezza assiemi" and the drag&drop .asm list (still how files get sent to Creo Distributed Batch); renamed from "Verifica completezza e STEP" to "Verifica completezza" since it's no longer about STEP output. PulisciRawEStep now only clears raw/ and step/. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
111 lines
4.2 KiB
Markdown
111 lines
4.2 KiB
Markdown
# Cevolani StepPrep
|
|
|
|
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` (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. In questa fase si vede/cambia anche
|
|
la **cartella di lavoro**: dove finiscono il CSV e la cartella `raw/` (gli STEP
|
|
esportati con Creo vanno in `step/`, dentro la stessa cartella). Proposta
|
|
automaticamente (ricordata da un avvio all'altro), modificabile con
|
|
**Cambia cartella...**.
|
|
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).
|
|
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/`.
|
|
5. **Verifica completezza assiemi** — confronta la distinta con l'indice per
|
|
capire se manca qualche sotto-componente, e mostra i file `.asm` della
|
|
distinta trascinabili su Creo/Esplora risorse per l'esportazione STEP con
|
|
Creo Distributed Batch.
|
|
|
|
## 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 PrepStep
|
|
dotnet build -c Release
|
|
```
|
|
|
|
## Avvio
|
|
|
|
Da sorgente:
|
|
|
|
```powershell
|
|
cd PrepStep
|
|
dotnet run -c Release
|
|
```
|
|
|
|
Oppure l'eseguibile già compilato:
|
|
|
|
```powershell
|
|
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:
|
|
|
|
```powershell
|
|
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.
|
|
|
|
## 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:
|
|
|
|
```powershell
|
|
cd PrepStep.Tests
|
|
dotnet test
|
|
```
|