14 Commits
Author SHA1 Message Date
matthewtrahan 28a366fd8e CLI resume: --check and --list-plates (added on main since) refuse --resume too, as --list-objects does -- neither generates fins, so a cache would only be opened and left behind 2026-10-21 09:58:50 -05:00
Boris 0385d8eff2 Add opt-in resume checkpoints for CLI project processing 2026-10-21 09:58:50 -05:00
Boris 38eaaa7d9f CLI: select project plates and list plate summaries 2026-10-20 21:29:26 -05:00
Boris dc3fd79c6f CLI: check project compatibility and report object outcomes 2026-10-20 21:09:34 -05:00
Boris 650f844780 Add CLI preservation of Bambu Studio 3MF projects 2026-10-20 16:33:37 -05:00
matthewtrahan 0c1fc1c168 plugins: real version numbers, stamped by every build -- 0.7.<n>, n = the position on main of the last commit that changed what that plugin ships (its folder, tests and notes aside, plus every file esbuild bundles into it and the shared Python host), so a plugin gets a new version exactly when it changes and never otherwise (the PrusaSlicer port doesn't move with the engine); plugins/shared/version.py computes it, each build stamps it into the plugin's own manifest (Orca header, Fusion manifest, Cura plugin.json + package, Blender manifest, Rhino package, SolidWorks assembly, Prusa manifest via a new build.py, a FreeCAD VERSION its console line shows) and the command line and MCP server compile it in (support-fins --version); sources hold the unstamped 0.7.0, above every hand-set number before (Fusion 0.6.2) so no host sees a downgrade; CI checks out full history for it and refuses a shallow clone; release labels show the same numbers 2026-10-19 18:13:31 -05:00
matthewtrahan 6582065595 cli: .obj input, --object picks from a multi-object OBJ as from a 3MF plate; the MCP server's path says so 2026-10-16 10:00:56 -05:00
matthewtrahan e0122ae429 cli: export the flag table and let the bundler take another entry -- the MCP server builds its settings schema from the same flags and ships as the same one-file bundle 2026-10-15 14:27:57 -05:00
matthewtrahan 07bd5ca224 cli: a 3MF output carries a slicer's own parts back out the way the site does, in the separate form so a negative part can't cut the walls in its hole (#104); an STL output says it left the modifiers out 2026-10-14 21:25:19 -05:00
matthewtrahan 4dbb6fc094 cut: review fixes -- a cutter that will not load leaves the file open uncut with a note (and is retried next file) instead of refusing it, an inside-out negative is turned outward so it cuts rather than adds plastic, the shell/debris repair is for negatives only (the part is never changed without a word), and negatives that remove the whole part leave it uncut with a note 2026-10-14 20:21:26 -05:00
matthewtrahan 31228abb1d cut: a slicer's negative parts are cut out of the part on import, so the fins are built for what prints (#104) -- Manifold (manifold-3d 3.5.4, Apache-2.0, vendored, loaded only for a file with one); a scanned negative of closed shells plus sliver debris still cuts, a part or negative that is not a closed solid is said and left uncut; paint stays on the faces the cut leaves whole; the CLI bundle carries the WASM; the import note says how many were cut 2026-10-14 20:21:26 -05:00
matthewtrahan f4166105e6 3mf negative parts: review fixes -- a PrusaSlicer 2 second instance (a wrapper over the first one's mesh) keeps its negative out (it read solid), a part placed twice is two extras rather than one merged shell, the CLI warns when it leaves one out, and a Bambu plate whose part ids collide is pinned 2026-10-14 20:21:26 -05:00
matthewtrahan 597aaa33db cli: review fixes -- --rot reads the site's X·Y·Z readout, --fins-only lines up with the file's part, own 3MF refused
- --rot is three.js Euler XYZ (Rx*Ry*Rz), the order printfins.com shows under
  the part, so a pose found on the site carries over
- --fins-only maps the fins back onto the part as it is in the file; it can't
  take --rot, and writes nothing when there are no fins
- a Support Fins 3MF (part + fins) is refused instead of finned again
- settings the site would hide warn on stderr; -o can't overwrite the input;
  -- ends the options; Node 20.10+
- the summary rounds ties to even, word for word with Python's host_report
2026-09-30 18:30:03 -05:00
matthewtrahan 070f36384a cli: support-fins part.stl -> part-fins.3mf, the site's engine from a terminal (local issue 017)
Deno or Node 20+, or a deno compile binary. Poses the part (--rot, X then Y
then Z), runs the plugins' computeFins, writes a 3MF (part + fins), a merged
STL, or the fins alone. Flags come from options.json in the site's units.
Reports overhangs it couldn't reach; exit 1 only for a file that failed (the
others still run), exit 2 for bad arguments. Tests: CLI fins equal computeFins
on the posed part and the website's own path on lbracket@35.
2026-09-30 18:30:03 -05:00