diff --git a/tests/kernel-cases/fillets/1207-fillet-box-end-edge-into-unblended-round/expected.json b/tests/kernel-cases/fillets/1207-fillet-box-end-edge-into-unblended-round/expected.json index c7c237e6ff..6e90635c76 100644 --- a/tests/kernel-cases/fillets/1207-fillet-box-end-edge-into-unblended-round/expected.json +++ b/tests/kernel-cases/fillets/1207-fillet-box-end-edge-into-unblended-round/expected.json @@ -2,13 +2,14 @@ "sources": [ "tangency-labs/solidcraft#1207" ], - "what": "an edge that runs on tangentially into a round left out of the blend (tangent chain off) is rounded on past the round's end arc until it leaves the material", + "what": "an edge that runs on tangentially into a round's end arc, its tangent chain rounded with it: the r1 round follows the end face's outline over the r3 round and down the back edge", "source": "analytic", - "method": "cube 20 (V0 = 8000), its top back edge (y=20, z=20) rounded r3: removes 20 (9 - 9 pi/4) = 38.628316. The end face's top edge (x=0, z=20, y 0..17) then rounded r1 alone, tangent_chain false: over y 0..17 it removes 17 (1 - pi/4) = 3.648231; at y=17 the edge goes on tangentially into the r3 round's end arc, and the r1 round's cylinder (axis x=1, z=19) runs on along y through the r3 round, cutting the part of its section under the round's surface z = 17 + sqrt(9 - (y-17)^2) until that surface drops below z=19 at y = 17 + sqrt(5): with t = sqrt(9 - (y-17)^2) - 2, the section's area under it is t - (t sqrt(1-t^2) + asin t)/2, integrated over y 17..17+sqrt(5) (Simpson, 200000 steps) = 0.218236. V = 8000 - 38.628316 - 3.648231 - 0.218236 = 7957.505202", + "method": "cube 20 (V0 = 8000), its top back edge (y=20, z=20) rounded r3: removes 20 (9 - 9 pi/4) = 38.628331. The end face's top edge (x=0, z=20, y 0..17) then rounded r1 with its tangent chain: at y = 17 it runs on tangentially into the r3 round's end arc on x = 0 (convex, a quarter circle about y = z = 17), which runs on at (0, 20, 17) into the back upright (x=0, y=20, z 0..17), so the chain is those three edges; it ends at the front face y = 0 and the bottom z = 0, each square to its edge, so each straight round ends in a plane section. With A = 1 - pi/4 the r1 spandrel and c = r (10 - 3 pi)/(3 (4 - pi)) = 0.223368 its centroid's distance from either face: the top edge and the upright remove 17 A each; along the arc the spandrel, in the half plane through the r3 axis, lies at radius 3 - u from the axis (u its distance from the round's surface), and is turned through the arc's quarter turn: (pi/2) A (3 - c) = 0.935991 (Pappus). V = 8000 - 38.628331 - 34 A - 0.935991 = 7953.139216. Faces: the cube's 6, the r3 round, and the r1 chain's three (cylinder, torus, cylinder): 10.", "outcome": "solid", "body_count": 1, - "volume_mm3": 7957.505202, + "volume_mm3": 7953.139216025938, "continuity": { "order": "g1" - } + }, + "faces": 10 } diff --git a/tests/kernel-cases/fillets/851-fillet-top-front-then-front-left-upright/expected.json b/tests/kernel-cases/fillets/851-fillet-top-front-then-front-left-upright/expected.json index f47364e637..5926330391 100644 --- a/tests/kernel-cases/fillets/851-fillet-top-front-then-front-left-upright/expected.json +++ b/tests/kernel-cases/fillets/851-fillet-top-front-then-front-left-upright/expected.json @@ -3,9 +3,9 @@ "tangency-labs/solidcraft#851", "tangency-labs/solidcraft#854" ], - "what": "on #851's knife-edge part (tessellation/1263): the top front edge R2, then the front-left upright R2 as a fillet of its own, ending in the first round", - "source": "invariants", - "method": "the rolling ball of R2 fits on every one of these edges and where they meet; the corner between rounds that end in each other has no closed form here: one closed valid solid whose display mesh closes. Each round meets the faces it rolls on G1: graded at its seams' middles (the top front round's at z = 8 on the front and y = -19 on the top; the arc's at rho 23 on the top and rho 21, z = 8 on the wall; the uprights' at their contacts, z = 5). Where a round ends on a face or on another round the seam is a crease by construction and is not graded.", + "what": "on #851's knife-edge part (tessellation/1263): the top front edge R2, then the front-left upright R2 with its tangent chain: up the first round's end arc and along the left top edge", + "source": "analytic", + "method": "plate x 0..41.1667, y -21..0 and the corner x 41.1667..62.1667 less the cylinder r 21 about (62.1667, -21), 10 high (tessellation/1263): V0 = 10 (62.1667 x 21 - pi 21^2/4) = 9591.394099. The top front edge rounded R2 first: no ball of R2 inside the part (centre y >= -19, z <= 8) reaches its spandrel (y in [-21,-19], z in [8,10], outside the circle about (-19, 8)), so it removes the spandrel's material, from x = 0 to the wall x_w(y) = 62.1667 - sqrt(441 - (y+21)^2): Int over the spandrel of x_w(y) = 35.344727 (Simpson in y = -19 - 2 sin t, 200000 steps). Then the front-left upright (x=0, y=-21, z 0..8) with its tangent chain: at z = 8 it runs on tangentially into the first round's end arc on x = 0 (a quarter circle about y = -19, z = 8, convex), which runs on at (0, -19, 10) into the left top edge (x=0, z=10, y -19..0), ending on the back face y = 0, square to it. The three are the corner's other two edges and the arc between: the result is the part with all three edges at (0, -21, 10) rolled by the R2 ball, its corner the ball's eighth about (2, -19, 8) (the arc's round is the torus of tube centre radius 0 about the first round's axis, the ball itself). With A = (4 - pi) the R2 spandrel: the upright removes 8 A and the left top edge 19 A; in the corner cube [0,2] x [-21,-19] x [8,10] the first round left the quarter cylinder 2 pi and the ball leaves its eighth 4 pi/3: 2 pi/3. V = 9591.394099 - 35.344727 - 27 A - 2 pi/3 = 9530.777979. Faces: the part's 6, the first round, and the chain's three (cylinder, sphere, cylinder): 10. Each round meets the faces it rolls on G1: graded at its seams' middles (the top front round's at z = 8 on the front and y = -19 on the top; the uprights' at their contacts, z = 5).", "body_count": 1, "watertight": true, "continuity": { @@ -32,5 +32,7 @@ 5 ] ] - } + }, + "volume_mm3": 9530.777979288185, + "faces": 10 }