mirror of
https://github.com/bherbruck/solidcraft.git
synced 2026-11-06 20:02:16 +00:00
Kernel rig: unstitch takes a box and a cylinder apart into their faces, or one face out, and refuses a single face
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,26 @@
|
||||
{
|
||||
"sources": [],
|
||||
"what": "a 20 x 10 x 10 box unstitched: six surface bodies, one a face",
|
||||
"source": "analytic",
|
||||
"method": "no faces picked: every face its own surface body; areas 2 (200 + 200 + 100) = 1000; each face keeps its 4 edges, now free: 24",
|
||||
"valid": false,
|
||||
"body_count": 6,
|
||||
"faces": 6,
|
||||
"boundary_edges": 24,
|
||||
"area_mm2": 1000.0,
|
||||
"surface_types": [
|
||||
"plane"
|
||||
],
|
||||
"bbox": {
|
||||
"min": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"max": [
|
||||
20,
|
||||
10,
|
||||
10
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
{
|
||||
"commands": [
|
||||
{
|
||||
"command": "solid.box",
|
||||
"params": {
|
||||
"length": 20,
|
||||
"width": 10,
|
||||
"height": 10,
|
||||
"body_name": "Box"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "surface.unstitch",
|
||||
"params": {
|
||||
"body": "Box"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
{
|
||||
"sources": [],
|
||||
"what": "the top of a box unstitched: the top a surface body, the open box the other",
|
||||
"source": "analytic",
|
||||
"method": "the picked face (top, 200) its own body, the other five (800) stay together under the box's name: 2 bodies, area 1000, free edges 4 (the top's) + 4 (the open box's rim)",
|
||||
"valid": false,
|
||||
"body_count": 2,
|
||||
"faces": 6,
|
||||
"boundary_edges": 8,
|
||||
"area_mm2": 1000.0,
|
||||
"surface_types": [
|
||||
"plane"
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,27 @@
|
||||
{
|
||||
"commands": [
|
||||
{
|
||||
"command": "solid.box",
|
||||
"params": {
|
||||
"length": 20,
|
||||
"width": 10,
|
||||
"height": 10,
|
||||
"body_name": "Box"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "surface.unstitch",
|
||||
"params": {
|
||||
"body": "Box",
|
||||
"faces": [
|
||||
[
|
||||
10,
|
||||
5,
|
||||
10
|
||||
]
|
||||
],
|
||||
"body_name": "Top"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
{
|
||||
"sources": [],
|
||||
"what": "a cylinder r 5, 10 high, unstitched: the side and the two caps, each a surface body",
|
||||
"source": "analytic",
|
||||
"method": "side 2 pi 5 10 = 314.16 (a cylinder, closed on its seam), caps 2 x 25 pi = 157.08 (planes): 3 bodies, area 471.24; free edges: each cap's circle and the side's two circles, 4",
|
||||
"valid": false,
|
||||
"body_count": 3,
|
||||
"faces": 3,
|
||||
"boundary_edges": 4,
|
||||
"area_mm2": 471.23889803846896,
|
||||
"surface_types": [
|
||||
"cylinder",
|
||||
"plane"
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
{
|
||||
"commands": [
|
||||
{
|
||||
"command": "solid.cylinder",
|
||||
"params": {
|
||||
"radius": 5,
|
||||
"height": 10,
|
||||
"body_name": "Post"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "surface.unstitch",
|
||||
"params": {
|
||||
"body": "Post"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
{
|
||||
"sources": [],
|
||||
"what": "unstitch on a body of one face: nothing to take apart, refused",
|
||||
"source": "invariants",
|
||||
"method": "a single face is already as far apart as it goes",
|
||||
"outcome": "refused",
|
||||
"refusal": "the body has one face: nothing to unstitch"
|
||||
}
|
||||
@@ -0,0 +1,57 @@
|
||||
{
|
||||
"commands": [
|
||||
{
|
||||
"command": "sketch.create",
|
||||
"params": {
|
||||
"plane": {
|
||||
"origin": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"x_dir": [
|
||||
1,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"y_dir": [
|
||||
0,
|
||||
1,
|
||||
0
|
||||
]
|
||||
},
|
||||
"name": "Sheet sketch"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.rectangle.two_point",
|
||||
"params": {
|
||||
"p0": [
|
||||
0,
|
||||
0
|
||||
],
|
||||
"p1": [
|
||||
10,
|
||||
10
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.finish",
|
||||
"params": {}
|
||||
},
|
||||
{
|
||||
"command": "surface.patch",
|
||||
"params": {
|
||||
"sketch": "Sheet sketch",
|
||||
"body_name": "Sheet"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "surface.unstitch",
|
||||
"params": {
|
||||
"body": "Sheet"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
Reference in New Issue
Block a user