Kernel rig: five cases outside fillets repeat a kept case's regime and go

A square cut is the slanted plane's ordinary crossing; the cam's half turn is the quarter turn's
contact at a symmetric angle; the r15 slab stands inside the same coincidence tolerance as the r10;
the 90 degree unfold and the 40 degree flange repeat the 72 degree and 20 degree cases' formulas.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
jyviko
2026-10-31 08:41:55 -04:00
committed by jyviko
parent d184f4f2de
commit de3483ecc5
10 changed files with 0 additions and 1121 deletions
@@ -1,30 +0,0 @@
{
"sources": [],
"what": "a knife follower on an eccentric disc cam, the cam turned 180 degrees",
"source": "analytic",
"method": "an eccentric disc cam (radius 10, centre 5 off its shaft on z through the origin) with a knife follower on a slider along +x through the shaft, touching at x = 15; the knife's distance at cam turn \u03c6 is s(\u03c6) = e cos \u03c6 + \u221a(R\u00b2 - e\u00b2 sin\u00b2 \u03c6) (e 5, R 10): rise s(0) - s(180) = 15 - 5 = 10; at 180 the knife is at s = 5, 10 mm in: the tappet's centre (20,0,2.5) -> (10,0,2.5)",
"body_count": 3,
"volume_mm3": 5770.796,
"results": [
{
"step": 13,
"json": {
"lift": {
"rise": 10.0
}
}
},
{
"step": 15,
"json": {
"total": {
"center_of_mass": [
10.0,
0.0,
2.5
]
}
}
}
]
}
@@ -1,212 +0,0 @@
{
"commands": [
{
"command": "solid.box",
"params": {
"length": 20,
"width": 20,
"height": 10,
"corner": [
-10,
-10,
-10
],
"operation": "new",
"body_name": "BaseBox"
}
},
{
"command": "solid.cylinder",
"params": {
"radius": 10,
"height": 5,
"base": [
5,
0,
0
],
"axis": [
0,
0,
1
],
"operation": "new",
"body_name": "Disc"
}
},
{
"command": "solid.box",
"params": {
"length": 10,
"width": 4,
"height": 5,
"corner": [
15,
-2,
0
],
"operation": "new",
"body_name": "Tappet"
}
},
{
"command": "component.create",
"params": {
"name": "Base",
"parent": "root",
"activate": false
}
},
{
"command": "component.move_bodies",
"params": {
"bodies": [
"BaseBox"
],
"component": "Base"
}
},
{
"command": "component.create",
"params": {
"name": "Cam",
"parent": "root",
"activate": false
}
},
{
"command": "component.move_bodies",
"params": {
"bodies": [
"Disc"
],
"component": "Cam"
}
},
{
"command": "component.create",
"params": {
"name": "Follower",
"parent": "root",
"activate": false
}
},
{
"command": "component.move_bodies",
"params": {
"bodies": [
"Tappet"
],
"component": "Follower"
}
},
{
"command": "occurrence.ground",
"params": {
"occurrence": "Base:1",
"grounded": true
}
},
{
"command": "joint.create",
"params": {
"type": "revolute",
"name": "Shaft",
"flip": true,
"a": {
"occurrence": "Base",
"point": [
0,
0,
0
],
"z": [
0,
0,
1
]
},
"b": {
"occurrence": "Cam",
"point": [
0,
0,
0
],
"z": [
0,
0,
1
]
},
"quiet": true
}
},
{
"command": "joint.create",
"params": {
"type": "slider",
"name": "Lift",
"flip": true,
"a": {
"occurrence": "Base",
"point": [
15,
0,
2.5
],
"z": [
1,
0,
0
]
},
"b": {
"occurrence": "Follower",
"point": [
15,
0,
2.5
],
"z": [
1,
0,
0
]
},
"quiet": true
}
},
{
"command": "joint.cam",
"params": {
"a": "Shaft",
"b": "Lift",
"profile": {
"edges": [
[
15,
0,
0
]
],
"occurrence": "Cam"
}
}
},
{
"command": "joint.drive",
"params": {
"joint": "Shaft",
"quiet": true,
"value": 180
}
},
{
"command": "occurrence.properties",
"params": {
"occurrence": "Follower:1"
}
}
]
}
@@ -1,10 +0,0 @@
{
"sources": [
"tangency-labs/solidcraft#4095"
],
"what": "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",
"source": "analytic",
"method": "plate 90x60x20 minus the bore pi R^2*20 minus the notch (the slab 6x16 from z=12 up through the top z=20: 6*16*8 = 768), which the bore beside it does not change. V = 90*60*20 - pi*15^2*20 - 768. The bug removed about 5% too much with no warning",
"body_count": 1,
"volume_mm3": 93094.8331
}
@@ -1,51 +0,0 @@
{
"commands": [
{
"command": "solid.box",
"params": {
"corner": [
-45.0,
-30.0,
0
],
"length": 90,
"width": 60,
"height": 20,
"body_name": "Plate"
}
},
{
"command": "solid.cylinder",
"params": {
"radius": 15,
"height": 22,
"base": [
0,
0,
-1
],
"operation": "cut",
"targets": [
"Plate"
]
}
},
{
"command": "solid.box",
"params": {
"corner": [
-21.000066,
-8,
12
],
"length": 6,
"width": 16,
"height": 14,
"operation": "cut",
"targets": [
"Plate"
]
}
}
]
}
@@ -1,15 +0,0 @@
{
"sources": [],
"what": "where a box edge crosses a plane square to it",
"source": "analytic",
"method": "box 40 x 30 x 20 with a corner at the origin (x 0..40, y 0..30, z 0..20): the edge y 0, z 0 along X meets x = 12 at (12,0,0)",
"construction": {
"P": {
"point": [
12,
0,
0
]
}
}
}
@@ -1,40 +0,0 @@
{
"commands": [
{
"command": "solid.box",
"params": {
"length": 40,
"width": 30,
"height": 20,
"body_name": "Box"
}
},
{
"command": "construct.point.edge_plane",
"params": {
"edge": {
"edge": [
20,
0,
0
]
},
"plane": {
"plane": {
"origin": [
12,
0,
0
],
"normal": [
1,
0,
0
]
}
},
"name": "P"
}
}
]
}
@@ -1,21 +0,0 @@
{
"sources": [
"tangency-labs/solidcraft#349"
],
"what": "a 2000 x 2500 tray with four 38.6 mm flanges at 90 degrees whose sketch is driven by parameters W and H, shrunk to 400 x 300 and unfolded (the solver leaves 1e-13 mm residuals: the planar region arrangement failed)",
"source": "analytic",
"method": "a flange of angle th, outer leg length Hf (height, from the virtual sharp along the flange) bends with allowance BA = th(R+Kt) and bend deduction BD = 2(R+t)tan(th/2) - BA; unfolded it lies in the base's plane and reaches Hf - BD beyond the base's edge. T = 2, R = 1, K = 0.5. BD(90) = 2.8584; the flat of the 400 x 300 tray is the same as built directly: reaches 35.7416 past each base edge",
"body_count": 1,
"bbox": {
"min": [
-35.7415926535898,
-35.7415926535898,
0
],
"max": [
435.7415926535898,
335.7415926535898,
2
]
}
}
@@ -1,132 +0,0 @@
{
"commands": [
{
"command": "parameters.add",
"params": {
"name": "W",
"expression": "2000 mm"
}
},
{
"command": "parameters.add",
"params": {
"name": "H",
"expression": "2500 mm"
}
},
{
"command": "sheet.manage_rules",
"params": {
"name": "AL2",
"thickness": "2 mm",
"active": true,
"bend_radius": "1 mm",
"k_factor": 0.5
}
},
{
"command": "sketch.create",
"params": {
"plane": "XY",
"name": "Tray"
}
},
{
"command": "sketch.rectangle.two_point",
"params": {
"p0": [
0,
0
],
"p1": [
2000,
2500
]
}
},
{
"command": "sketch.constraint.fix",
"params": {
"entities": [
"p1"
]
}
},
{
"command": "sketch.dimension",
"params": {
"entities": [
"l1"
],
"value": "W"
}
},
{
"command": "sketch.dimension",
"params": {
"entities": [
"l2"
],
"value": "H"
}
},
{
"command": "sketch.finish",
"params": {}
},
{
"command": "sheet.flange",
"params": {
"type": "base",
"sketch": "Tray"
}
},
{
"command": "sheet.flange",
"params": {
"type": "edge",
"edges": [
[
1000,
0,
2
],
[
2000,
1250,
2
],
[
1000,
2500,
2
],
[
0,
1250,
2
]
],
"height": 38.6,
"angle": 90
}
},
{
"command": "parameters.change",
"params": {
"changes": {
"W": "400 mm",
"H": "300 mm"
}
}
},
{
"command": "sheet.unfold",
"params": {}
},
{
"command": "inspect.measure",
"params": {}
}
]
}
@@ -1,11 +0,0 @@
{
"sources": [
"tangency-labs/solidcraft#1391",
"tangency-labs/solidcraft#1556"
],
"what": "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\")",
"source": "analytic",
"method": "each section is a half annulus in a plane through the bend axis, centred on the path, so Pappus holds with the section area A(t) = pi/2 (12 r(t) + 36), r(t) = 60 + 15 t: V_tube = R theta * pi/2 (12 * 67.5 + 36), R = 300, theta = 40 degrees = 278322.8. The flange stands outside the tube end plane and touches the tube only along the coplanar end face, so V = V_tube + V_flange, V_flange = pi/2 (106^2 - 78^2) 8 = 64741.9. One body.",
"body_count": 1,
"volume_mm3": 343064.7855158983
}
@@ -1,599 +0,0 @@
{
"commands": [
{
"command": "sketch.create",
"params": {
"plane": {
"origin": [
0.0,
0.0,
0.0
],
"x_dir": [
0,
0,
1
],
"y_dir": [
0.0,
-1.0,
0
]
},
"name": "S0"
}
},
{
"command": "sketch.arc.three_point",
"params": {
"start": [
0,
-66.0
],
"through": [
66.0,
0
],
"end": [
0,
66.0
]
}
},
{
"command": "sketch.line",
"params": {
"points": [
[
0,
66.0
],
[
0,
60.0
]
],
"infer": false
}
},
{
"command": "sketch.arc.three_point",
"params": {
"start": [
0,
60.0
],
"through": [
60.0,
0
],
"end": [
0,
-60.0
]
}
},
{
"command": "sketch.line",
"params": {
"points": [
[
0,
-60.0
],
[
0,
-66.0
]
],
"infer": false
}
},
{
"command": "sketch.finish",
"params": {}
},
{
"command": "sketch.create",
"params": {
"plane": {
"origin": [
52.0944533,
4.557674096,
0.0
],
"x_dir": [
0,
0,
1
],
"y_dir": [
0.173648178,
-0.984807753,
0
]
},
"name": "S1"
}
},
{
"command": "sketch.arc.three_point",
"params": {
"start": [
0,
-69.75
],
"through": [
69.75,
0
],
"end": [
0,
69.75
]
}
},
{
"command": "sketch.line",
"params": {
"points": [
[
0,
69.75
],
[
0,
63.75
]
],
"infer": false
}
},
{
"command": "sketch.arc.three_point",
"params": {
"start": [
0,
63.75
],
"through": [
63.75,
0
],
"end": [
0,
-63.75
]
}
},
{
"command": "sketch.line",
"params": {
"points": [
[
0,
-63.75
],
[
0,
-69.75
]
],
"infer": false
}
},
{
"command": "sketch.finish",
"params": {}
},
{
"command": "sketch.create",
"params": {
"plane": {
"origin": [
102.606042998,
18.092213764,
0.0
],
"x_dir": [
0,
0,
1
],
"y_dir": [
0.342020143,
-0.939692621,
0
]
},
"name": "S2"
}
},
{
"command": "sketch.arc.three_point",
"params": {
"start": [
0,
-73.5
],
"through": [
73.5,
0
],
"end": [
0,
73.5
]
}
},
{
"command": "sketch.line",
"params": {
"points": [
[
0,
73.5
],
[
0,
67.5
]
],
"infer": false
}
},
{
"command": "sketch.arc.three_point",
"params": {
"start": [
0,
67.5
],
"through": [
67.5,
0
],
"end": [
0,
-67.5
]
}
},
{
"command": "sketch.line",
"params": {
"points": [
[
0,
-67.5
],
[
0,
-73.5
]
],
"infer": false
}
},
{
"command": "sketch.finish",
"params": {}
},
{
"command": "sketch.create",
"params": {
"plane": {
"origin": [
150.0,
40.192378865,
0.0
],
"x_dir": [
0,
0,
1
],
"y_dir": [
0.5,
-0.866025404,
0
]
},
"name": "S3"
}
},
{
"command": "sketch.arc.three_point",
"params": {
"start": [
0,
-77.25
],
"through": [
77.25,
0
],
"end": [
0,
77.25
]
}
},
{
"command": "sketch.line",
"params": {
"points": [
[
0,
77.25
],
[
0,
71.25
]
],
"infer": false
}
},
{
"command": "sketch.arc.three_point",
"params": {
"start": [
0,
71.25
],
"through": [
71.25,
0
],
"end": [
0,
-71.25
]
}
},
{
"command": "sketch.line",
"params": {
"points": [
[
0,
-71.25
],
[
0,
-77.25
]
],
"infer": false
}
},
{
"command": "sketch.finish",
"params": {}
},
{
"command": "sketch.create",
"params": {
"plane": {
"origin": [
192.836282906,
70.186667064,
0.0
],
"x_dir": [
0,
0,
1
],
"y_dir": [
0.64278761,
-0.766044443,
0
]
},
"name": "S4"
}
},
{
"command": "sketch.arc.three_point",
"params": {
"start": [
0,
-81.0
],
"through": [
81.0,
0
],
"end": [
0,
81.0
]
}
},
{
"command": "sketch.line",
"params": {
"points": [
[
0,
81.0
],
[
0,
75.0
]
],
"infer": false
}
},
{
"command": "sketch.arc.three_point",
"params": {
"start": [
0,
75.0
],
"through": [
75.0,
0
],
"end": [
0,
-75.0
]
}
},
{
"command": "sketch.line",
"params": {
"points": [
[
0,
-75.0
],
[
0,
-81.0
]
],
"infer": false
}
},
{
"command": "sketch.finish",
"params": {}
},
{
"command": "solid.loft",
"params": {
"sections": [
{
"sketch": "S0"
},
{
"sketch": "S1"
},
{
"sketch": "S2"
},
{
"sketch": "S3"
},
{
"sketch": "S4"
}
],
"operation": "new",
"name": "TubeLoft",
"body_name": "Tube"
}
},
{
"command": "sketch.create",
"params": {
"plane": {
"origin": [
192.836282906,
70.186667064,
0.0
],
"x_dir": [
0,
0,
1
],
"y_dir": [
0.64278761,
-0.766044443,
0
]
},
"name": "Flange"
}
},
{
"command": "sketch.arc.three_point",
"params": {
"start": [
0,
-106.0
],
"through": [
106.0,
0
],
"end": [
0,
106.0
]
}
},
{
"command": "sketch.line",
"params": {
"points": [
[
0,
106.0
],
[
0,
78.0
]
],
"infer": false
}
},
{
"command": "sketch.arc.three_point",
"params": {
"start": [
0,
78.0
],
"through": [
78.0,
0
],
"end": [
0,
-78.0
]
}
},
{
"command": "sketch.line",
"params": {
"points": [
[
0,
-78.0
],
[
0,
-106.0
]
],
"infer": false
}
},
{
"command": "sketch.finish",
"params": {}
},
{
"command": "solid.extrude",
"params": {
"sketch": "Flange",
"distance": 8.0,
"operation": "join",
"targets": [
"Tube"
],
"name": "JoinFlange"
}
}
]
}