Commit Graph
6 Commits
Author SHA1 Message Date
matthewtrahan 041448a71f plugins: nozzle size -- Cura and Orca read it from the part's extruder, CAD dialogs show it; the entry resets to 0.4 when a call leaves it out
options.json gains nozzle (hostSupplied: slicer, 0.2-0.8, default 0.4). The
entry sends it in tunables on every call, so a host's long-lived engine context
can't keep the last part's widths. Cura: machine_nozzle_size on the part's
extruder. Orca: nozzle_diameter, the wall extruder's entry. FreeCAD, Blender,
Fusion, SolidWorks and the CLI pick it up from the schema.
2026-10-13 13:28:16 -05:00
Matthew Trahanandmatthewtrahan f2147bd19f Plate only: every support on the build plate, none on the part (#218) (#221)
* engine: plateOnly -- every support on the build plate, none on the part (#218). Auto and the short walls drop a line the part-attached path would take (built or floored) and count it as skipped.onPart, never stilting it to the plate through the part; drawnWall refuses a line with part under it, naming the setting, and its squat fallback skips the part; the fill pass never retries a wall on the part. Off by default: sweep vs main identical. tests: plate_only -- a drawn line over the part refused, over open plate byte-identical; Auto and Full on the portal at Y90 build nothing on the part and count it; off, the lbracket is unchanged

* ui + plugins: a Plate only checkbox under Walls (#218) -- read by the auto build and the drawn walls; the readout says how many supports it left off and why, and names it when it emptied a part; undoable; German strings. options.json gains plateOnly, so every plugin dialog shows it, and both entries pass it on. tests: the dead-control check runs it on the portal at Y90 (the lbracket has no wall on the part); FreeCAD and Blender unit fixtures list it

* plate only: Full refuses a line over the part before building it, and a mixed line keeps its plate stretch (review) -- the local pass turned the on-part retry back on, and every try reached drawnWall to be refused: the portal at Y90 spent all 120 tries and blamed the wall limit. stationClear's `plate` now refuses a station with part under it on every try. Auto hands a line the part-attached path claims to the plate path (its column probes trim the stations over the part) instead of dropping it whole. The readout names Plate only when it emptied a part in any mode, not only Prop; German help line. tests: every built support reaches the plate, Full isn't capped

---------

Co-authored-by: matthewtrahan <mathyout@pm.me>
2026-10-08 22:32:15 -05:00
matthewtrahan d89f72f0df engine: sway brace tines kiss the part's face (kissEnds), and the material's tine bite is gone -- one SWAY.tineReach 0.3 gates placement; Material tooltip no longer claims PETG shrinks a bite; same braces and tines on 16 cases x PLA/PETG, slices identical on 30 of 32 (lighthouse Y90 notch: +-0.13 mm2) 2026-10-03 15:14:03 -05:00
matthewtrahan b59b9099bc plugins: optionsFromDialog is strict -- refuses bad values instead of guessing; Python gets host_options
"false" was true, '' and None became the minimum, and a percent sent without the /100
was clamped to 1 (coverage 50 -> 1): all silent. Now bools take true/false or their
strings, null/'' mean the default, and anything out of range throws, naming the /100.
The slicer's own layer height is used as is (the site doesn't clamp it either).
Python hosts get host_schema / host_options / host_visible through the bridge. The
defaults test compared a cube with no fins (0 == 0); it now uses lbracket and the
sway-braced bar.
2026-09-30 12:25:40 -05:00
matthewtrahan 909de5ba8c plugins: options review fixes -- showIf grammar, optionsFromDialog/optionVisible, layer height + overhang angle
showIf is now a list (all must hold) of bool keys, {key, in} and {any}, enough for the
site's rules: brace grip/spacing need sway AND tines; layer height shows with tines or
a one-layer pad. Hosts pass dialog values through optionsFromDialog (nest, clamp,
check, drop sway when off) and ask optionVisible, so no host re-implements either.
Matthew's calls: layerHeight in (hostSupplied: slicer, CAD hosts show it), the
overhang angle in, placement mode stays Auto only. Tests: every site control is in
the schema or listed as excluded with a reason; pad styles are the entry's own list.
2026-09-30 12:25:40 -05:00
matthewtrahan f12cb8cca4 plugins: options.json -- one settings schema every plugin dialog is built from
Material, tines, tine grip, bed pad (Off/Auto/Light/Sure hold), sway braces, cutouts
and coverage, with the site's labels and tooltips. Tests pin every default, range and
choice to web/index.html, the choices to the engine's own lists, and check each option
changes the fins (no dead control). The entry takes its defaults from the file, and
padStyle 'off' is the site's Off.
2026-09-30 12:25:40 -05:00