mirror of
https://github.com/bherbruck/solidcraft.git
synced 2026-11-06 20:02:16 +00:00
b249100eae
Tiers: primitives; booleans in the degeneracy classes (coincident and coplanar faces, edge-on-edge, vertex-on-face, tangent along a line and a circle, near-tangent gaps and overlaps of 1e-3 and 1e-6 mm, seam and pole crossings) and cuts that end in a single line (a knife-edge wedge, a V groove and a cylinder that pinch the part in two, a hole tangent to a face, a notch flush with an end); line-and-arc extrudes and revolves (partial, touching the axis); spline profiles, sweeps and lofts; holes and tapped holes (blind, drilled, counterbore, countersink, M5-M8 taps, into a curved face, near and tangent to an edge, crossing); modelled threads (external, fine, partial, to a shoulder, internal, into a chamfer, at a filleted shoulder); fillets (constant, tangent chains, convex and concave, variable down to 1e-3 and to 0 at a vertex, corners with equal and unequal radii, g2 corners); chamfers (two distances, angle, three- and two-edge corners, curved); shells and offsets; patterns and mirrors (overlapping instances that cut a core free); and cumulative parts. A running part grows one tier at a time through `base` (back wall, revolved boss and slot, spline window, tapped holes, rounds, chamfers, shell, vents), and the last case adds its thread: it carries every tier. Answers are analytic wherever the geometry has them (Pappus, Steinmetz, ISO 68-1 basic thread profiles, exact Gauss quadrature of Bezier profiles, inclusion-exclusion for chamfered corners), otherwise invariants; each `method` gives the derivation, and tools/kernel-ladder/cases.py (standard-library Python, like tools/oracle-analytic) writes them. Capabilities SolidCraft lacks are `missing` cases: multi-start threads, thread runout lengths, fillet corner setbacks. The golden is the first recording on truck, each tier sorted by its time. SMLib booleans are not on this branch yet, so the smlib column records "not supported yet" for every case. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01QWhMwdqJYQKQq8RCLSL1LT