davideandClaude Sonnet 5 9af426ca1b Rileva la family table di assiemi e chiude i punti oscuri residui del parser .asm
AsmRecordReader.LeggiMembri ora lancia InvalidDataException quando un assieme e'
esso stesso un'istanza di family table (members descriverebbe solo una
rappresentazione, non le istanze sorelle) invece di restituire un risultato
sbagliato in silenzio - il chiamante ripiega sull'euristica testuale, che risolve
gia' correttamente il caso. Aggiunti due controlli di coerenza analoghi (conteggio
grezzo vs interpretato dei record ConfigName; occorrenze multiple di "members"),
verificati senza falsi positivi su tutti i 350 .asm reali della share.

Documentazione riorganizzata per distinguere cio' che e' verificato contro una BOM
Creo di riferimento da cio' che e' verificato solo su scala (conteggi), e cio' che
resta genuinamente non risolto.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-22 09:20:56 +02:00

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 (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.

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%