feat(dynamic-input): ARC specs + ellipse-arc preview fixes
- ARC: per-step DynSpec for the typed-value modes — included-angle (SCA, CSA), chord length (SCL, CSL) and radius (SER) show their box and route the typed value through on_text_input via a new dyn_commit_as_text() hook; the angle box previews the live span. Point/3P/SCE steps stay on the legacy polar path. - ARC + ellipse-arc: derive the previewed sweep direction from the swept angle with a ~10° tolerance and advance the reference only on a clear move, so small cursor jitter no longer flips the arc. Ellipse uses the parametric angle so a flat ellipse isn't sticky. - Ellipse arc: the start-angle step now shows a line from the centre to the cursor (it only picks the start angle) instead of a misleading arc. - Ellipse arc: use the same minor-axis direction (Z x major) as the rendered entity so the committed arc matches the preview instead of mirroring across the major axis. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
parent
e31dbcb5c4
commit
5128d94b2b
5 changed files with 177 additions and 31 deletions
|
|
@ -736,6 +736,11 @@ impl OpenCADStudio {
|
|||
.map(|(idx, f)| {
|
||||
let value = match (&f.buffer, live) {
|
||||
(Some(b), _) => b.clone(),
|
||||
// An angle step with a command-supplied live value
|
||||
// (ARC span / direction) shows it in degrees.
|
||||
(None, Some(lv)) if f.component == DynComponent::Angle => {
|
||||
format!("{lv:.1}")
|
||||
}
|
||||
(None, Some(lv))
|
||||
if matches!(
|
||||
f.component,
|
||||
|
|
|
|||
Loading…
Reference in a new issue