Files
solvecraft/docs/kernel-smlib-sweeps-shell.md
T
jyviko b9e0543ef5 Wave 178/509: kernel-cases: the rig runs SMLib only and keeps each run's SMLib dumps
1 commits, squashed; the originals stay reachable from tag archive/merge-main-develop.

- 001c62ab1 jyviko: kernel-cases: the rig runs SMLib only and keeps each run's SMLib dumps

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DtL5M41G8Nua7HvuFPZkmJ
2026-10-22 07:31:00 -04:00

118 lines
7.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# SMLib: sweeps, threads, shell and offset
A triage of the regression rig's sweeps, threads and shell cases, and of the ladder's tiers 03
(analytic profiles), 04 (spline profiles), 06 (threads) and 09 (shells and offsets): 169 cases,
each run on SMLib (`solidcraft-cli kernel-cases`) on `kernel-smlib` at 4b8953726 and graded
against the case's own answer ([kernel-cases.md](kernel-cases.md)). This page lists only the
cases that do not pass, grouped by what goes wrong, worst first; it is kept by hand as fixes
land.
| | Cases | Pass |
|---|---|---|
| sweeps | 83 | 51 |
| threads | 28 | 11 |
| shell | 18 | 11 |
| ladder 03, 04, 06, 09 | 40 | 26 |
| **all** | **169** | **99** |
A thread off its hole's or shaft's size is refused on this branch (the owner's rule): those
cases pass by refusing, and are not listed.
## A. Wrong geometry (worst)
| Case | SMLib | SMLib's result |
|---|---|---|
| sweeps/2667-revolve-half-disc-three-quarters | fail | a half disc on the axis turned 270°: SMLib makes a quarter ball turned inside out (V = -226, want 679) |
| sweeps/3528-revolved-dome-cut-by-a-ball-on-its-seam | fail | the ball's cut is lost where it crosses the revolve's seam: V 48118, want 46425 |
| sweeps/2847-loft-rectangles-turning-through-half-a-turn | fail | inside out (V = -127, want 2262) |
| sweeps/450-revolve-spherical-shell-sketched-off-the-origin | fail | two shells where one is wanted, which the B-rep record can't close |
## B. Crash
| Case | SMLib | SMLib's result |
|---|---|---|
| ladder/09-shells-and-offsets/011-part-shell | crash | step 21 (solid.fillet) on the SMLib body: curve blend internal error "Two same vertices cannot construct an edge"; the fillet is the blends work's, not this page's |
## C. Threads: the groove's boolean fails SMLib's check
The groove (SMLib's screw sweep) cuts the body, and the result fails SMLib's own check: vertex
gaps of 1–6e-5 mm against vertex tolerances of 4–20e-6 mm (Test #0/#2 Bad Gap), an edge whose
geometry fails validation (Test #61), or a trim curve that does not lie on its edge when the
result is read back (SMLib export: pcurve).
| Case | SMLib | SMLib's result |
|---|---|---|
| ladder/06-threads/001-external-m10-full | fail | Bad Gap (1.89e-5 > 8.6e-6) |
| ladder/06-threads/002-external-m10x1-fine | fail | Test #61 bad edge |
| ladder/06-threads/003-external-m10-partial-length | fail | Bad Gap (1.91e-5 > 8.9e-6) |
| ladder/06-threads/004-external-m10-to-shoulder | fail | Bad Gap ×10 |
| ladder/06-threads/005-internal-m10-through | fail | Bad Gap (3.6e-5 > 1.8e-5) |
| ladder/06-threads/006-external-m10-into-chamfer | fail | Bad Gap |
| ladder/06-threads/007-external-m10-at-filleted-shoulder | fail | Bad Gap |
| ladder/06-threads/010-part-threaded-boss | fail | Bad Gap (2.26e-5 > 2.0e-5) |
| threads/1250-external-m10x1.5-shaft-full-length | fail | Bad Gap ×9 |
| threads/1395-long-external-m6-thread-24-turns | fail | Test #61 bad edge |
| threads/1995-m8x1-thread-in-7mm-hole | fail | Bad Gap (1.5e-5 > 7.5e-6) |
| threads/2038-cut-threaded-stud-from-bored-block | fail | Test #61 bad edge |
| threads/2038-internal-then-external-thread-on-one-body | fail | pcurve off its edge |
| threads/2038-join-two-threaded-bodies | fail | pcurve off its edge |
| threads/2193-modelled-m33x3.5-thread | fail | Bad Gap |
| threads/2209-fine-m44x1-thread-on-shaft | fail | Bad Gap ×7 |
| threads/2209-m44x1.5-thread-on-flange-hub | fail | Bad Gap (6.2e-5 > 2.05e-5) |
| threads/2406-modelled-m8-thread-in-6.8mm-pilot-hole | fail | Bad Gap |
| threads/2526-three-modelled-threads-in-one-body | fail | pcurve off its edge |
| threads/2822-modelled-thread-in-filleted-cube | fail | pcurve off its edge |
| threads/3311-two-tapped-holes-both-modelled-threaded | fail | pcurve off its edge |
| threads/3914-sketch-on-top-face-of-threaded-rounded-block | fail | pcurve off its edge (0.86 mm) |
| threads/3952-modelled-thread-in-blind-hole-of-revolved-ring | fail | pcurve off its edge |
| threads/4149-internal-thread-below-counterbore-filleted-rim | fail | Bad Gap |
| threads/602-fillet-hex-head-beside-modelled-thread | fail | Bad Gap |
## D. Coils and other sweeps in booleans
| Case | SMLib | SMLib's result |
|---|---|---|
| sweeps/793-coil-cut-by-a-box-above-a-plane | fail | pcurve off its edge |
| sweeps/793-coil-split-by-a-plane-across-its-axis | fail | pcurve off its edge |
| sweeps/2552-thread-groove-cut-by-a-square-coil-in-a-bore | fail | the boolean's result is not a closed solid |
| sweeps/96-loft-cut-box-sections-pad-first | fail | the boolean's result is not a closed solid |
| sweeps/96-loft-cut-box-sections-top-first | fail | the boolean's result is not a closed solid |
| sweeps/844-join-two-overlapping-swept-arc-walls | fail | boolean status 1006 |
| sweeps/3006-second-sweep-from-a-plane-along-a-closed-path | fail | read back: a face no shell uses |
## E. Shell and offset refused
| Case | SMLib | SMLib's result |
|---|---|---|
| ladder/09-shells-and-offsets/006-shell-rounds-r1-thinner-than-t2 | fail | shell status 1001 (rounds of r1 inside a 2 mm wall) |
| shell/1494-shell-box-with-cylinder-on-edge-line | fail | shell status 1001 |
| shell/1525-shell-box-with-rounds-chamfer-and-fillet | fail | shell status 1001 |
| shell/2939-offset-face-sphere | fail | check: edge/surface gap 5.015e-6 > 5e-6 |
| shell/3468-offset-face-boss-wall-next-to-fillet | fail | check: an edge tolerance of 2.0 mm |
| shell/2531-shell-point-pick-after-parameter-edit | fail | V 17952, want 22112: the shell's face pick after the edit |
| sweeps/2820-pipe-hollow-with-a-wall-along-a-bend | fail | sweep status 1001 |
## F. The engine or the case
| Case | SMLib | What |
|---|---|---|
| sweeps/3345-sweep-profile-mid-line-round-a-rounded-rectangle | fail | bbox ±46 × ±36, want ±32 × ±22: the profile's placement, not the kernel |
| sweeps/2516-revolve-about-a-named-construction-axis | fail | unknown sketch line `Axis1` |
| sweeps/3191-revolve-cut-leaves-a-cone | fail | the profile crosses the revolve axis |
| sweeps/4056-surface-loft-rails-…-stern-to-bow | fail | a guide rail misses section 2 |
| sweeps/2570-loft-circle-to-a-non-star-shaped-comb | fail | an arc turns more than once |
| shell/4009-closed-shell-internal-void | fail | `solid.shell` needs 1…1000 faces (a closed shell has none) |
| ladder/06-threads/008-multi-start-thread | unsupported | no start count yet |
| ladder/06-threads/009-thread-runout-length | unsupported | no runout length yet |
## G. No SMLib path yet ("not supported yet")
| What | Cases |
|---|---|
| sweep with a twist or an end scale | sweeps/1269-sweep-twisted-square-ninety-degrees, 2005-closed-sweep-twisted-new-body, 2005-closed-sweep-twisted-cut-inside-a-torus, 2891-twisted-sweep-cut-through-a-tube, 771-sweep-end-scale-cone-frustum |
| sweep along a path with corners | ladder/04/003-pipe-along-bezier, ladder/04/004-sweep-square-along-bezier, sweeps/96-sweep-rectangle-round-a-mitred-corner, 561-extrude-the-end-face-of-a-sweep, 3505-extrude-the-flat-wall-of-a-sweep-with-a-corner |
| loft through sections with holes | sweeps/1184-loft-ring-sections-keep-the-hole, 2435-loft-rectangular-ring-sections, 3111-loft-rectangular-ring-to-circular-ring |
| guide rails | sweeps/201-loft-one-guide-rail-cone-frustum, 771-sweep-one-guide-rail-cone-frustum, 771-sweep-two-guide-rails-cone-frustum |
| sweep along a path of points | sweeps/2862-three-pipes-meeting-at-one-point |
| draft extrusion with a straight foot | shell/391-deboss-text-on-flange-of-filleted-shelled-body |