solidcraft-smlib: SMLib at the candidate: solver statuses, range-end refinement, arc sweeps as cylinders (fork 1c8e415)

The candidate rig: 318/372 cases pass (from 267), the ladder 93/116 (from 61).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017itGh5fpMEousnZ91cYcVt
This commit is contained in:
jyviko
2026-10-22 09:01:26 -04:00
parent c26d4b33c8
commit 9f5ad20c21
2 changed files with 112 additions and 112 deletions
+1 -1
View File
@@ -1 +1 @@
84006904f9b3585ece75f5d6a3f0028618cb3550
1c8e4154320a4b14332ab21269a5a28e5d64d325
+111 -111
View File
@@ -8,15 +8,15 @@ The cases run on SMLib, SolidCraft's kernel. A failing case stays failing until
| Area | Cases | Results |
|---|---|---|
| booleans | 89 | 18 fail, 2 hang, 66 pass, 3 unsupported |
| booleans | 89 | 20 fail, 1 hang, 68 pass |
| crashes | 10 | 2 fail, 2 hang, 6 pass |
| fillets | 50 | 8 fail, 41 pass, 1 unsupported |
| import | 23 | 4 fail, 17 pass, 2 unsupported |
| sheet-metal | 57 | 3 fail, 54 pass |
| shell | 18 | 6 fail, 11 pass, 1 unsupported |
| sweeps | 83 | 1 crash, 15 fail, 1 hang, 51 pass, 15 unsupported |
| tessellation | 14 | 1 fail, 13 pass |
| threads | 28 | 17 fail, 1 hang, 10 pass |
| fillets | 50 | 3 fail, 46 pass, 1 unsupported |
| import | 23 | 2 fail, 21 pass |
| sheet-metal | 57 | 4 fail, 1 hang, 52 pass |
| shell | 18 | 7 fail, 11 pass |
| sweeps | 83 | 7 fail, 1 hang, 75 pass |
| tessellation | 14 | 14 pass |
| threads | 28 | 1 fail, 2 hang, 25 pass |
372 cases from 473 sources; answers: 324 analytic, 48 invariants.
@@ -33,7 +33,7 @@ The cases run on SMLib, SolidCraft's kernel. A failing case stays failing until
| booleans/1355-concentric-hole-through-drilled-recess | [tangency-labs/solidcraft#1355](https://github.com/tangency-labs/solidcraft/issues/1355) [tangency-labs/solidcraft#1736](https://github.com/tangency-labs/solidcraft/issues/1736) | a drilled O8.5 recess (118 deg drill point) in a plate, then a O4 hole through its centre: the second cut 'does not work' | analytic | pass |
| booleans/1647-box-cylinder-general-intersect | [tangency-labs/solidcraft#1647](https://github.com/tangency-labs/solidcraft/issues/1647) | a box and a cylinder in general position (nothing coincident or tangent): Intersect refused as an implausible volume | analytic | pass |
| booleans/1649-crossing-cylinders-union-far-from-origin | [tangency-labs/solidcraft#1649](https://github.com/tangency-labs/solidcraft/issues/1649) | union of two crossing cylinders, both moved (1000,-700,300) mm: volume lost with position | analytic | pass |
| booleans/168-rim-touching-coin-along-a-circle-only | [tangency-labs/solidcraft#168](https://github.com/tangency-labs/solidcraft/issues/168) | a rim on a coin's top face that meets the coin along one circle only (no shared area, no shared volume): it must not be joined into it | analytic | **FAIL**: shells Coin: 2 (want 1); record_valid the operation failed: lumps: shell boundaries intersect or touch; cavity ownership is ambiguous (want ok); smlib_check the operation failed: lumps: shell boundaries intersect or touch; cavity ownership is ambiguous (want ok); body_count 1 (want 2) |
| booleans/168-rim-touching-coin-along-a-circle-only | [tangency-labs/solidcraft#168](https://github.com/tangency-labs/solidcraft/issues/168) | a rim on a coin's top face that meets the coin along one circle only (no shared area, no shared volume): it must not be joined into it | analytic | **FAIL**: shells Coin: 2 (want 1); body_count 1 (want 2) |
| booleans/1717-two-overlapping-sphere-cuts | [tangency-labs/solidcraft#1717](https://github.com/tangency-labs/solidcraft/issues/1717) [tangency-labs/solidcraft#2158](https://github.com/tangency-labs/solidcraft/issues/2158) | a second sphere cut overlapping an earlier sphere cut on a box edge: 'no result' | analytic | pass |
| booleans/1730-cut-short-of-far-face-keeps-skin | [tangency-labs/solidcraft#1730](https://github.com/tangency-labs/solidcraft/issues/1730) | an extrude cut whose profile stops 0.25 mm short of a wall's far face must leave that skin (it was grown through) | analytic | pass |
| booleans/1858-shallow-cuts-after-earlier-pocket | [tangency-labs/solidcraft#1765](https://github.com/tangency-labs/solidcraft/issues/1765) [tangency-labs/solidcraft#1858](https://github.com/tangency-labs/solidcraft/issues/1858) | two 1.5 mm circular cuts overlapping an earlier 0.75 mm pocket (timeline roll-back, insert, redefine): the cut came out empty | analytic | pass |
@@ -41,33 +41,33 @@ The cases run on SMLib, SolidCraft's kernel. A failing case stays failing until
| booleans/1910-coaxial-cylinders-intersect | [tangency-labs/solidcraft#1910](https://github.com/tangency-labs/solidcraft/issues/1910) [tangency-labs/solidcraft#1865](https://github.com/tangency-labs/solidcraft/issues/1865) | intersection of two cylinders of one radius on one axis (z 0..30 and 22..46) whose round sides lie in each other over the shared 8 mm | analytic | pass |
| booleans/1927-delete-pocket-face-restores-plate | [tangency-labs/solidcraft#1927](https://github.com/tangency-labs/solidcraft/issues/1927) | Delete Face on the 0.5 mm deep O15 recess of a plate: the face around the gap must keep its surface | analytic | pass |
| booleans/1949-extrude-side-drawn-in-collinear-pieces | [tangency-labs/solidcraft#1949](https://github.com/tangency-labs/solidcraft/issues/1949) | a profile side drawn as two collinear lines extrudes into one flat face, not two with an edge between them | analytic | pass |
| booleans/1949-tapered-extrude-side-in-collinear-pieces | [tangency-labs/solidcraft#1949](https://github.com/tangency-labs/solidcraft/issues/1949) | with a taper too, a side drawn in two collinear pieces is one face | analytic | pass |
| booleans/1949-tapered-extrude-side-in-collinear-pieces | [tangency-labs/solidcraft#1949](https://github.com/tangency-labs/solidcraft/issues/1949) | with a taper too, a side drawn in two collinear pieces is one face | analytic | **FAIL**: faces 14 (want 6) |
| booleans/1984-near-coaxial-pin-overlaps-bore-wall | [tangency-labs/solidcraft#1984](https://github.com/tangency-labs/solidcraft/issues/1984) | the overlap of a pin 0.00056 mm off the axis of a bore of its own radius (r=3, 9.65 long): a thin crescent. The report's STEP round trip is left out; this is the geometry | analytic | pass |
| booleans/1984-rivet-with-flush-heads-a-hair-off-its-hole | [tangency-labs/solidcraft#1984](https://github.com/tangency-labs/solidcraft/issues/1984) | a rivet (shank r=2, heads r=4 flat on both faces of a 1.5 mm sheet) 0.004 mm off the axis of its hole: overlap with the sheet is the shank's crescent; the heads touch the sheet faces over an area but add no volume | analytic | pass |
| booleans/2003-mirror-feature-join-flush-with-mirror-plane | [tangency-labs/solidcraft#2003](https://github.com/tangency-labs/solidcraft/issues/2003) | mirror a feature with Join: the image meets its original along the mirror plane and the join was refused for its volume | analytic | pass |
| booleans/2008-coaxial-cylinders-join-one-wall | [tangency-labs/solidcraft#2008](https://github.com/tangency-labs/solidcraft/issues/2008) [tangency-labs/solidcraft#1986](https://github.com/tangency-labs/solidcraft/issues/1986) | a join of coaxial cylinders of one radius whose walls overlap leaves one cylindrical wall in one face (it came out as a stack of faces, so a later chamfer on its top edge refused) | analytic | pass |
| booleans/2055-countersink-holes-from-several-sketch-points | [tangency-labs/solidcraft#2055](https://github.com/tangency-labs/solidcraft/issues/2055) | a countersunk hole at two sketch points at once, in a design with several bodies: 'there is no body to cut or intersect' (one point works) | analytic | pass |
| booleans/2076-rectangular-pattern-of-cylinder-join | [tangency-labs/solidcraft#2076](https://github.com/tangency-labs/solidcraft/issues/2076) | a rectangular pattern of a cylinder join (pin-fin plate) scales quadratically in time | analytic | pass |
| booleans/2464-extrude-join-leaves-hidden-body-alone | [tangency-labs/solidcraft#2464](https://github.com/tangency-labs/solidcraft/issues/2464) [tangency-labs/solidcraft#2465](https://github.com/tangency-labs/solidcraft/issues/2465) | an Extrude Join onto a plate with a hidden coincident copy: the hidden body must not be joined in | analytic | **FAIL**: body_count 1 (want 2); volume_mm3 8816 (want 16816) |
| booleans/2464-extrude-join-leaves-hidden-body-alone | [tangency-labs/solidcraft#2464](https://github.com/tangency-labs/solidcraft/issues/2464) [tangency-labs/solidcraft#2465](https://github.com/tangency-labs/solidcraft/issues/2465) | an Extrude Join onto a plate with a hidden coincident copy: the hidden body must not be joined in | analytic | pass |
| booleans/2524-circular-pattern-of-bore-cut | [tangency-labs/solidcraft#2524](https://github.com/tangency-labs/solidcraft/issues/2524) | a circular pattern (count 2, 360 deg, about Y) of a cut made off-axis: 'boolean Cut: no result' | analytic | pass |
| booleans/2564-joined-side-run-wrapping-past-loop-start | [tangency-labs/solidcraft#2564](https://github.com/tangency-labs/solidcraft/issues/2564) [tangency-labs/solidcraft#1949](https://github.com/tangency-labs/solidcraft/issues/1949) | an extrude of an outline whose bottom side is drawn as two collinear pieces that wrap past the loop's first segment ((10,0)->(20,0) ... (0,0)->(10,0)): the bottom is one face | analytic | pass |
| booleans/2580-clip-round-small-hole-of-long-plate | [tangency-labs/solidcraft#2580](https://github.com/tangency-labs/solidcraft/issues/2580) [tangency-labs/solidcraft#2579](https://github.com/tangency-labs/solidcraft/issues/2579) | a 16 mm box cut out round a small (r 1.8) hole of a 3 m long, 2 mm plate keeps the hole in both faces | analytic | pass |
| booleans/2583-taper-side-drawn-in-collinear-pieces | [tangency-labs/solidcraft#2583](https://github.com/tangency-labs/solidcraft/issues/2583) | a tapered extrude of a 20x10 rectangle whose bottom side is drawn as two collinear pieces: the sloped side is one face | analytic | pass |
| booleans/2601-taper-with-start-offset | [tangency-labs/solidcraft#2601](https://github.com/tangency-labs/solidcraft/issues/2601) | a tapered extrude whose start is offset along the sketch normal (the app says: not supported yet: taper with two-sided, symmetric or offset extents) | analytic | pass |
| booleans/2754-taper-extrude-line-arc-corner | [tangency-labs/solidcraft#2754](https://github.com/tangency-labs/solidcraft/issues/2754) | a tapered extrude of a profile in which an arc meets a line at a corner (a half disc) | analytic | **FAIL**: step 5 (solid.extrude): SMLib extrude: SMLib's result is not a closed solid |
| booleans/2583-taper-side-drawn-in-collinear-pieces | [tangency-labs/solidcraft#2583](https://github.com/tangency-labs/solidcraft/issues/2583) | a tapered extrude of a 20x10 rectangle whose bottom side is drawn as two collinear pieces: the sloped side is one face | analytic | **FAIL**: faces 14 (want 6) |
| booleans/2601-taper-with-start-offset | [tangency-labs/solidcraft#2601](https://github.com/tangency-labs/solidcraft/issues/2601) | a tapered extrude whose start is offset along the sketch normal (the app says: not supported yet: taper with two-sided, symmetric or offset extents) | analytic | **FAIL**: faces 14 (want 6) |
| booleans/2754-taper-extrude-line-arc-corner | [tangency-labs/solidcraft#2754](https://github.com/tangency-labs/solidcraft/issues/2754) | a tapered extrude of a profile in which an arc meets a line at a corner (a half disc) | analytic | **FAIL**: faces 8 (want 4) |
| booleans/2755-mirror-copy-keeps-seed-targets | [tangency-labs/solidcraft#2755](https://github.com/tangency-labs/solidcraft/issues/2755) | the mirror copy of a primitive cut changes only the seed's targets, not a body the seed was told to leave alone | analytic | pass |
| booleans/2755-pattern-copies-keep-seed-targets | [tangency-labs/solidcraft#2755](https://github.com/tangency-labs/solidcraft/issues/2755) | copies of a primitive cut made with a rectangular pattern change only the seed's targets, not a body the seed was told to leave alone | analytic | pass |
| booleans/2801-prism-edge-in-round-cornered-slab-end-face | [tangency-labs/solidcraft#2801](https://github.com/tangency-labs/solidcraft/issues/2801) | a join of a triangular prism and a thin slab with rounded corners (r 4.9) that share their bottom plane, the prism's edge in that plane lying in the slab's end face | analytic | **FAIL**: step 11 (solid.combine): SMLib boolean: SMLib's check refuses the result: 2 failed tests: SmTrimmingTools::Test #0 Edge/Edge Gap: Gap between edge endPoints exc |
| booleans/2801-prism-edge-in-round-cornered-slab-end-face | [tangency-labs/solidcraft#2801](https://github.com/tangency-labs/solidcraft/issues/2801) | a join of a triangular prism and a thin slab with rounded corners (r 4.9) that share their bottom plane, the prism's edge in that plane lying in the slab's end face | analytic | pass |
| booleans/2810-taper-extrude-arcs-meeting-at-corners | [tangency-labs/solidcraft#2810](https://github.com/tangency-labs/solidcraft/issues/2810) [tangency-labs/solidcraft#2813](https://github.com/tangency-labs/solidcraft/issues/2813) | a tapered extrude of a loop of arcs on three circles meeting at sharp corners (a circle with a lobe on each side); the walls must meet at the corners | analytic | **FAIL**: faces 14 (want 6) |
| booleans/2826-cut-up-to-face-leaves-no-skin | [tangency-labs/solidcraft#2826](https://github.com/tangency-labs/solidcraft/issues/2826) [tangency-labs/solidcraft#2827](https://github.com/tangency-labs/solidcraft/issues/2827) | a cut that ends exactly in a face of its target (the plate's top face) must open the hole, not leave a zero-thickness skin over it | analytic | pass |
| booleans/2896-join-arm-end-into-ring-wall | [tangency-labs/solidcraft#2896](https://github.com/tangency-labs/solidcraft/issues/2896) | a join of a ring (R30/R24, 6 tall) and an arm with a convex R5 end whose tip runs 0.1 mm into the ring's outer wall (curved faces that nearly graze) | analytic | pass |
| booleans/2896-join-arm-end-near-ring-wall-gap | [tangency-labs/solidcraft#2896](https://github.com/tangency-labs/solidcraft/issues/2896) | a join of a ring and an arm whose R5 convex tip stops 0.01 mm short of the ring's outer wall: nothing overlaps, so nothing fuses | analytic | **FAIL**: shells Ring: 2 (want 1); body_count 1 (want 2) |
| booleans/2896-join-arm-end-near-ring-wall-gap | [tangency-labs/solidcraft#2896](https://github.com/tangency-labs/solidcraft/issues/2896) | a join of a ring and an arm whose R5 convex tip stops 0.01 mm short of the ring's outer wall: nothing overlaps, so nothing fuses | analytic | pass |
| booleans/2904-countersunk-hole-with-distant-body | [tangency-labs/solidcraft#2904](https://github.com/tangency-labs/solidcraft/issues/2904) | a countersunk hole in a small plate, near a rounded corner, while an unrelated body sits 120 mm away: only the plate may change, and the countersink must be complete | analytic | pass |
| booleans/2928-join-cap-touching-lips-with-offset-walls | [tangency-labs/solidcraft#2928](https://github.com/tangency-labs/solidcraft/issues/2928) | two half-annulus lips (r 4..5, from z=2 to 20) joined onto a stadium-ring base (z 0..2, r 3..5 arcs, centres 20 apart) with their cylinder walls 0.0001 mm off the base's: the lip cap touches the base top, leaving a 0.0001 mm crescent overhang. Layout is a hand-built variant of the PR's public reproduction | analytic | **FAIL**: volume_mm3 1066.017651 (want 769.468975) |
| booleans/2928-join-cap-touching-lips-with-offset-walls | [tangency-labs/solidcraft#2928](https://github.com/tangency-labs/solidcraft/issues/2928) | two half-annulus lips (r 4..5, from z=2 to 20) joined onto a stadium-ring base (z 0..2, r 3..5 arcs, centres 20 apart) with their cylinder walls 0.0001 mm off the base's: the lip cap touches the base top, leaving a 0.0001 mm crescent overhang. Layout is a hand-built variant of the PR's public reproduction | analytic | **FAIL**: volume_mm3 1066.022935 (want 769.468975) |
| booleans/3027-pin-seated-line-to-line-in-bore | [tangency-labs/solidcraft#3027](https://github.com/tangency-labs/solidcraft/issues/3027) | a pin (r4) seated line to line in a bore (r4, exactly coaxial) of a bush: the two cylinder walls coincide | analytic | pass |
| booleans/307-tangent-hole-contacts-ring-against-grid | [tangency-labs/solidcraft#307](https://github.com/tangency-labs/solidcraft/issues/307) | four pairs of through holes whose circles touch at exactly one point (ring holes at (+-25,0),(0,+-25) against grid holes at (+-15,0),(0,+-15)); the symmetric contacts must be treated alike and split no cylinder face | analytic | not supported yet: step 6 (solid.cylinder): SMLib boolean: export: SMLib export: not supported yet: a solid touching itself along an edge |
| booleans/307-tangent-hole-contacts-ring-against-grid | [tangency-labs/solidcraft#307](https://github.com/tangency-labs/solidcraft/issues/307) | four pairs of through holes whose circles touch at exactly one point (ring holes at (+-25,0),(0,+-25) against grid holes at (+-15,0),(0,+-15)); the symmetric contacts must be treated alike and split no cylinder face | analytic | **FAIL**: measure Plate: the operation failed: not supported yet: tessellation: face 0 (plane): triangulation does not (want measurable); body_count 0 (want 1); faces 0 (want 14); volume_mm3 0 (want 46858.407346) |
| booleans/308-blind-cut-ending-inside-a-cylinder | [tangency-labs/solidcraft#308](https://github.com/tangency-labs/solidcraft/issues/308) | a hinge leaf (40x30x3) with a joined r4 knuckle cylinder along X and a O4 pin hole, then a 3.3 mm blind cut of x 12..28, y 29..40 ending inside the cylinder: the result grew a sphere and a freeform face | analytic | pass |
| booleans/3092-ring-on-perforated-plate | [tangency-labs/solidcraft#3092](https://github.com/tangency-labs/solidcraft/issues/3092) [tangency-labs/solidcraft#2844](https://github.com/tangency-labs/solidcraft/issues/2844) | a ring (r 19.6/20.8, 20 tall) joined onto the top of an 80x80x1.2 plate with a 9x9 grid of 6.4 mm square holes: the ring's foot crosses many hole edges | analytic | pass |
| booleans/3092-ring-on-perforated-plate | [tangency-labs/solidcraft#3092](https://github.com/tangency-labs/solidcraft/issues/3092) [tangency-labs/solidcraft#2844](https://github.com/tangency-labs/solidcraft/issues/2844) | a ring (r 19.6/20.8, 20 tall) joined onto the top of an 80x80x1.2 plate with a 9x9 grid of 6.4 mm square holes: the ring's foot crosses many hole edges | analytic | **FAIL**: measure Plate: the operation failed: not supported yet: tessellation: face 1 (plane): triangulation does not (want measurable); body_count 0 (want 1); volume_mm3 0 (want 6744.776237) |
| booleans/3175-cut-beside-sealed-void | [tangency-labs/solidcraft#3175](https://github.com/tangency-labs/solidcraft/issues/3175) | a cut over the bottom edge of a revolved cylinder that holds a sealed spherical void on its axis: the body must not come out empty or refused | analytic | pass |
| booleans/3243-rim-and-rounded-tooth-join | [tangency-labs/solidcraft#3243](https://github.com/tangency-labs/solidcraft/issues/3243) | a join of a cylindrical rim (r 15.27..16.65, to z=5) and a rounded tooth trimmed to the same two cylinders that overlaps it by 0.01 mm in Z | invariants | pass |
| booleans/3303-inward-cut-of-frustum-top-face | [tangency-labs/solidcraft#3303](https://github.com/tangency-labs/solidcraft/issues/3303) [tangency-labs/solidcraft#3309](https://github.com/tangency-labs/solidcraft/issues/3309) | cutting the complete circular top face of a widening conical frustum inward: the cylindrical tool touches the cone only at its rim | analytic | pass |
@@ -75,8 +75,8 @@ The cases run on SMLib, SolidCraft's kernel. A failing case stays failing until
| booleans/3378-circular-pattern-of-join-that-merged-targets | [tangency-labs/solidcraft#3378](https://github.com/tangency-labs/solidcraft/issues/3378) | a circular pattern of a join whose two targets (rim and hub) were merged into one body by that join | analytic | pass |
| booleans/3379-circular-pattern-of-thin-spoke-on-ring | [tangency-labs/solidcraft#3379](https://github.com/tangency-labs/solidcraft/issues/3379) | a circular pattern (count 5) of a spoke thinner than the ring it joins (faces 0.5 mm inside the rim and hub faces) | analytic | pass |
| booleans/3383-combine-tool-into-rotated-occurrence | [tangency-labs/solidcraft#3383](https://github.com/tangency-labs/solidcraft/issues/3383) | a root body joined into a body inside a component whose occurrence is turned a quarter turn: the tool must stay where it is in the world | analytic | **FAIL**: shells Plate: 2 (want 1); volume_mm3 17000 (want 16750); bbox.min [-20, -10, -20] (want [-20, -10, -25]); bbox.max [20, 25, 20] (want [20, 5, 20]) |
| booleans/3447-split-along-plane-of-a-face | [tangency-labs/solidcraft#3447](https://github.com/tangency-labs/solidcraft/issues/3447) [tangency-labs/solidcraft#2979](https://github.com/tangency-labs/solidcraft/issues/2979) | split body where the splitting plane contains an end face (with a boss on it and an R1 fillet on the face's edge) | analytic | **FAIL**: step 4 (solid.split_body): the section through the body does not close |
| booleans/3455-join-of-64-separate-pegs | [tangency-labs/solidcraft#3455](https://github.com/tangency-labs/solidcraft/issues/3455) | one combine of 64 separate pegs that do not touch: 36 s on truck, growing 4-9x per doubling; must finish in seconds | analytic | **HANG**: no result after 180 s |
| booleans/3447-split-along-plane-of-a-face | [tangency-labs/solidcraft#3447](https://github.com/tangency-labs/solidcraft/issues/3447) [tangency-labs/solidcraft#2979](https://github.com/tangency-labs/solidcraft/issues/2979) | split body where the splitting plane contains an end face (with a boss on it and an R1 fillet on the face's edge) | analytic | **FAIL**: shells Block (1): 2 (want 1) |
| booleans/3455-join-of-64-separate-pegs | [tangency-labs/solidcraft#3455](https://github.com/tangency-labs/solidcraft/issues/3455) | one combine of 64 separate pegs that do not touch: 36 s on truck, growing 4-9x per doubling; must finish in seconds | analytic | **HANG**: no result after 20 s |
| booleans/3456-deep-cut-through-drilled-taper-leaves-base | [tangency-labs/solidcraft#3456](https://github.com/tangency-labs/solidcraft/issues/3456) [tangency-labs/solidcraft#3497](https://github.com/tangency-labs/solidcraft/issues/3497) | a deep cut that removes everything above z=2 of a tapered body with nine through-bores, leaving the 2 mm drilled base | analytic | pass |
| booleans/3460-cut-by-lid-with-coincident-walls-and-half-moon-tabs | [tangency-labs/solidcraft#3460](https://github.com/tangency-labs/solidcraft/issues/3460) | Combine cut (keep tools) of an enclosure by its lid whose insert is flush with the inner walls and carries four small half-moon tabs that cross them; the cut must not return the target unchanged | analytic | pass |
| booleans/3485-boss-joined-on-rod-top-keeps-side-whole | [tangency-labs/solidcraft#3485](https://github.com/tangency-labs/solidcraft/issues/3485) [tangency-labs/solidcraft#3062](https://github.com/tangency-labs/solidcraft/issues/3062) | a boss joined on a rod's top face (the join runs the boss on into the rod); the rod's side must stay one face, not seamed at the boss's foot | analytic | pass |
@@ -84,21 +84,21 @@ The cases run on SMLib, SolidCraft's kernel. A failing case stays failing until
| booleans/3497-pin-overlapping-bore-by-20-microns | [tangency-labs/solidcraft#3497](https://github.com/tangency-labs/solidcraft/issues/3497) [tangency-labs/solidcraft#3456](https://github.com/tangency-labs/solidcraft/issues/3456) | a pin r=3.02 intersected with a tube whose bore is r=3: a thin annulus (0.02 mm overlap on a curved wall) | analytic | pass |
| booleans/3526-intersect-keeps-every-lump | [tangency-labs/solidcraft#3526](https://github.com/tangency-labs/solidcraft/issues/3526) [tangency-labs/solidcraft#3888](https://github.com/tangency-labs/solidcraft/issues/3888) | intersect of a two-lump target (two spheres joined while apart) with a box holding the bottom half of each | analytic | pass |
| booleans/3604-cut-with-g2-swept-tool-along-projected-edge | [tangency-labs/solidcraft#3604](https://github.com/tangency-labs/solidcraft/issues/3604) [tangency-labs/solidcraft#3613](https://github.com/tangency-labs/solidcraft/issues/3613) | cut of a box by a swept G2 corner-removal tool along a projected edge chain (left-rear corner; the symmetric front-left chain works) | invariants | **FAIL**: step 12 (solid.sweep): the path curves are not connected end to end |
| booleans/3612-circular-pattern-of-spoke-tangent-to-hub | [tangency-labs/solidcraft#3612](https://github.com/tangency-labs/solidcraft/issues/3612) [tangency-labs/solidcraft#3379](https://github.com/tangency-labs/solidcraft/issues/3379) | a spoke whose inner face x=12 is exactly tangent to the hub cylinder r=12 (line contact), joined to the rim, patterned 5 times around the hub's axis | analytic | **FAIL**: step 4 (solid.box): invalid input: native B-rep: portable B-rep: face 3 loop 1: loop encloses no (u, v) area (signed area 0) |
| booleans/3633-sphere-intersect-pyramid-apex-at-centre | [tangency-labs/solidcraft#3633](https://github.com/tangency-labs/solidcraft/issues/3633) [tangency-labs/solidcraft#3682](https://github.com/tangency-labs/solidcraft/issues/3682) | a sphere r=10 intersected with a square pyramid whose apex is the sphere's centre and whose sides lie in the planes of the sphere primitive's patch edges | analytic | not supported yet: step 8 (solid.loft): not supported yet: SMLib loft to a point |
| booleans/3652-mirror-of-a-mirror-feature | [tangency-labs/solidcraft#3652](https://github.com/tangency-labs/solidcraft/issues/3652) | mirror a Mirror feature (the first mirror's hole) about a second plane: 'Mirror1 cannot be patterned or mirrored yet' | analytic | **FAIL**: step 7 (solid.mirror): Mirror1 cannot be patterned or mirrored yet |
| booleans/3665-join-extrude-column-on-floor-and-curved-walls | [tangency-labs/solidcraft#3665](https://github.com/tangency-labs/solidcraft/issues/3665) [tangency-labs/solidcraft#3666](https://github.com/tangency-labs/solidcraft/issues/3666) | a join extrude of a column standing on a channel's flat floor and lying along both its curved walls (column circle tangent to both walls) | analytic | not supported yet: step 10 (solid.extrude): SMLib boolean: export: SMLib export: not supported yet: a solid touching itself along an edge |
| booleans/3612-circular-pattern-of-spoke-tangent-to-hub | [tangency-labs/solidcraft#3612](https://github.com/tangency-labs/solidcraft/issues/3612) [tangency-labs/solidcraft#3379](https://github.com/tangency-labs/solidcraft/issues/3379) | a spoke whose inner face x=12 is exactly tangent to the hub cylinder r=12 (line contact), joined to the rim, patterned 5 times around the hub's axis | analytic | **FAIL**: measure Wheel: the operation failed: not supported yet: tessellation: face 0 (cylinder): triangulation does (want measurable); volume_mm3 0 (want 6279.4538) |
| booleans/3633-sphere-intersect-pyramid-apex-at-centre | [tangency-labs/solidcraft#3633](https://github.com/tangency-labs/solidcraft/issues/3633) [tangency-labs/solidcraft#3682](https://github.com/tangency-labs/solidcraft/issues/3682) | a sphere r=10 intersected with a square pyramid whose apex is the sphere's centre and whose sides lie in the planes of the sphere primitive's patch edges | analytic | pass |
| booleans/3652-mirror-of-a-mirror-feature | [tangency-labs/solidcraft#3652](https://github.com/tangency-labs/solidcraft/issues/3652) | mirror a Mirror feature (the first mirror's hole) about a second plane: 'Mirror1 cannot be patterned or mirrored yet' | analytic | pass |
| booleans/3665-join-extrude-column-on-floor-and-curved-walls | [tangency-labs/solidcraft#3665](https://github.com/tangency-labs/solidcraft/issues/3665) [tangency-labs/solidcraft#3666](https://github.com/tangency-labs/solidcraft/issues/3666) | a join extrude of a column standing on a channel's flat floor and lying along both its curved walls (column circle tangent to both walls) | analytic | **FAIL**: measure Housing: the operation failed: not supported yet: tessellation: face 8 (plane): triangulation does n (want measurable); body_count 0 (want 1); volume_mm3 0 (want 62248.4964) |
| booleans/3671-intersect-tool-in-top-face-beside-rib | [tangency-labs/solidcraft#3671](https://github.com/tangency-labs/solidcraft/issues/3671) | intersect with a tapered pocket tool whose top face lies in the block's top face, 0.5 mm short of a rib | analytic | pass |
| booleans/3702-board-in-cavity-of-filleted-rim-case | [tangency-labs/solidcraft#3702](https://github.com/tangency-labs/solidcraft/issues/3702) | a 0.2 mm board lying in the open cavity of a case with a filleted circular rim: cutting it from the case must leave the case unchanged (it was taken for wholly inside) | analytic | pass |
| booleans/3703-two-face-extrudes-join-keep-the-step | [tangency-labs/solidcraft#3703](https://github.com/tangency-labs/solidcraft/issues/3703) | two joined face extrudes on one box (top face, then the right side face): the stepped shape must stay | analytic | pass |
| booleans/3729-extrude-to-point-on-step-edge | [tangency-labs/solidcraft#3729](https://github.com/tangency-labs/solidcraft/issues/3729) | extrude `to` a point lying exactly on the top edge of a step: must end at the plane z=20 through the point | analytic | **FAIL**: volume_mm3 5089.997564 (want 5070.6858); bbox.max [10, 10, 22.732051] (want [10, 10, 20]) |
| booleans/3782-emboss-on-cylinder-pick-on-far-half | [tangency-labs/solidcraft#3782](https://github.com/tangency-labs/solidcraft/issues/3782) [tangency-labs/solidcraft#3425](https://github.com/tangency-labs/solidcraft/issues/3425) | emboss on a cylinder with the face pick on the half of the wall opposite the sketch | invariants | **FAIL**: step 5 (solid.emboss): invalid input: cylinder emboss: saved selection no longer identifies the sketch's cylindrical face |
| booleans/3729-extrude-to-point-on-step-edge | [tangency-labs/solidcraft#3729](https://github.com/tangency-labs/solidcraft/issues/3729) | extrude `to` a point lying exactly on the top edge of a step: must end at the plane z=20 through the point | analytic | pass |
| booleans/3782-emboss-on-cylinder-pick-on-far-half | [tangency-labs/solidcraft#3782](https://github.com/tangency-labs/solidcraft/issues/3782) [tangency-labs/solidcraft#3425](https://github.com/tangency-labs/solidcraft/issues/3425) | emboss on a cylinder with the face pick on the half of the wall opposite the sketch | invariants | **FAIL**: smlib_check SMLib check: 1 failed tests: SmCylinder::Test #2 Domain Max: Analytic U Direction Max Domain larger (want ok) |
| booleans/3816-circular-pattern-of-body-about-offset-axis | [tangency-labs/solidcraft#3816](https://github.com/tangency-labs/solidcraft/issues/3816) | circular pattern of a body about an axis {origin,dir} that does not pass through the world origin | analytic | pass |
| booleans/3830-split-cup-by-extended-spline-surface | [tangency-labs/solidcraft#3830](https://github.com/tangency-labs/solidcraft/issues/3830) | split a thin-walled cup (shell of a d30 cylinder) with a surface body: an extruded spline surface, extended at both ends | analytic | **HANG**: no result after 180 s |
| booleans/3841-join-touching-along-one-circle-only | [tangency-labs/solidcraft#3841](https://github.com/tangency-labs/solidcraft/issues/3841) [tangency-labs/solidcraft#168](https://github.com/tangency-labs/solidcraft/issues/168) | Join of a ring (r10..15) onto a coin (r10) that touch only along a circle: no fusion that moves the ring | invariants | **FAIL**: shells Coin: 2 (want 1); record_valid the operation failed: lumps: shell boundaries intersect or touch; cavity ownership is ambiguous (want ok); smlib_check the operation failed: lumps: shell boundaries intersect or touch; cavity ownership is ambiguous (want ok); body_count 1 (want 2) |
| booleans/3830-split-cup-by-extended-spline-surface | [tangency-labs/solidcraft#3830](https://github.com/tangency-labs/solidcraft/issues/3830) | split a thin-walled cup (shell of a d30 cylinder) with a surface body: an extruded spline surface, extended at both ends | analytic | **FAIL**: step 5 (solid.shell): SMLib shell: operation: SMLib failed (status 1001) |
| booleans/3841-join-touching-along-one-circle-only | [tangency-labs/solidcraft#3841](https://github.com/tangency-labs/solidcraft/issues/3841) [tangency-labs/solidcraft#168](https://github.com/tangency-labs/solidcraft/issues/168) | Join of a ring (r10..15) onto a coin (r10) that touch only along a circle: no fusion that moves the ring | invariants | **FAIL**: shells Coin: 2 (want 1); body_count 1 (want 2) |
| booleans/3850-cross-cut-touching-round-side | [tangency-labs/solidcraft#3850](https://github.com/tangency-labs/solidcraft/issues/3850) [tangency-labs/solidcraft#3741](https://github.com/tangency-labs/solidcraft/issues/3741) | a O50 x 50 cylinder with a 25 mm square through-hole, then a cross cut by a O40 circle split into two halves by a line (both halves picked, merged into one round tool whose end face x=25 touches the cylinder's side along y=0): the result must be one shell, not a good shell plus a zero-area one | analytic | pass |
| booleans/3850-hole-through-wall-after-cross-cut | [tangency-labs/solidcraft#3850](https://github.com/tangency-labs/solidcraft/issues/3850) [tangency-labs/solidcraft#3741](https://github.com/tangency-labs/solidcraft/issues/3741) | the O10 through-all hole across the wall of the body from the cross-cut case (the report's failing step: 'lumps: cannot mesh a complete shell boundary') | analytic | pass |
| booleans/3887-ring-standing-on-perforated-plate | [tangency-labs/solidcraft#3887](https://github.com/tangency-labs/solidcraft/issues/3887) [tangency-labs/solidcraft#2844](https://github.com/tangency-labs/solidcraft/issues/2844) | a ring (r19.6/20.8, 20 tall) joined onto an 80x80x1.2 plate with a 9x9 grid of 6.4 mm square holes; the ring's foot crosses the holes | analytic | pass |
| booleans/3887-ring-standing-on-perforated-plate | [tangency-labs/solidcraft#3887](https://github.com/tangency-labs/solidcraft/issues/3887) [tangency-labs/solidcraft#2844](https://github.com/tangency-labs/solidcraft/issues/2844) | a ring (r19.6/20.8, 20 tall) joined onto an 80x80x1.2 plate with a 9x9 grid of 6.4 mm square holes; the ring's foot crosses the holes | analytic | **FAIL**: measure Plate: the operation failed: not supported yet: tessellation: face 1 (plane): triangulation does not (want measurable); body_count 0 (want 1); volume_mm3 0 (want 6744.7762) |
| booleans/3968-hole-as-wide-as-a-cones-top | [tangency-labs/solidcraft#3968](https://github.com/tangency-labs/solidcraft/issues/3968) | a hole of diameter 10 drilled into the top of a truncated cone whose top is also diameter 10 (the hole wall meets the cone at the top rim) | analytic | pass |
| booleans/4008-symmetric-revolve-cut-ends-in-side-face | [tangency-labs/solidcraft#4008](https://github.com/tangency-labs/solidcraft/issues/4008) | symmetric 180 deg revolve cut about a vertical edge of a block, the tool's end faces lying in the block's side face | analytic | pass |
| booleans/4011-mirror-of-cut-under-wall | [tangency-labs/solidcraft#4011](https://github.com/tangency-labs/solidcraft/issues/4011) | a blind hole mirrored to a spot where half its top disc lies under a wall's foot | analytic | pass |
@@ -106,19 +106,19 @@ The cases run on SMLib, SolidCraft's kernel. A failing case stays failing until
| booleans/4095-slab-cut-standing-off-a-bore-r10 | [tangency-labs/solidcraft#4095](https://github.com/tangency-labs/solidcraft/issues/4095) | a slab cut whose +x face stands 6.73e-05 mm (0.90 x the coincidence tolerance 7.48e-05) off a through-bore's wall (R=10), beside the bore | analytic | pass |
| booleans/4095-slab-cut-standing-off-a-bore-r15 | [tangency-labs/solidcraft#4095](https://github.com/tangency-labs/solidcraft/issues/4095) | a slab cut whose +x face stands 6.60e-05 mm (0.60 x the coincidence tolerance 1.10e-04) off a through-bore's wall (R=15), beside the bore | analytic | pass |
| booleans/423-through-all-cut-must-not-reach-behind-sketch-plane | [tangency-labs/solidcraft#423](https://github.com/tangency-labs/solidcraft/issues/423) | a one-sided Through All cut from a sketch plane at x=98 toward -x, with its wall 0.0022 mm from a face of a notch beyond the plane: the cut must remove nothing at x > 98 | analytic | pass |
| booleans/451-cut-block-crossing-hollow-sphere-tool | [tangency-labs/solidcraft#451](https://github.com/tangency-labs/solidcraft/issues/451) | a 12x8x8 block (x 8..20) crossing the inner sphere r=18.5 of a hollow spherical-shell tool: the cut keeps the part inside r=18.5 | analytic | **FAIL**: step 9 (solid.combine): lumps: cannot mesh a complete shell boundary |
| booleans/451-cut-block-inside-hollow-sphere-tool | [tangency-labs/solidcraft#451](https://github.com/tangency-labs/solidcraft/issues/451) | a block wholly inside the void of a hollow spherical-shell tool (r 18.5 to 40): cutting leaves it untouched, the tool never reaches it | analytic | **FAIL**: step 9 (solid.combine): lumps: cannot mesh a complete shell boundary |
| booleans/451-cut-block-crossing-hollow-sphere-tool | [tangency-labs/solidcraft#451](https://github.com/tangency-labs/solidcraft/issues/451) | a 12x8x8 block (x 8..20) crossing the inner sphere r=18.5 of a hollow spherical-shell tool: the cut keeps the part inside r=18.5 | analytic | pass |
| booleans/451-cut-block-inside-hollow-sphere-tool | [tangency-labs/solidcraft#451](https://github.com/tangency-labs/solidcraft/issues/451) | a block wholly inside the void of a hollow spherical-shell tool (r 18.5 to 40): cutting leaves it untouched, the tool never reaches it | analytic | pass |
| booleans/500-coaxial-cylinder-cut-from-thin-disc | [tangency-labs/solidcraft#500](https://github.com/tangency-labs/solidcraft/issues/500) | a radius 20 cylinder cut out of a coaxial radius 40 disc spanning x -1..1 lost about 2.6% of the volume | analytic | pass |
| booleans/559-through-hole-into-shelled-box-rim | [tangency-labs/solidcraft#559](https://github.com/tangency-labs/solidcraft/issues/559) | a 1 mm through-all hole straight down into the 2 mm rim of a shelled box: 'implausible volume' / no result | analytic | pass |
| booleans/562-press-pull-floor-beside-rounds | [tangency-labs/solidcraft#562](https://github.com/tangency-labs/solidcraft/issues/562) | Press Pull of a floor whose neighbours are rounds (vertical corner fillets): 'a neighbouring edge is not straight' | analytic | pass |
| booleans/562-press-pull-floor-beside-rounds | [tangency-labs/solidcraft#562](https://github.com/tangency-labs/solidcraft/issues/562) | Press Pull of a floor whose neighbours are rounds (vertical corner fillets): 'a neighbouring edge is not straight' | analytic | **FAIL**: step 3 (solid.press_pull): SMLib boolean: SMLib's check refuses the result: 21 failed tests: SmBrep::Test #59 Tolerance: Edge tolerance relative to brep toleran |
| booleans/831-tapered-extrude-d-shape-arc-meets-line | [tangency-labs/solidcraft#831](https://github.com/tangency-labs/solidcraft/issues/831) | tapered extrude of a D shape (an arc meeting a line at a sharp corner): refused as 'tapered profiles where an arc meets another edge at a corner' | analytic | pass |
| booleans/831-tapered-extrude-text-glyph | [tangency-labs/solidcraft#831](https://github.com/tangency-labs/solidcraft/issues/831) | tapered extrude of a text glyph (Bezier outline): refused with a misleading 'mixing lines and arcs' error | invariants | pass |
| crashes/1219-bore-fillet-then-grooves-cut | [tangency-labs/solidcraft#1219](https://github.com/tangency-labs/solidcraft/issues/1219) | 24 small grooves cut into a bore whose top edge has an unrelated 1 mm fillet: 73 s and 24 boolean retries instead of 0.2 s | analytic | pass |
| crashes/140-join-pad-hanging-past-the-edge | [tangency-labs/solidcraft#140](https://github.com/tangency-labs/solidcraft/issues/140) | a join whose tool face lies flat on the target but only half backed by it (the pad hangs 10 mm past the edge) must not add material | analytic | pass |
| crashes/1985-step-export-enclosure-screw-hole | [tangency-labs/solidcraft#1985](https://github.com/tangency-labs/solidcraft/issues/1985) [tangency-labs/solidcraft#2243](https://github.com/tangency-labs/solidcraft/issues/2243) | a small enclosure (rounded box, inner cut, corner gusset with a screw hole, two standoffs, USB cut-out) whose STEP export never finished (the export meshes its own file back) | invariants | pass |
| crashes/2243-step-export-flanged-enclosure | [tangency-labs/solidcraft#2243](https://github.com/tangency-labs/solidcraft/issues/2243) [tangency-labs/solidcraft#1985](https://github.com/tangency-labs/solidcraft/issues/1985) | a flanged enclosure with two standoffs and no screw hole whose STEP export also never finished | invariants | pass |
| crashes/2357-join-ring-of-90-cylinder-segments | [tangency-labs/solidcraft#2357](https://github.com/tangency-labs/solidcraft/issues/2357) | one join of a ring of 90 straight cylinder segments, each overlapping its neighbour at a 4 degree joint: a caught truck panic, then a refusal after 21 minutes | invariants | **HANG**: no result after 180 s |
| crashes/2992-join-disk-and-36-twisted-loft-blades | [tangency-labs/solidcraft#2992](https://github.com/tangency-labs/solidcraft/issues/2992) | join of a disk and a circular pattern of 36 twisted lofted blades (embedded 2.54 mm in the disk): blocks for minutes | invariants | **HANG**: no result after 180 s |
| crashes/2357-join-ring-of-90-cylinder-segments | [tangency-labs/solidcraft#2357](https://github.com/tangency-labs/solidcraft/issues/2357) | one join of a ring of 90 straight cylinder segments, each overlapping its neighbour at a 4 degree joint: a caught truck panic, then a refusal after 21 minutes | invariants | **HANG**: no result after 20 s |
| crashes/2992-join-disk-and-36-twisted-loft-blades | [tangency-labs/solidcraft#2992](https://github.com/tangency-labs/solidcraft/issues/2992) | join of a disk and a circular pattern of 36 twisted lofted blades (embedded 2.54 mm in the disk): blocks for minutes | invariants | **HANG**: no result after 20 s |
| crashes/3540-cut-with-coincident-cylinder-face | [tangency-labs/solidcraft#3540](https://github.com/tangency-labs/solidcraft/issues/3540) | a groove cut whose r33 arcs lie exactly on the r33 cylinder of an earlier slot cut and overlap it in Z: minutes of CPU | analytic | pass |
| crashes/3685-delete-fillet-face-beside-seam | [tangency-labs/solidcraft#1559](https://github.com/tangency-labs/solidcraft/issues/1559) [tangency-labs/solidcraft#3685](https://github.com/tangency-labs/solidcraft/issues/3685) | Delete Face on a fillet face next to a face whose edge a boolean/fillet rebuilt as an intersection curve: must never panic (truck: not implemented: intersection curve cannot connect by homotopy) | analytic | pass |
| crashes/4092-loft-ribs-rounded-pad-union-panics | [tangency-labs/solidcraft#4092](https://github.com/tangency-labs/solidcraft/issues/4092) | join extrude of a rounded pad over a lofted body with ring and ribs: repeated truck intersection_curve panics, then 'boolean Union: no result' | invariants | **FAIL**: step 50 (solid.extrude): SMLib boolean: operation: SMLib failed (status 1001) |
@@ -126,15 +126,15 @@ The cases run on SMLib, SolidCraft's kernel. A failing case stays failing until
| fillets/1008-fillet-tray-floor-and-three-of-four-corners | [tangency-labs/solidcraft#1008](https://github.com/tangency-labs/solidcraft/issues/1008) | an R10 round on the four inside floor edges and three of the four inside vertical corners of an open tray, so one corner keeps a sharp vertical edge where two floor rounds meet (rebuilt from the report's edge picks: the original design is not in the report) | analytic | pass |
| fillets/1080-chamfer-beside-openings-fits | [tangency-labs/solidcraft#1080](https://github.com/tangency-labs/solidcraft/issues/1080) [tangency-labs/solidcraft#1124](https://github.com/tangency-labs/solidcraft/issues/1124) | a 4 mm chamfer on the top front edge of a cube with three square openings stays clear of the openings (they start 5 mm in) | analytic | pass |
| fillets/1080-chamfer-runs-into-openings-refused | [tangency-labs/solidcraft#1080](https://github.com/tangency-labs/solidcraft/issues/1080) [tangency-labs/solidcraft#1124](https://github.com/tangency-labs/solidcraft/issues/1124) | a 9 mm chamfer on the top front edge of a cube with square openings 5 mm in must be refused: it would cut through the rims of the openings | invariants | pass |
| fillets/1191-fillet-both-rims-of-a-tube-top | [tangency-labs/solidcraft#1191](https://github.com/tangency-labs/solidcraft/issues/1191) | an R2 round on the outer and inner rim circles of a tube's top face (the report's ten picks on a ring-shaped top: the round failed after 0.10.1; rebuilt as a plain tube since the design is not in the report) | analytic | pass |
| fillets/1191-fillet-both-rims-of-a-tube-top | [tangency-labs/solidcraft#1191](https://github.com/tangency-labs/solidcraft/issues/1191) | an R2 round on the outer and inner rim circles of a tube's top face (the report's ten picks on a ring-shaped top: the round failed after 0.10.1; rebuilt as a plain tube since the design is not in the report) | analytic | **FAIL**: faces 8 (want 6) |
| fillets/1207-fillet-concave-arc-at-boss | [tangency-labs/solidcraft#1207](https://github.com/tangency-labs/solidcraft/issues/1207) | an R2 round on the concave arc where a bar top meets a boss that only partly sits on it | analytic | pass |
| fillets/1207-fillet-straight-edge-ending-on-boss | [tangency-labs/solidcraft#1207](https://github.com/tangency-labs/solidcraft/issues/1207) | an R2 round along the straight top edge of a bar that runs out against a cylindrical boss | analytic | pass |
| fillets/1213-round-end-circle-of-bent-tube | [tangency-labs/solidcraft#1213](https://github.com/tangency-labs/solidcraft/issues/1213) [tangency-labs/solidcraft#1291](https://github.com/tangency-labs/solidcraft/issues/1291) | an R3 round on the end circle of a lofted tube whose axis bends (a 60 degree torus section) | analytic | pass |
| fillets/1262-fillet-boss-bottom-arc | [tangency-labs/solidcraft#1262](https://github.com/tangency-labs/solidcraft/issues/1262) | a 0.8 mm round on the exposed half circle at the bottom of a cylindrical boss joined to a box side | analytic | pass |
| fillets/1390-chamfer-hole-rim-touching-bottom | [tangency-labs/solidcraft#1390](https://github.com/tangency-labs/solidcraft/issues/1390) [tangency-labs/solidcraft#1574](https://github.com/tangency-labs/solidcraft/issues/1574) [tangency-labs/solidcraft#1428](https://github.com/tangency-labs/solidcraft/issues/1428) | a 3 mm chamfer on the rim of a hole that is tangent to the bottom face runs off that face and must not add material below the part | invariants | pass |
| fillets/1488-fillet-slab-end-after-nudged-loft-join | [tangency-labs/solidcraft#1488](https://github.com/tangency-labs/solidcraft/issues/1488) [tangency-labs/solidcraft#1517](https://github.com/tangency-labs/solidcraft/issues/1517) | an R1 fillet on the end edge of a 3.5 mm slab after a pleated loft was joined flush with its inner face (the join needs a tool retry; later fillets must still work) | invariants | pass |
| fillets/1557-fillet-vertical-corners-after-bottom-rounds | [tangency-labs/solidcraft#1557](https://github.com/tangency-labs/solidcraft/issues/1557) [tangency-labs/solidcraft#1581](https://github.com/tangency-labs/solidcraft/issues/1581) | vertical corner fillets R2 on a 25x25x10 box whose four bottom edges are already rounded R2 (the round meets the earlier mitre) | analytic | **FAIL**: step 6 (solid.fillet): SMLib fillet: operation: SMLib failed (status 1001) |
| fillets/1667-fillet-rim-line-beside-quarter-turns | [tangency-labs/solidcraft#1667](https://github.com/tangency-labs/solidcraft/issues/1667) [tangency-labs/solidcraft#1702](https://github.com/tangency-labs/solidcraft/issues/1702) | an R5 round of the top rim of a 297 mm long box whose corners are R5 (a 287 mm line beside 7.85 mm quarter turns) | analytic | **FAIL**: step 3 (solid.fillet): SMLib fillet: operation: SMLib failed (status 1001) |
| fillets/1557-fillet-vertical-corners-after-bottom-rounds | [tangency-labs/solidcraft#1557](https://github.com/tangency-labs/solidcraft/issues/1557) [tangency-labs/solidcraft#1581](https://github.com/tangency-labs/solidcraft/issues/1581) | vertical corner fillets R2 on a 25x25x10 box whose four bottom edges are already rounded R2 (the round meets the earlier mitre) | analytic | pass |
| fillets/1667-fillet-rim-line-beside-quarter-turns | [tangency-labs/solidcraft#1667](https://github.com/tangency-labs/solidcraft/issues/1667) [tangency-labs/solidcraft#1702](https://github.com/tangency-labs/solidcraft/issues/1702) | an R5 round of the top rim of a 297 mm long box whose corners are R5 (a 287 mm line beside 7.85 mm quarter turns) | analytic | pass |
| fillets/1668-fillet-both-sides-of-thin-wall | [tangency-labs/solidcraft#1668](https://github.com/tangency-labs/solidcraft/issues/1668) [tangency-labs/solidcraft#1720](https://github.com/tangency-labs/solidcraft/issues/1720) | an R5 round on an outer top edge and the matching inner (concave) edge of a 2 mm wall in one feature fits, as it does one after the other | analytic | pass |
| fillets/190-fillet-rim-as-tall-as-wall | [tangency-labs/solidcraft#190](https://github.com/tangency-labs/solidcraft/issues/190) [tangency-labs/solidcraft#318](https://github.com/tangency-labs/solidcraft/issues/318) | an R2 round of the top edge of a disc 2 mm high (the round is as tall as the wall, so it meets the bottom face) | analytic | pass |
| fillets/193-paste-copies-the-fillets | [tangency-labs/solidcraft#193](https://github.com/tangency-labs/solidcraft/issues/193) [tangency-labs/solidcraft#214](https://github.com/tangency-labs/solidcraft/issues/214) [tangency-labs/solidcraft#363](https://github.com/tangency-labs/solidcraft/issues/363) [tangency-labs/solidcraft#613](https://github.com/tangency-labs/solidcraft/issues/613) | a block with two R2 top edges rounded, copied and pasted 40 mm over: the copy must carry its own fillets | analytic | pass |
@@ -145,35 +145,35 @@ The cases run on SMLib, SolidCraft's kernel. A failing case stays failing until
| fillets/237-fillet-concave-edge-between-two-cylinders | [tangency-labs/solidcraft#237](https://github.com/tangency-labs/solidcraft/issues/237) [tangency-labs/solidcraft#238](https://github.com/tangency-labs/solidcraft/issues/238) | an R6 round on the vertical edge where two cylinder walls meet (the concave corner of two merged discs), the two walls meeting at an angle | analytic | pass |
| fillets/2498-fillet-tiny-end-edges-rounded-rectangle | [tangency-labs/solidcraft#2498](https://github.com/tangency-labs/solidcraft/issues/2498) [tangency-labs/solidcraft#2506](https://github.com/tangency-labs/solidcraft/issues/2506) | an R2 round of the top loop of a 26.4x8.6x8.4 rounded rectangle whose end edges are only 0.02 mm long (corner radius 4.29) | analytic | pass |
| fillets/2672-chamfer-one-pick-large-plate | [tangency-labs/solidcraft#2672](https://github.com/tangency-labs/solidcraft/issues/2672) [tangency-labs/solidcraft#3295](https://github.com/tangency-labs/solidcraft/issues/3295) | one pick on a stadium boss top rim chamfers the whole tangent loop, also when the part is more than 200 mm across | analytic | pass |
| fillets/2708-fillet-curvature-continuous-angled-ends | [tangency-labs/solidcraft#2708](https://github.com/tangency-labs/solidcraft/issues/2708) [tangency-labs/solidcraft#2739](https://github.com/tangency-labs/solidcraft/issues/2739) | a curvature-continuous (G2) fillet of size 5 on a straight edge that ends on two slanted planar faces | analytic | **FAIL**: volume_mm3 11867.72421 (want 11854.052069) |
| fillets/2719-chamfer-as-wide-as-corner-round | [tangency-labs/solidcraft#2719](https://github.com/tangency-labs/solidcraft/issues/2719) | a 1 mm chamfer round a bottom loop whose corners are R1 rounds: each corner cone closes to a point on the bottom face | analytic | **FAIL**: step 3 (solid.chamfer): SMLib chamfer: operation: SMLib failed (status 1001) |
| fillets/2708-fillet-curvature-continuous-angled-ends | [tangency-labs/solidcraft#2708](https://github.com/tangency-labs/solidcraft/issues/2708) [tangency-labs/solidcraft#2739](https://github.com/tangency-labs/solidcraft/issues/2739) | a curvature-continuous (G2) fillet of size 5 on a straight edge that ends on two slanted planar faces | analytic | pass |
| fillets/2719-chamfer-as-wide-as-corner-round | [tangency-labs/solidcraft#2719](https://github.com/tangency-labs/solidcraft/issues/2719) | a 1 mm chamfer round a bottom loop whose corners are R1 rounds: each corner cone closes to a point on the bottom face | analytic | pass |
| fillets/2752-fillet-rim-of-flat-cut-on-sphere | [tangency-labs/solidcraft#2752](https://github.com/tangency-labs/solidcraft/issues/2752) [tangency-labs/solidcraft#2787](https://github.com/tangency-labs/solidcraft/issues/2787) | an R1 round round the rim of a radius-2 sphere cut flat at z=1 | analytic | pass |
| fillets/2797-chamfer-two-distances-circular-rim | [tangency-labs/solidcraft#2797](https://github.com/tangency-labs/solidcraft/issues/2797) [tangency-labs/solidcraft#3300](https://github.com/tangency-labs/solidcraft/issues/3300) [tangency-labs/solidcraft#2893](https://github.com/tangency-labs/solidcraft/issues/2893) | a Two Distances chamfer (1 mm on the top face, 0.5 mm down the wall) on the circular rim between a plane and a cylinder | analytic | not supported yet: step 2 (solid.chamfer): invalid input: not supported yet: a chamfer with two different setbacks (two distances, or a distance and an angle) with the SMLib kerne |
| fillets/2797-chamfer-two-distances-circular-rim | [tangency-labs/solidcraft#2797](https://github.com/tangency-labs/solidcraft/issues/2797) [tangency-labs/solidcraft#3300](https://github.com/tangency-labs/solidcraft/issues/3300) [tangency-labs/solidcraft#2893](https://github.com/tangency-labs/solidcraft/issues/2893) | a Two Distances chamfer (1 mm on the top face, 0.5 mm down the wall) on the circular rim between a plane and a cylinder | analytic | **FAIL**: faces 5 (want 4) |
| fillets/2811-fillet-rib-roots | [tangency-labs/solidcraft#2811](https://github.com/tangency-labs/solidcraft/issues/2811) | an R1.5 fillet of the 32 vertical root edges of 8 ribs between two walls of a grille tray (a performance case: the time must not blow up) | analytic | pass |
| fillets/2852-fillet-outer-round-concentric-with-inner | [tangency-labs/solidcraft#2852](https://github.com/tangency-labs/solidcraft/issues/2852) | an R18 round on the outside top edges of a 3 mm thick upside-down U, concentric with the R15 round of its inside edges | analytic | pass |
| fillets/2907-chamfer-two-end-outlines-rounded-top | [tangency-labs/solidcraft#2907](https://github.com/tangency-labs/solidcraft/issues/2907) [tangency-labs/solidcraft#3861](https://github.com/tangency-labs/solidcraft/issues/3861) | a 1.5 mm chamfer of both end outlines (sides, top and the two top arcs) of a prism with rounded top corners, bottom edges left alone | analytic | pass |
| fillets/324-fillet-over-hole-overlap | [tangency-labs/solidcraft#324](https://github.com/tangency-labs/solidcraft/issues/324) [tangency-labs/solidcraft#1885](https://github.com/tangency-labs/solidcraft/issues/1885) | a 4 mm fillet on a top edge whose round overlaps the rim of a through hole (the hole breaks into the round) | analytic | **FAIL**: step 6 (solid.fillet): SMLib fillet: operation: SMLib's result is not a closed solid |
| fillets/324-fillet-over-hole-overlap | [tangency-labs/solidcraft#324](https://github.com/tangency-labs/solidcraft/issues/324) [tangency-labs/solidcraft#1885](https://github.com/tangency-labs/solidcraft/issues/1885) | a 4 mm fillet on a top edge whose round overlaps the rim of a through hole (the hole breaks into the round) | analytic | not supported yet: step 6 (solid.fillet): not supported yet: 4 mm is too large for this fillet: it runs past the faces beside the edge into other geometry; the largest radius that |
| fillets/3276-chamfer-edge-of-1mm-protrusion-on-joined-l | [tangency-labs/solidcraft#3276](https://github.com/tangency-labs/solidcraft/issues/3276) | three extrudes joined into an L-shaped body with a 1 mm protrusion, then a chamfer on the protrusion's outer edge (the report: the corners are no longer 90 degrees and the chamfer fails) | analytic | pass |
| fillets/334-fillet-top-outline-after-concave-rounds | [tangency-labs/solidcraft#334](https://github.com/tangency-labs/solidcraft/issues/334) [tangency-labs/solidcraft#335](https://github.com/tangency-labs/solidcraft/issues/335) | an R2 round on the whole top outline of two merged cylinders after their two concave vertical edges were rounded R5 | analytic | pass |
| fillets/3369-fillet-edge-ends-on-tangent-seam | [tangency-labs/solidcraft#3369](https://github.com/tangency-labs/solidcraft/issues/3369) [tangency-labs/solidcraft#3922](https://github.com/tangency-labs/solidcraft/issues/3922) | an R2 round on a straight edge whose ends sit on the tangent seam between a flat top and a rounded end | analytic | **FAIL**: step 9 (solid.fillet): SMLib fillet: operation: SMLib failed (status 1001) |
| fillets/3369-fillet-edge-ends-on-tangent-seam | [tangency-labs/solidcraft#3369](https://github.com/tangency-labs/solidcraft/issues/3369) [tangency-labs/solidcraft#3922](https://github.com/tangency-labs/solidcraft/issues/3922) | an R2 round on a straight edge whose ends sit on the tangent seam between a flat top and a rounded end | analytic | pass |
| fillets/3435-fillet-larger-than-top-ring | [tangency-labs/solidcraft#3435](https://github.com/tangency-labs/solidcraft/issues/3435) [tangency-labs/solidcraft#3441](https://github.com/tangency-labs/solidcraft/issues/3441) | a fillet of radius 6.9 on a cylinder rim whose flat top ring (round the joined boss) is only 4.3 mm wide must be refused, not grow the part | invariants | pass |
| fillets/3655-chamfer-edge-order-box | [tangency-labs/solidcraft#3655](https://github.com/tangency-labs/solidcraft/issues/3655) [tangency-labs/solidcraft#3660](https://github.com/tangency-labs/solidcraft/issues/3660) | a plain box with all 12 edges chamfered, the edges listed in an order that was refused | analytic | pass |
| fillets/3753-circular-pattern-of-hole-and-its-rim-chamfer | [tangency-labs/solidcraft#3753](https://github.com/tangency-labs/solidcraft/issues/3753) | a circular pattern (6 copies about Y) of a through hole and the 1 mm chamfer on its rim (the report: the pattern is refused because the copied chamfer 'would grow the part'); rebuilt as a hole in a disc, the original design is not in the report | analytic | pass |
| fillets/3753-circular-pattern-of-hole-and-its-rim-chamfer | [tangency-labs/solidcraft#3753](https://github.com/tangency-labs/solidcraft/issues/3753) | a circular pattern (6 copies about Y) of a through hole and the 1 mm chamfer on its rim (the report: the pattern is refused because the copied chamfer 'would grow the part'); rebuilt as a hole in a disc, the original design is not in the report | analytic | **FAIL**: faces 21 (want 15) |
| fillets/3779-chamfer-all-spline-spans | [tangency-labs/solidcraft#3779](https://github.com/tangency-labs/solidcraft/issues/3779) [tangency-labs/solidcraft#3804](https://github.com/tangency-labs/solidcraft/issues/3804) | a 0.1 mm chamfer on all eight top-rim spans of a 20 x 20 pillow whose four sides are fit splines (two cubic spans each) | invariants | pass |
| fillets/3779-fillet-all-spline-spans | [tangency-labs/solidcraft#3779](https://github.com/tangency-labs/solidcraft/issues/3779) [tangency-labs/solidcraft#3804](https://github.com/tangency-labs/solidcraft/issues/3804) | a 0.1 mm fillet on all eight top-rim spans of a 20 x 20 pillow whose four sides are fit splines (two cubic spans each) | invariants | pass |
| fillets/3868-chamfer-concave-edge-adds-material | [tangency-labs/solidcraft#3868](https://github.com/tangency-labs/solidcraft/issues/3868) | a chamfer of an inside (concave) edge fills the corner and adds material, one on the outside edge removes it | analytic | pass |
| fillets/4055-chamfer-bar-edge-over-joined-pin | [tangency-labs/solidcraft#4055](https://github.com/tangency-labs/solidcraft/issues/4055) | a 3 mm chamfer on the bottom long edge of a bar joined on top of a pin, where the chamfer is wider than the 2 mm gap between that edge and the pin | analytic | pass |
| fillets/4101-chamfer-tapered-plug-corners | [tangency-labs/solidcraft#4101](https://github.com/tangency-labs/solidcraft/issues/4101) | the four edges of a block end face chamfered where the block sides are 1 degree off square: exact volume of the plane-clipped prism (the corner edges of about 0.0001 mm are real geometry) | analytic | pass |
| fillets/4141-fillet-corner-after-wedge-cut-beside-bspline | [tangency-labs/solidcraft#4141](https://github.com/tangency-labs/solidcraft/issues/4141) | an R5 round on the corner edge left by a wedge cut through a body vertex next to a B-spline face | invariants | pass |
| fillets/4143-fillet-notch-rim-on-bspline-ramp | [tangency-labs/solidcraft#4143](https://github.com/tangency-labs/solidcraft/issues/4143) | an R4 round on the rim of an R5 notch where its cylinder meets an extruded B-spline ramp, both ends running into a square wall | invariants | **FAIL**: step 13 (solid.fillet): SMLib fillet: operation: SMLib failed (status 1001) |
| fillets/4143-fillet-notch-rim-on-bspline-ramp | [tangency-labs/solidcraft#4143](https://github.com/tangency-labs/solidcraft/issues/4143) | an R4 round on the rim of an R5 notch where its cylinder meets an extruded B-spline ramp, both ends running into a square wall | invariants | pass |
| fillets/485-fillet-d-prism-top-outline-arc-and-flat | [tangency-labs/solidcraft#485](https://github.com/tangency-labs/solidcraft/issues/485) [tangency-labs/solidcraft#604](https://github.com/tangency-labs/solidcraft/issues/604) | an R0.5 round on both top perimeter edges (the arc and the flat) of a D-shaped prism, the two edges meeting at sharp 90 degree corners | analytic | pass |
| fillets/556-fillet-edge-ending-on-curved-boss | [tangency-labs/solidcraft#556](https://github.com/tangency-labs/solidcraft/issues/556) [tangency-labs/solidcraft#646](https://github.com/tangency-labs/solidcraft/issues/646) | an R0.5 round on a single straight bottom edge of a box whose end runs out against a cylindrical boss wall | analytic | pass |
| fillets/783-fillet-pick-far-from-any-edge-refused | [tangency-labs/solidcraft#783](https://github.com/tangency-labs/solidcraft/issues/783) [tangency-labs/solidcraft#820](https://github.com/tangency-labs/solidcraft/issues/820) | a fillet whose edge pick is 15 mm from the nearest edge must be refused, not applied to some other edge | invariants | pass |
| fillets/814-chamfer-hex-hole-corners | [tangency-labs/solidcraft#814](https://github.com/tangency-labs/solidcraft/issues/814) [tangency-labs/solidcraft#1067](https://github.com/tangency-labs/solidcraft/issues/1067) | a 2 mm chamfer on the six vertical corners of a hexagonal hole: one bevel each, not a notch | analytic | pass |
| fillets/851-fillet-three-edges-at-knife-edge-arc-corner | [tangency-labs/solidcraft#851](https://github.com/tangency-labs/solidcraft/issues/851) [tangency-labs/solidcraft#854](https://github.com/tangency-labs/solidcraft/issues/854) [tangency-labs/solidcraft#926](https://github.com/tangency-labs/solidcraft/issues/926) [tangency-labs/solidcraft#935](https://github.com/tangency-labs/solidcraft/issues/935) [tangency-labs/solidcraft#1294](https://github.com/tangency-labs/solidcraft/issues/1294) | three edges meeting at the front corner of a plate with a concave arc wall that runs out in a knife-edge tip: top front edge, arc top edge and front upright, R2 together | invariants | pass |
| fillets/862-fillet-curvature-continuous-box-edge | [tangency-labs/solidcraft#862](https://github.com/tangency-labs/solidcraft/issues/862) | a curvature-continuous (G2) fillet of size 6 on one edge of a 20 mm cube | analytic | **FAIL**: volume_mm3 7902.559861 (want 7892.380952) |
| fillets/862-fillet-curvature-continuous-box-edge | [tangency-labs/solidcraft#862](https://github.com/tangency-labs/solidcraft/issues/862) | a curvature-continuous (G2) fillet of size 6 on one edge of a 20 mm cube | analytic | pass |
| fillets/896-fillet-smooth-seam-refused | [tangency-labs/solidcraft#896](https://github.com/tangency-labs/solidcraft/issues/896) [tangency-labs/solidcraft#936](https://github.com/tangency-labs/solidcraft/issues/936) | a fillet picked on the seam where a rounded edge runs tangent into the flat top has no corner to round and is refused as an invalid pick | invariants | pass |
| import/1721-closed-bspline-tube-face | [tangency-labs/solidcraft#1721](https://github.com/tangency-labs/solidcraft/issues/1721) [tangency-labs/solidcraft#3880](https://github.com/tangency-labs/solidcraft/issues/3880) | a cylinder r=10 h=30 whose side is a closed (rational B-spline) tube face wrapping all the way round a closed non-periodic surface: it must mesh and measure as the full tube | analytic | not supported yet: step 1 (file.insert_step): tests/kernel-cases/import/1721-closed-bspline-tube-face/input.step: the operation failed: STEP import: no bodies (solid #89: not impo |
| import/1721-closed-bspline-tube-face | [tangency-labs/solidcraft#1721](https://github.com/tangency-labs/solidcraft/issues/1721) [tangency-labs/solidcraft#3880](https://github.com/tangency-labs/solidcraft/issues/3880) | a cylinder r=10 h=30 whose side is a closed (rational B-spline) tube face wrapping all the way round a closed non-periodic surface: it must mesh and measure as the full tube | analytic | pass |
| import/2043-outer-bound-opposing-surface-sense | [tangency-labs/solidcraft#1974](https://github.com/tangency-labs/solidcraft/issues/1974) [tangency-labs/solidcraft#2043](https://github.com/tangency-labs/solidcraft/issues/2043) | a block whose every plane's axis points into the part and whose faces say same_sense .F. while their FACE_OUTER_BOUND loops run counter-clockwise about the outward normal: the loops are outer bounds, not holes | analytic | pass |
| import/258-cone-point-vertex | [tangency-labs/solidcraft#258](https://github.com/tangency-labs/solidcraft/issues/258) | the same STEP cone with a VERTEX_LOOP at the apex: the mesh stopped 30 mm short of the apex | analytic | pass |
| import/258-cone-to-point | [tangency-labs/solidcraft#258](https://github.com/tangency-labs/solidcraft/issues/258) | a STEP cone 20 mm across coming to a point 30 mm up (no vertex at the apex): the cone face was meshed flat at its base, so the measured shape was far off | analytic | pass |
@@ -184,20 +184,20 @@ The cases run on SMLib, SolidCraft's kernel. A failing case stays failing until
| import/3359-iges-trim-pieces-written-end-to-start | [tangency-labs/solidcraft#3358](https://github.com/tangency-labs/solidcraft/issues/3358) [tangency-labs/solidcraft#3359](https://github.com/tangency-labs/solidcraft/issues/3359) | a box of six trimmed planes whose composite trim curves have their 2nd and 4th pieces written end to start: every loop must still close | analytic | pass |
| import/3730-void-oriented-shell-false | [tangency-labs/solidcraft#3730](https://github.com/tangency-labs/solidcraft/issues/3730) [tangency-labs/solidcraft#3872](https://github.com/tangency-labs/solidcraft/issues/3872) | a block with a closed cavity written as BREP_WITH_VOIDS whose void shell (outward-facing faces) is turned by ORIENTED_CLOSED_SHELL .F.; the cavity must be taken out, not added | analytic | pass |
| import/3806-iges-revolved-arc-spherical-cap-dome | [tangency-labs/solidcraft#3806](https://github.com/tangency-labs/solidcraft/issues/3806) [tangency-labs/solidcraft#3813](https://github.com/tangency-labs/solidcraft/issues/3813) | a dome: an IGES surface of revolution (120) of a 60-to-90 degree circular arc (100) of radius 50 centred on the axis, trimmed by a circle at the rim, over a flat base disc; the cap must be 50 mm across and 6.7 mm tall, not a whole sphere | analytic | pass |
| import/3845-iges-trim-pieces-miss-by-a-gap | [tangency-labs/solidcraft#3845](https://github.com/tangency-labs/solidcraft/issues/3845) [tangency-labs/solidcraft#3846](https://github.com/tangency-labs/solidcraft/issues/3846) | a box of six trimmed planes where the edge (0,0,0)-(0,20,0) stops 0.01 mm short of its end corner in both faces that use it: the small gap must be closed, giving a closed box instead of two dropped faces | analytic | **FAIL**: step 1 (file.insert_step): tests/kernel-cases/import/3845-iges-trim-pieces-miss-by-a-gap/input.igs: the operation failed: STEP import: no bodies (solid 'Body1': |
| import/3845-iges-trim-pieces-miss-by-a-gap | [tangency-labs/solidcraft#3845](https://github.com/tangency-labs/solidcraft/issues/3845) [tangency-labs/solidcraft#3846](https://github.com/tangency-labs/solidcraft/issues/3846) | a box of six trimmed planes where the edge (0,0,0)-(0,20,0) stops 0.01 mm short of its end corner in both faces that use it: the small gap must be closed, giving a closed box instead of two dropped faces | analytic | **FAIL**: smlib_check SMLib check: 2 failed tests: SmTrimmingTools::Test #0 Edge/Edge Gap: Gap between an edge endPoint an (want ok) |
| import/3871-cone-base-circle-with-vertex-loop | [tangency-labs/solidcraft#3871](https://github.com/tangency-labs/solidcraft/issues/3871) [tangency-labs/solidcraft#3901](https://github.com/tangency-labs/solidcraft/issues/3901) | the same cone with a VERTEX_LOOP at its point on the cone face: the point must still be reached, not read as a flat disc | analytic | pass |
| import/3871-cone-bounded-only-by-its-base-circle | [tangency-labs/solidcraft#3871](https://github.com/tangency-labs/solidcraft/issues/3871) [tangency-labs/solidcraft#3901](https://github.com/tangency-labs/solidcraft/issues/3901) [tangency-labs/solidcraft#3880](https://github.com/tangency-labs/solidcraft/issues/3880) | a cone whose face is bounded only by its base circle (no vertex at the point) must reach its point, not come in as a flat disc | analytic | pass |
| import/3880-cylinder-seam-edge | [tangency-labs/solidcraft#3880](https://github.com/tangency-labs/solidcraft/issues/3880) | a cylinder r=10 h=30 whose side face is written with a seam edge: one closed solid with 3 faces | analytic | pass |
| import/3880-nurbs-hemisphere-dome | [tangency-labs/solidcraft#3880](https://github.com/tangency-labs/solidcraft/issues/3880) | a hemisphere r=20 whose curved face is a rational B-spline surface, flat disc below | analytic | not supported yet: step 1 (file.insert_step): tests/kernel-cases/import/3880-nurbs-hemisphere-dome/input.step: the operation failed: STEP import: no bodies (solid #73: not importe |
| import/3880-nurbs-hemisphere-dome | [tangency-labs/solidcraft#3880](https://github.com/tangency-labs/solidcraft/issues/3880) | a hemisphere r=20 whose curved face is a rational B-spline surface, flat disc below | analytic | pass |
| import/3886-iges-bspline-curve-over-tiny-knot-span | [tangency-labs/solidcraft#3885](https://github.com/tangency-labs/solidcraft/issues/3885) [tangency-labs/solidcraft#3886](https://github.com/tangency-labs/solidcraft/issues/3886) | a box of six trimmed planes with one edge written as a B-spline curve (126) over a knot span of 1e-7: both faces it bounds must be kept | analytic | pass |
| import/3912-iges-hole-trim-first-piece-reversed | [tangency-labs/solidcraft#3912](https://github.com/tangency-labs/solidcraft/issues/3912) | a 10 x 10 trimmed patch with a 4 x 4 square hole whose composite trim curve starts with a reversed piece: the hole stays a hole | analytic | pass |
| import/3913-iges-trim-curve-first-piece-reversed | [tangency-labs/solidcraft#3912](https://github.com/tangency-labs/solidcraft/issues/3912) [tangency-labs/solidcraft#3913](https://github.com/tangency-labs/solidcraft/issues/3913) | a box of six trimmed planes whose composite trim curves start with a piece written end to start (1st and 3rd pieces reversed): every loop must still close | analytic | **FAIL**: step 1 (file.insert_step): tests/kernel-cases/import/3913-iges-trim-curve-first-piece-reversed/input.igs: the operation failed: STEP import: no bodies (solid 'B |
| import/3913-iges-trim-curve-first-piece-reversed | [tangency-labs/solidcraft#3912](https://github.com/tangency-labs/solidcraft/issues/3912) [tangency-labs/solidcraft#3913](https://github.com/tangency-labs/solidcraft/issues/3913) | a box of six trimmed planes whose composite trim curves start with a piece written end to start (1st and 3rd pieces reversed): every loop must still close | analytic | pass |
| import/3963-closed-spline-edge-vertex-past-start | [tangency-labs/solidcraft#3963](https://github.com/tangency-labs/solidcraft/issues/3963) | a 20 mm square face bounded by one closed degree-1 B-spline edge whose only vertex sits at parameter 2e-7, just past the curve's start: the face must be kept, not dropped or crashed on | analytic | pass |
| import/3972-iges-two-separate-closed-boxes | [tangency-labs/solidcraft#3928](https://github.com/tangency-labs/solidcraft/issues/3928) [tangency-labs/solidcraft#3972](https://github.com/tangency-labs/solidcraft/issues/3972) | an IGES file of twelve trimmed planes forming two separate closed boxes (10x20x30, one 100 mm along x): they must come in as two solids, not one open body | analytic | **FAIL**: smlib_check SMLib check: 4 failed tests: SmShell::Test #22 SmFaceuse_TYPE: sShellFaceuses and sFaceuses2 are equ (want ok); body_count 1 (want 2) |
| import/3972-iges-two-separate-closed-boxes | [tangency-labs/solidcraft#3928](https://github.com/tangency-labs/solidcraft/issues/3928) [tangency-labs/solidcraft#3972](https://github.com/tangency-labs/solidcraft/issues/3972) | an IGES file of twelve trimmed planes forming two separate closed boxes (10x20x30, one 100 mm along x): they must come in as two solids, not one open body | analytic | pass |
| import/4005-cylinder-written-as-near-zero-cone | [tangency-labs/solidcraft#4005](https://github.com/tangency-labs/solidcraft/issues/4005) | a cylinder r=5 h=10 whose side is a CONICAL_SURFACE with a semi-angle of 8e-12 rad (a cylinder to within rounding, as the exporter wrote it): the face must be read, not refused as a 'bad cone' | analytic | pass |
| import/4006-plane-written-as-cone-of-nearly-right-angle | [tangency-labs/solidcraft#4006](https://github.com/tangency-labs/solidcraft/issues/4006) | an annular plate r 4..10, 3 thick, whose top face is a CONICAL_SURFACE of semi-angle pi/2 - 7e-12 (a plane to within rounding, as the exporter wrote it): the face must be read, not refused as a 'bad cone', and the body stays closed | analytic | **FAIL**: step 1 (file.insert_step): tests/kernel-cases/import/4006-plane-written-as-cone-of-nearly-right-angle/input.step: the operation failed: STEP import: no bodies ( |
| sheet-metal/1040-convert-a-1200-mm-strip-1-mm-thick | [tangency-labs/solidcraft#1040](https://github.com/tangency-labs/solidcraft/issues/1040) | a 1200 x 100 x 1 strip (diagonal over 1000 times its thickness) converted to sheet metal: refused with no outline on that face | analytic | pass |
| sheet-metal/1040-convert-a-990-mm-strip-keeps-its-1-mm-hole | [tangency-labs/solidcraft#1040](https://github.com/tangency-labs/solidcraft/issues/1040) | a 990 x 100 x 1 strip with holes of 10, 4, 2 and 1 mm: the 1 mm hole fell out of the outline when the mesh sagged by almost the thickness | analytic | **FAIL**: step 6 (sheet.convert): no outline on that face |
| sheet-metal/1040-convert-a-990-mm-strip-keeps-its-1-mm-hole | [tangency-labs/solidcraft#1040](https://github.com/tangency-labs/solidcraft/issues/1040) | a 990 x 100 x 1 strip with holes of 10, 4, 2 and 1 mm: the 1 mm hole fell out of the outline when the mesh sagged by almost the thickness | analytic | **FAIL**: step 6 (sheet.convert): pick a planar face of the plate |
| sheet-metal/1092-convert-a-channel-with-its-bends-modelled | [tangency-labs/solidcraft#1092](https://github.com/tangency-labs/solidcraft/issues/1092) [tangency-labs/solidcraft#1314](https://github.com/tangency-labs/solidcraft/issues/1314) | a U channel modelled with its bend radii (R2 inside, R4 outside), a 6 mm hole in one wall and a label engraved 0.2 deep in its web, converted at the bends' outer arcs | analytic | pass |
| sheet-metal/1092-convert-an-L-with-a-modelled-bend-to-the-rules-radius | [tangency-labs/solidcraft#1092](https://github.com/tangency-labs/solidcraft/issues/1092) [tangency-labs/solidcraft#1314](https://github.com/tangency-labs/solidcraft/issues/1314) | an L section modelled with a bend of R2 inside and R4 outside, converted at that bend under a rule of R3: the bend becomes one bend of the rule's radius at the legs' virtual sharp | analytic | pass |
| sheet-metal/1092-convert-an-engraved-plate | [tangency-labs/solidcraft#1092](https://github.com/tangency-labs/solidcraft/issues/1092) [tangency-labs/solidcraft#1314](https://github.com/tangency-labs/solidcraft/issues/1314) | a 60 x 40 x 1 plate with a 20 x 10 x 0.1 engraving in its top face converted to sheet metal (refused as not a plate of even thickness; the engraving becomes a pocket of the sheet) | analytic | pass |
@@ -232,7 +232,7 @@ The cases run on SMLib, SolidCraft's kernel. A failing case stays failing until
| sheet-metal/488-unfold-a-tray-with-square-relieved-corners | [tangency-labs/solidcraft#488](https://github.com/tangency-labs/solidcraft/issues/488) | a 120 x 90 tray with four 20 mm 90 degree flanges and corner relief shape rectangular, unfolded | analytic | pass |
| sheet-metal/514-refold-an-L-bracket-after-unfolding-it | [tangency-labs/solidcraft#514](https://github.com/tangency-labs/solidcraft/issues/514) | an L bracket unfolded and refolded: the refold must give the folded part back | analytic | pass |
| sheet-metal/514-unfold-an-L-bracket | [tangency-labs/solidcraft#514](https://github.com/tangency-labs/solidcraft/issues/514) | a 60 x 40 base with a 20 mm 90 degree flange on one edge, unfolded: the flat plate is the base, the bend allowance and the flange's straight | analytic | pass |
| sheet-metal/529-a-hundred-slots-and-four-folds | [tangency-labs/solidcraft#529](https://github.com/tangency-labs/solidcraft/issues/529) [tangency-labs/solidcraft#430](https://github.com/tangency-labs/solidcraft/issues/430) [tangency-labs/solidcraft#964](https://github.com/tangency-labs/solidcraft/issues/964) | a 200 x 300 panel with a hundred 4.4 x 20 slots and four 90 degree folds (one per side tab): the flat geometry ran out of its processing budget above 77 slots | analytic | pass |
| sheet-metal/529-a-hundred-slots-and-four-folds | [tangency-labs/solidcraft#529](https://github.com/tangency-labs/solidcraft/issues/529) [tangency-labs/solidcraft#430](https://github.com/tangency-labs/solidcraft/issues/430) [tangency-labs/solidcraft#964](https://github.com/tangency-labs/solidcraft/issues/964) | a 200 x 300 panel with a hundred 4.4 x 20 slots and four 90 degree folds (one per side tab): the flat geometry ran out of its processing budget above 77 slots | analytic | **HANG**: no result after 20 s |
| sheet-metal/541-box-cut-straight-through-a-flat-sheet | [tangency-labs/solidcraft#541](https://github.com/tangency-labs/solidcraft/issues/541) | a solid.box cut straight through a 100 x 60 x 2.5 sheet was refused, though the same rectangle as an extrude cut works | analytic | pass |
| sheet-metal/542-round-hole-in-a-flat-sheet-and-its-flat-pattern | [tangency-labs/solidcraft#542](https://github.com/tangency-labs/solidcraft/issues/542) [tangency-labs/solidcraft#552](https://github.com/tangency-labs/solidcraft/issues/552) | a 3.2 mm round hole cut through a 100 x 60 x 2.5 sheet, which the flat pattern must report as a circle | analytic | pass |
| sheet-metal/560-hole-through-a-sheet-metal-base | [tangency-labs/solidcraft#560](https://github.com/tangency-labs/solidcraft/issues/560) [tangency-labs/solidcraft#656](https://github.com/tangency-labs/solidcraft/issues/656) | solid.hole square to a flat sheet metal panel was refused as sheet machining that cannot be preserved | analytic | pass |
@@ -251,31 +251,31 @@ The cases run on SMLib, SolidCraft's kernel. A failing case stays failing until
| sheet-metal/725-convert-a-shelled-tray-and-unfold-it | [tangency-labs/solidcraft#647](https://github.com/tangency-labs/solidcraft/issues/647) [tangency-labs/solidcraft#725](https://github.com/tangency-labs/solidcraft/issues/725) [tangency-labs/solidcraft#1285](https://github.com/tangency-labs/solidcraft/issues/1285) [tangency-labs/solidcraft#1340](https://github.com/tangency-labs/solidcraft/issues/1340) | a 100 x 60 x 30 box shelled to 2 mm, converted to sheet metal by its four bottom edges and unfolded | analytic | pass |
| sheet-metal/774-convert-a-plate-with-nine-round-holes | [tangency-labs/solidcraft#774](https://github.com/tangency-labs/solidcraft/issues/774) [tangency-labs/solidcraft#977](https://github.com/tangency-labs/solidcraft/issues/977) | a 30 x 30 x 2 plate with nine 4 mm holes converted to sheet metal (refused as not a plate of even thickness: the holes were read as polygons) | analytic | pass |
| sheet-metal/839-flange-on-a-plate-with-rounded-corners-unfolded | [tangency-labs/solidcraft#839](https://github.com/tangency-labs/solidcraft/issues/839) | a 200 x 100 plate with its corners rounded 8 and one 40 mm inside flange on its bottom edge, unfolded: the trim made the outline's arcs chords | analytic | pass |
| sheet-metal/955-hole-drilled-into-a-sheet-metal-rim | [tangency-labs/solidcraft#955](https://github.com/tangency-labs/solidcraft/issues/955) | a 2 mm hole drilled 10 mm deep into the rim of a 4 mm sheet, along the panel; it is a bore the panel keeps | analytic | pass |
| sheet-metal/955-hole-drilled-into-a-sheet-metal-rim | [tangency-labs/solidcraft#955](https://github.com/tangency-labs/solidcraft/issues/955) | a 2 mm hole drilled 10 mm deep into the rim of a 4 mm sheet, along the panel; it is a bore the panel keeps | analytic | **FAIL**: step 6 (solid.hole): SMLib boolean: SMLib's check refuses the result: 2 failed tests: SmBSplineCurve::Test #7 Bad CurveKink: 2D BSplineCurve Warning: Kink at in |
| sheet-metal/978-edge-flange-beside-a-ledge-as-tall-as-its-setback | [tangency-labs/solidcraft#978](https://github.com/tangency-labs/solidcraft/issues/978) | a 90 degree inside flange of radius 1 on an edge that has a ledge beside it exactly as tall as the flange's setback (3 mm): sew failed with a degenerate edge | invariants | pass |
| shell/12-offset-one-split-face-piece | [tangency-labs/solidcraft#12](https://github.com/tangency-labs/solidcraft/issues/12) | Offset Face on one piece of a split face moves only that piece, not the coplanar neighbour | analytic | pass |
| shell/12-offset-one-split-face-piece | [tangency-labs/solidcraft#12](https://github.com/tangency-labs/solidcraft/issues/12) | Offset Face on one piece of a split face moves only that piece, not the coplanar neighbour | analytic | **FAIL**: step 3 (solid.offset_face): SMLib offset faces: operation: SMLib failed (status 1001) |
| shell/1494-shell-box-with-cylinder-on-edge-line | [tangency-labs/solidcraft#1494](https://github.com/tangency-labs/solidcraft/issues/1494) | a 47.5x45x30 box with a cylinder r7.5 joined on its side whose axis lies in the plane of the box's front face (y=0), shelled 1 mm open at the bottom | invariants | **FAIL**: step 3 (solid.shell): SMLib shell: operation: SMLib failed (status 1001) |
| shell/1525-shell-box-with-rounds-chamfer-and-fillet | [tangency-labs/solidcraft#1525](https://github.com/tangency-labs/solidcraft/issues/1525) | a 50x50x30 box with r10 vertical rounds, a 5 mm chamfer round the base and a 4 mm fillet where the chamfer meets the wall, shelled 2 mm open at the top | invariants | **FAIL**: step 4 (solid.fillet): SMLib fillet: SMLib's check refuses the result: 3 failed tests: SmBrep::Test #59 Tolerance: Edge tolerance relative to brep tolerance (of |
| shell/1525-shell-box-with-rounds-chamfer-and-fillet | [tangency-labs/solidcraft#1525](https://github.com/tangency-labs/solidcraft/issues/1525) | a 50x50x30 box with r10 vertical rounds, a 5 mm chamfer round the base and a 4 mm fillet where the chamfer meets the wall, shelled 2 mm open at the top | invariants | pass |
| shell/1972-shell-one-half-sphere-leaves-the-other | [tangency-labs/solidcraft#1972](https://github.com/tangency-labs/solidcraft/issues/1972) | a sphere split into two hemispheres; shelling the flat face of one must hollow that half only, the other half stays solid | analytic | pass |
| shell/2531-shell-point-pick-after-parameter-edit | [tangency-labs/solidcraft#2531](https://github.com/tangency-labs/solidcraft/issues/2531) | a shell opened by a point pick keeps opening only that face after a parameter edit moves the body under the stored point | analytic | **FAIL**: volume_mm3 17952 (want 22112) |
| shell/2531-shell-point-pick-after-parameter-edit | [tangency-labs/solidcraft#2531](https://github.com/tangency-labs/solidcraft/issues/2531) | a shell opened by a point pick keeps opening only that face after a parameter edit moves the body under the stored point | analytic | pass |
| shell/2939-offset-face-sphere | [tangency-labs/solidcraft#2939](https://github.com/tangency-labs/solidcraft/issues/2939) | Offset Face on a sphere's round face | analytic | pass |
| shell/3103-shell-tapered-cylinder | [tangency-labs/solidcraft#3103](https://github.com/tangency-labs/solidcraft/issues/3103) | a cone frustum (r20 at the base, r15 at the top, 30 tall) shelled 2 mm open at the top | analytic | pass |
| shell/3283-offset-face-cylinder-wall | [tangency-labs/solidcraft#3283](https://github.com/tangency-labs/solidcraft/issues/3283) [tangency-labs/solidcraft#3650](https://github.com/tangency-labs/solidcraft/issues/3650) | Offset Face on the outer cylindrical wall of a tube (the picker only accepted planar faces) | analytic | pass |
| shell/3468-offset-face-boss-wall-next-to-fillet | [tangency-labs/solidcraft#3468](https://github.com/tangency-labs/solidcraft/issues/3468) [tangency-labs/solidcraft#3898](https://github.com/tangency-labs/solidcraft/issues/3898) | Offset Face on a boss wall whose base has a 2 mm fillet: the boss grows to r 11 and the fillet follows | analytic | **FAIL**: step 4 (solid.offset_face): SMLib offset faces: SMLib's check refuses the result: 4 failed tests: SmBrep::Test #59 Tolerance: Edge tolerance relative to brep to |
| shell/3506-split-body-then-shell-both-halves | [tangency-labs/solidcraft#3506](https://github.com/tangency-labs/solidcraft/issues/3506) | a box split in two at z=10, then each half shelled 2 mm open on the mating face | analytic | pass |
| shell/3576-shell-tapered-box-rounded-corners | [tangency-labs/solidcraft#3576](https://github.com/tangency-labs/solidcraft/issues/3576) [tangency-labs/solidcraft#3573](https://github.com/tangency-labs/solidcraft/issues/3573) | a 120x80x40 box drafted 5 degrees with 4 mm rounds on the sloping corners, shelled 2 mm open at the top: the inner rounds' edges must lie on their faces (#3573 reports the same design) | invariants | **FAIL**: step 6 (solid.shell): SMLib shell: SMLib's check refuses the result: 12 failed tests: SmBSplineSurface::Test #5 Bad NonMonotonic CPts: SmBSplineSurface Control |
| shell/3576-shell-tapered-box-rounded-corners | [tangency-labs/solidcraft#3576](https://github.com/tangency-labs/solidcraft/issues/3576) [tangency-labs/solidcraft#3573](https://github.com/tangency-labs/solidcraft/issues/3573) | a 120x80x40 box drafted 5 degrees with 4 mm rounds on the sloping corners, shelled 2 mm open at the top: the inner rounds' edges must lie on their faces (#3573 reports the same design) | invariants | **FAIL**: step 6 (solid.shell): SMLib shell: SMLib's check refuses the result: 23 failed tests: SmBSplineSurface::Test #5 Bad NonMonotonic CPts: SmBSplineSurface Control |
| shell/3669-shell-lofted-square-frustum | [tangency-labs/solidcraft#3669](https://github.com/tangency-labs/solidcraft/issues/3669) [tangency-labs/solidcraft#2990](https://github.com/tangency-labs/solidcraft/issues/2990) | a loft between a 40 mm and a 20 mm square 80 mm apart, shelled 2 mm open at the small end | analytic | pass |
| shell/391-deboss-text-on-flange-of-filleted-shelled-body | [tangency-labs/solidcraft#391](https://github.com/tangency-labs/solidcraft/issues/391) | text debossed 0.6 mm into the flat flange top of a filleted and shelled tapered housing, well away from the curved walls | invariants | not supported yet: step 8 (solid.extrude): not supported yet: SMLib draft extrusion with a straight foot |
| shell/391-deboss-text-on-flange-of-filleted-shelled-body | [tangency-labs/solidcraft#391](https://github.com/tangency-labs/solidcraft/issues/391) | text debossed 0.6 mm into the flat flange top of a filleted and shelled tapered housing, well away from the curved walls | invariants | **FAIL**: step 10 (solid.shell): SMLib shell: SMLib's check refuses the result: 21 failed tests: SmBSplineSurface::Test #5 Bad NonMonotonic CPts: SmBSplineSurface Control |
| shell/4009-closed-shell-internal-void | [tangency-labs/solidcraft#4009](https://github.com/tangency-labs/solidcraft/issues/4009) | shell with no face removed: a closed hollow body with a sealed internal void | analytic | **FAIL**: step 5 (solid.shell): invalid parameters for `solid.shell`: select 1…1000 faces |
| shell/4010-shell-open-at-through-hole-wall | [tangency-labs/solidcraft#4010](https://github.com/tangency-labs/solidcraft/issues/4010) | plate with a through hole shelled 2.5 mm with only the hole's wall removed | analytic | pass |
| shell/566-shell-swept-bar-with-bend | [tangency-labs/solidcraft#566](https://github.com/tangency-labs/solidcraft/issues/566) | a 8x5 bar swept along a line-arc-line path (quarter circle r30 between two 30 mm legs), shelled 0.5 mm open at its start | analytic | pass |
| shell/566-shell-swept-bar-with-bend | [tangency-labs/solidcraft#566](https://github.com/tangency-labs/solidcraft/issues/566) | a 8x5 bar swept along a line-arc-line path (quarter circle r30 between two 30 mm legs), shelled 0.5 mm open at its start | analytic | **FAIL**: step 9 (solid.sweep): SMLib export: pcurve: pcurve of loop 0 use 3 (Some([4.0, -2.5, 0.00020561684819202892]) to Some([3.999999999999998, -2.4999999999999996, - |
| shell/745-offset-face-on-body-with-distant-freeform-boss | [tangency-labs/solidcraft#745](https://github.com/tangency-labs/solidcraft/issues/745) [tangency-labs/solidcraft#3893](https://github.com/tangency-labs/solidcraft/issues/3893) | Offset Face on a planar end of a body that has a spline-outlined boss far from the moved face | invariants | pass |
| shell/745-offset-face-then-cut-boss-away | [tangency-labs/solidcraft#745](https://github.com/tangency-labs/solidcraft/issues/745) [tangency-labs/solidcraft#3893](https://github.com/tangency-labs/solidcraft/issues/3893) | the same end offset, then the boss and the box beyond x=24 cut away, which leaves an analytic body | analytic | pass |
| sweeps/1093-circular-pattern-of-a-lofted-join-blade | [tangency-labs/solidcraft#1093](https://github.com/tangency-labs/solidcraft/issues/1093) [tangency-labs/solidcraft#1107](https://github.com/tangency-labs/solidcraft/issues/1107) | a tapered lofted blade (6 x 3 root embedded 2 mm into a disk, 3 x 1.5 tip) joined to a disk and patterned 9 times round the axis as joins (31 minutes with eight retries, or "cavity ownership is ambiguous") | analytic | pass |
| sweeps/1140-loft-hollow-tube-bands-halved-and-joined | [tangency-labs/solidcraft#1140](https://github.com/tangency-labs/solidcraft/issues/1140) | two hollow lofted tube bands (outer r 30, bore r 18 on R100, 5 sections each, 45 degrees each), each cut in half through its axis plane z = 0 and the halves joined into one body ("no result" after ten minutes of fallbacks) | analytic | pass |
| sweeps/1184-loft-ring-sections-keep-the-hole | [tangency-labs/solidcraft#1184](https://github.com/tangency-labs/solidcraft/issues/1184) [tangency-labs/solidcraft#1254](https://github.com/tangency-labs/solidcraft/issues/1254) [tangency-labs/solidcraft#2435](https://github.com/tangency-labs/solidcraft/issues/2435) [tangency-labs/solidcraft#2447](https://github.com/tangency-labs/solidcraft/issues/2447) | a loft between two ring sections (outer r 20, inner r 12) 20 mm apart (the hole was dropped and a solid disc built) | analytic | not supported yet: step 9 (solid.loft): not supported yet: SMLib loft through sections with holes |
| sweeps/1269-sweep-parallel-orientation-oblique-cylinder | [tangency-labs/solidcraft#1269](https://github.com/tangency-labs/solidcraft/issues/1269) | a circle of radius 5 on XY swept with orientation parallel along a path rising 20 mm while leaning 20 mm in x (the profile does not turn: a sheared cylinder) | analytic | pass |
| sweeps/1269-sweep-twisted-square-ninety-degrees | [tangency-labs/solidcraft#1269](https://github.com/tangency-labs/solidcraft/issues/1269) | a 10 x 10 square swept 40 mm along a straight path while turning 90 degrees about the path | analytic | not supported yet: step 7 (solid.sweep): not supported yet: SMLib sweep with a twist or an end scale |
| sweeps/1184-loft-ring-sections-keep-the-hole | [tangency-labs/solidcraft#1184](https://github.com/tangency-labs/solidcraft/issues/1184) [tangency-labs/solidcraft#1254](https://github.com/tangency-labs/solidcraft/issues/1254) [tangency-labs/solidcraft#2435](https://github.com/tangency-labs/solidcraft/issues/2435) [tangency-labs/solidcraft#2447](https://github.com/tangency-labs/solidcraft/issues/2447) | a loft between two ring sections (outer r 20, inner r 12) 20 mm apart (the hole was dropped and a solid disc built) | analytic | pass |
| sweeps/1269-sweep-parallel-orientation-oblique-cylinder | [tangency-labs/solidcraft#1269](https://github.com/tangency-labs/solidcraft/issues/1269) | a circle of radius 5 on XY swept with orientation parallel along a path rising 20 mm while leaning 20 mm in x (the profile does not turn: a sheared cylinder) | analytic | **FAIL**: faces 4 (want 3) |
| sweeps/1269-sweep-twisted-square-ninety-degrees | [tangency-labs/solidcraft#1269](https://github.com/tangency-labs/solidcraft/issues/1269) | a 10 x 10 square swept 40 mm along a straight path while turning 90 degrees about the path | analytic | pass |
| sweeps/1391-flange-flush-on-the-end-of-a-bent-tapered-loft-20deg | [tangency-labs/solidcraft#1391](https://github.com/tangency-labs/solidcraft/issues/1391) [tangency-labs/solidcraft#1556](https://github.com/tangency-labs/solidcraft/issues/1556) | a half tube (6 mm wall, inner radius tapering 60 to 75 mm) lofted through 5 sections along an R300 bend of 20 degrees, with an 8 mm half-annulus flange (inner radius +3 into the wall, outer +25 beyond it) extruded from the end plane outward and joined: the flange face lies in the end plane ("Union: no result") | analytic | pass |
| sweeps/1391-flange-flush-on-the-end-of-a-bent-tapered-loft-40deg | [tangency-labs/solidcraft#1391](https://github.com/tangency-labs/solidcraft/issues/1391) [tangency-labs/solidcraft#1556](https://github.com/tangency-labs/solidcraft/issues/1556) | a half tube (6 mm wall, inner radius tapering 60 to 75 mm) lofted through 5 sections along an R300 bend of 40 degrees, with an 8 mm half-annulus flange (inner radius +3 into the wall, outer +25 beyond it) extruded from the end plane outward and joined: the flange face lies in the end plane ("Union: no result") | analytic | pass |
| sweeps/1411-coil-intersected-with-a-cylinder-holding-it | [tangency-labs/solidcraft#1411](https://github.com/tangency-labs/solidcraft/issues/1411) | a 4-turn coil (centre diameter 40, wire 3 mm, pitch 8) intersected with a cylinder of radius 25 and height 40 that holds it (crash report: unclean exit in solid.coil) | analytic | pass |
@@ -283,18 +283,18 @@ The cases run on SMLib, SolidCraft's kernel. A failing case stays failing until
| sweeps/1666-loft-zigzag-to-flat-rectangle | [tangency-labs/solidcraft#1666](https://github.com/tangency-labs/solidcraft/issues/1666) | a ruled loft from an 18-vertex zig-zag section to a flat 52 x 3 rectangle with 18 vertices (8 of them collinear), whose twisted ruled faces were exported as crossing triangles | analytic | pass |
| sweeps/1669-mirrored-window-and-loft-on-a-hollow-case | [tangency-labs/solidcraft#1669](https://github.com/tangency-labs/solidcraft/issues/1669) | a closed hollow box (60 x 60 x 40, 2.5 mm walls) with a window cut in one end wall and a loft joined into it, both mirrored about the middle plane x = 30 onto the far wall ("Union: no result" on the mirror only) | analytic | pass |
| sweeps/1853-revolve-cut-half-a-slot-about-its-centreline | [tangency-labs/solidcraft#1853](https://github.com/tangency-labs/solidcraft/issues/1853) [tangency-labs/solidcraft#1866](https://github.com/tangency-labs/solidcraft/issues/1866) | half a slot (r 3, centres 14 apart) revolved a full turn about its own centreline, which lies in the top face of a plate, as a cut (no result after about 10 s of retries) | analytic | pass |
| sweeps/1856-disk-and-36-twisted-lofted-blades-joined | [tangency-labs/solidcraft#2992](https://github.com/tangency-labs/solidcraft/issues/2992) [tangency-labs/solidcraft#1856](https://github.com/tangency-labs/solidcraft/issues/1856) | a disk joined to 36 patterned twisted lofted blades (each a loft of 9 rectangle sections turning 7.5 degrees apart, rooted 2 mm inside the disk): hang of minutes | analytic | **HANG**: no result after 180 s |
| sweeps/1856-disk-and-36-twisted-lofted-blades-joined | [tangency-labs/solidcraft#2992](https://github.com/tangency-labs/solidcraft/issues/2992) [tangency-labs/solidcraft#1856](https://github.com/tangency-labs/solidcraft/issues/1856) | a disk joined to 36 patterned twisted lofted blades (each a loft of 9 rectangle sections turning 7.5 degrees apart, rooted 2 mm inside the disk): hang of minutes | analytic | pass |
| sweeps/1866-revolve-half-slot-profile-180 | [tangency-labs/solidcraft#1866](https://github.com/tangency-labs/solidcraft/issues/1866) | half a slot (r 3, centres 14 apart; the segment before the axis edge comes back to the axis along an arc) revolved 180 deg about its centreline | analytic | pass |
| sweeps/1866-revolve-half-slot-profile-90 | [tangency-labs/solidcraft#1866](https://github.com/tangency-labs/solidcraft/issues/1866) | half a slot (r 3, centres 14 apart; the segment before the axis edge comes back to the axis along an arc) revolved 90 deg about its centreline | analytic | pass |
| sweeps/2005-closed-sweep-twisted-cut-inside-a-torus | [tangency-labs/solidcraft#2005](https://github.com/tangency-labs/solidcraft/issues/2005) [tangency-labs/solidcraft#2010](https://github.com/tangency-labs/solidcraft/issues/2010) | an 8 x 8 square swept a full turn round a circle of radius 30 with a 180 degree twist, cut from a torus (R 30, r 8) that holds it (no result, or minutes) | analytic | not supported yet: step 11 (solid.sweep): not supported yet: SMLib sweep with a twist or an end scale |
| sweeps/2005-closed-sweep-twisted-new-body | [tangency-labs/solidcraft#2005](https://github.com/tangency-labs/solidcraft/issues/2005) [tangency-labs/solidcraft#2010](https://github.com/tangency-labs/solidcraft/issues/2010) | an 8 x 8 square swept a full turn round a circle of radius 30 with a 90 degree twist, as a new body (the sweep that closes on itself) | analytic | not supported yet: step 7 (solid.sweep): not supported yet: SMLib sweep with a twist or an end scale |
| sweeps/201-loft-one-guide-rail-cone-frustum | [tangency-labs/solidcraft#201](https://github.com/tangency-labs/solidcraft/issues/201) [tangency-labs/solidcraft#3371](https://github.com/tangency-labs/solidcraft/issues/3371) | a loft from a circle of radius 5 to a circle of radius 10, 20 mm above, guided by one straight rail through (5,0,0) and (10,0,20) | analytic | not supported yet: step 10 (solid.loft): not supported yet: SMLib loft along guide rails |
| sweeps/2005-closed-sweep-twisted-cut-inside-a-torus | [tangency-labs/solidcraft#2005](https://github.com/tangency-labs/solidcraft/issues/2005) [tangency-labs/solidcraft#2010](https://github.com/tangency-labs/solidcraft/issues/2010) | an 8 x 8 square swept a full turn round a circle of radius 30 with a 180 degree twist, cut from a torus (R 30, r 8) that holds it (no result, or minutes) | analytic | pass |
| sweeps/2005-closed-sweep-twisted-new-body | [tangency-labs/solidcraft#2005](https://github.com/tangency-labs/solidcraft/issues/2005) [tangency-labs/solidcraft#2010](https://github.com/tangency-labs/solidcraft/issues/2010) | an 8 x 8 square swept a full turn round a circle of radius 30 with a 90 degree twist, as a new body (the sweep that closes on itself) | analytic | pass |
| sweeps/201-loft-one-guide-rail-cone-frustum | [tangency-labs/solidcraft#201](https://github.com/tangency-labs/solidcraft/issues/201) [tangency-labs/solidcraft#3371](https://github.com/tangency-labs/solidcraft/issues/3371) | a loft from a circle of radius 5 to a circle of radius 10, 20 mm above, guided by one straight rail through (5,0,0) and (10,0,20) | analytic | pass |
| sweeps/2056-rib-grows-along-the-sketch-normal-to-the-part | [tangency-labs/solidcraft#2056](https://github.com/tangency-labs/solidcraft/issues/2056) [tangency-labs/solidcraft#2057](https://github.com/tangency-labs/solidcraft/issues/2057) | a rib drawn on a plane 20 mm in front of a block (parallel to XZ, a 40 mm line along X) with direction normal, growing toward the block | analytic | pass |
| sweeps/2183-revolve-profile-crosses-the-axis-refused | [tangency-labs/solidcraft#2453](https://github.com/tangency-labs/solidcraft/issues/2453) [tangency-labs/solidcraft#2183](https://github.com/tangency-labs/solidcraft/issues/2183) | a rectangle that straddles the revolve axis (x from -5 to 15 about the sketch y axis) | invariants | pass |
| sweeps/2295-revolve-cut-torus-by-an-overlapping-ring | [tangency-labs/solidcraft#2295](https://github.com/tangency-labs/solidcraft/issues/2295) | a torus (R 10, r 5) cut by a disc of radius 5 centred at (15,0) in the XZ plane revolved about Z (the disc overlaps the torus tube) | analytic | pass |
| sweeps/2435-loft-rectangular-ring-sections | [tangency-labs/solidcraft#2435](https://github.com/tangency-labs/solidcraft/issues/2435) [tangency-labs/solidcraft#2447](https://github.com/tangency-labs/solidcraft/issues/2447) | a loft between two rectangular ring sections (a rectangle with a rectangular hole), 24 mm apart, tapering outer 40 x 30 to 28 x 20 and hole 20 x 14 to 12 x 6 | analytic | not supported yet: step 9 (solid.loft): not supported yet: SMLib loft through sections with holes |
| sweeps/2516-revolve-about-a-named-construction-axis | [tangency-labs/solidcraft#3796](https://github.com/tangency-labs/solidcraft/issues/3796) [tangency-labs/solidcraft#3619](https://github.com/tangency-labs/solidcraft/issues/3619) [tangency-labs/solidcraft#2516](https://github.com/tangency-labs/solidcraft/issues/2516) | a rectangle revolved about a construction axis picked by name ("unknown sketch line `Axis1`") | analytic | **FAIL**: step 5 (solid.revolve): unknown sketch line `Axis1` |
| sweeps/2552-thread-groove-cut-by-a-square-coil-in-a-bore | [tangency-labs/solidcraft#2552](https://github.com/tangency-labs/solidcraft/issues/2552) | a square-wire coil (diameter 10, section 0.9 inside, pitch 1.5, height 10) cut as a helical groove into the wall of a bore of radius 4.1 in a 30 x 30 x 12 block (crash report: unclean exit in solid.coil) | analytic | **CRASH**: process exited (signal: 11 (SIGSEGV) (core dumped)) without a result: |
| sweeps/2295-revolve-cut-torus-by-an-overlapping-ring | [tangency-labs/solidcraft#2295](https://github.com/tangency-labs/solidcraft/issues/2295) | a torus (R 10, r 5) cut by a disc of radius 5 centred at (15,0) in the XZ plane revolved about Z (the disc overlaps the torus tube) | analytic | **FAIL**: faces 4 (want 2) |
| sweeps/2435-loft-rectangular-ring-sections | [tangency-labs/solidcraft#2435](https://github.com/tangency-labs/solidcraft/issues/2435) [tangency-labs/solidcraft#2447](https://github.com/tangency-labs/solidcraft/issues/2447) | a loft between two rectangular ring sections (a rectangle with a rectangular hole), 24 mm apart, tapering outer 40 x 30 to 28 x 20 and hole 20 x 14 to 12 x 6 | analytic | pass |
| sweeps/2516-revolve-about-a-named-construction-axis | [tangency-labs/solidcraft#3796](https://github.com/tangency-labs/solidcraft/issues/3796) [tangency-labs/solidcraft#3619](https://github.com/tangency-labs/solidcraft/issues/3619) [tangency-labs/solidcraft#2516](https://github.com/tangency-labs/solidcraft/issues/2516) | a rectangle revolved about a construction axis picked by name ("unknown sketch line `Axis1`") | analytic | pass |
| sweeps/2552-thread-groove-cut-by-a-square-coil-in-a-bore | [tangency-labs/solidcraft#2552](https://github.com/tangency-labs/solidcraft/issues/2552) | a square-wire coil (diameter 10, section 0.9 inside, pitch 1.5, height 10) cut as a helical groove into the wall of a bore of radius 4.1 in a 30 x 30 x 12 block (crash report: unclean exit in solid.coil) | analytic | **HANG**: no result after 20 s |
| sweeps/2570-loft-circle-to-a-non-star-shaped-comb | [tangency-labs/solidcraft#2570](https://github.com/tangency-labs/solidcraft/issues/2570) [tangency-labs/solidcraft#3670](https://github.com/tangency-labs/solidcraft/issues/3670) | a loft between a circle and a 20-edge comb outline (not star-shaped from its centroid: the teeth turn the vertex directions back on themselves), 40 mm apart (the circle was wound about ten times, the app froze) | invariants | **FAIL**: step 7 (solid.loft): invalid input: an arc turns more than once |
| sweeps/2607-revolve-axis-outside-the-sketch-plane-refused | [tangency-labs/solidcraft#3736](https://github.com/tangency-labs/solidcraft/issues/3736) [tangency-labs/solidcraft#2607](https://github.com/tangency-labs/solidcraft/issues/2607) | a profile on the XZ plane revolved about the world Y axis, which does not lie in the sketch plane | invariants | pass |
| sweeps/2667-revolve-half-disc-sphere | [tangency-labs/solidcraft#2667](https://github.com/tangency-labs/solidcraft/issues/2667) | a half disc of radius 6 on the axis revolved a full turn (mutation survivor: half_disc area factor) | analytic | pass |
@@ -302,21 +302,21 @@ The cases run on SMLib, SolidCraft's kernel. A failing case stays failing until
| sweeps/2667-sweep-hostile-end-scale-refused | [tangency-labs/solidcraft#2667](https://github.com/tangency-labs/solidcraft/issues/2667) | a sweep with an end scale of 500 (the engine allows 0.01 to 100): the option check (SweepControl::check) must refuse it | invariants | pass |
| sweeps/271-loft-cut-with-targets-keeps-the-bystander | [tangency-labs/solidcraft#271](https://github.com/tangency-labs/solidcraft/issues/271) [tangency-labs/solidcraft#286](https://github.com/tangency-labs/solidcraft/issues/286) [tangency-labs/solidcraft#299](https://github.com/tangency-labs/solidcraft/issues/299) | a loft cut limited by targets to one body while a second body lies inside the loft | analytic | pass |
| sweeps/2820-pipe-cut-oblique-hole-through-a-block | [tangency-labs/solidcraft#2820](https://github.com/tangency-labs/solidcraft/issues/2820) | a pipe of diameter 6 cut through a 40 x 40 x 20 block along a line leaning 30 degrees from the vertical | analytic | pass |
| sweeps/2820-pipe-hollow-with-a-wall-along-a-bend | [tangency-labs/solidcraft#2820](https://github.com/tangency-labs/solidcraft/issues/2820) | a hollow pipe (outer diameter 10, wall 2) along a path of two lines joined by a tangent R20 quarter arc | analytic | **FAIL**: step 6 (solid.pipe): SMLib sweep: SMLib failed (status 1001) |
| sweeps/2847-loft-rectangles-turning-through-half-a-turn | [tangency-labs/solidcraft#2847](https://github.com/tangency-labs/solidcraft/issues/2847) [tangency-labs/solidcraft#3452](https://github.com/tangency-labs/solidcraft/issues/3452) | a loft through 19 identical 6 x 4 rectangles on planes turning about the Z axis every 10 degrees from 0 to 180 degrees, centred 30 mm from the axis (volume came out 6 % of the expected at 180 degrees, no error) | analytic | **FAIL**: volume_mm3 -127.306602 (want 2261.946711); bbox.max [33, 33.208374, 2] (want [33, 33, 2]) |
| sweeps/2862-three-pipes-meeting-at-one-point | [tangency-labs/solidcraft#2862](https://github.com/tangency-labs/solidcraft/issues/2862) | three pipes of diameter 4.4 and length 20 along +X, +Y and +Z, all ending at the origin, joined (a non-planar tripod junction: kernel panics, then no result) | analytic | not supported yet: step 7 (solid.pipe): not supported yet: SMLib sweep along a path of points (a 3D sketch curve) |
| sweeps/2891-twisted-sweep-cut-through-a-tube | [tangency-labs/solidcraft#2891](https://github.com/tangency-labs/solidcraft/issues/2891) [tangency-labs/solidcraft#3695](https://github.com/tangency-labs/solidcraft/issues/3695) | a 20 x 20 square swept 250 mm along the axis of a tube (ID 20, OD 30, 250 long) with a 30 degree twist, cut from it (the twisted cut froze the app) | analytic | not supported yet: step 12 (solid.sweep): not supported yet: SMLib sweep with a twist or an end scale |
| sweeps/2820-pipe-hollow-with-a-wall-along-a-bend | [tangency-labs/solidcraft#2820](https://github.com/tangency-labs/solidcraft/issues/2820) | a hollow pipe (outer diameter 10, wall 2) along a path of two lines joined by a tangent R20 quarter arc | analytic | pass |
| sweeps/2847-loft-rectangles-turning-through-half-a-turn | [tangency-labs/solidcraft#2847](https://github.com/tangency-labs/solidcraft/issues/2847) [tangency-labs/solidcraft#3452](https://github.com/tangency-labs/solidcraft/issues/3452) | a loft through 19 identical 6 x 4 rectangles on planes turning about the Z axis every 10 degrees from 0 to 180 degrees, centred 30 mm from the axis (volume came out 6 % of the expected at 180 degrees, no error) | analytic | **FAIL**: measure Body1: the operation failed: SMLib mass properties: SMLib rejected the input (SM_ERR_INVALID_INPUT) (want measurable); body_count 0 (want 1); volume_mm3 0 (want 2261.946711); bbox.min [null, null, null] (want [-33, 0, -2]); bbox.max [null, null, null] (want [33, 33, 2]) |
| sweeps/2862-three-pipes-meeting-at-one-point | [tangency-labs/solidcraft#2862](https://github.com/tangency-labs/solidcraft/issues/2862) | three pipes of diameter 4.4 and length 20 along +X, +Y and +Z, all ending at the origin, joined (a non-planar tripod junction: kernel panics, then no result) | analytic | pass |
| sweeps/2891-twisted-sweep-cut-through-a-tube | [tangency-labs/solidcraft#2891](https://github.com/tangency-labs/solidcraft/issues/2891) [tangency-labs/solidcraft#3695](https://github.com/tangency-labs/solidcraft/issues/3695) | a 20 x 20 square swept 250 mm along the axis of a tube (ID 20, OD 30, 250 long) with a 30 degree twist, cut from it (the twisted cut froze the app) | analytic | pass |
| sweeps/2947-revolve-300-degrees-intersected-by-a-plate | [tangency-labs/solidcraft#2947](https://github.com/tangency-labs/solidcraft/issues/2947) [tangency-labs/solidcraft#2948](https://github.com/tangency-labs/solidcraft/issues/2948) | a rectangle section revolved 300 degrees about Z, then intersected with a plate (slab /y/ <= 5) crossing the ring at the start/end gap side and the far side (boolean gave up: "loop not inside any face piece") | analytic | pass |
| sweeps/3006-second-sweep-from-a-plane-along-a-closed-path | [tangency-labs/solidcraft#3006](https://github.com/tangency-labs/solidcraft/issues/3006) | a circle of radius 3 on a plane at 0.5 of a closed circular path (R 30) swept round it, then a 5 x 5 square on a plane at 0.75 swept round the same path and joined (it did not follow the path) | analytic | **FAIL**: step 13 (solid.sweep): SMLib export: the mapped B-rep does not validate: portable B-rep: a closed shell bounds two regions and encloses one |
| sweeps/3006-second-sweep-from-a-plane-along-a-closed-path | [tangency-labs/solidcraft#3006](https://github.com/tangency-labs/solidcraft/issues/3006) | a circle of radius 3 on a plane at 0.5 of a closed circular path (R 30) swept round it, then a 5 x 5 square on a plane at 0.75 swept round the same path and joined (it did not follow the path) | analytic | pass |
| sweeps/3088-coil-thread-joined-flush-with-a-cylinder | [tangency-labs/solidcraft#3088](https://github.com/tangency-labs/solidcraft/issues/3088) [tangency-labs/solidcraft#3758](https://github.com/tangency-labs/solidcraft/issues/3758) | a 4-turn square coil (4 mm wire, pitch 9, outer diameter 30.8, section inside) joined round a cylinder of radius 15 and height 40, its ends flush with the cylinder end faces (hang of several minutes, crash report) | analytic | pass |
| sweeps/3111-loft-rectangular-ring-to-circular-ring | [tangency-labs/solidcraft#3111](https://github.com/tangency-labs/solidcraft/issues/3111) | a loft from a rectangular ring (two nested rectangles) to a circular ring (two concentric circles) 30 mm above: a hollow transition piece | invariants | not supported yet: step 9 (solid.loft): not supported yet: SMLib loft through sections with holes |
| sweeps/3111-loft-rectangular-ring-to-circular-ring | [tangency-labs/solidcraft#3111](https://github.com/tangency-labs/solidcraft/issues/3111) | a loft from a rectangular ring (two nested rectangles) to a circular ring (two concentric circles) 30 mm above: a hollow transition piece | invariants | pass |
| sweeps/3156-revolve-join-end-faces-flush-with-a-face | [tangency-labs/solidcraft#3156](https://github.com/tangency-labs/solidcraft/issues/3156) [tangency-labs/solidcraft#3224](https://github.com/tangency-labs/solidcraft/issues/3224) | a rectangle revolved plus and minus 90 degrees about an axis in a plate top face: both planar end faces lie in that face and the join needed a tool nudge | analytic | pass |
| sweeps/3191-revolve-cut-leaves-a-cone | [tangency-labs/solidcraft#3911](https://github.com/tangency-labs/solidcraft/issues/3911) [tangency-labs/solidcraft#3191](https://github.com/tangency-labs/solidcraft/issues/3191) | a triangle sharing the cylinder side and top rim revolved as a cut to leave a cone (the cut never completed) | analytic | **FAIL**: step 5 (solid.revolve): invalid input: the profile crosses the revolve axis |
| sweeps/3191-revolve-cut-leaves-a-cone | [tangency-labs/solidcraft#3911](https://github.com/tangency-labs/solidcraft/issues/3911) [tangency-labs/solidcraft#3191](https://github.com/tangency-labs/solidcraft/issues/3191) | a triangle sharing the cylinder side and top rim revolved as a cut to leave a cone (the cut never completed) | analytic | pass |
| sweeps/3326-loft-20mm-square-to-a-circle | [tangency-labs/solidcraft#3326](https://github.com/tangency-labs/solidcraft/issues/3326) [tangency-labs/solidcraft#3402](https://github.com/tangency-labs/solidcraft/issues/3402) | a loft from a 20 mm square to a circle of radius 10 offset 20 mm (the loft tool symbol): the loft geometry looked wrong | invariants | pass |
| sweeps/3345-sweep-profile-mid-line-round-a-rounded-rectangle | [tangency-labs/solidcraft#3345](https://github.com/tangency-labs/solidcraft/issues/3345) | a 4 x 3 profile drawn at the middle of the bottom line of a closed 60 x 40 rounded-rectangle path (corner radius 8) and swept round the whole path (walls offset, fillets turned the wrong way) | analytic | **FAIL**: bbox.min [-46.165028, -36.165028, -1.5] (want [-32, -22, -1.5]); bbox.max [46.165028, 36.165028, 1.5] (want [32, 22, 1.5]) |
| sweeps/3345-sweep-profile-mid-line-round-a-rounded-rectangle | [tangency-labs/solidcraft#3345](https://github.com/tangency-labs/solidcraft/issues/3345) | a 4 x 3 profile drawn at the middle of the bottom line of a closed 60 x 40 rounded-rectangle path (corner radius 8) and swept round the whole path (walls offset, fillets turned the wrong way) | analytic | pass |
| sweeps/3412-loft-sections-in-one-plane-refused | [tangency-labs/solidcraft#3412](https://github.com/tangency-labs/solidcraft/issues/3412) | a loft through two circles drawn on the same plane (no volume between them; it built a flat zero-volume body and reported success) | invariants | pass |
| sweeps/3505-extrude-the-flat-wall-of-a-sweep-with-a-corner | [tangency-labs/solidcraft#3505](https://github.com/tangency-labs/solidcraft/issues/3505) | the inner side wall of the vertical leg of a mitred swept bar extruded outward by 3 mm (the wall is a B-spline net in a plane, "the selected planar face no longer exists") | analytic | not supported yet: step 8 (solid.sweep): not supported yet: SMLib sweep along a path with corners (SMLib's sweep follows smooth paths) |
| sweeps/3528-revolved-dome-cut-by-a-ball-on-its-seam | [tangency-labs/solidcraft#3528](https://github.com/tangency-labs/solidcraft/issues/3528) | a ball of radius 4 centred on the dome of a revolved mushroom cap (azimuth 15 degrees, across an internal seam of the revolved faces), cut from it: removed nearly the whole ball | analytic | **FAIL**: volume_mm3 48118.357835 (want 46424.505878) |
| sweeps/3505-extrude-the-flat-wall-of-a-sweep-with-a-corner | [tangency-labs/solidcraft#3505](https://github.com/tangency-labs/solidcraft/issues/3505) | the inner side wall of the vertical leg of a mitred swept bar extruded outward by 3 mm (the wall is a B-spline net in a plane, "the selected planar face no longer exists") | analytic | pass |
| sweeps/3528-revolved-dome-cut-by-a-ball-on-its-seam | [tangency-labs/solidcraft#3528](https://github.com/tangency-labs/solidcraft/issues/3528) | a ball of radius 4 centred on the dome of a revolved mushroom cap (azimuth 15 degrees, across an internal seam of the revolved faces), cut from it: removed nearly the whole ball | analytic | pass |
| sweeps/3541-loft-two-circles-into-a-cone-flipped-plane | [tangency-labs/solidcraft#3541](https://github.com/tangency-labs/solidcraft/issues/3541) | a loft from a circle of radius 8 to a circle of radius 20, 30 mm below it (sections given small first, the small one drawn on a plane turned over (normal pointing down)): "a horizontal narrowing is created" instead of a cone | analytic | pass |
| sweeps/3541-loft-two-circles-into-a-cone-same-sense | [tangency-labs/solidcraft#3541](https://github.com/tangency-labs/solidcraft/issues/3541) | a loft from a circle of radius 8 to a circle of radius 20, 30 mm below it (sections given small first, the small one drawn on a plane facing the same way): "a horizontal narrowing is created" instead of a cone | analytic | pass |
| sweeps/3832-coil-cut-with-negative-pitch-inside-a-cylinder | [tangency-labs/solidcraft#3832](https://github.com/tangency-labs/solidcraft/issues/3832) | a 7-turn coil (centre diameter 80, wire 1 mm, pitch -2 so it winds downward) cut from a cylinder that holds it entirely (boolean Cut: no result) | analytic | pass |
@@ -327,31 +327,31 @@ The cases run on SMLib, SolidCraft's kernel. A failing case stays failing until
| sweeps/4007-revolve-half-disc-horn-torus-270-degrees | [tangency-labs/solidcraft#4007](https://github.com/tangency-labs/solidcraft/issues/4007) | the half disc of radius 14 on the far side of a diameter 14 mm from the axis (the full circle would touch the axis: a horn torus) revolved 270 degrees | analytic | pass |
| sweeps/4008-symmetric-revolve-cut-end-faces-in-the-side-face | [tangency-labs/solidcraft#4008](https://github.com/tangency-labs/solidcraft/issues/4008) | a 7 x 21 rectangle 2.6 mm from a block vertical edge revolved as a symmetric 180 degree cut about that edge: both end faces of the tool lie in the block left face (refused as "could not be computed reliably") | analytic | pass |
| sweeps/4056-surface-loft-rails-straight-section-in-a-rail-plane-bow-to-stern | [tangency-labs/solidcraft#4056](https://github.com/tangency-labs/solidcraft/issues/4056) [tangency-labs/solidcraft#4080](https://github.com/tangency-labs/solidcraft/issues/4080) | a surface loft between a vertical line on XZ (bow) and a slanted line in the plane x = 100 (stern), bow to stern, guided by a keel rail lying in the bow sketch plane and a sheer rail at z = 20 (refused: "a guide rail crosses section 2's plane") | analytic | pass |
| sweeps/4056-surface-loft-rails-straight-section-in-a-rail-plane-stern-to-bow | [tangency-labs/solidcraft#4056](https://github.com/tangency-labs/solidcraft/issues/4056) [tangency-labs/solidcraft#4080](https://github.com/tangency-labs/solidcraft/issues/4080) | a surface loft between a vertical line on XZ (bow) and a slanted line in the plane x = 100 (stern), stern to bow, guided by a keel rail lying in the bow sketch plane and a sheer rail at z = 20 (refused: "a guide rail crosses section 2's plane") | analytic | **FAIL**: step 13 (surface.loft): invalid input: a guide rail crosses section 2's plane 100.000 mm from its curves: a rail has to pass through every section |
| sweeps/4056-surface-loft-rails-straight-section-in-a-rail-plane-stern-to-bow | [tangency-labs/solidcraft#4056](https://github.com/tangency-labs/solidcraft/issues/4056) [tangency-labs/solidcraft#4080](https://github.com/tangency-labs/solidcraft/issues/4080) | a surface loft between a vertical line on XZ (bow) and a slanted line in the plane x = 100 (stern), stern to bow, guided by a keel rail lying in the bow sketch plane and a sheer rail at z = 20 (refused: "a guide rail crosses section 2's plane") | analytic | pass |
| sweeps/443-loft-intersect-cone-meets-wall-below-top | [tangency-labs/solidcraft#443](https://github.com/tangency-labs/solidcraft/issues/443) | a cylinder (r 35, h 10) intersected with a conical loft (r 45 at z = -1 to r 33 at z = 11) that crosses its wall 1 mm below the top face (body came back unchanged) | analytic | pass |
| sweeps/450-revolve-spherical-shell-sketched-off-the-origin | [tangency-labs/solidcraft#450](https://github.com/tangency-labs/solidcraft/issues/450) [tangency-labs/solidcraft#452](https://github.com/tangency-labs/solidcraft/issues/452) | a half ring between two arcs (both radial lines on the axis) revolved a full turn from a sketch plane 10 mm above the origin (volume +34 %) | analytic | **FAIL**: shells Body1: 2 (want 1); record_valid the operation failed: lumps: cannot mesh a complete shell boundary (want ok); smlib_check the operation failed: lumps: cannot mesh a complete shell boundary (want ok); volume_mm3 294558.478017 (want 241560.724326) |
| sweeps/450-revolve-spherical-shell-sketched-off-the-origin | [tangency-labs/solidcraft#450](https://github.com/tangency-labs/solidcraft/issues/450) [tangency-labs/solidcraft#452](https://github.com/tangency-labs/solidcraft/issues/452) | a half ring between two arcs (both radial lines on the axis) revolved a full turn from a sketch plane 10 mm above the origin (volume +34 %) | analytic | pass |
| sweeps/487-cut-disc-by-revolved-adjacent-profiles | [tangency-labs/solidcraft#487](https://github.com/tangency-labs/solidcraft/issues/487) [tangency-labs/solidcraft#490](https://github.com/tangency-labs/solidcraft/issues/490) | a disc cut by the body made from two adjacent profiles revolved on the axis, around the disc flat end | analytic | pass |
| sweeps/487-revolve-two-adjacent-profiles-on-the-axis | [tangency-labs/solidcraft#487](https://github.com/tangency-labs/solidcraft/issues/487) [tangency-labs/solidcraft#490](https://github.com/tangency-labs/solidcraft/issues/490) | two rectangles sharing an edge, both resting on the axis, revolved together (zero-area faces along the axis) | analytic | pass |
| sweeps/494-extrude-the-flange-face-of-a-fresh-revolve | [tangency-labs/solidcraft#726](https://github.com/tangency-labs/solidcraft/issues/726) [tangency-labs/solidcraft#494](https://github.com/tangency-labs/solidcraft/issues/494) [tangency-labs/solidcraft#2114](https://github.com/tangency-labs/solidcraft/issues/2114) | the flange top annulus of a freshly revolved hub (z = 6, r 18..30) picked by a point and extruded 5 mm (the pick found a third of the face: "the selected planar face no longer exists") | analytic | pass |
| sweeps/561-extrude-the-end-face-of-a-loft | [tangency-labs/solidcraft#561](https://github.com/tangency-labs/solidcraft/issues/561) [tangency-labs/solidcraft#677](https://github.com/tangency-labs/solidcraft/issues/677) | the small end face of a square-to-square loft (40 mm side to 20 mm over 40 mm) extruded 10 mm (loft faces had no attachable source) | analytic | pass |
| sweeps/561-extrude-the-end-face-of-a-sweep | [tangency-labs/solidcraft#561](https://github.com/tangency-labs/solidcraft/issues/561) [tangency-labs/solidcraft#677](https://github.com/tangency-labs/solidcraft/issues/677) | the end cap of a mitred swept bar (8 x 5 section, 30 up then 40 across) extruded 6 mm further along the path | analytic | not supported yet: step 8 (solid.sweep): not supported yet: SMLib sweep along a path with corners (SMLib's sweep follows smooth paths) |
| sweeps/561-extrude-the-end-face-of-a-sweep | [tangency-labs/solidcraft#561](https://github.com/tangency-labs/solidcraft/issues/561) [tangency-labs/solidcraft#677](https://github.com/tangency-labs/solidcraft/issues/677) | the end cap of a mitred swept bar (8 x 5 section, 30 up then 40 across) extruded 6 mm further along the path | analytic | pass |
| sweeps/561-extrude-the-start-face-of-a-coil | [tangency-labs/solidcraft#561](https://github.com/tangency-labs/solidcraft/issues/561) [tangency-labs/solidcraft#677](https://github.com/tangency-labs/solidcraft/issues/677) | the start face of a 3-turn square-wire coil (4 mm wire, pitch 8, centre diameter 40) extruded 5 mm | analytic | pass |
| sweeps/726-revolve-full-turn-planar-faces-whole | [tangency-labs/solidcraft#726](https://github.com/tangency-labs/solidcraft/issues/726) [tangency-labs/solidcraft#1687](https://github.com/tangency-labs/solidcraft/issues/1687) | a flanged hub profile (six edges, none on the axis) revolved a full turn: the planar faces must come out whole, not as three patches | analytic | pass |
| sweeps/726-revolve-partial-turn-planar-faces-whole | [tangency-labs/solidcraft#726](https://github.com/tangency-labs/solidcraft/issues/726) [tangency-labs/solidcraft#1718](https://github.com/tangency-labs/solidcraft/issues/1718) | the same flanged hub profile revolved 240 degrees: its planar faces (three annular sectors and two end faces) must come out whole | analytic | pass |
| sweeps/757-surface-loft-ruled-strip-between-two-lines | [tangency-labs/solidcraft#757](https://github.com/tangency-labs/solidcraft/issues/757) [tangency-labs/solidcraft#847](https://github.com/tangency-labs/solidcraft/issues/847) | a surface loft between the line (0,0,0)-(10,0,0) and the line (0,0,20)-(10,6,20): a ruled (bilinear) strip | analytic | pass |
| sweeps/757-surface-revolve-line-cone-frustum-sheet | [tangency-labs/solidcraft#757](https://github.com/tangency-labs/solidcraft/issues/757) [tangency-labs/solidcraft#824](https://github.com/tangency-labs/solidcraft/issues/824) | a line from (5,0) to (10,20) revolved a full turn into a surface body (a cone frustum wall, no caps) | analytic | pass |
| sweeps/757-surface-revolve-line-cone-frustum-sheet | [tangency-labs/solidcraft#757](https://github.com/tangency-labs/solidcraft/issues/757) [tangency-labs/solidcraft#824](https://github.com/tangency-labs/solidcraft/issues/824) | a line from (5,0) to (10,20) revolved a full turn into a surface body (a cone frustum wall, no caps) | analytic | **FAIL**: step 4 (surface.revolve): SMLib surface revolve: SMLib's check refuses the result: 1 failed tests: SmTrimmingTools::Test #1 UVEdge/UVEdge Gap: too large U Dir g |
| sweeps/757-surface-sweep-slanted-line-round-a-quarter-arc | [tangency-labs/solidcraft#757](https://github.com/tangency-labs/solidcraft/issues/757) [tangency-labs/solidcraft#843](https://github.com/tangency-labs/solidcraft/issues/843) | a slanted line (from (20,0,0) to (30,0,10)) swept as a surface round a quarter circle of radius 20 about Z | analytic | pass |
| sweeps/771-sweep-end-scale-cone-frustum | [tangency-labs/solidcraft#771](https://github.com/tangency-labs/solidcraft/issues/771) [tangency-labs/solidcraft#1269](https://github.com/tangency-labs/solidcraft/issues/1269) | a circle of radius 5 swept 30 mm along a straight path with end scale 2 | analytic | not supported yet: step 7 (solid.sweep): not supported yet: SMLib sweep with a twist or an end scale |
| sweeps/771-sweep-one-guide-rail-cone-frustum | [tangency-labs/solidcraft#771](https://github.com/tangency-labs/solidcraft/issues/771) [tangency-labs/solidcraft#1806](https://github.com/tangency-labs/solidcraft/issues/1806) | a circle of radius 5 swept 20 mm up a straight path with one guide rail from its point (5,0,0) to (10,0,20) | analytic | not supported yet: step 10 (solid.sweep): not supported yet: SMLib sweep along guide rails |
| sweeps/771-sweep-two-guide-rails-cone-frustum | [tangency-labs/solidcraft#771](https://github.com/tangency-labs/solidcraft/issues/771) [tangency-labs/solidcraft#1806](https://github.com/tangency-labs/solidcraft/issues/1806) | a circle of radius 5 swept 20 mm up a straight path between two guide rails from (5,0,0) to (10,0,20) and from (-5,0,0) to (-10,0,20) | analytic | not supported yet: step 11 (solid.sweep): not supported yet: SMLib sweep along guide rails |
| sweeps/793-coil-cut-by-a-box-above-a-plane | [tangency-labs/solidcraft#793](https://github.com/tangency-labs/solidcraft/issues/793) | the same coil trimmed flat by cutting away everything above z = 12.5 with a box (trimming a coil to length) | analytic | **FAIL**: step 3 (solid.combine): SMLib export: pcurve: pcurve of loop 0 use 0 (Some([13.434874451541004, 13.434916434571074, 12.499999999999998]) to Some([13.43487445154 |
| sweeps/793-coil-split-by-a-plane-across-its-axis | [tangency-labs/solidcraft#793](https://github.com/tangency-labs/solidcraft/issues/793) | a 6-turn coil (centre diameter 40, wire 2 mm, pitch 4) split by the plane z = 12.5 square to its axis ("boolean Intersect: no result") | analytic | **FAIL**: step 2 (solid.split_body): SMLib export: pcurve: pcurve of loop 0 use 0 (Some([13.434874451540997, 13.434916434571077, 12.499999999999998]) to Some([13.43487445 |
| sweeps/844-join-two-overlapping-swept-arc-walls | [tangency-labs/solidcraft#844](https://github.com/tangency-labs/solidcraft/issues/844) | two swept walls (12 mm thick, 60 mm high) along concentric half circles of radius 50 and 58 turned 90 degrees apart, overlapping in thickness by 4 mm over a quarter turn and sharing the planes z = 0 and z = 60 (join gave an error, minutes, or an open body) | analytic | **FAIL**: step 14 (solid.sweep): SMLib boolean: operation: SMLib failed (status 1006) |
| sweeps/771-sweep-end-scale-cone-frustum | [tangency-labs/solidcraft#771](https://github.com/tangency-labs/solidcraft/issues/771) [tangency-labs/solidcraft#1269](https://github.com/tangency-labs/solidcraft/issues/1269) | a circle of radius 5 swept 30 mm along a straight path with end scale 2 | analytic | pass |
| sweeps/771-sweep-one-guide-rail-cone-frustum | [tangency-labs/solidcraft#771](https://github.com/tangency-labs/solidcraft/issues/771) [tangency-labs/solidcraft#1806](https://github.com/tangency-labs/solidcraft/issues/1806) | a circle of radius 5 swept 20 mm up a straight path with one guide rail from its point (5,0,0) to (10,0,20) | analytic | pass |
| sweeps/771-sweep-two-guide-rails-cone-frustum | [tangency-labs/solidcraft#771](https://github.com/tangency-labs/solidcraft/issues/771) [tangency-labs/solidcraft#1806](https://github.com/tangency-labs/solidcraft/issues/1806) | a circle of radius 5 swept 20 mm up a straight path between two guide rails from (5,0,0) to (10,0,20) and from (-5,0,0) to (-10,0,20) | analytic | pass |
| sweeps/793-coil-cut-by-a-box-above-a-plane | [tangency-labs/solidcraft#793](https://github.com/tangency-labs/solidcraft/issues/793) | the same coil trimmed flat by cutting away everything above z = 12.5 with a box (trimming a coil to length) | analytic | pass |
| sweeps/793-coil-split-by-a-plane-across-its-axis | [tangency-labs/solidcraft#793](https://github.com/tangency-labs/solidcraft/issues/793) | a 6-turn coil (centre diameter 40, wire 2 mm, pitch 4) split by the plane z = 12.5 square to its axis ("boolean Intersect: no result") | analytic | pass |
| sweeps/844-join-two-overlapping-swept-arc-walls | [tangency-labs/solidcraft#844](https://github.com/tangency-labs/solidcraft/issues/844) | two swept walls (12 mm thick, 60 mm high) along concentric half circles of radius 50 and 58 turned 90 degrees apart, overlapping in thickness by 4 mm over a quarter turn and sharing the planes z = 0 and z = 60 (join gave an error, minutes, or an open body) | analytic | pass |
| sweeps/881-loft-zigzag-pleat-vertex-pairing | [tangency-labs/solidcraft#881](https://github.com/tangency-labs/solidcraft/issues/881) [tangency-labs/solidcraft#956](https://github.com/tangency-labs/solidcraft/issues/956) | a ruled loft between two 18-vertex zig-zag sections with the same start vertex and winding, whose first-vertex direction is ambiguous from the section centroid | analytic | pass |
| sweeps/96-loft-cut-box-sections-pad-first | [tangency-labs/solidcraft#122](https://github.com/tangency-labs/solidcraft/issues/122) [tangency-labs/solidcraft#96](https://github.com/tangency-labs/solidcraft/issues/96) | a loft cut through a 100 x 60 x 30 block from its whole 100 x 60 outline at z = 20 (edges flush with the side faces) down to a 10 x 10 pad in a corner at z = 11, sections given pad first (the cut panicked for one order) | analytic | **FAIL**: step 8 (solid.loft): SMLib boolean: export: SMLib export: the mapped B-rep does not validate: portable B-rep: an open, wire or vertex shell lies in one region |
| sweeps/96-loft-cut-box-sections-top-first | [tangency-labs/solidcraft#122](https://github.com/tangency-labs/solidcraft/issues/122) [tangency-labs/solidcraft#96](https://github.com/tangency-labs/solidcraft/issues/96) | a loft cut through a 100 x 60 x 30 block from its whole 100 x 60 outline at z = 20 (edges flush with the side faces) down to a 10 x 10 pad in a corner at z = 11, sections given top first (the cut panicked for one order) | analytic | **FAIL**: step 8 (solid.loft): SMLib boolean: export: SMLib export: the mapped B-rep does not validate: portable B-rep: an open, wire or vertex shell lies in one region |
| sweeps/96-shallow-loft-cut-starting-in-the-top-face | [tangency-labs/solidcraft#96](https://github.com/tangency-labs/solidcraft/issues/96) | a loft cut from a 556.68 x 99 rectangle on the top face of a 900 x 480 x 160 slab down 4 mm to an 80 x 80 square (a kernel panic in healing; the sides are about 0.9 degrees from horizontal) | analytic | pass |
| sweeps/96-sweep-rectangle-round-a-mitred-corner | [tangency-labs/solidcraft#96](https://github.com/tangency-labs/solidcraft/issues/96) | an 8 x 5 rectangle swept along a path of a 30 mm vertical line and a 40 mm horizontal line meeting at a sharp corner (walls mitred) | analytic | not supported yet: step 8 (solid.sweep): not supported yet: SMLib sweep along a path with corners (SMLib's sweep follows smooth paths) |
| sweeps/96-sweep-rectangle-round-a-mitred-corner | [tangency-labs/solidcraft#96](https://github.com/tangency-labs/solidcraft/issues/96) | an 8 x 5 rectangle swept along a path of a 30 mm vertical line and a 40 mm horizontal line meeting at a sharp corner (walls mitred) | analytic | pass |
| sweeps/968-loft-hollow-elbow-60deg-5sections | [tangency-labs/solidcraft#968](https://github.com/tangency-labs/solidcraft/issues/968) [tangency-labs/solidcraft#1084](https://github.com/tangency-labs/solidcraft/issues/1084) | a bent tube (circles r 30 lofted through 5 sections along an R100 arc turning 60 degrees) with a bore (r 18, sections running 5 mm of arc past both ends) cut out of it: a hollow elbow ("no result" for some section counts, not their neighbours) | analytic | pass |
| sweeps/968-loft-hollow-elbow-90deg-10sections | [tangency-labs/solidcraft#968](https://github.com/tangency-labs/solidcraft/issues/968) [tangency-labs/solidcraft#1084](https://github.com/tangency-labs/solidcraft/issues/1084) | a bent tube (circles r 30 lofted through 10 sections along an R100 arc turning 90 degrees) with a bore (r 18, sections running 5 mm of arc past both ends) cut out of it: a hollow elbow ("no result" for some section counts, not their neighbours) | analytic | pass |
| tessellation/1263-concave-arc-knife-edge-plate | [tangency-labs/solidcraft#1263](https://github.com/tangency-labs/solidcraft/issues/1263) | a plate with a concave quarter-round wall that meets the back face tangentially at a knife-edge tip (a box and a box less a cylinder, united): its display tessellation used to fail with 'boundary does not lie on the surface' before anything was filleted | analytic | pass |
@@ -365,36 +365,36 @@ The cases run on SMLib, SolidCraft's kernel. A failing case stays failing until
| tessellation/2528-stadium-joined-with-overlapping-cylinder | [tangency-labs/solidcraft#2528](https://github.com/tangency-labs/solidcraft/issues/2528) | a rounded slot (a box with a half-cylinder on each end) joined with a cylinder that overlaps one end: the cylinder walls meet along vertical seams and intersection edges, where wedge-shaped mis-tessellated facets showed up | analytic | pass |
| tessellation/311-ramp-cut-cylinder-blank | [tangency-labs/solidcraft#311](https://github.com/tangency-labs/solidcraft/issues/311) | an inclined cut across a round blank, which used to pinch the cylindrical wall inward (a 4.4 mm chord deficit) in the display and STL mesh | analytic | pass |
| tessellation/466-revolved-cone-tip-stays-smooth | [tangency-labs/solidcraft#466](https://github.com/tangency-labs/solidcraft/issues/466) | a six-line profile revolved a full turn about its first line, with a cone ending in a point: the tip came out with dents every 120 degrees instead of a smooth cone (rebuilt as a pencil-like profile with a collinear frustum and tip; the original design is not in the report) | analytic | pass |
| tessellation/784-stl-open-edges-filleted-and-drilled | [tangency-labs/solidcraft#784](https://github.com/tangency-labs/solidcraft/issues/784) [tangency-labs/solidcraft#811](https://github.com/tangency-labs/solidcraft/issues/811) | two bodies whose STL export used to have open edges where faces were meshed apart: a 40x30x20 box with all twelve edges rounded 2 mm, and a cylinder R15 x 20 with a coaxial 6 mm bore | analytic | **FAIL**: watertight RoundedBox: 0 open, 8 over-shared mesh edges (want no open edges); record_valid the operation failed: pcurve of loop 0 use 2 (Some([2.0, 30.0, 2.0]) to Some([0.0, 28.0, 2.0])): the (want ok); smlib_check the operation failed: pcurve of loop 0 use 2 (Some([2.0, 30.0, 2.0]) to Some([0.0, 28.0, 2.0])): the (want ok) |
| tessellation/784-stl-open-edges-filleted-and-drilled | [tangency-labs/solidcraft#784](https://github.com/tangency-labs/solidcraft/issues/784) [tangency-labs/solidcraft#811](https://github.com/tangency-labs/solidcraft/issues/811) | two bodies whose STL export used to have open edges where faces were meshed apart: a 40x30x20 box with all twelve edges rounded 2 mm, and a cylinder R15 x 20 with a coaxial 6 mm bore | analytic | pass |
| tessellation/818-blind-hole-splits-vertical-edges | [tangency-labs/solidcraft#818](https://github.com/tangency-labs/solidcraft/issues/818) | a blind hole cut into a ring whose six concave corners are filleted: the cut used to split every vertical edge (the outer seam and all twelve fillet tangent edges) at the hole's depth, and the fillet corners drew black | analytic | pass |
| tessellation/819-cup-pocket-splits-wall-seam | [tangency-labs/solidcraft#819](https://github.com/tangency-labs/solidcraft/issues/819) [tangency-labs/solidcraft#921](https://github.com/tangency-labs/solidcraft/issues/921) | a disc with a pocket that splits the outer cylinder wall's seam edges at the pocket floor: the wall used to be meshed with fans cutting through the disc, so the measured volume and the STL read too small | analytic | pass |
| threads/1250-external-m10x1.5-shaft-full-length | [tangency-labs/solidcraft#1250](https://github.com/tangency-labs/solidcraft/issues/1250) | a modelled external M10 thread over the whole length of a 10 mm shaft (8 turns) | analytic | **FAIL**: step 2 (solid.thread): SMLib boolean: SMLib's check refuses the result: 2 failed tests: SmFace::Test #34 Face has partially Coincident Edges: Face has partially |
| threads/1395-long-external-m6-thread-24-turns | [tangency-labs/solidcraft#1395](https://github.com/tangency-labs/solidcraft/issues/1395) | a long modelled external thread: M6 over a 24 mm shaft (24 turns), the kind that once ran out of depth in the boolean | analytic | **FAIL**: step 2 (solid.thread): SMLib export: pcurve: pcurve of loop 0 use 1 (Some([-1.738532668045337, 1.7385379467804876, -2.949029909160572e-17]) to Some([-1.73853839 |
| threads/1250-external-m10x1.5-shaft-full-length | [tangency-labs/solidcraft#1250](https://github.com/tangency-labs/solidcraft/issues/1250) | a modelled external M10 thread over the whole length of a 10 mm shaft (8 turns) | analytic | pass |
| threads/1395-long-external-m6-thread-24-turns | [tangency-labs/solidcraft#1395](https://github.com/tangency-labs/solidcraft/issues/1395) | a long modelled external thread: M6 over a 24 mm shaft (24 turns), the kind that once ran out of depth in the boolean | analytic | pass |
| threads/1443-m5x0.7-thread-in-5mm-hole | [tangency-labs/solidcraft#1443](https://github.com/tangency-labs/solidcraft/issues/1443) [tangency-labs/solidcraft#3060](https://github.com/tangency-labs/solidcraft/issues/3060) [tangency-labs/solidcraft#1018](https://github.com/tangency-labs/solidcraft/issues/1018) [tangency-labs/solidcraft#2853](https://github.com/tangency-labs/solidcraft/issues/2853) | a modelled thread on a hole that isn't the thread's size: refused with the size to use, never a silent change of the hole | analytic | pass |
| threads/1995-m8x1-thread-in-7mm-hole | [tangency-labs/solidcraft#1995](https://github.com/tangency-labs/solidcraft/issues/1995) | an M8x1 modelled thread in a 7 mm hole through a block (the report: the thread also changed the block's outer surface and made too many faces) | analytic | **FAIL**: step 3 (solid.thread): SMLib export: pcurve: pcurve of loop 0 use 1 (Some([2.862740053704183, 2.0136333789738825, 1.4963877373859766]) to Some([-2.8627400537041 |
| threads/2038-cut-threaded-stud-from-bored-block | [tangency-labs/solidcraft#2038](https://github.com/tangency-labs/solidcraft/issues/2038) | cutting an externally threaded stud out of a block bored at the tap drill (to make the internal thread): the boolean found no result | analytic | **FAIL**: step 4 (solid.thread): SMLib export: pcurve: pcurve of loop 0 use 0 (Some([6.735685053790036, 6.735671302570509, -5.000000000000002]) to Some([4.018069973126635 |
| threads/2038-internal-then-external-thread-on-one-body | [tangency-labs/solidcraft#2038](https://github.com/tangency-labs/solidcraft/issues/2038) | two modelled threads on one body, an internal one then an external one (the second was refused: no cylindrical face there to thread) | analytic | **FAIL**: step 3 (solid.thread): SMLib export: pcurve: pcurve of loop 0 use 4 (Some([-2.583065773355961, 6.236083486130154, -3.382710778154774e-17]) to Some([0.6966280122 |
| threads/2038-join-two-threaded-bodies | [tangency-labs/solidcraft#2038](https://github.com/tangency-labs/solidcraft/issues/2038) | 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) | analytic | **FAIL**: step 3 (solid.thread): SMLib export: pcurve: pcurve of loop 0 use 4 (Some([-2.583065773355961, 6.236083486130154, -3.382710778154774e-17]) to Some([0.6966280122 |
| threads/1995-m8x1-thread-in-7mm-hole | [tangency-labs/solidcraft#1995](https://github.com/tangency-labs/solidcraft/issues/1995) | an M8x1 modelled thread in a 7 mm hole through a block (the report: the thread also changed the block's outer surface and made too many faces) | analytic | pass |
| threads/2038-cut-threaded-stud-from-bored-block | [tangency-labs/solidcraft#2038](https://github.com/tangency-labs/solidcraft/issues/2038) | cutting an externally threaded stud out of a block bored at the tap drill (to make the internal thread): the boolean found no result | analytic | **FAIL**: step 5 (solid.combine): SMLib boolean: operation: SMLib failed (status 1001) |
| threads/2038-internal-then-external-thread-on-one-body | [tangency-labs/solidcraft#2038](https://github.com/tangency-labs/solidcraft/issues/2038) | two modelled threads on one body, an internal one then an external one (the second was refused: no cylindrical face there to thread) | analytic | pass |
| threads/2038-join-two-threaded-bodies | [tangency-labs/solidcraft#2038](https://github.com/tangency-labs/solidcraft/issues/2038) | 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) | analytic | pass |
| threads/2115-tapped-hole-drill-is-major-minus-pitch | [tangency-labs/solidcraft#3311](https://github.com/tangency-labs/solidcraft/issues/3311) [tangency-labs/solidcraft#2115](https://github.com/tangency-labs/solidcraft/issues/2115) [tangency-labs/solidcraft#2367](https://github.com/tangency-labs/solidcraft/issues/2367) [tangency-labs/solidcraft#2440](https://github.com/tangency-labs/solidcraft/issues/2440) [tangency-labs/solidcraft#2441](https://github.com/tangency-labs/solidcraft/issues/2441) | tapped holes (Hole with a thread size, no diameter) are drilled at the tap drill, not at the major diameter | analytic | pass |
| threads/2152-m3x0.2-thread-in-3mm-hole | [tangency-labs/solidcraft#2152](https://github.com/tangency-labs/solidcraft/issues/2152) [tangency-labs/solidcraft#1018](https://github.com/tangency-labs/solidcraft/issues/1018) [tangency-labs/solidcraft#2853](https://github.com/tangency-labs/solidcraft/issues/2853) | a modelled thread on a hole that isn't the thread's size: refused with the size to use, never a silent change of the hole | analytic | pass |
| threads/2193-modelled-m33x3.5-thread | [tangency-labs/solidcraft#2193](https://github.com/tangency-labs/solidcraft/issues/2193) [tangency-labs/solidcraft#2263](https://github.com/tangency-labs/solidcraft/issues/2263) [tangency-labs/solidcraft#4153](https://github.com/tangency-labs/solidcraft/issues/4153) | a modelled M33x3.5 thread, a size the thread menu lacked (designation typed by hand), on a 33 mm shaft (4 turns) | analytic | **FAIL**: step 2 (solid.thread): SMLib boolean: SMLib's check refuses the result: 3 failed tests: SmFace::Test #34 Face has partially Coincident Edges: Face has partially |
| threads/2209-fine-m44x1-thread-on-shaft | [tangency-labs/solidcraft#2209](https://github.com/tangency-labs/solidcraft/issues/2209) | a fine modelled thread on a large shaft (M44x1 on a 44 mm shaft, 4 turns), which once cut about 9% too much | analytic | **FAIL**: step 2 (solid.thread): SMLib boolean: SMLib's check refuses the result: 1 failed tests: SmFace::Test #34 Face has partially Coincident Edges: Face has partially |
| threads/2209-m44x1.5-thread-on-flange-hub | [tangency-labs/solidcraft#2209](https://github.com/tangency-labs/solidcraft/issues/2209) | a full-diameter M44x1.5 modelled thread on the hub of a flange, which once failed to rebuild a closed shell | analytic | **FAIL**: step 3 (solid.thread): SMLib export: pcurve: pcurve of loop 0 use 0 (Some([17.993100249475514, 12.658923469723806, 12.61506452654108]) to Some([-17.993100249475 |
| threads/2193-modelled-m33x3.5-thread | [tangency-labs/solidcraft#2193](https://github.com/tangency-labs/solidcraft/issues/2193) [tangency-labs/solidcraft#2263](https://github.com/tangency-labs/solidcraft/issues/2263) [tangency-labs/solidcraft#4153](https://github.com/tangency-labs/solidcraft/issues/4153) | a modelled M33x3.5 thread, a size the thread menu lacked (designation typed by hand), on a 33 mm shaft (4 turns) | analytic | pass |
| threads/2209-fine-m44x1-thread-on-shaft | [tangency-labs/solidcraft#2209](https://github.com/tangency-labs/solidcraft/issues/2209) | a fine modelled thread on a large shaft (M44x1 on a 44 mm shaft, 4 turns), which once cut about 9% too much | analytic | pass |
| threads/2209-m44x1.5-thread-on-flange-hub | [tangency-labs/solidcraft#2209](https://github.com/tangency-labs/solidcraft/issues/2209) | a full-diameter M44x1.5 modelled thread on the hub of a flange, which once failed to rebuild a closed shell | analytic | pass |
| threads/2369-m8-thread-in-6.3mm-hole-refused | [tangency-labs/solidcraft#2369](https://github.com/tangency-labs/solidcraft/issues/2369) [tangency-labs/solidcraft#2688](https://github.com/tangency-labs/solidcraft/issues/2688) [tangency-labs/solidcraft#2853](https://github.com/tangency-labs/solidcraft/issues/2853) [tangency-labs/solidcraft#1018](https://github.com/tangency-labs/solidcraft/issues/1018) | a modelled thread on a hole that isn't the thread's size: refused with the size to use, never a silent change of the hole | analytic | pass |
| threads/2406-modelled-m8-thread-in-6.8mm-pilot-hole | [tangency-labs/solidcraft#2406](https://github.com/tangency-labs/solidcraft/issues/2406) | an M8 modelled thread in a 6.8 mm pilot hole (the case where the thread 'was not visible') | analytic | **FAIL**: step 3 (solid.thread): SMLib export: pcurve: pcurve of loop 0 use 1 (Some([-2.780947480741209, -1.9561009967174812, 1.2599347416400593]) to Some([2.780947480741 |
| threads/2526-three-modelled-threads-in-one-body | [tangency-labs/solidcraft#2526](https://github.com/tangency-labs/solidcraft/issues/2526) | three modelled threads, internal and external, in one body with a hub and a plain hole beside the bore (each thread used to facet the rest of the part and the next thread was refused) | analytic | **FAIL**: step 5 (solid.thread): SMLib export: pcurve: pcurve of loop 0 use 0 (Some([-3.4104950138828145, -2.089969146215104, 30.000000000000007]) to Some([-0.93378481328 |
| threads/2406-modelled-m8-thread-in-6.8mm-pilot-hole | [tangency-labs/solidcraft#2406](https://github.com/tangency-labs/solidcraft/issues/2406) | an M8 modelled thread in a 6.8 mm pilot hole (the case where the thread 'was not visible') | analytic | pass |
| threads/2526-three-modelled-threads-in-one-body | [tangency-labs/solidcraft#2526](https://github.com/tangency-labs/solidcraft/issues/2526) | three modelled threads, internal and external, in one body with a hub and a plain hole beside the bore (each thread used to facet the rest of the part and the next thread was refused) | analytic | pass |
| threads/2705-m14-thread-on-14.6mm-shaft-refused | [tangency-labs/solidcraft#2705](https://github.com/tangency-labs/solidcraft/issues/2705) [tangency-labs/solidcraft#1018](https://github.com/tangency-labs/solidcraft/issues/1018) [tangency-labs/solidcraft#2853](https://github.com/tangency-labs/solidcraft/issues/2853) | a modelled thread on a shaft that isn't the thread's size: refused with the size to use, never a silent change of the shaft | analytic | pass |
| threads/2822-modelled-thread-in-filleted-cube | [tangency-labs/solidcraft#2822](https://github.com/tangency-labs/solidcraft/issues/2822) | a modelled M3 thread in a hole through a block whose vertical edges are rounded (the fillets showed as black lines after the thread) | analytic | **FAIL**: step 7 (solid.thread): SMLib export: pcurve: pcurve of loop 0 use 0 (Some([11.022407162037219, 10.719154778204942, 0.24820214174911687]) to Some([8.994053254378 |
| threads/2822-modelled-thread-in-filleted-cube | [tangency-labs/solidcraft#2822](https://github.com/tangency-labs/solidcraft/issues/2822) | a modelled M3 thread in a hole through a block whose vertical edges are rounded (the fillets showed as black lines after the thread) | analytic | pass |
| threads/2969-m48x0.75-thread-in-48mm-hole | [tangency-labs/solidcraft#2969](https://github.com/tangency-labs/solidcraft/issues/2969) [tangency-labs/solidcraft#1018](https://github.com/tangency-labs/solidcraft/issues/1018) [tangency-labs/solidcraft#2853](https://github.com/tangency-labs/solidcraft/issues/2853) | a modelled thread on a hole that isn't the thread's size: refused with the size to use, never a silent change of the hole | analytic | pass |
| threads/3311-two-tapped-holes-both-modelled-threaded | [tangency-labs/solidcraft#3311](https://github.com/tangency-labs/solidcraft/issues/3311) | a second modelled thread on the same body (the first thread faceted every other hole), over each hole's full length | analytic | **FAIL**: step 4 (solid.thread): SMLib export: pcurve: pcurve of loop 0 use 0 (Some([10.956692141520428, 12.309678320897202, 2.0383000842727483e-17]) to Some([9.043311931 |
| threads/3311-two-tapped-holes-both-modelled-threaded | [tangency-labs/solidcraft#3311](https://github.com/tangency-labs/solidcraft/issues/3311) | a second modelled thread on the same body (the first thread faceted every other hole), over each hole's full length | analytic | pass |
| threads/3366-m20-thread-in-20mm-hole | [tangency-labs/solidcraft#3366](https://github.com/tangency-labs/solidcraft/issues/3366) [tangency-labs/solidcraft#3367](https://github.com/tangency-labs/solidcraft/issues/3367) [tangency-labs/solidcraft#1018](https://github.com/tangency-labs/solidcraft/issues/1018) [tangency-labs/solidcraft#2853](https://github.com/tangency-labs/solidcraft/issues/2853) | a modelled thread on a hole that isn't the thread's size: refused with the size to use, never a silent change of the hole | analytic | pass |
| threads/3368-faceted-prism-pocket-cut-and-boss-join | [tangency-labs/solidcraft#3368](https://github.com/tangency-labs/solidcraft/issues/3368) | booleans of a finely faceted body (a 1200-sided prism, 1202 flat faces, the kind of body a modelled thread leaves) with box tools: they must finish in bounded time with the exact result, not run for minutes | analytic | pass |
| threads/3368-faceted-prism-with-bore-and-cross-hole | [tangency-labs/solidcraft#3368](https://github.com/tangency-labs/solidcraft/issues/3368) | a finely faceted body (a 1200-sided prism) with a curved partner: a vertical bore and a horizontal cross hole drilled through it (the case where the B-rep ladder is bounded but must still decide) | analytic | pass |
| threads/3368-two-faceted-prisms-cut-then-joined | [tangency-labs/solidcraft#3368](https://github.com/tangency-labs/solidcraft/issues/3368) | two finely faceted bodies (1000-sided prisms, flat faces only): a faceted stud cut out of a faceted disc, then a faceted cap joined on top touching in a plane; both booleans must finish in bounded time with the exact result | analytic | **HANG**: no result after 180 s |
| threads/3914-sketch-on-top-face-of-threaded-rounded-block | [tangency-labs/solidcraft#3914](https://github.com/tangency-labs/solidcraft/issues/3914) | Create Sketch on the top face of a block with a modelled thread and rounded corners, then a boss from it | analytic | **FAIL**: step 3 (solid.thread): SMLib export: pcurve: pcurve of loop 0 use 0 (Some([7.955185675925581, 8.561690443590084, 0.9964288343534452]) to Some([12.04481432407442 |
| threads/3952-modelled-thread-in-blind-hole-of-revolved-ring | [tangency-labs/solidcraft#3952](https://github.com/tangency-labs/solidcraft/issues/3952) | a modelled thread in a small blind hole drilled into a revolved ring, off its axis ('faceted boolean: inconsistent volumes') | analytic | **FAIL**: step 9 (solid.thread): SMLib export: pcurve: pcurve of loop 0 use 0 (Some([20.516265215511172, -1.0755765706655467, 22.0]) to Some([19.994014397500948, -0.74195 |
| threads/4149-internal-thread-below-counterbore-filleted-rim | [tangency-labs/solidcraft#4149](https://github.com/tangency-labs/solidcraft/issues/4149) | a modelled M10x1.5 internal thread, full length of the bore below a counterbore, in a cylinder with its rim rounded (stack overflow) | analytic | **FAIL**: step 4 (solid.thread): SMLib export: pcurve: pcurve of loop 0 use 0 (Some([1.9133830447635627, 4.619347644845553, -3.469446951953614e-18]) to Some([-1.913372921 |
| threads/602-fillet-hex-head-beside-modelled-thread | [tangency-labs/solidcraft#602](https://github.com/tangency-labs/solidcraft/issues/602) [tangency-labs/solidcraft#618](https://github.com/tangency-labs/solidcraft/issues/618) | rounding the top edges of a hex head on a shaft with a modelled thread (it froze the app) | analytic | **FAIL**: step 9 (solid.thread): SMLib export: pcurve: pcurve of loop 0 use 1 (Some([2.5000000000000018, -3.353876639995629e-15, 0.24997448866668603]) to Some([-0.9560955 |
| threads/3368-two-faceted-prisms-cut-then-joined | [tangency-labs/solidcraft#3368](https://github.com/tangency-labs/solidcraft/issues/3368) | two finely faceted bodies (1000-sided prisms, flat faces only): a faceted stud cut out of a faceted disc, then a faceted cap joined on top touching in a plane; both booleans must finish in bounded time with the exact result | analytic | **HANG**: no result after 20 s |
| threads/3914-sketch-on-top-face-of-threaded-rounded-block | [tangency-labs/solidcraft#3914](https://github.com/tangency-labs/solidcraft/issues/3914) | Create Sketch on the top face of a block with a modelled thread and rounded corners, then a boss from it | analytic | **HANG**: no result after 20 s |
| threads/3952-modelled-thread-in-blind-hole-of-revolved-ring | [tangency-labs/solidcraft#3952](https://github.com/tangency-labs/solidcraft/issues/3952) | a modelled thread in a small blind hole drilled into a revolved ring, off its axis ('faceted boolean: inconsistent volumes') | analytic | pass |
| threads/4149-internal-thread-below-counterbore-filleted-rim | [tangency-labs/solidcraft#4149](https://github.com/tangency-labs/solidcraft/issues/4149) | a modelled M10x1.5 internal thread, full length of the bore below a counterbore, in a cylinder with its rim rounded (stack overflow) | analytic | pass |
| threads/602-fillet-hex-head-beside-modelled-thread | [tangency-labs/solidcraft#602](https://github.com/tangency-labs/solidcraft/issues/602) [tangency-labs/solidcraft#618](https://github.com/tangency-labs/solidcraft/issues/618) | rounding the top edges of a hex head on a shaft with a modelled thread (it froze the app) | analytic | pass |
| threads/995-m5-thread-in-5mm-hole | [tangency-labs/solidcraft#995](https://github.com/tangency-labs/solidcraft/issues/995) [tangency-labs/solidcraft#1018](https://github.com/tangency-labs/solidcraft/issues/1018) [tangency-labs/solidcraft#2853](https://github.com/tangency-labs/solidcraft/issues/2853) | a modelled thread on a hole that isn't the thread's size: refused with the size to use, never a silent change of the hole | analytic | pass |
## Sources