From 20c0c2ffcc288dad2080e9d4cf43ffd83575cb74 Mon Sep 17 00:00:00 2001 From: jyviko <2501648+jyviko@users.noreply.github.com> Date: Fri, 30 Oct 2026 12:58:41 -0400 Subject: [PATCH] Kernel rig: a sloped basin's mitred rim rounds are checked tangent along their contact lines 1080-fillet-sloped-basin-1-mm-rim-r0-5-4-edges asked G1 at every blend seam. Its front wall leans 19 over 20 and the others 10 over 20, so at each rim corner the two mitred rounds meet the sloped corner edge at different heights (0.155625 and 0.276393 below the top): the deeper round runs on past the corner edge and is cut by the plane of the other's wall, a crease by construction, the gap below the shallower round filled on that plane. The check now measures the rounds' contact seams, on the top and on each wall, where the rounds are tangent. The volume is unchanged. With SMLib smlib-batch-4-mitre (1c15364): the case passes (V 144530.427946 against 144530.427909, 15 faces, sound); before it, only the four corner creases failed the check. Co-Authored-By: Claude Opus 5.5 --- .../expected.json | 46 ++++++++++++++++++- 1 file changed, 44 insertions(+), 2 deletions(-) diff --git a/tests/kernel-cases/fillets/1080-fillet-sloped-basin-1-mm-rim-r0-5-4-edges/expected.json b/tests/kernel-cases/fillets/1080-fillet-sloped-basin-1-mm-rim-r0-5-4-edges/expected.json index db5ba1bf9b..74942f45b1 100644 --- a/tests/kernel-cases/fillets/1080-fillet-sloped-basin-1-mm-rim-r0-5-4-edges/expected.json +++ b/tests/kernel-cases/fillets/1080-fillet-sloped-basin-1-mm-rim-r0-5-4-edges/expected.json @@ -4,7 +4,7 @@ ], "what": "all four of the top rim edges of a sloped basin with a 1 mm front rim rounded R0.5, mitred at the rim's corners", "source": "analytic", - "method": "slab 100 x 60 x 30 less the loft from the rectangle (20, 1)-(80, 50) at z = 30 to (30, 20)-(70, 40) at z = 10 (planar walls, a prismatoid: 20/6 (A_top + A_bottom + 4 A_mid)): V0 = 144533.333333. Each blend's section at height z spans from its wall to its arc (or chamfer line), inside its rim; its edge runs between its neighbours' walls (the sloped end walls extended), so it takes Int width(z) length(z) dz. At a re-entrant corner of two picked edges the blends meet in a mitre (the owner's ruling of 2026-10-30): each runs on past the corner and the quadrant beyond both walls loses what both take, Int width_1(z) width_2(z) dz. Removed 2.905424. V = 144530.427909", + "method": "slab 100 x 60 x 30 less the loft from the rectangle (20, 1)-(80, 50) at z = 30 to (30, 20)-(70, 40) at z = 10 (planar walls, a prismatoid: 20/6 (A_top + A_bottom + 4 A_mid)): V0 = 144533.333333. Each blend's section at height z spans from its wall to its arc (or chamfer line), inside its rim; its edge runs between its neighbours' walls (the sloped end walls extended), so it takes Int width(z) length(z) dz. At a re-entrant corner of two picked edges the blends meet in a mitre (the owner's ruling of 2026-10-30): each runs on past the corner and the quadrant beyond both walls loses what both take, Int width_1(z) width_2(z) dz. Removed 2.905424. V = 144530.427909 The front wall leans 19 over 20 and the others 10 over 20, so at each corner the two rounds meet the sloped corner edge at different heights (their wall contacts r (1 - k / sqrt(1 + k^2)) below the top, 0.155625 and 0.276393): the deeper round runs on past the corner edge and is cut by the plane of the other's wall, a crease (G0) there, the gap below the shallower round filled on that plane. The rounds meet their faces tangentially along their contact lines, the seams checked: on the top r (sqrt(1 + k^2) - k) from the rim (0.214656, 0.309017), on the wall r / sqrt(1 + k^2) out from the centre.", "body_count": 1, "volume_mm3": 144530.42790890092, "bbox": { @@ -23,6 +23,48 @@ "rel": 1e-06 }, "continuity": { - "order": "g1" + "order": "g1", + "edges": [ + [ + 50, + 0.785344, + 30 + ], + [ + 50, + 1.147844, + 29.844375 + ], + [ + 80.309017, + 27, + 30 + ], + [ + 79.861803, + 27, + 29.723607 + ], + [ + 50, + 50.309017, + 30 + ], + [ + 50, + 49.861803, + 29.723607 + ], + [ + 19.690983, + 27, + 30 + ], + [ + 20.138197, + 27, + 29.723607 + ] + ] } }