* claim: #4071
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* Define a named parameter inline from any value input (#4071)
Any value input, typed or sent as a command's expression parameter, takes
`name = expression` (or `#name = expression`): the design gets the user
parameter `name` with that expression, and the input stores `name`, in the
command's one undo step.
- doc: the lexer skips a definition's `name =`, so until the design stores
it the text evaluates as its expression and commands read and check it
like any value. `Document::define_inline` then turns every stored
definition (feature inputs and placements, dimension parameters, sketch
pattern and text values, joint and coupling values, sheet metal and
plastic rules, canvas planes) into a user parameter, the unit following
how the input reads a bare number. A taken, reserved or empty name, two
different values for one name, and a definition in a parameter's own
expression or a configuration cell are refused; all or nothing.
- engine: `Session::execute` runs it after any command whose parameters
hold definition-shaped text; the reply has `defined` (the first name,
as `sketch.dimension` already gives) and `definitions`. A refusal fails
the command, which leaves the design as it was.
- `parameters.change` with `new = expression` renames the parameter it
changes (a dimension's or feature input's own, references following)
and sets it; when the value is just `new`, it sets `new`. `changes`
refuses definitions. `expr.evaluate` reports `defines`.
- UI: lengths keep the name when the design unit is applied; sketch text
sends a definition as typed and previews only its value; the box corner
and offset Distance 2 use the value; fields whose command keeps no
expression (sketch scale, move, chamfer) refuse a definition with the
way to name it. The dimension editor says which parameter it named.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>