Kernel rig: exact volumes for 1213's bent-tube round and 4782's bar round, rel 1e-6

1213: the loft is a cubic skin through the five sections (ellipses between
them), not a torus; its volume 131601.597487935 by quadrature less the exact
rolling-ball removal 233.662461919 gives 131367.935026 (was a Pappus estimate
on a torus, 131360.148, at rel 5e-4).

4782: the section's area in closed form, 25 pi/3 - 5 sqrt(75) + 25, so
V = 630.2934873 (was a grid estimate, 630.293125).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01SdcgEu4Lr3moCCisdZShKz
This commit is contained in:
brett19
2026-11-02 01:29:28 -07:00
parent 820b7b6677
commit 967a1caa6d
2 changed files with 10 additions and 7 deletions
@@ -3,13 +3,13 @@
"tangency-labs/solidcraft#1213",
"tangency-labs/solidcraft#1291"
],
"what": "an R3 round on the end circle of a lofted tube whose axis bends (a 60 degree torus section)",
"what": "an R3 round on the end circle of a lofted tube whose axis bends 60 degrees",
"source": "analytic",
"method": "five circles R20 square to a centre arc of radius 100 turning 60 degrees, lofted: the tube is a torus section, V = pi*20^2*100*(pi/3) = 131594.7. The R3 round on the start circle removes the spandrel (1-pi/4) r^2 revolved about the tube axis (the end circle is a plain circle in the plane x=0) at its centroid radius R - r (5/6-pi/4)/(1-pi/4) = 19.33 (Pappus): 234.58. V = 131360.1. The loft passes through only five sections, so the tolerance is relaxed to 5e-4.",
"method": "five circles R20 square to a centre arc of radius 100 turning 60 degrees, lofted. SolidCraft's loft is a cubic skin interpolating the five sections at chord-length parameters 0, 1/4, 1/2, 3/4, 1 (knots 0^4 1/2 1^4); every section's control points move rigidly with its plane, so the wall is S(u,v) = C(v) + 20 cos(u) z + 20 sin(u) Y(v), C and Y the cubic interpolants of the section origins and in-plane directions. |Y| is not 1 between the given circles, so those sections are ellipses and the body is not a torus (exact torus: pi*20^2*100*pi/3 = 131594.725). Its volume by the divergence theorem, Gauss quadrature on the wall and the end caps, converged: 131601.597487935. The R3 round on the start circle (the plane x=0) removes the region between the cap, the wall and the rolling ball's canal surface, the ball centre found for each u along the moving spine (touching the cap and the wall), by the divergence theorem, converged to 1e-12: 233.662461919. Pappus on the spandrel (1-pi/4) r^2 at its centroid radius overstates it (234.576949197, exact only for a straight tube; an exact torus gives 233.731514056). V = 131601.597487935 - 233.662461919 = 131367.935026. The value holds for the loft built this way only: a loft with other parameters or knots is another body.",
"body_count": 1,
"volume_mm3": 131360.14839866068,
"volume_mm3": 131367.935026,
"tolerance": {
"rel": 0.0005
"rel": 1e-06
},
"continuity": {
"order": "g1"
@@ -4,10 +4,13 @@
],
"what": "the long top edge of a 5x5 bar rounded r10, wider than both faces it rounds",
"source": "analytic",
"method": "a convex round past its faces' far edges is built on the faces continued and its removal subtracted (smlib_fillet): the section keeps the bar's 5x5 square within the round's circle, centre (y,z) = (10,-5), radius 10: area 7.87866 (grid quadrature 4000^2); V = 80 area",
"method": "a convex round past its faces' far edges is built on the faces continued and its removal subtracted (smlib_fillet): the section keeps the bar's 5x5 square [0,5]x[0,5] (y,z) within the round's circle, centre (10,-5), radius 10. The circle crosses z=0 at y = 10-sqrt(75) and y=5 at z = sqrt(75)-5, and contains the corner (5,0), so with u = 10-y the area is integral from 5 to sqrt(75) of (sqrt(100-u^2) - 5) du = 50 (pi/3 - pi/6) - 5 (sqrt(75) - 5) = 25 pi/3 - 5 sqrt(75) + 25 = 7.8786686; V = 80 area = 2000 pi/3 - 400 sqrt(75) + 2000 = 630.2934873",
"body_count": 1,
"volume_mm3": 630.293125,
"volume_mm3": 630.2934873,
"continuity": {
"order": "g1"
},
"tolerance": {
"rel": 1e-06
}
}
}