diff --git a/tests/kernel-cases/ladder/07-fillets/016-corner-three-sequential-r5-r3-r7/expected.json b/tests/kernel-cases/ladder/07-fillets/016-corner-three-sequential-r5-r3-r7/expected.json index ba913b441f..e45c440bdc 100644 --- a/tests/kernel-cases/ladder/07-fillets/016-corner-three-sequential-r5-r3-r7/expected.json +++ b/tests/kernel-cases/ladder/07-fillets/016-corner-three-sequential-r5-r3-r7/expected.json @@ -1,8 +1,8 @@ { "sources": [], - "what": "rounds r5 and r3 on the two top edges at a corner, then r7 on the vertical edge under them: refused, the r7 cannot exist", + "what": "rounds r5 and r3 on the two top edges at a corner, the r3 with its tangent chain, then a round on the vertical edge under them: the r3 chain has rounded that edge, so the pick takes no edge: refused", "source": "invariants", - "method": "the r7 runs on (tangent chain) up the side x=60 along its arc on the r5 round, a circle of radius 5 about the r5 axis: the r7's contact line on that face would be the arc offset 7 towards its centre, radius 5 - 7 < 0, so the blend passes through itself; and along the seam of the r5 and r3 rounds no ball over r3 fits the r3 round. No such round exists, so the right answer is a clean refusal (SMLib: no room for the rolling ball). 018 is the same corner with a radius that fits.", + "method": "box 60x40x20; the top edge y=40 rounded r5, then the top edge x=60 rounded r3 with its tangent chain: at (60, 35, 20) it runs on tangentially into the r5 round's end arc on x = 60 (a quarter circle about y = 35, z = 15, convex), which runs on at (60, 40, 15) into the vertical edge x=60, y=40, so the r3 rounds all three and the vertical edge is gone: its round is the cylinder r3 about (57, 37), z 0..15, meeting the faces along x=57, y=40 and x=60, y=37. The third pick (60, 40, 8) is 3 from each of those two lines and nearer no other edge: it names neither, and the right answer is a clean refusal asking for a point along one edge. The corner this case was made for, with the r3 on its edge alone, is ladder 07-fillets/020.", "outcome": "refused", - "refusal": "the fillet is larger than the faces beside its edges allow" + "refusal": "give a point along one edge" } diff --git a/tests/kernel-cases/ladder/07-fillets/018-corner-three-sequential-r5-r3-r2/expected.json b/tests/kernel-cases/ladder/07-fillets/018-corner-three-sequential-r5-r3-r2/expected.json index f1ac914a9d..4419add89e 100644 --- a/tests/kernel-cases/ladder/07-fillets/018-corner-three-sequential-r5-r3-r2/expected.json +++ b/tests/kernel-cases/ladder/07-fillets/018-corner-three-sequential-r5-r3-r2/expected.json @@ -1,20 +1,8 @@ { "sources": [], - "what": "rounds r5 and r3 on the two top edges at a corner, then r2 on the vertical edge under them, run on up into the corner", + "what": "rounds r5 and r3 on the two top edges at a corner, the r3 with its tangent chain, then a round on the vertical edge under them: the r3 chain has rounded that edge, so the pick takes no edge: refused", "source": "invariants", - "method": "as 016 with a radius that fits (r < 3, the smaller top round): the r2 runs up the vertical edge and on along the side's arc on the r5 round and the seam between the two rounds, tapering to a point where they become tangent. Faces: the box's 6 and the two top rounds, + 3 for the r2 (along the vertical edge, up the arc, along the seam); one valid body inside the box", - "body_count": 1, - "faces": 11, - "bbox": { - "min": [ - 0, - 0, - 0 - ], - "max": [ - 60, - 40, - 20 - ] - } + "method": "box 60x40x20; the top edge y=40 rounded r5, then the top edge x=60 rounded r3 with its tangent chain: at (60, 35, 20) it runs on tangentially into the r5 round's end arc on x = 60 (a quarter circle about y = 35, z = 15, convex), which runs on at (60, 40, 15) into the vertical edge x=60, y=40, so the r3 rounds all three and the vertical edge is gone: its round is the cylinder r3 about (57, 37), z 0..15, meeting the faces along x=57, y=40 and x=60, y=37. The third pick (60, 40, 8) is 3 from each of those two lines and nearer no other edge: it names neither, and the right answer is a clean refusal asking for a point along one edge. The corner this case was made for, with the r3 on its edge alone, is ladder 07-fillets/021.", + "outcome": "refused", + "refusal": "give a point along one edge" } diff --git a/tests/kernel-cases/ladder/golden.json b/tests/kernel-cases/ladder/golden.json index 65bb4508f6..19bc8d40d3 100644 --- a/tests/kernel-cases/ladder/golden.json +++ b/tests/kernel-cases/ladder/golden.json @@ -1381,14 +1381,6 @@ "status": "pass" }, "ladder/07-fillets/018-corner-three-sequential-r5-r3-r2": { - "measured": { - "area_mm2": 8591.675008996122, - "body_count": 1, - "edges": 24, - "faces": 11, - "vertices": 15, - "volume_mm3": 47589.770467263734 - }, "seconds": 0.06135609, "status": "pass" }, @@ -1404,6 +1396,22 @@ "seconds": 2.083591798, "status": "pass" }, + "ladder/07-fillets/020-corner-three-sequential-r5-r3-r7-partial-chain": { + "seconds": 0.053107612, + "status": "pass" + }, + "ladder/07-fillets/021-corner-three-sequential-r5-r3-r2-partial-chain": { + "measured": { + "area_mm2": 8591.674904919324, + "body_count": 1, + "edges": 24, + "faces": 11, + "vertices": 15, + "volume_mm3": 47589.7705835473 + }, + "seconds": 0.06135609, + "status": "pass" + }, "ladder/08-chamfers/001-equal-5": { "measured": { "area_mm2": 8599.26406871193, @@ -1993,5 +2001,5 @@ "status": "pass" } }, - "reason": "06/023 (1/2-14 NPT) passes: a taper thread's groove follows its crest cone, so no sliver of the flanks is left (volume 8226.4042 against the standard's 8226.4049); the other cases as recorded on SMLib 60b1c6a" + "reason": "07-fillets/016 and 018 round the r3 with its tangent chain, which takes the vertical edge their third round was to pick (refused: the pick names no edge); 020 and 021 are the same corners with the r3 alone, as 016 and 018 were recorded (021 measured on SMLib f12a101); 06/023 (1/2-14 NPT) passes: a taper thread's groove follows its crest cone, so no sliver of the flanks is left (volume 8226.4042 against the standard's 8226.4049); the other cases as recorded on SMLib 60b1c6a" }