Fillet rig: the concave arc where a bar's top meets a cylinder its sides run tangent into

An r2 round of the arc adds the spandrel ring clipped by the bar's sides, integral over rho in
[8, 10] of [2 - sqrt(4 - (10 - rho)^2)] rho 2 asin(8 / rho) = 18.455363. With round coordinates
it builds to that; with the reported design's sketch residues (~1e-10 mm) SMLib's blend fails,
status 1001 (SmFilletNx1Corner: unable to make topology at the arc's end), listed as known
failing.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
jyviko
2026-10-30 05:50:04 -04:00
committed by Irakli Kourtis
parent c9bf97ce49
commit 1e6c91a108
5 changed files with 361 additions and 0 deletions
@@ -0,0 +1,11 @@
{
"sources": [
"tangency-labs/solidcraft#1207"
],
"what": "as 1207-fillet-concave-arc-bar-top-into-cylinder, with the sketch solver's residues of the reported design: SMLib's Nx1 corner fails (status 1001)",
"source": "analytic",
"method": "the same bar with the sketch solver's residues of the reported design (~1e-10 mm: the front side's ends differ by 3.0e-10 in y, the arc's centre 5.7e-11 off the disc's), length 41.160417754, V0 = 41.160417754 * 16.0000000000762 * 10 + 960 pi; the concave arc where the bar's top meets the cylinder's wall rounded r2: the spandrel ring added, clipped by the bar's sides y = 0 and y = 16 (as 1207-fillet-concave-arc-at-boss): integral over rho in [8, 10] of [2 - sqrt(4 - (10 - rho)^2)] rho 2 asin(8 / rho) = 18.4553684491 (Simpson)",
"body_count": 1,
"faces": 8,
"volume_mm3": 9620.051156581294
}
@@ -0,0 +1,169 @@
{
"commands": [
{
"command": "sketch.create",
"params": {
"plane": "XY",
"name": "Peg"
}
},
{
"command": "sketch.line",
"params": {
"points": [
[
0.4892940775280783,
0.05792545052986289
],
[
41.64971183161969,
0.05792545083296555
]
]
}
},
{
"command": "sketch.arc.center_point",
"params": {
"center": [
41.64971183108453,
8.057925450890195
],
"start": [
41.64971183161969,
0.05792545083296555
],
"end": [
41.64971183161969,
16.05792545083297
]
}
},
{
"command": "sketch.line",
"params": {
"points": [
[
41.64971183161969,
16.05792545083297
],
[
0.4892940775280783,
16.057925450606035
]
]
}
},
{
"command": "sketch.line",
"params": {
"points": [
[
0.4892940775280783,
16.057925450606035
],
[
0.4892940775280783,
0.05792545052986289
]
]
}
},
{
"command": "sketch.finish",
"params": {}
},
{
"command": "solid.extrude",
"params": {
"sketch": "Peg",
"distance": 10,
"body_name": "Peg"
}
},
{
"command": "sketch.create",
"params": {
"plane": {
"origin": [
0,
0,
10
],
"x_dir": [
1,
0,
0
],
"y_dir": [
0,
1,
0
]
},
"name": "Top"
}
},
{
"command": "sketch.project",
"params": {
"refs": [
{
"face": [
2.4892940775280783,
8.057925450890195,
10
]
}
]
}
},
{
"command": "sketch.circle.center",
"params": {
"center": [
41.64971183108453,
8.057925450832967
],
"radius": 8.000000000006473
}
},
{
"command": "sketch.finish",
"params": {}
},
{
"command": "solid.extrude",
"params": {
"sketch": "Top",
"distance": 10,
"operation": "join",
"targets": [
"Peg"
],
"profiles": [
{
"point": [
41.64971183108453,
8.057925450832967
]
}
],
"exact_regions": true
}
},
{
"command": "solid.fillet",
"params": {
"edges": [
[
33.65,
8.058,
10
]
],
"radius": 2
}
}
]
}
@@ -0,0 +1,11 @@
{
"sources": [
"tangency-labs/solidcraft#1207"
],
"what": "an r2 round of the concave arc where a bar's top meets a cylinder its sides run tangent into",
"source": "analytic",
"method": "a bar 40 x 16 x 10 whose far end is a half disc R8 about (40, 8), a disc R8 about the same centre sketched on its top (the top's outline projected) and extruded 10 up, joined: the bar's sides run tangent into the cylinder, V0 = 6400 + 960 pi; the concave arc where the bar's top meets the cylinder's wall rounded r2: the spandrel ring added, clipped by the bar's sides y = 0 and y = 16 (as 1207-fillet-concave-arc-at-boss): integral over rho in [8, 10] of [2 - sqrt(4 - (10 - rho)^2)] rho 2 asin(8 / rho) = 18.4553684491 (Simpson)",
"body_count": 1,
"faces": 8,
"volume_mm3": 9434.384315895273
}
@@ -0,0 +1,169 @@
{
"commands": [
{
"command": "sketch.create",
"params": {
"plane": "XY",
"name": "Peg"
}
},
{
"command": "sketch.line",
"params": {
"points": [
[
0,
0
],
[
40,
0
]
]
}
},
{
"command": "sketch.arc.center_point",
"params": {
"center": [
40,
8
],
"start": [
40,
0
],
"end": [
40,
16
]
}
},
{
"command": "sketch.line",
"params": {
"points": [
[
40,
16
],
[
0,
16
]
]
}
},
{
"command": "sketch.line",
"params": {
"points": [
[
0,
16
],
[
0,
0
]
]
}
},
{
"command": "sketch.finish",
"params": {}
},
{
"command": "solid.extrude",
"params": {
"sketch": "Peg",
"distance": 10,
"body_name": "Peg"
}
},
{
"command": "sketch.create",
"params": {
"plane": {
"origin": [
0,
0,
10
],
"x_dir": [
1,
0,
0
],
"y_dir": [
0,
1,
0
]
},
"name": "Top"
}
},
{
"command": "sketch.project",
"params": {
"refs": [
{
"face": [
2,
8,
10
]
}
]
}
},
{
"command": "sketch.circle.center",
"params": {
"center": [
40,
8
],
"radius": 8
}
},
{
"command": "sketch.finish",
"params": {}
},
{
"command": "solid.extrude",
"params": {
"sketch": "Top",
"distance": 10,
"operation": "join",
"targets": [
"Peg"
],
"profiles": [
{
"point": [
40,
8
]
}
],
"exact_regions": true
}
},
{
"command": "solid.fillet",
"params": {
"edges": [
[
32,
8,
10
]
],
"radius": 2
}
}
]
}
+1
View File
@@ -15,6 +15,7 @@
1080-fillet-sloped-basin-1-mm-rim-r4-4-edges not supported yet: a convex round past its face is not yet built by subtraction
1113-chamfer-arc-top-edge-full-wall-height-refused builds the chamfer as tall as the wall where it should be refused as too large
1207-fillet-bar-top-edge-after-boss-arc-round-r0-5 SMLib's check refuses the round: internal coincident control points in a B-spline curve (an internal pole)
1207-fillet-concave-arc-bar-top-into-cylinder-solver-residues SMLib status 1001: SmFilletNx1Corner cannot make the topology at the arc's end (fillet error 3, corner type 8)
1207-fillet-corner-after-round-running-into-cylinder-solver-residues SMLib's check refuses the round: its corner's surface of revolution is close to singular at its boundary (SmSurface test 5)
1668-fillet-outer-top-edge-of-thin-wall-r7-past-inside-corner a slit along the hollow, 0.507 mm^3 off: 38458.389 is V0 less the round's whole section along 104, so the section's part over the hollow (0.005068 mm^2 along 100), which is not material, is taken anyway
190-fillet-disc-rim-past-its-2mm-wall SMLib status 1001: a convex round past its face is not yet built by subtraction