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
7.4 KiB
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). 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 |