mirror of
https://github.com/bherbruck/solidcraft.git
synced 2026-11-03 10:35:58 +00:00
Kernel rig: a matched sheet meets its target's edge at the order asked, flat where both are flat, and a solid is refused
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,8 @@
|
||||
{
|
||||
"sources": [],
|
||||
"what": "match on a closed solid: refused, a match rebuilds a surface",
|
||||
"source": "invariants",
|
||||
"method": "rebuilding one face of a solid would open it",
|
||||
"outcome": "refused",
|
||||
"refusal": "match rebuilds a surface body: this one is closed"
|
||||
}
|
||||
@@ -0,0 +1,79 @@
|
||||
{
|
||||
"commands": [
|
||||
{
|
||||
"command": "sketch.create",
|
||||
"params": {
|
||||
"plane": {
|
||||
"origin": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"x_dir": [
|
||||
1,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"y_dir": [
|
||||
0,
|
||||
1,
|
||||
0
|
||||
]
|
||||
},
|
||||
"name": "Target sketch"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.rectangle.two_point",
|
||||
"params": {
|
||||
"p0": [
|
||||
0,
|
||||
0
|
||||
],
|
||||
"p1": [
|
||||
10,
|
||||
20
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.finish",
|
||||
"params": {}
|
||||
},
|
||||
{
|
||||
"command": "surface.patch",
|
||||
"params": {
|
||||
"sketch": "Target sketch",
|
||||
"body_name": "Target"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "solid.box",
|
||||
"params": {
|
||||
"length": 8,
|
||||
"width": 20,
|
||||
"height": 5,
|
||||
"corner": [
|
||||
12,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"body_name": "Block"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "surface.match",
|
||||
"params": {
|
||||
"body": "Block",
|
||||
"target": "Target",
|
||||
"edges": [
|
||||
[
|
||||
10,
|
||||
10,
|
||||
0
|
||||
]
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,39 @@
|
||||
{
|
||||
"sources": [],
|
||||
"what": "a sheet 2 mm short of a coplanar sheet's edge, matched G2 onto it and stitched: flat, x 10..20",
|
||||
"source": "analytic",
|
||||
"method": "target x 0..10, skirt x 12..20, both in z = 0; the skirt's near boundary (x = 12) moves to the picked edge x = 10 repeating the plane's tangent and zero curvature, the far one (x = 20) stays with its plane: every condition is in z = 0, so the rebuilt face is the flat 10 x 20 strip; stitched: area 200 + 200 = 400, 4 to 6 free edges round the 20 x 20 outline, the seam at least G2",
|
||||
"valid": false,
|
||||
"body_count": 1,
|
||||
"faces": [
|
||||
1,
|
||||
2
|
||||
],
|
||||
"area_mm2": 400.0,
|
||||
"boundary_edges": [
|
||||
4,
|
||||
6
|
||||
],
|
||||
"bbox": {
|
||||
"min": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"max": [
|
||||
20,
|
||||
20,
|
||||
0
|
||||
]
|
||||
},
|
||||
"continuity": {
|
||||
"order": "g2",
|
||||
"edges": [
|
||||
[
|
||||
10,
|
||||
10,
|
||||
0
|
||||
]
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,122 @@
|
||||
{
|
||||
"commands": [
|
||||
{
|
||||
"command": "sketch.create",
|
||||
"params": {
|
||||
"plane": {
|
||||
"origin": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"x_dir": [
|
||||
1,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"y_dir": [
|
||||
0,
|
||||
1,
|
||||
0
|
||||
]
|
||||
},
|
||||
"name": "Target sketch"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.rectangle.two_point",
|
||||
"params": {
|
||||
"p0": [
|
||||
0,
|
||||
0
|
||||
],
|
||||
"p1": [
|
||||
10,
|
||||
20
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.finish",
|
||||
"params": {}
|
||||
},
|
||||
{
|
||||
"command": "surface.patch",
|
||||
"params": {
|
||||
"sketch": "Target sketch",
|
||||
"body_name": "Target"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.create",
|
||||
"params": {
|
||||
"plane": {
|
||||
"origin": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"x_dir": [
|
||||
1,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"y_dir": [
|
||||
0,
|
||||
1,
|
||||
0
|
||||
]
|
||||
},
|
||||
"name": "Skirt sketch"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.rectangle.two_point",
|
||||
"params": {
|
||||
"p0": [
|
||||
12,
|
||||
0
|
||||
],
|
||||
"p1": [
|
||||
20,
|
||||
20
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.finish",
|
||||
"params": {}
|
||||
},
|
||||
{
|
||||
"command": "surface.patch",
|
||||
"params": {
|
||||
"sketch": "Skirt sketch",
|
||||
"body_name": "Skirt"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "surface.match",
|
||||
"params": {
|
||||
"body": "Skirt",
|
||||
"target": "Target",
|
||||
"edges": [
|
||||
[
|
||||
10,
|
||||
10,
|
||||
0
|
||||
]
|
||||
],
|
||||
"order": "g2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "surface.stitch",
|
||||
"params": {
|
||||
"bodies": [
|
||||
"Target",
|
||||
"Skirt"
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
+19
@@ -0,0 +1,19 @@
|
||||
{
|
||||
"sources": [],
|
||||
"what": "a sheet 2 above and 2 short of a sheet's edge, matched G1 down onto it and stitched: the seam holds G1",
|
||||
"source": "invariants",
|
||||
"method": "target x 0..10 at z = 0, skirt x 12..20 at z = 2; the near boundary moves onto x = 10, z = 0 repeating the target's plane to G1, the far boundary stays at x = 20, z = 2. Graded: the seam's order as Continuity Analysis measures it, one body of 2 faces",
|
||||
"valid": false,
|
||||
"body_count": 1,
|
||||
"faces": 2,
|
||||
"continuity": {
|
||||
"order": "g1",
|
||||
"edges": [
|
||||
[
|
||||
10,
|
||||
10,
|
||||
0
|
||||
]
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,122 @@
|
||||
{
|
||||
"commands": [
|
||||
{
|
||||
"command": "sketch.create",
|
||||
"params": {
|
||||
"plane": {
|
||||
"origin": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"x_dir": [
|
||||
1,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"y_dir": [
|
||||
0,
|
||||
1,
|
||||
0
|
||||
]
|
||||
},
|
||||
"name": "Target sketch"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.rectangle.two_point",
|
||||
"params": {
|
||||
"p0": [
|
||||
0,
|
||||
0
|
||||
],
|
||||
"p1": [
|
||||
10,
|
||||
20
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.finish",
|
||||
"params": {}
|
||||
},
|
||||
{
|
||||
"command": "surface.patch",
|
||||
"params": {
|
||||
"sketch": "Target sketch",
|
||||
"body_name": "Target"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.create",
|
||||
"params": {
|
||||
"plane": {
|
||||
"origin": [
|
||||
0,
|
||||
0,
|
||||
2
|
||||
],
|
||||
"x_dir": [
|
||||
1,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"y_dir": [
|
||||
0,
|
||||
1,
|
||||
0
|
||||
]
|
||||
},
|
||||
"name": "Raised"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.rectangle.two_point",
|
||||
"params": {
|
||||
"p0": [
|
||||
12,
|
||||
0
|
||||
],
|
||||
"p1": [
|
||||
20,
|
||||
20
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.finish",
|
||||
"params": {}
|
||||
},
|
||||
{
|
||||
"command": "surface.patch",
|
||||
"params": {
|
||||
"sketch": "Raised",
|
||||
"body_name": "Skirt"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "surface.match",
|
||||
"params": {
|
||||
"body": "Skirt",
|
||||
"target": "Target",
|
||||
"edges": [
|
||||
[
|
||||
10,
|
||||
10,
|
||||
0
|
||||
]
|
||||
],
|
||||
"order": "g1"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "surface.stitch",
|
||||
"params": {
|
||||
"bodies": [
|
||||
"Target",
|
||||
"Skirt"
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
+19
@@ -0,0 +1,19 @@
|
||||
{
|
||||
"sources": [],
|
||||
"what": "a sheet 2 above and 2 short of a sheet's edge, matched G3 down onto it and stitched: the seam holds G3",
|
||||
"source": "invariants",
|
||||
"method": "target x 0..10 at z = 0, skirt x 12..20 at z = 2; the near boundary moves onto x = 10, z = 0 repeating the target's plane to G3, the far boundary stays at x = 20, z = 2. Graded: the seam's order as Continuity Analysis measures it, one body of 2 faces",
|
||||
"valid": false,
|
||||
"body_count": 1,
|
||||
"faces": 2,
|
||||
"continuity": {
|
||||
"order": "g3",
|
||||
"edges": [
|
||||
[
|
||||
10,
|
||||
10,
|
||||
0
|
||||
]
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,122 @@
|
||||
{
|
||||
"commands": [
|
||||
{
|
||||
"command": "sketch.create",
|
||||
"params": {
|
||||
"plane": {
|
||||
"origin": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"x_dir": [
|
||||
1,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"y_dir": [
|
||||
0,
|
||||
1,
|
||||
0
|
||||
]
|
||||
},
|
||||
"name": "Target sketch"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.rectangle.two_point",
|
||||
"params": {
|
||||
"p0": [
|
||||
0,
|
||||
0
|
||||
],
|
||||
"p1": [
|
||||
10,
|
||||
20
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.finish",
|
||||
"params": {}
|
||||
},
|
||||
{
|
||||
"command": "surface.patch",
|
||||
"params": {
|
||||
"sketch": "Target sketch",
|
||||
"body_name": "Target"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.create",
|
||||
"params": {
|
||||
"plane": {
|
||||
"origin": [
|
||||
0,
|
||||
0,
|
||||
2
|
||||
],
|
||||
"x_dir": [
|
||||
1,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"y_dir": [
|
||||
0,
|
||||
1,
|
||||
0
|
||||
]
|
||||
},
|
||||
"name": "Raised"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.rectangle.two_point",
|
||||
"params": {
|
||||
"p0": [
|
||||
12,
|
||||
0
|
||||
],
|
||||
"p1": [
|
||||
20,
|
||||
20
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.finish",
|
||||
"params": {}
|
||||
},
|
||||
{
|
||||
"command": "surface.patch",
|
||||
"params": {
|
||||
"sketch": "Raised",
|
||||
"body_name": "Skirt"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "surface.match",
|
||||
"params": {
|
||||
"body": "Skirt",
|
||||
"target": "Target",
|
||||
"edges": [
|
||||
[
|
||||
10,
|
||||
10,
|
||||
0
|
||||
]
|
||||
],
|
||||
"order": "g3"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "surface.stitch",
|
||||
"params": {
|
||||
"bodies": [
|
||||
"Target",
|
||||
"Skirt"
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
Reference in New Issue
Block a user