mirror of
https://github.com/gittrahan/support-fins.git
synced 2026-10-22 03:42:40 -05:00
39 lines
8.8 KiB
JSON
39 lines
8.8 KiB
JSON
{
|
|
"$comment": [
|
|
"The settings every plugin dialog is built from (plugins/shared/README.md).",
|
|
"key: an option of fins_entry.js computeFins, dotted for a nested one (sway.on -> {sway: {on}}). Hosts never assemble that object themselves: pass the dialog's {key: value} -- in the ENTRY's units, so a percent control's value / 100 -- to optionsFromDialog() (fins_entry.js; Python: supportfins_host.host_options), which nests, checks and drops sway when it is off. It refuses a value out of range rather than guess; null or '' means the default.",
|
|
"default/min/max/step: in the ENTRY's units. percent: true = show value x 100 (the site's sliders read 0-100) and round to step for display. slider: a range control rather than a number field. hint: the site's muted text after the label (units live here).",
|
|
"showIf: the control is shown only when EVERY item holds; an item is a bool key (on), {key, in: [values]}, or {any: [items]}. Evaluate with optionVisible() (fins_entry.js); hidden values may still be sent, the engine ignores them.",
|
|
"hostSupplied: 'slicer' = a slicer plugin reads this from the slicer's own settings and leaves it out of its dialog; CAD hosts show it. Its range is the dialog's, not a limit: the host's own value is used as is. threshold is NOT a slicer's support angle: it is measured from the plate, where Cura's is from vertical.",
|
|
"site: the matching control id in web/index.html; plugins/shared/tests/options.test.js pins defaults, ranges and choices to it, and lists every site control this file leaves out on purpose (Draw placement: needs the site's canvas; Custom pad: four hand-typed numbers)."
|
|
],
|
|
"version": 1,
|
|
"sections": [
|
|
{"id": "placement", "label": "Placement"},
|
|
{"id": "setup", "label": "Setup"},
|
|
{"id": "tines", "label": "Tines"},
|
|
{"id": "clearances", "label": "Clearances"},
|
|
{"id": "sway", "label": "Sway braces"},
|
|
{"id": "walls", "label": "Walls"}
|
|
],
|
|
"options": [
|
|
{"key": "mode", "section": "placement", "site": "fin-mode", "type": "choice", "default": "auto", "choices": [{"value": "auto", "label": "Auto — place supports for me"}, {"value": "full", "label": "Full coverage — every overhang"}], "label": "Placement mode", "tooltip": "Auto: a tined wall under each overhang steep and flat enough to grip, a plain breakaway wall under the shallow ones. Full coverage: Auto, then walls under every overhang Auto left bare -- more walls and plastic, every reachable overhang held. Wide roofs and flat shelves usually need Full coverage."},
|
|
{"key": "threshold", "section": "setup", "site": "thr", "type": "number", "default": 45, "min": 30, "max": 70, "step": 1, "slider": true, "label": "Overhang", "hint": "°", "tooltip": "Surface angle from the plate below which a face needs support."},
|
|
{"key": "tines", "section": "tines", "site": "tines", "type": "bool", "default": true, "label": "Tines", "hint": "grip the part", "tooltip": "Tines fuse the support to the part so it grips instead of just propping. Off = plain breakaway wall."},
|
|
{"key": "tineDensity", "section": "tines", "site": "tine-density", "showIf": ["tines"], "type": "number", "default": 0, "min": 0, "max": 1, "step": 0.05, "percent": true, "slider": true, "label": "Tine grip", "hint": "light ⟶ firm", "tooltip": "How tightly to space the grip tines. Light = fewest marks (default), a per-wall floor keeps grip; Firm = dense comb / max grip for a tippy or tall part."},
|
|
{"key": "tineDir", "section": "tines", "site": "tine-dir", "showIf": ["tines"], "type": "choice", "default": "horizontal", "choices": [{"value": "horizontal", "label": "Horizontal (FDM)"}, {"value": "vertical", "label": "Vertical (resin)"}], "label": "Direction", "tooltip": "Horizontal: one-layer tines that grip the part and snap off clean (FDM). Vertical: pins that stand up from each wall into the part, like a resin slicer's contact tips, for resin printers, where every support has to be attached."},
|
|
{"key": "pinDepth", "section": "tines", "site": "pin-depth", "showIf": ["tines", {"key": "tineDir", "in": ["vertical"]}], "type": "number", "default": 0.1, "min": 0.05, "max": 1, "step": 0.05, "label": "Pin depth", "hint": "mm", "tooltip": "How far each pin sinks into the part, like a resin slicer's contact depth. Resin slicers sink a tip 0-0.2 mm; deeper leaves a bigger mark and is harder to snap off. Default 0.1 mm."},
|
|
{"key": "layerHeight", "section": "tines", "site": "layer-height", "hostSupplied": "slicer", "showIf": [{"any": ["tines", {"key": "padStyle", "in": ["light", "auto"]}]}], "type": "number", "default": 0.2, "min": 0.08, "max": 0.6, "step": 0.04, "label": "Layer height", "hint": "mm", "tooltip": "Set this to the layer height you slice at. The grip tines are one layer tall so they snap off clean; if this doesn't match your slicer, the tines tear and leave marks. Default 0.2mm."},
|
|
{"key": "gap", "section": "clearances", "site": "gap", "type": "number", "default": 0.2, "min": 0.1, "max": 0.4, "step": 0.05, "label": "Support gap", "hint": "mm", "tooltip": "Clearance between a support top and the part. Bigger = cleaner surface / easier removal; too big stops holding the overhang. Default 0.2mm."},
|
|
{"key": "padStyle", "section": "clearances", "site": "bed-pad", "type": "choice", "default": "auto", "choices": [{"value": "off", "label": "Off"}, {"value": "auto", "label": "Auto"}, {"value": "light", "label": "Light"}, {"value": "sure", "label": "Sure hold"}], "label": "Bed pad", "tooltip": "A tilted part rests on an edge and peels off the plate without a pad. Auto: Light, or Sure hold when the part meets the plate on a point or a small round foot. Light: one layer, 0.12mm off the part, peels off like a brim. Sure hold: thicker and tacked into the part, holds harder but is harder to remove."},
|
|
{"key": "sway.on", "section": "sway", "site": "sway", "type": "bool", "default": false, "label": "Sway braces", "hint": "tall parts", "tooltip": "Stand tapered buttress ribs against the upright sides of a tall part, tied on with tines all the way up, so it doesn't drift or wobble as it grows."},
|
|
{"key": "sway.gripFrom", "section": "sway", "site": "sway-from", "showIf": ["sway.on", "tines"], "type": "number", "default": 0, "min": 0, "max": 2000, "step": 5, "label": "Brace grip from", "hint": "mm up", "tooltip": "Height the brace tines start at. 0 = grip the whole height; raise it to tie on only above where the part starts to move."},
|
|
{"key": "sway.tineSpacing", "section": "sway", "site": "sway-spacing", "showIf": ["sway.on", "tines"], "type": "number", "default": 6, "min": 2, "max": 30, "step": 1, "label": "Brace tine spacing", "tooltip": "Vertical distance between brace tines. Smaller = held tighter, more marks on the side. Default 6mm.", "hint": "mm"},
|
|
{"key": "sway.reach", "section": "sway", "site": "sway-depth", "showIf": ["sway.on"], "type": "number", "default": 0.15, "min": 0.05, "max": 0.5, "step": 0.01, "percent": true, "label": "Brace depth", "hint": "% of height", "tooltip": "How far the brace reaches out at the bed, as a share of its height. Deeper = stiffer, more plastic. Default 15%."},
|
|
{"key": "cutout", "section": "walls", "site": "cutout", "type": "choice", "default": "none", "choices": [{"value": "none", "label": "None"}, {"value": "diamond", "label": "Diamond"}, {"value": "triangle", "label": "Triangle"}, {"value": "arch", "label": "Arch"}, {"value": "lattice", "label": "Lattice"}, {"value": "honeycomb", "label": "Honeycomb"}], "label": "Cutouts", "tooltip": "Cut holes through tall breakaway walls to save filament. The top edge that holds the part, the foot, and the wall's ends stay solid, and every hole has a pointed roof so it prints without bridging. Short walls stay solid."},
|
|
{"key": "coverage", "section": "walls", "site": "coverage", "showIf": [{"key": "mode", "in": ["auto"]}], "type": "number", "default": 0.5, "min": 0, "max": 1, "step": 0.05, "percent": true, "slider": true, "label": "Wide-face coverage", "hint": "sparse ⟶ dense", "tooltip": "How densely to line a WIDE overhang face with fins. The middle is the anti-sag default; drag LEFT for fewer fins (a small part can go down to one — the readout warns if a broad face then risks sagging), RIGHT for more support. Narrow parts are unaffected."},
|
|
{"key": "plateOnly", "section": "walls", "site": "plate-only", "type": "bool", "default": false, "label": "Plate only", "tooltip": "Stand every support on the build plate, never on the part itself. An overhang with part under it is left unsupported, and the readout says how many."},
|
|
{"key": "longWalls", "section": "walls", "site": "long-walls", "showIf": [{"key": "mode", "in": ["full"]}], "type": "bool", "default": true, "label": "Long walls", "hint": "along the part", "tooltip": "Full coverage lays rows of long walls along the part's length first, the way you'd draw them by hand, then fills what they miss. Holds more of the overhang and uses more plastic. Untick for short walls under each overhang patch."}
|
|
]
|
|
}
|