Files
OneCAD/docs/book/src/guide/files.md
T
selune 006a23a767 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
2026-10-12 19:15:41 -04:00

5.2 KiB

Import and export

Format Read Write
.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
DXF, SVG into a sketch sketches and flat patterns as DXF
PNG, JPEG canvases and decals

Opening a STEP or IGES file creates a design with the file's bodies as a base feature, and inserting one adds them to the current design. Later features build on them. Mesh bodies render, measure, move and export, but solid features need B-rep bodies.

For closed mechanical meshes with a constant cross-section, use Mesh → Modify → Convert Mesh. Select the mesh body and set the fitting tolerance. The conversion rebuilds planar faces and circular through-walls, replacing the mesh with a solid that accepts solid modeling operations. The imported triangles remain embedded upstream: changing their scale, undoing the conversion or reopening the design rebuilds the result through the timeline. Double-click the conversion to edit its tolerance or source body.

The tolerance bounds circular reconstruction against the original chords. Coarse polygons remain polygons when rounding would exceed it. Open/nonmanifold meshes, tapers, stepped parts and organic scans are refused by this first reconstruction method; it does not silently substitute a faceted solid. Conversion currently accepts at most 50,000 triangles and a bounded number of boundary segments.

Saves are atomic: a crash at any moment leaves either the old file or the new one, and the replaced version is kept as <file>.bak. Unsaved changes are autosaved to a recovery folder, 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.

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 free-form offsets and cylindrical emboss selections. Older ownership maps, geometry and expressions retain their saved meaning. Legacy 3D curves with retained associations receive their producer's coordinate-space marker without changing any saved points; detached curves retain world coordinates. A lost cross-component association refreshed by an older build may need an explicit relink or refresh when its source returns. Loading never guesses a numerical correction. Association records, coordinate arrays and placements are bounded and checked.

Saving in the web app

In the web app, Save and Save As keep designs in this browser's private storage; they do not open a dialog for choosing a folder on your computer. Clearing the site's data can remove those designs. Download a copy to keep it outside the browser or move it to another device.

  1. Open the File menu and choose Open to show Files in this browser.
  2. Choose Download open design for the current design, including its unsaved changes, or Download beside a stored file for its last saved contents.
  3. Find the .solidcraft file in your browser's downloads. Whether a folder chooser appears depends on your browser's download settings.

Use Open from computer… in the same panel to reopen a downloaded design. The web app works on a browser-stored copy; later saves do not update the original downloaded file. Use Rename beside a stored file to change its name. Exports such as STEP and STL are also downloaded.