Rig: the curvature-continuous corner cases pick the curvature fillet

The six corner cases added in 3a854104a took the fillet's default type, on the premise that the
default would become curvature-continuous. The default stays the circular round, so each case
now asks for the curvature fillet itself (type curvature: curvature-continuous sections and
corner patches) and keeps its grading: every seam of the rounds and of the corner patch G2, one
valid body. They are renamed from cov-fillet-g2-default-* to cov-fillet-g2-*.

The oblique three-edge corner (a block drafted 15 deg) and the pocket corner pass. Four fail, as
KNOWN_FAILING now says:

- the corner beside a cylinder: the curvature fillet builds its sections only between planar
  faces;
- the four- and five-edge apex corners: refused because the default setback is shorter than
  where the rounds' contact lines meet (3.90 and 3.51 mm from the apex);
- the mixed corner: SMLib sets back a corner only where its edges are all convex or all
  concave.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
jyviko
2026-10-31 08:43:46 -04:00
committed by jyviko
parent be0b1b39bd
commit 6cd4003adb
15 changed files with 42 additions and 38 deletions
+4 -6
View File
@@ -16,12 +16,10 @@
cov-chamfer-concave-edge-through-up-down-joined-squares SMLib status 1001 on the concave chamfer's tangent chain
cov-chamfer-outer-corner-edge-of-a-shelled-box-with-a-lip SMLib's chamfer result is not a closed solid where it ends on the lip
cov-fillet-arc-edge-on-an-oblique-cut-of-a-bar SMLib's check refuses the round: internal coincident control points in a B-spline curve
cov-fillet-g2-default-corner-beside-a-cylinder the default fillet is the circular (G1) round, not yet the curvature-continuous one: its seams with the faces jump in curvature by 1/r (0.5 / mm)
cov-fillet-g2-default-five-edge-apex-corner the default fillet is the circular (G1) round, not yet the curvature-continuous one: and the apex patch meets two rounds at 8.45 degrees (G0) near (0.708, 1.556, 26.824)
cov-fillet-g2-default-four-edge-apex-corner the default fillet is the circular (G1) round, not yet the curvature-continuous one: the apex patch meets the rounds G1 only (curvature jump 6.6 / mm)
cov-fillet-g2-default-mixed-corner the default fillet is the circular (G1) round, not yet the curvature-continuous one: its seams with the faces jump in curvature by 1/r (0.5 / mm)
cov-fillet-g2-default-oblique-three-edge-corner the default fillet is the circular (G1) round, not yet the curvature-continuous one: its seams jump in curvature by 1/r (0.5 / mm)
cov-fillet-g2-default-pocket-corner the default fillet is the circular (G1) round, not yet the curvature-continuous one: its seams jump in curvature by 1/r (0.5 / mm)
cov-fillet-g2-corner-beside-a-cylinder not supported yet: the curvature fillet builds its sections only between planar faces ("a picked edge is not on the face beside it" on the cylinder's arc)
cov-fillet-g2-five-edge-apex-corner refused: the default setback is shorter than where the rounds' contact lines meet (3.5056 mm from the apex); the corner should take a setback that works
cov-fillet-g2-four-edge-apex-corner refused: the default setback is shorter than where the rounds' contact lines meet (3.9027 mm from the apex); the corner should take a setback that works
cov-fillet-g2-mixed-corner not supported yet: SMLib sets back a corner only where its edges are all convex or all concave
every-block-cylinder-crease-top-edge-after-arc-round-r1 the r1 round's contact seam with the block's side face reads 60 degrees (the cylinder wall's normal) at its end on the crease (8.660, 5, 15.284): G0 where the round is built tangent
every-hole-top-rim-r12-past-plate-bottom SMLib status 1001: a convex round past its face on the tangent side is not yet built by subtraction
report-drafted-peg-front-and-concave-rounds-together-r2 not supported yet: SMLib refuses the corner where the drafted front top edge runs tangent into the concave arc (on the cone) as of no kind its blend corners take
@@ -1,7 +1,7 @@
{
"what": "the corner of a half cylinder's top (the top's arc, its straight edge and the upright seam where the flat face meets the cylinder) filleted 2 with the default type",
"what": "the corner of a half cylinder's top (the top's arc, its straight edge and the upright seam where the flat face meets the cylinder) filleted 2 as a curvature-continuous (G2) fillet",
"source": "invariants",
"method": "a half disc R10 (the arc from (10, 0) round to (-10, 0) and its diameter) extruded 10; the three edges at (10, 0, 10); the fillet's default section and corner are curvature-continuous (owner, 2026-10-31: G2 by default, tangent rounds an option): every seam of a round and of the corner patch with its neighbours G2, one valid body",
"method": "a half disc R10 (the arc from (10, 0) round to (-10, 0) and its diameter) extruded 10; the three edges at (10, 0, 10); the fillet type curvature (G2 sections and G2 corner patches): every seam of a round and of the corner patch with its neighbours G2, one valid body",
"body_count": 1,
"continuity": {
"order": "g2"
@@ -1,9 +0,0 @@
{
"what": "the 5 slant edges of a 5-sided pyramid filleted 2 with the default type: a convex corner of 5 edges at the apex",
"source": "invariants",
"method": "a regular 5-gon of circumradius 20 lofted to the apex (0, 0, 30); its 5 slant edges; the fillet's default section and corner are curvature-continuous (owner, 2026-10-31: G2 by default, tangent rounds an option): every seam of a round and of the corner patch with its neighbours G2, one valid body",
"body_count": 1,
"continuity": {
"order": "g2"
}
}
@@ -1,9 +0,0 @@
{
"what": "the 4 slant edges of a 4-sided pyramid filleted 2 with the default type: a convex corner of 4 edges at the apex",
"source": "invariants",
"method": "a regular 4-gon of circumradius 20 lofted to the apex (0, 0, 30); its 4 slant edges; the fillet's default section and corner are curvature-continuous (owner, 2026-10-31: G2 by default, tangent rounds an option): every seam of a round and of the corner patch with its neighbours G2, one valid body",
"body_count": 1,
"continuity": {
"order": "g2"
}
}
@@ -0,0 +1,9 @@
{
"what": "the 5 slant edges of a 5-sided pyramid filleted 2 as a curvature-continuous (G2) fillet: a convex corner of 5 edges at the apex",
"source": "invariants",
"method": "a regular 5-gon of circumradius 20 lofted to the apex (0, 0, 30); its 5 slant edges; the fillet type curvature (G2 sections and G2 corner patches): every seam of a round and of the corner patch with its neighbours G2, one valid body",
"body_count": 1,
"continuity": {
"order": "g2"
}
}
@@ -167,7 +167,8 @@
15.0
]
],
"radius": 2
"radius": 2,
"type": "curvature"
}
}
]
@@ -0,0 +1,9 @@
{
"what": "the 4 slant edges of a 4-sided pyramid filleted 2 as a curvature-continuous (G2) fillet: a convex corner of 4 edges at the apex",
"source": "invariants",
"method": "a regular 4-gon of circumradius 20 lofted to the apex (0, 0, 30); its 4 slant edges; the fillet type curvature (G2 sections and G2 corner patches): every seam of a round and of the corner patch with its neighbours G2, one valid body",
"body_count": 1,
"continuity": {
"order": "g2"
}
}
@@ -147,7 +147,8 @@
15.0
]
],
"radius": 2
"radius": 2,
"type": "curvature"
}
}
]
@@ -1,7 +1,7 @@
{
"what": "a step's corner (the concave step edge, the lower box's convex front top edge, the upper box's convex upright edge) filleted 2 with the default type",
"what": "a step's corner (the concave step edge, the lower box's convex front top edge, the upper box's convex upright edge) filleted 2 as a curvature-continuous (G2) fillet",
"source": "invariants",
"method": "a 30 x 20 x 10 box with a 15 x 20 x 10 box joined on its top at x 0..15; the three edges at (15, 0, 10); the fillet's default section and corner are curvature-continuous (owner, 2026-10-31: G2 by default, tangent rounds an option): every seam of a round and of the corner patch with its neighbours G2, one valid body",
"method": "a 30 x 20 x 10 box with a 15 x 20 x 10 box joined on its top at x 0..15; the three edges at (15, 0, 10); the fillet type curvature (G2 sections and G2 corner patches): every seam of a round and of the corner patch with its neighbours G2, one valid body",
"body_count": 1,
"continuity": {
"order": "g2"
@@ -48,7 +48,8 @@
15
]
],
"radius": 2
"radius": 2,
"type": "curvature"
}
}
]
@@ -1,7 +1,7 @@
{
"what": "the three edges at a top corner of a block drafted 15 deg (an oblique convex corner) filleted 2 with the default type",
"what": "the three edges at a top corner of a block drafted 15 deg (an oblique convex corner) filleted 2 as a curvature-continuous (G2) fillet",
"source": "invariants",
"method": "a 30 x 20 rectangle extruded 10 with a 15 deg inward taper; the top front edge, the top left edge and the drafted edge between them at the corner near (0, 0, 10); the fillet's default section and corner are curvature-continuous (owner, 2026-10-31: G2 by default, tangent rounds an option): every seam of a round and of the corner patch with its neighbours G2, one valid body",
"method": "a 30 x 20 rectangle extruded 10 with a 15 deg inward taper; the top front edge, the top left edge and the drafted edge between them at the corner near (0, 0, 10); the fillet type curvature (G2 sections and G2 corner patches): every seam of a round and of the corner patch with its neighbours G2, one valid body",
"body_count": 1,
"continuity": {
"order": "g2"
@@ -1,7 +1,7 @@
{
"what": "a pocket's corner (its two floor edges and the upright edge between them, all concave) filleted 2 with the default type",
"what": "a pocket's corner (its two floor edges and the upright edge between them, all concave) filleted 2 as a curvature-continuous (G2) fillet",
"source": "invariants",
"method": "a 60 x 40 x 10 plate less a 30 x 20 pocket 5 deep from (15, 10); the floor edges and the upright edge at (15, 10); the fillet's default section and corner are curvature-continuous (owner, 2026-10-31: G2 by default, tangent rounds an option): every seam of a round and of the corner patch with its neighbours G2, one valid body",
"method": "a 60 x 40 x 10 plate less a 30 x 20 pocket 5 deep from (15, 10); the floor edges and the upright edge at (15, 10); the fillet type curvature (G2 sections and G2 corner patches): every seam of a round and of the corner patch with its neighbours G2, one valid body",
"body_count": 1,
"continuity": {
"order": "g2"
@@ -47,7 +47,8 @@
7.5
]
],
"radius": 2
"radius": 2,
"type": "curvature"
}
}
]