forked from 1b-agent/opencadstudio-upstream
Match Fix geometric constraint behavior
1) FXCONSTRAINT (and the new GCFIX name) prompts "Select point or [Object] <Object>:" — a pick fixes that constraint point; Enter or O asks for one line, polyline segment, circle, arc, ellipse or spline; misses and unsupported objects report the reference messages and re-prompt. 2) Point, block, text, MText, attribute and table insertion points are addressable constraint points. 3) Re-applying Fixed to the same point or object reports that the constraint already exists instead of adding a duplicate. 4) A persistent Fixed holds its pre-edit geometry through MOVE, ROTATE, SCALE, STRETCH, grip and Properties edits: fixed points stay, free points of a partly fixed entity follow the edit, and size retention skips fixed entities. 5) Object mode on a polyline fixes the picked segment (natively persisted) instead of the whole polyline; arc segments pin endpoints, center and radius. 6) Ribbon label "Fix" with a padlock icon. Co-Authored-By: Claude Fable 5.1 <[email protected]>
This commit is contained in:
1 parent
2b38f798c0
commit
f998b59193
9 files changed
+483
-206
No files matched your search
@@ -1570,6 +1570,11 @@ pub enum CmdResult {
|
||||
kind: crate::scene::parametric_constraints::ConstraintKind,
|
||||
label: &'static str,
|
||||
},
|
||||
/// Add a persistent `Fixed` constraint (`crate::modules::parametric::fixed`)
|
||||
/// at one picked constraint point (`whole_curve == false`, resolved by the
|
||||
/// host like `AddPointOnEntityConstraint`'s point) or on the whole curve /
|
||||
/// polyline segment under the pick (`whole_curve == true`).
|
||||
AddFixedConstraint(CoincidentPick),
|
||||
/// Add a persistent `EqualDistance` constraint
|
||||
/// (`crate::modules::parametric::equal_distance`): the distance
|
||||
/// between `points[0]`/`points[1]` equals the distance between
|
||||
@@ -2806,6 +2811,7 @@ mod constraint_registry_tests {
|
||||
"NRCONSTRAINT",
|
||||
"LCONSTRAINT",
|
||||
"FXCONSTRAINT",
|
||||
"GCFIX",
|
||||
"SYCONSTRAINT",
|
||||
"DCONSTRAINT",
|
||||
"ACONSTRAINT",
|
||||
|
||||
Reference in new issue
Block a user