Add design containers with deduplicated blobs and JSON compatibility (#327)
* Add fast design containers with lossless deduplicated payloads * Keep display caching opt-in to avoid default save overhead
This commit is contained in:
1 parent
8e0c3d2794
commit
006a23a767
30 files changed
+1921
-71
No files matched your search
@@ -2,7 +2,8 @@
|
||||
|
||||
| Format | Read | Write |
|
||||
|---|---|---|
|
||||
| `.solidcraft` (JSON design, versioned) | yes | yes |
|
||||
| `.solidcraft` (versioned container or JSON design) | yes | yes |
|
||||
| `.json` (self-contained plain JSON design) | yes | yes |
|
||||
| STEP (AP203, AP214, AP242) | solids, assemblies, units, names, colours | AP242 with names, colours and the component tree |
|
||||
| IGES 5.3 | manifold solids, or trimmed surfaces sewn into solids | manifold solids with names and colours |
|
||||
| 3MF, STL, OBJ | mesh bodies | yes |
|
||||
@@ -32,7 +33,26 @@ replaced version is kept as `<file>.bak`. Unsaved changes are autosaved to a rec
|
||||
and the next launch offers to recover them. Older design files are upgraded on open, and files
|
||||
from a newer version are refused with a message.
|
||||
|
||||
Current designs use format 12, including persistent analytic offset boundary roles and
|
||||
**Save** writes a container by default; files named `.json` keep JSON on subsequent saves.
|
||||
**Save As** offers a container or plain JSON on
|
||||
desktop; **Save As JSON** is also available in the File menu on desktop and web. Choose
|
||||
the `.json` extension for plain JSON. **Export Design as JSON** writes an independent,
|
||||
self-contained copy without changing the current file. Scripts can explicitly pass
|
||||
`"format": "json"` to `file.save` or `file.save_as` even with a `.solidcraft` name.
|
||||
Opening detects the format from the contents, so existing JSON designs keep working.
|
||||
Containers favor fast reading and saving by default. Scripts can request
|
||||
`"compression": "compact"` when file size matters more than CPU time.
|
||||
|
||||
Containers deduplicate identical STEP, mesh and image payloads. Mesh coordinates retain
|
||||
their original double precision; this is not a conversion to STL. Geometry still rebuilds
|
||||
from the timeline when opening. When a saved display preview is available, desktop Open
|
||||
shows it while checking geometry; editing starts after the complete rebuild. Cancelling
|
||||
keeps the current design. Previews cannot be edited or measured. This experimental option
|
||||
requires `preview: true` in an engine Save/Save As call; ordinary saves omit display caches.
|
||||
The repository's `docs/design-container.md` describes limits and encoding details.
|
||||
|
||||
Current designs use format 14, including persistent names from exact face history,
|
||||
exact planar shell-face anchors, persistent analytic offset boundary roles and
|
||||
association profile references, durable sketch face anchors, periodic fit splines and versioned
|
||||
revolve conventions. It also retains recorded body transfers, explicit 3D curve coordinate
|
||||
spaces and certified face bindings, alongside semantic configuration styles, associative
|
||||
|
||||
Reference in new issue
Block a user