Recommended export test
- Create two separate solid bodies with known dimensions. Use at least one Revolve or Loft and one Extrude-based body.
- Hide one body in 3D Objects, choose Export → 3MF solid model…, and save the suggested
.model.3mffile. - Open the file in the target slicer. Confirm its units are millimetres, the visible body name is retained, the hidden body is absent, and the slicer's Slice command is enabled.
- Measure a known feature and confirm it matches Cadivari exactly. Slice it and inspect the layer preview for the intended walls and cavities.
- Show both bodies, use Move/Rotate to separate or reorient one body, and export again. Confirm they remain separate named build items in their displayed relative positions.
- Temporarily break a linked sketch or attempt to export a body containing Revolve Join. Confirm Cadivari blocks the export and identifies the affected body.
- On localhost, confirm the browser downloads the file. In the installed app, cancel the native save dialog and confirm that no file is created.
01 · EXPORT WORKFLOW
Visible solid bodies only
Open the header Export menu and choose 3MF solid model…. Cadivari rebuilds every visible body from its associative feature history, triangulates the resolved result, verifies the printable mesh contract, and then creates one named build item per body. Hidden bodies are deliberately excluded.
Version 1 is available from the Export menu only. The suggested filename is derived safely from the project name and ends in .model.3mf.
02 · CORE 3MF CONTENT
Named mesh objects in millimetres for slicing
- The 3MF model declares millimetres explicitly
- Every visible CAD body becomes one named mesh build item
- Touching prismatic Cut, Join, and Shell depth regions remain independently validated shells inside that mesh, avoiding slicer-specific component-group problems
- Printer material, filament color, and extruder assignment remain slicer decisions
- Exact Move/Rotate body coordinates and relative placement are baked into exported vertices
- Construction planes, sketches, axes, selection state, previews, lighting, edge display, and viewport finish are excluded
03 · GUARDED GEOMETRY
Invalid meshes are blocked before saving
Each shell is welded by coordinate, stripped of zero-area triangles, oriented toward a positive enclosed volume, and checked for finite vertices, closed two-triangle edges, manifold topology, consistent winding, and positive volume. One invalid visible body blocks the complete file rather than silently omitting it.
SupportedExtrude, prismatic Join/Cut, Chamfer, Fillet, Shell, Revolve, Revolve Shell, and LoftBlockedBroken feature rebuilds, open or non-manifold results, and active Revolve Join04 · LOCAL FILE ONLY
Native dialog in the app and download on localhost
The installed Tauri app validates the filename, ZIP signature, required Core package parts, and 100 MiB size boundary before opening the native save dialog. Localhost downloads the exact same bytes through the browser. No model is uploaded or sent to a printer, slicer, or CNC machine.
CURRENT SCOPE
Portable model data rather than slicer settings
- Version 1 exports the Core triangular model, object names, and millimetre units
- Layer height, infill, supports, printer profiles, filament and extruder selection, orientation, and build-plate placement remain slicer decisions
- Presentation-only geometry is not a CAD solid body and is not included; for example, this applies to a placed Fretboard Designer presentation
- Revolve Join remains blocked until an exact Boolean-unioned boundary can be guaranteed
- STL, STEP, OBJ, selected-body-only export, and 3MF thumbnails are not included in this iteration
- For CNC, 3MF is an interchange model for external CAM; Cadivari's verified CAM and G-code workflow remains separate