mirror of
https://github.com/bherbruck/solidcraft.git
synced 2026-11-03 10:35:58 +00:00
Kernel rig: ruled strips along a normal, at 45 degrees and tangent are the exact plane, cone and flat ring, and a closed chain mitres into a frame
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,26 @@
|
||||
{
|
||||
"sources": [],
|
||||
"what": "a ruled strip 5 wide off the box's top front edge, along the top face's normal",
|
||||
"source": "analytic",
|
||||
"method": "edge (0..20, 0, 10), rulings +z (the top's normal), constant: the plane y = 0, x 0..20, z 10..15: area 100, one plane face with 4 free edges",
|
||||
"valid": false,
|
||||
"body_count": 1,
|
||||
"faces": 1,
|
||||
"boundary_edges": 4,
|
||||
"area_mm2": 100.0,
|
||||
"surface_types": [
|
||||
"plane"
|
||||
],
|
||||
"bbox": {
|
||||
"min": [
|
||||
0,
|
||||
0,
|
||||
10
|
||||
],
|
||||
"max": [
|
||||
20,
|
||||
0,
|
||||
15
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,41 @@
|
||||
{
|
||||
"commands": [
|
||||
{
|
||||
"command": "solid.box",
|
||||
"params": {
|
||||
"length": 20,
|
||||
"width": 10,
|
||||
"height": 10,
|
||||
"body_name": "Box"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "surface.ruled",
|
||||
"params": {
|
||||
"body": "Box",
|
||||
"edges": [
|
||||
[
|
||||
10,
|
||||
0,
|
||||
10
|
||||
]
|
||||
],
|
||||
"face": [
|
||||
10,
|
||||
5,
|
||||
10
|
||||
],
|
||||
"distance": 5,
|
||||
"body_name": "Strip"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "solid.remove",
|
||||
"params": {
|
||||
"bodies": [
|
||||
"Box"
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
+29
@@ -0,0 +1,29 @@
|
||||
{
|
||||
"sources": [],
|
||||
"what": "ruled strips 5 wide off all four top edges of a box, continuing the top: mitred at the corners into a flat frame",
|
||||
"source": "analytic",
|
||||
"method": "each strip continues the top (z = 10) outward 5; mitred corners close the frame 30 x 20 round the 20 x 10 top: area 600 - 200 = 400, all in z = 10; 4 strips (coplanar, counted [1, 4]), 8 free edges (4 inner, 4 outer)",
|
||||
"valid": false,
|
||||
"body_count": 1,
|
||||
"faces": [
|
||||
1,
|
||||
4
|
||||
],
|
||||
"boundary_edges": 8,
|
||||
"area_mm2": 400.0,
|
||||
"surface_types": [
|
||||
"plane"
|
||||
],
|
||||
"bbox": {
|
||||
"min": [
|
||||
-5,
|
||||
-5,
|
||||
10
|
||||
],
|
||||
"max": [
|
||||
25,
|
||||
15,
|
||||
10
|
||||
]
|
||||
}
|
||||
}
|
||||
+57
@@ -0,0 +1,57 @@
|
||||
{
|
||||
"commands": [
|
||||
{
|
||||
"command": "solid.box",
|
||||
"params": {
|
||||
"length": 20,
|
||||
"width": 10,
|
||||
"height": 10,
|
||||
"body_name": "Box"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "surface.ruled",
|
||||
"params": {
|
||||
"body": "Box",
|
||||
"edges": [
|
||||
[
|
||||
10,
|
||||
0,
|
||||
10
|
||||
],
|
||||
[
|
||||
20,
|
||||
5,
|
||||
10
|
||||
],
|
||||
[
|
||||
10,
|
||||
10,
|
||||
10
|
||||
],
|
||||
[
|
||||
0,
|
||||
5,
|
||||
10
|
||||
]
|
||||
],
|
||||
"face": [
|
||||
10,
|
||||
5,
|
||||
10
|
||||
],
|
||||
"mode": "tangent",
|
||||
"distance": 5,
|
||||
"body_name": "Frame"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "solid.remove",
|
||||
"params": {
|
||||
"bodies": [
|
||||
"Box"
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
+26
@@ -0,0 +1,26 @@
|
||||
{
|
||||
"sources": [],
|
||||
"what": "a ruled strip off a cylinder's top rim at 45 degrees from the top face's normal, turned away from it: an exact cone frustum",
|
||||
"source": "analytic",
|
||||
"method": "rulings at 45 deg from +z, leaning out (away from the top face), keep their angle to the arc's axis: a cone. r 10 at z 10 to r 10 + 5/sqrt2 = 13.536 at z 10 + 5/sqrt2 = 13.536; lateral area pi (r1 + r2) slant = pi 23.536 5 = 369.69; one face, two free circles",
|
||||
"valid": false,
|
||||
"body_count": 1,
|
||||
"faces": 1,
|
||||
"boundary_edges": 2,
|
||||
"area_mm2": 369.69530208595893,
|
||||
"surface_types": [
|
||||
"cone"
|
||||
],
|
||||
"bbox": {
|
||||
"min": [
|
||||
-13.535533905932738,
|
||||
-13.535533905932738,
|
||||
10
|
||||
],
|
||||
"max": [
|
||||
13.535533905932738,
|
||||
13.535533905932738,
|
||||
13.535533905932738
|
||||
]
|
||||
}
|
||||
}
|
||||
+42
@@ -0,0 +1,42 @@
|
||||
{
|
||||
"commands": [
|
||||
{
|
||||
"command": "solid.cylinder",
|
||||
"params": {
|
||||
"radius": 10,
|
||||
"height": 10,
|
||||
"body_name": "Post"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "surface.ruled",
|
||||
"params": {
|
||||
"body": "Post",
|
||||
"edges": [
|
||||
[
|
||||
10,
|
||||
0,
|
||||
10
|
||||
]
|
||||
],
|
||||
"face": [
|
||||
0,
|
||||
0,
|
||||
10
|
||||
],
|
||||
"mode": "angle",
|
||||
"angle": "45 deg",
|
||||
"distance": 5,
|
||||
"body_name": "Flare"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "solid.remove",
|
||||
"params": {
|
||||
"bodies": [
|
||||
"Post"
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
+26
@@ -0,0 +1,26 @@
|
||||
{
|
||||
"sources": [],
|
||||
"what": "a ruled strip off a cylinder's top rim continuing the top face: the flat ring r 10..15",
|
||||
"source": "analytic",
|
||||
"method": "tangent rulings continue the top (z = 10) square to the rim, outward: the plane annulus r 10..15, area pi (225 - 100) = 392.70; one plane face, two free circles",
|
||||
"valid": false,
|
||||
"body_count": 1,
|
||||
"faces": 1,
|
||||
"boundary_edges": 2,
|
||||
"area_mm2": 392.6990816987241,
|
||||
"surface_types": [
|
||||
"plane"
|
||||
],
|
||||
"bbox": {
|
||||
"min": [
|
||||
-15,
|
||||
-15,
|
||||
10
|
||||
],
|
||||
"max": [
|
||||
15,
|
||||
15,
|
||||
10
|
||||
]
|
||||
}
|
||||
}
|
||||
+41
@@ -0,0 +1,41 @@
|
||||
{
|
||||
"commands": [
|
||||
{
|
||||
"command": "solid.cylinder",
|
||||
"params": {
|
||||
"radius": 10,
|
||||
"height": 10,
|
||||
"body_name": "Post"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "surface.ruled",
|
||||
"params": {
|
||||
"body": "Post",
|
||||
"edges": [
|
||||
[
|
||||
10,
|
||||
0,
|
||||
10
|
||||
]
|
||||
],
|
||||
"face": [
|
||||
0,
|
||||
0,
|
||||
10
|
||||
],
|
||||
"mode": "tangent",
|
||||
"distance": 5,
|
||||
"body_name": "Brim"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "solid.remove",
|
||||
"params": {
|
||||
"bodies": [
|
||||
"Post"
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
{
|
||||
"sources": [],
|
||||
"what": "a ruled strip of width 0: refused, it would have no area",
|
||||
"source": "invariants",
|
||||
"method": "a strip needs a positive width",
|
||||
"outcome": "refused",
|
||||
"refusal": "the ruled surface distance must be positive and finite"
|
||||
}
|
||||
@@ -0,0 +1,32 @@
|
||||
{
|
||||
"commands": [
|
||||
{
|
||||
"command": "solid.box",
|
||||
"params": {
|
||||
"length": 20,
|
||||
"width": 10,
|
||||
"height": 10,
|
||||
"body_name": "Box"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "surface.ruled",
|
||||
"params": {
|
||||
"body": "Box",
|
||||
"edges": [
|
||||
[
|
||||
10,
|
||||
0,
|
||||
10
|
||||
]
|
||||
],
|
||||
"face": [
|
||||
10,
|
||||
5,
|
||||
10
|
||||
],
|
||||
"distance": 0
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
Reference in New Issue
Block a user