Boolean regression test: the raked wedge's R4 rounds the four edges the issue picked

raked_wedge (#1617, test from 7f2ae11a0 on 2026-10-17) rounds four end edges R4. Since
84bd2daad (2026-10-22) solid.fillet carries each picked edge round its tangent chain by
default, so the R4 now ran on round the end outline onto the R1.2 round's end arc, where the
round's rail on the end face would be an arc of radius 1.2 - 4 < 0, and it is refused as too
large. The issue's R4 rounds those four edges alone: the step says tangent_chain: false.

The test still fails, one step later, on SMLib: the issue's R0.854 round of both ends' outline
is refused by SMLib's own check (SmBSplineSurface Test #5, "close to singular at boundary"),
reported for the SMLib batch.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
jyviko
2026-10-30 08:30:32 -04:00
committed by Irakli Kourtis
parent f2982b47a0
commit cf40a3e6c6
@@ -682,7 +682,7 @@ fn ring_notch() -> f64 {
}
/// The wedge of #1617: a side profile in (y, z) extruded 138 mm along x, its back face leaning
/// by `lean` (the tangent of its angle), with the issue's rounds. The last one runs along the
/// by `lean` (the tangent of its angle), with the issue's rounds, each on the edges it picked. The last one runs along the
/// outline of both ends. The issue asked for R1 with `fit: reduce`, which reduces it to 0.854 mm;
/// that radius is asked for here directly, which builds the same body without the fit's search
/// (about a minute).
@@ -700,7 +700,14 @@ fn raked_wedge(lean: f64) -> Session {
("solid.fillet", json!({"body": "Wedge", "radius": 1.2, "edges": [[0, -60, 22]]})),
("solid.fillet", json!({"body": "Wedge", "radius": 1.5, "edges": [[0, -22, 22]]})),
("solid.fillet", json!({"body": "Wedge", "radius": 1.5, "edges": [[0, 38, 60]]})),
("solid.fillet", json!({"body": "Wedge", "radius": 4, "edges": [[-69, -60, 12], [69, -60, 12], [-69, back, 30], [69, back, 30]]})),
// The issue's R4 rounds these four end edges alone: carried on round the end outline
// (tangent propagation, the feature's default since 84bd2daad, after this test), it would
// run onto the R1.2 round's end arc, where its rail on the end face would be an arc of
// radius 1.2 - 4 < 0.
(
"solid.fillet",
json!({"body": "Wedge", "radius": 4, "tangent_chain": false, "edges": [[-69, -60, 12], [69, -60, 12], [-69, back, 30], [69, back, 30]]}),
),
("solid.fillet", json!({"body": "Wedge", "radius": 0.854, "edges": ends})),
];
for (command, params) in steps {