kernel-cases: ladder 07/019, a concave corner's G2 patch

The inner corner of a 20 x 20 x 10 notch in the 60 x 40 x 20 box, three
concave r5 rounds with corner: g2: one valid body of 13 faces within the box,
the patch's twelve seams jumping at most 1e-3 per mm clear of the hole's six
corners (2.7e-4 measured; the ball corner jumps 0.2). The continuity check
looks within 11 mm of the corner: the vertical round, 2.5 mm long past its
setback, meets its faces 11.2 mm out with every round's G1 jump.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
jyviko
2026-10-26 13:37:34 -04:00
committed by Irakli Kourtis
parent 8089137776
commit ba38fbd2af
5 changed files with 107 additions and 0 deletions
@@ -0,0 +1,30 @@
{
"sources": [],
"what": "three concave r5 rounds at the inner corner of a 20x20x10 notch, with the g2 corner patch",
"source": "invariants",
"method": "the notch's inner corner (40,20,10), three concave edges, set back 1.5 r = 7.5 and filled with one patch G2 to the three rounds and the three faces; one valid body with the faces of the ball corner (13); across the patch's seams the curvature jump is at most 1e-3 per mm (the ball's corner jumps 1/r = 0.2) clear of the six points where a round's section ends on a face (within 11 mm of the corner: the hole reaches 7.5 sqrt 2; the vertical round, 2.5 mm long past its setback, meets its faces 11.2 mm out, with the G1 jump every round has)",
"body_count": 1,
"faces": 13,
"bbox": {
"min": [
0,
0,
0
],
"max": [
60,
40,
20
]
},
"continuity": {
"near": [
40,
20,
10
],
"within_mm": 11,
"clear_mm": 1.2,
"curvature_jump_per_mm": 0.001
}
}
@@ -0,0 +1,53 @@
{
"base": "../../01-primitives/001-box",
"commands": [
{
"command": "solid.box",
"params": {
"corner": [
40,
20,
10
],
"length": 30,
"width": 30,
"height": 20,
"body_name": "Notch"
}
},
{
"command": "solid.combine",
"params": {
"target": "Part",
"tools": [
"Notch"
],
"operation": "cut"
}
},
{
"command": "solid.fillet",
"params": {
"edges": [
[
50,
20,
10
],
[
40,
30,
10
],
[
40,
20,
15
]
],
"radius": 5,
"corner": "g2"
}
}
]
}
+12
View File
@@ -1200,6 +1200,18 @@
"seconds": 2.184099933,
"status": "pass"
},
"ladder/07-fillets/019-concave-corner-g2-patch": {
"measured": {
"area_mm2": 8702.800595617835,
"body_count": 1,
"edges": 33,
"faces": 13,
"vertices": 22,
"volume_mm3": 44254.3419135911
},
"seconds": 2.217877403,
"status": "pass"
},
"ladder/07-fillets/016-corner-three-sequential-r5-r3-r7": {
"seconds": 0.045599545,
"status": "pass"
+1
View File
@@ -124,6 +124,7 @@
{
"cases": [
"ladder/07-fillets/015-corner-g2-patch",
"ladder/07-fillets/019-concave-corner-g2-patch",
"ladder/07-fillets/006-variable-r5-to-zero",
"ladder/07-fillets/001-single-edge-r5",
"ladder/07-fillets/007-variable-r5-to-1e-3",
+11
View File
@@ -871,6 +871,17 @@ case(T7, "015-corner-g2-patch", "three r5 rounds at a corner with the g2 corner
"(the ball's corner, 009, jumps 1/r = 0.2) clear of the six points where a round's section ends on a face, where the round's "
"own G1 seam with the face ends (the patch passes from one curvature to the other within 15% of each side: 1.2 mm covers it)",
base=B1, source="invariants")
notch = [[50, 20, 10], [40, 30, 10], [40, 20, 15]]
case(T7, "019-concave-corner-g2-patch", "three concave r5 rounds at the inner corner of a 20x20x10 notch, with the g2 corner patch",
[box([40, 20, 10], 30, 30, 20, body_name="Notch"), C("solid.combine", target="Part", tools=["Notch"], operation="cut"),
F(notch, 5, corner="g2")],
{"body_count": 1, "faces": 13, "bbox": {"min": [0, 0, 0], "max": [60, 40, 20]},
"continuity": {"near": [40, 20, 10], "within_mm": 11, "clear_mm": 1.2, "curvature_jump_per_mm": 0.001}},
"the notch's inner corner (40,20,10), three concave edges, set back 1.5 r = 7.5 and filled with one patch G2 to the three "
"rounds and the three faces; one valid body with the faces of the ball corner (13); across the patch's seams the curvature "
"jump is at most 1e-3 per mm (the ball's corner jumps 1/r = 0.2) clear of the six points where a round's section ends on a face (within 11 mm of the corner: the hole reaches 7.5 sqrt 2; "
"the vertical round, 2.5 mm long past its setback, meets its faces 11.2 mm out, with the G1 jump every round has)",
base=B1, source="invariants")
V7 = V5 - 2 * SPANDREL * 25 * 20 - SPANDREL * 9 * 60 + SPANDREL * 1 * 2 * PI * (8 + XBAR * 1)
case(T7, "017-part-rounds", "the running part: r5 on the front vertical edges, r3 on the back wall's top front edge, r1 where the boss meets the top",
[F([[0, 0, 10], [60, 0, 10]], 5), F([[30, 30, 35]], 3), F([[23, 15, 20]], 1)],