Aggiungi CreoBom.cs: parser esatto del formato .asm via record binari
Porting C# del reverse engineering della struttura a record del .asm Creo (sezione "members" + parametro "ConfigName" per le family table): legge esattamente i componenti diretti e genera la stessa BOM esportata da Creo, senza le euristiche testuali (conteggio occorrenze) di AssemblyComponentScanner. Resta uno script di analisi indipendente, non integrato nella GUI. Aggiorna anche formato-asm.md (non e' piu' vero che "non esiste un parser strutturale") e architettura.md (script mancante nell'elenco). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
1 parent
3cfc040fb0
commit
35009b5cd3
4 files changed
+631
-4
No files matched your search
+17
-4
@@ -1,10 +1,23 @@
|
||||
# Come leggere un .asm Creo per dedurne i componenti
|
||||
|
||||
Il file `.asm` di Pro/ENGINEER-Creo è un formato binario proprietario, non
|
||||
documentato pubblicamente. Non esiste un parser strutturale completo in questo
|
||||
progetto: l'estrazione dei componenti si basa su un'euristica testuale,
|
||||
validata a mano confrontando l'output con l'albero reale mostrato da Creo.
|
||||
Questo documento riassume cosa si è osservato e i suoi limiti.
|
||||
documentato pubblicamente. Questo documento descrive l'euristica testuale usata da
|
||||
`AssemblyComponentScanner.cs` (GUI, fase "Trova componenti referenziati"/"Verifica
|
||||
completezza") e dagli script che risolvono l'albero componenti contro `cad_index.db`
|
||||
(`ExtractCreoStrings.cs`, `BomViaDb.cs`): conta le occorrenze di stringhe candidate nel
|
||||
testo binario, validata a mano confrontando l'output con l'albero reale mostrato da Creo.
|
||||
Riassume cosa si è osservato e i suoi limiti, in particolare i falsi positivi che
|
||||
un conteggio testuale non può escludere con certezza (riferimenti fantasma, componenti
|
||||
soppressi con placement residuo — vedi sotto).
|
||||
|
||||
Un reverse engineering successivo ha invece decodificato la **struttura a record** del
|
||||
file (non solo pattern testuali): legge esattamente la sezione `members` di un assieme,
|
||||
senza contare occorrenze né rischiare i falsi positivi descritti in questo documento.
|
||||
Implementato in [`scripts/CreoBom.cs`](../scripts/CreoBom.cs), documentato in
|
||||
[`formato-asm-record.md`](formato-asm-record.md). Resta però uno script di analisi
|
||||
indipendente: legge solo `.asm` locali dato un percorso di ricerca esplicito (non
|
||||
`cad_index.db`), e non è integrato in `AssemblyComponentScanner`/nella GUI, che
|
||||
continuano a usare l'euristica descritta qui.
|
||||
|
||||
## Struttura osservata
|
||||
|
||||
|
||||
Reference in new issue
Block a user