Files
solidcraft/tests/kernel-cases/threads/2038-join-two-threaded-bodies/expected.json
T
Brennen HerbruckandClaude Opus 5.5 5f8a58956f Wave 56/509: kernel-cases: threads cases from modelled-thread reports (1 of 2)
1 commits, squashed; the originals stay reachable from tag archive/merge-main-develop.

- 04135da96 Brennen Herbruck: kernel-cases: threads cases from modelled-thread reports (1 of 2)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DtL5M41G8Nua7HvuFPZkmJ
2026-10-21 06:17:39 -04:00

27 lines
1.4 KiB
JSON

{
"sources": [
"tangency-labs/solidcraft#2038"
],
"what": "joining a body with an internal modelled thread to one with an external modelled thread, touching in a plane (the join ran for over ten minutes)",
"source": "analytic",
"method": "ISO 68-1 basic profile: H = P sqrt3/2, basic depth 5H/8. External groove (the space between teeth): a trapezoid P/4 wide at the root radius d/2 - 5H/8, widening by 2 tan30 per unit of radius to 7P/8 at d/2. Internal groove: P/8 wide at the major radius d/2, widening to 3P/4 at the minor radius, cut only where there is material (r >= hole radius). Pappus: volume per turn = 2 pi A rc (A the trapezoid area, rc its centroid radius from the axis); a helical sweep of L/P turns removes exactly (L/P) x that, where each end of the thread is a free end or lies inside material. A as in the one-body case (V_A = 8400.9644). B: cylinder R=13.05 h=14 with M26.1x1.814 over its whole length, both ends free: V_B = pi 13.05^2 14 - (14/1.814) x 79.63016 = 6875.7294. They touch only in the plane z=12 (B's flat end on A's flat top), so the join is one solid with V = V_A + V_B = 15276.6938 mm3. Tolerance 1%: a modelled thread is a faceted helical solid (radial chord error up to 1% of the pitch on every wall, i.e. a volume deficit of about 4/3 x sag/R).",
"outcome": "solid",
"body_count": 1,
"volume_mm3": 15276.6938,
"tolerance": {
"rel": 0.01
},
"bbox": {
"min": [
-16,
-16,
0
],
"max": [
16,
16,
26
]
}
}