feat: fit reduce lowers the radius only where it doesn't fit (#496)

Fillet fit: reduce lowers the radius only where it doesn't fit: picked edges are grouped where they can limit each other (sharing a face or vertex), and each group gets the requested radius where it fits, otherwise the largest that does. Refs #293.

Co-authored-by: Iraklis Kourtis <jyviko@gmail.com>
This commit is contained in:
Irakli Kourtis authored and GitHub committed 2026-10-13 05:27:03 -04:00
1 parent 6d5df4b9b3
commit 0f0bb09858
9 files changed
+252 -35

No files matched your search

+8 -2
View File
@@ -1604,10 +1604,16 @@ pub fn show(app: &mut SolveApp, ctx: &egui::Context) {
let fit = extra_choice(ui, &mut d.extra, "fi_fit", "fit", &[("Exact", "exact"), ("Reduce to Fit", "reduce")]);
ui.end_row();
if fit == 1
&& let Some(r) = app.preview.applied
&& let Some((lo, hi)) = app.preview.applied
{
// A range where edges apart from each other fit different radii.
row_label(ui, "Applied Radius");
ui.label(RichText::new(crate::prefs::show_mm(app, r, 1)).color(t.warning));
let shown = if hi > lo {
format!("{} – {}", crate::prefs::show_mm_bare(app, lo), crate::prefs::show_mm(app, hi, 1))
} else {
crate::prefs::show_mm(app, lo, 1)
};
ui.label(RichText::new(shown).color(t.warning));
ui.end_row();
}
} else if !*chamfer {