forked from 1b-agent/opencadstudio-upstream
Named parameters (docs/named_parameters_design.md, stages 3-4): - ParameterTable (src/scene/named_parameters.rs): a document-wide table of named formulas, each resolved through a shared expression evaluator with cross-parameter references, cycle detection, and division-by-zero/parse error reporting. SketchConstraint::driving_param becomes DrivingValue (Literal | Named) instead of a bare f64, resolved at solve time by sketch_solve::build_constraint via Scene::named_parameters. - Persistence (src/scene/named_parameters_persist.rs): same lazy XRecord model sketch_persist.rs already established, synced around open/save. Bumps the sketch-constraint XRecord's own format version (1 -> 2) since DrivingValue's shape doesn't line up with a version-1 blob's bytes. - PARAMETERS command and its editor (src/ui/window/named_parameters.rs): add/remove/edit rows, live validation, duplicate-name detection: Apply defines the table and re-solves every constraint scope with a named-parameter-driven constraint (command_driver.rs). Distance/Angle constraint prompts (modules/draw/constrain/value.rs) now accept either a literal or an existing parameter's name, mirroring how the constraint's own value prompt already worked. - Undo scope-down carried over from this project's own established pattern (constraint-system stage 9): the geometry an Apply moves is one undo step, but the parameter table edit itself has no undo entry yet — a documented follow-up, not a silent gap. UI scale setting (src/app/settings.rs, app/mod.rs, ui/window/options.rs): a whole-interface scale percentage (50-200%), wired directly into iced's own per-window scale_factor hook rather than per-panel font-size plumbing, so it applies immediately to every panel, dialog, and the ribbon at once. Persisted alongside the existing lineweight-display-scale setting. OPTIONS/OP command dispatch (app/commands/view.rs, app/commands/mod.rs): OPTIONS was registered for autocomplete but had no dispatch arm — the Start-tab welcome screen's own button was the only way to reach it. Found live-testing the UI-scale setting, unrelated to that feature itself. "OP" is AutoCAD's own short alias. help/: a new self-contained static user-help manual (manual.md as the authored source, tools/build_help.py splits it into the committed static HTML pages plus search index) — not yet wired into the application. 64 new/updated tests across the named-parameters and constraint-prompt changes. Co-Authored-By: Claude Sonnet 5 <[email protected]>
46 lines
2.3 KiB
JSON
46 lines
2.3 KiB
JSON
{
|
|
"schema_version": 1,
|
|
"fallback": "index.html",
|
|
"commands": {
|
|
"NEW": "files-drawings.html#create-and-open-drawings",
|
|
"OPEN": "files-drawings.html#create-and-open-drawings",
|
|
"SAVE": "files-drawings.html#save-and-save-as",
|
|
"SAVEAS": "files-drawings.html#save-and-save-as",
|
|
"RECOVER": "files-drawings.html#recovery-and-backups",
|
|
"LINE": "create-edit-geometry.html#basic-drawing-commands",
|
|
"CIRCLE": "create-edit-geometry.html#basic-drawing-commands",
|
|
"PLINE": "create-edit-geometry.html#basic-drawing-commands",
|
|
"ERASE": "create-edit-geometry.html#modify-geometry",
|
|
"UNDO": "create-edit-geometry.html#undo-redo-and-oops",
|
|
"REDO": "create-edit-geometry.html#undo-redo-and-oops",
|
|
"OOPS": "create-edit-geometry.html#undo-redo-and-oops",
|
|
"LAYER": "layers-properties.html#layers",
|
|
"CHPROP": "layers-properties.html#object-properties",
|
|
"BLOCK": "blocks-references.html#create-and-insert-blocks",
|
|
"INSERT": "blocks-references.html#create-and-insert-blocks",
|
|
"MINSERT": "blocks-references.html#array-inserts",
|
|
"DIM": "annotation-dimensions.html#dimensions",
|
|
"PLOT": "layouts-plotting.html#page-setup-and-plot-preview",
|
|
"EXTRUDE": "3d-modeling.html#solids-and-surfaces",
|
|
"REVOLVE": "3d-modeling.html#solids-and-surfaces",
|
|
"HCONSTRAINT": "parametric-constraints.html#geometric-constraints",
|
|
"VCONSTRAINT": "parametric-constraints.html#geometric-constraints",
|
|
"PCONSTRAINT": "parametric-constraints.html#geometric-constraints",
|
|
"QCONSTRAINT": "parametric-constraints.html#geometric-constraints",
|
|
"ECONSTRAINT": "parametric-constraints.html#geometric-constraints",
|
|
"CCONSTRAINT": "parametric-constraints.html#geometric-constraints",
|
|
"TCONSTRAINT": "parametric-constraints.html#geometric-constraints"
|
|
},
|
|
"surfaces": {
|
|
"file-open": "files-drawings.html#create-and-open-drawings",
|
|
"file-save": "files-drawings.html#save-and-save-as",
|
|
"layers": "layers-properties.html#layers",
|
|
"properties": "layers-properties.html#object-properties",
|
|
"plot": "layouts-plotting.html#page-setup-and-plot-preview",
|
|
"plugin-manager": "automation-plugins.html#plugins",
|
|
"constraint-conflicts": "parametric-constraints.html#editing-constrained-geometry",
|
|
"recovery": "troubleshooting-recovery.html#a-drawing-opens-incorrectly"
|
|
}
|
|
}
|
|
|