mirror of
https://github.com/bherbruck/solidcraft.git
synced 2026-11-03 02:25:55 +00:00
Ladder: the variable rounds graded to 1e-6 by the union of their balls; 012 by its law going on past the edge
At the default 1e-3 the great circles' volumes (4e-6 off) passed too. SMLib builds each within 1.6e-7. The golden takes the new volumes and areas; counts unchanged. The G2 corner test listed as failing passes on SMLib's step 3 and leaves the list. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -17,7 +17,6 @@ solidcraft-kernel::blend_corner::tests::issue2422_vertical_after_separate_bottom
|
||||
solidcraft-kernel::blend_corner::tests::three_rounds_at_a_corner the corner's variable-radius transition between rounds of different radii (its elliptic law, a rail edge the corner interpolates) meets its neighbours at 0.144 degrees once its sections are the balls' touch circles (0 with the great circles); the corner step replaces that transition
|
||||
solidcraft-kernel::blend_variable::tests::variable_radius_with_a_corner_through_a_middle_point the two halves' rounds end on their own touch circles at the law's corner and the ball's sphere between them is not built: 39.8302 removed against 39.5410
|
||||
solidcraft-kernel::corner_g2::tests::a_long_setback_keeps_the_g2_patch_inside_the_box at set backs 11 to 15 the G2 corner patch bulges 2.6e-6 to 1.33e-3 past the box (the explicit corner is in progress)
|
||||
solidcraft-kernel::corner_g2::tests::curvature_rounds_meet_at_a_g2_corner the explicit G2 corner patch is not yet G2 to the new order-2 section's rounds across the whole seam (the corner step replaces it)
|
||||
solidcraft-kernel::corner_g2::tests::the_box_corner_g2_patch_is_a_closed_solid_curvature_continuous_to_its_neighbours the fitted G2 corner patch bulges 1.7e-5 past the box, which SMLib's exact tight box now sees (the explicit G2 corner builds it inside)
|
||||
solidcraft-kernel::tests::fillet_tabbed_plate_outer_loop_and_partial_selection_after_hole the arc and tab rounds together remove 9.20067 against 9.20420 (3.8e-4 off, 1e-5 allowed)
|
||||
solidcraft-smlib::ops::tests::a_variable_round_with_a_corner_in_its_law_is_its_balls_union the two halves' rounds end on their own touch circles at the law's corner, not where they cross: 39.6456 removed against 39.5421
|
||||
|
||||
@@ -5,5 +5,8 @@
|
||||
"method": "linear radius: the balls' envelope, a cone (union of the balls: in each plane x = const the corner cut off by rays from it, each meeting the union first at the least entry over the balls, integrated over x): 132.858501 removed (the balls' great circles, (1-pi/4) L (a^2 + ab + b^2)/3 (tests/oracle/77), would take 133.053)",
|
||||
"body_count": 1,
|
||||
"volume_mm3": 47867.141499,
|
||||
"faces": 7
|
||||
"faces": 7,
|
||||
"tolerance": {
|
||||
"rel": 1e-06
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5,5 +5,8 @@
|
||||
"method": "as 005 with b=0 (tests/oracle/78): the cone's apex at the x=60 vertex, which stays; 107.055974 removed (great circles: 107.301)",
|
||||
"body_count": 1,
|
||||
"volume_mm3": 47892.944026,
|
||||
"faces": 7
|
||||
"faces": 7,
|
||||
"tolerance": {
|
||||
"rel": 1e-06
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5,5 +5,8 @@
|
||||
"method": "as 005 with b = 1e-3: the round's end a 1e-3 mm circle on the end face; 107.077487 removed (great circles: 107.322)",
|
||||
"body_count": 1,
|
||||
"volume_mm3": 47892.922513,
|
||||
"faces": 7
|
||||
"faces": 7,
|
||||
"tolerance": {
|
||||
"rel": 1e-06
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,9 +2,9 @@
|
||||
"sources": [],
|
||||
"what": "a vertical r5 round, then a variable round r1 -> r5 along the top back edge into it",
|
||||
"source": "analytic",
|
||||
"method": "a variable round takes only its picked edge (no tangent chain: crates/doc/src/eval.rs), y = 40 from x = 0 (r1) to x = 55 (r5), where it meets the vertical r5 round's tangent line. The linear law's balls envelop a cone (union of the balls: in each plane x = const the corner cut off by rays from it, each meeting the union first at the least entry over the balls, integrated over x): 121.753137 removed along 55 (the great circles' (1-pi/4) 55 (1 + 5 + 25)/3 would take 121.965377), and (1-pi/4) 5^2 20 by the vertical round. Past x = 55 the round's end runs on into the vertical round's quarter column, trimmed by its cylinder: as a constant r5 tube that takes int_0^5 sqrt(25 - v^2)(5 - sqrt(25 - v^2)) dv = 125 pi/4 - 250/3 = 14.841437; with its radius still growing at 4/55 per mm (the cone going on), 15.820019 (the union of the balls, cut by the cylinder). V lies between: graded as the interval's middle with its half width as the tolerance. Faces 6 + 2; edges 18, vertices 12 (5 round the bottom, 5 vertical, 5 round the top face, the round's line on the back wall, its end arc on x = 0, its trim on the cylinder)",
|
||||
"method": "a variable round takes only its picked edge (no tangent chain: crates/doc/src/eval.rs), y = 40 from x = 0 (r1) to x = 55 (r5), where it meets the vertical r5 round's tangent line. The linear law's balls envelop a cone (union of the balls: in each plane x = const the corner cut off by rays from it, each meeting the union first at the least entry over the balls, integrated over x): 121.753137 removed along 55 (the great circles' (1-pi/4) 55 (1 + 5 + 25)/3 would take 121.965377), and (1-pi/4) 5^2 20 by the vertical round. Past x = 55 the round's end runs on into the vertical round's quarter column, trimmed by its cylinder, its radius still growing at 4/55 per mm as the law goes on past the edge's end (SMLib's variable round; capi ops_kernel, the R5 corner case): the cone going on, 15.820019 (the union of the balls, cut by the cylinder). V = 48000 - 121.753137 - 107.300918 - 15.820019 = 47755.125926 (a constant r5 tube past x = 55 would take 14.841437). Faces 6 + 2; edges 18, vertices 12 (5 round the bottom, 5 vertical, 5 round the top face, the round's line on the back wall, its end arc on x = 0, its trim on the cylinder)",
|
||||
"body_count": 1,
|
||||
"volume_mm3": 47755.615217,
|
||||
"volume_mm3": 47755.125926,
|
||||
"faces": 8,
|
||||
"edges": 18,
|
||||
"vertices": 12,
|
||||
@@ -21,6 +21,6 @@
|
||||
]
|
||||
},
|
||||
"tolerance": {
|
||||
"rel": 1.024573e-05
|
||||
"rel": 1e-06
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1234,36 +1234,36 @@
|
||||
},
|
||||
"ladder/07-fillets/005-variable-r5-to-r1": {
|
||||
"measured": {
|
||||
"area_mm2": 8717.217924050128,
|
||||
"area_mm2": 8717.28253785695,
|
||||
"body_count": 1,
|
||||
"edges": 15,
|
||||
"faces": 7,
|
||||
"vertices": 10,
|
||||
"volume_mm3": 47866.939865273875
|
||||
"volume_mm3": 47867.134444772186
|
||||
},
|
||||
"seconds": 0.020330867,
|
||||
"status": "pass"
|
||||
},
|
||||
"ladder/07-fillets/006-variable-r5-to-zero": {
|
||||
"measured": {
|
||||
"area_mm2": 8730.326099306438,
|
||||
"area_mm2": 8730.41162701569,
|
||||
"body_count": 1,
|
||||
"edges": 14,
|
||||
"faces": 7,
|
||||
"vertices": 9,
|
||||
"volume_mm3": 47892.69344121365
|
||||
"volume_mm3": 47892.93831039204
|
||||
},
|
||||
"seconds": 0.01733797,
|
||||
"status": "pass"
|
||||
},
|
||||
"ladder/07-fillets/007-variable-r5-to-1e-3": {
|
||||
"measured": {
|
||||
"area_mm2": 8730.313207922401,
|
||||
"area_mm2": 8730.398716300346,
|
||||
"body_count": 1,
|
||||
"edges": 15,
|
||||
"faces": 7,
|
||||
"vertices": 10,
|
||||
"volume_mm3": 47892.671975647136
|
||||
"volume_mm3": 47892.91679617965
|
||||
},
|
||||
"seconds": 0.009474805,
|
||||
"status": "pass"
|
||||
@@ -1318,12 +1318,12 @@
|
||||
},
|
||||
"ladder/07-fillets/012-variable-into-rounded-corner": {
|
||||
"measured": {
|
||||
"area_mm2": 8665.870097489847,
|
||||
"area_mm2": 8665.945693079353,
|
||||
"body_count": 1,
|
||||
"edges": 18,
|
||||
"faces": 8,
|
||||
"vertices": 12,
|
||||
"volume_mm3": 47754.87240844197
|
||||
"volume_mm3": 47755.118560955016
|
||||
},
|
||||
"seconds": 0.050985104,
|
||||
"status": "pass"
|
||||
|
||||
Reference in New Issue
Block a user