Vista 3D del modello in una pagina HTML autonoma
Aggiunge --3d: genera un file HTML che si apre con un doppio clic e permette di ruotare il pezzo col mouse, ingrandire con la rotella e spostare col tasto destro. Mesh, stile e codice sono dentro la pagina: nessuna libreria esterna e nessuna connessione, cosi' funziona anche da una cartella di rete. Il disegno usa una canvas 2D con ordinamento per profondita' invece di WebGL, che su alcune postazioni e' disattivato. La forma non viene dal .prt ma da una mesh STL esportata da Creo, cercata accanto al modello per nome (9258400207.prt.11 -> 9258400207.stl). Se manca, il comando lo dice invece di fallire. Perche' serve la mesh: la geometria nel .prt e' scritta nel formato del kernel Granite di PTC ed e' compressa. Verificato con un attacco a testo noto, presi da un export STEP i 22 valori esatti del modello (raggi 1,6 / 2,1 / 2,5 / 2,75 / 5,25 e coordinate fino a 75,0) e cercati nel file in cinque codifiche su tutti i blocchi: nessun riscontro. La via ufficiale per leggere i .prt nativi senza Creo e' il Granite Interoperability Kernel di PTC, che si innesterebbe al posto di mesh.py senza toccare il resto. Quando la mesh c'e', il record guadagna un blocco "geometry" con ingombro, volume e area. Il peso NON viene calcolato: servirebbe la densita', che dipende dal materiale, e il materiale e' testo libero. Sul 9258400207 il parametro dice "Anticordal 100", che e' alluminio: applicare la densita' dell'acciaio darebbe 0,686 kg invece di 0,237. Gli export (stl, dxf, dwg, iges, pdf) sono esclusi dal repository come i modelli: sono geometria e tavole complete dei pezzi. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -38,6 +38,7 @@ Opzioni principali:
|
||||
| `--features` | include i parametri delle feature (fori, lavorazioni) oltre a quelli di modello |
|
||||
| `--system` | include i parametri generati da Creo (`PTC_*`, `SMT_*`) |
|
||||
| `--preview [DEST]` | salva l'anteprima incorporata come JPEG |
|
||||
| `--3d [DEST]` | genera la pagina HTML per ruotare il modello nel browser |
|
||||
| `--quiet` | non stampa la tabella |
|
||||
|
||||
Codici di uscita: `0` estrazione riuscita, `1` nessun file trovato, `2` nessun
|
||||
@@ -106,6 +107,47 @@ necessariamente quello attuale del modello.
|
||||
Nel JSON tutto questo sta sotto `drawing`, insieme all'elenco delle primitive
|
||||
grafiche presenti (`prim_text`, `prim_arc`, `prim_multiline`, …).
|
||||
|
||||
## Vista 3D del modello
|
||||
|
||||
```bash
|
||||
python3 -m creoparams 9258400207.prt.11 --3d viste/
|
||||
```
|
||||
|
||||
Produce una **pagina HTML autonoma**: la apri con un doppio clic e ruoti il
|
||||
pezzo col mouse, ingrandisci con la rotella, sposti col tasto destro. Nessuna
|
||||
libreria esterna, nessuna connessione, funziona anche da una cartella di rete.
|
||||
|
||||
La forma **non** viene dal `.prt`: viene da una **mesh STL esportata da Creo**,
|
||||
cercata automaticamente accanto al modello (`9258400207.prt.11` →
|
||||
`9258400207.stl`). Se manca, il programma lo dice invece di fallire.
|
||||
|
||||
Quando la mesh c'è, il record JSON guadagna un blocco `geometry` con ingombro,
|
||||
volume e area — le uniche grandezze geometriche ottenibili senza Creo:
|
||||
|
||||
```json
|
||||
"geometry": {"triangles": 304, "size": [150.0, 4.0, 150.0],
|
||||
"volume": 87928.502, "area": 49050.5}
|
||||
```
|
||||
|
||||
Il **peso non viene calcolato**: servirebbe la densità, che dipende dal
|
||||
materiale, e il materiale qui è testo libero (`Anticordal 100` è alluminio,
|
||||
`ACC.INOX LAMIERA SP.4` è acciaio). Moltiplicare per la densità sbagliata
|
||||
darebbe un errore del 300 %.
|
||||
|
||||
### Perché serve la mesh esportata
|
||||
|
||||
La geometria dentro il `.prt` è scritta nel formato del kernel **Granite** di
|
||||
PTC ed è compressa. Verificato con un attacco a testo noto: presi da un export
|
||||
STEP i 22 valori esatti del modello (raggi 1,6 / 2,1 / 2,5 / 2,75 / 5,25 e
|
||||
coordinate fino a 75,0) e cercati nel file in cinque codifiche su tutti i
|
||||
blocchi — **nessun riscontro**.
|
||||
|
||||
Per leggere i `.prt` nativi senza Creo esiste la via ufficiale: il
|
||||
[Granite Interoperability Kernel](https://support.ptc.com/products/granite/gplugs)
|
||||
di PTC, che legge geometria, attributi e parametri senza Creo installato.
|
||||
Quando fosse disponibile, si innesta al posto di `mesh.py` senza toccare il
|
||||
resto.
|
||||
|
||||
## Come funziona
|
||||
|
||||
Un file nativo Creo è un container con header ASCII in chiaro, un indice delle
|
||||
|
||||
Reference in New Issue
Block a user