mirror of
https://github.com/bherbruck/solidcraft.git
synced 2026-11-04 02:55:54 +00:00
Kernel rig: a reversed normal sends a later thicken to the other side, and a solid is refused
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
+21
@@ -0,0 +1,21 @@
|
||||
{
|
||||
"sources": [],
|
||||
"what": "the L sheet of two walls (30 and 20, 20 deep) turned over, then thickened +2: the side -2 took before, into the inside corner",
|
||||
"source": "analytic",
|
||||
"method": "kernel-cases/shell/5326: -2 is the inside of this sheet's corner; with every normal reversed +2 is. Each wall offset 2 toward the other, the slabs overlap in 2 x 2: V = (30*2 + 20*2 - 2*2) 20 = 1920, an L prism of 8 faces",
|
||||
"body_count": 1,
|
||||
"faces": 8,
|
||||
"volume_mm3": 1920.0,
|
||||
"bbox": {
|
||||
"min": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"max": [
|
||||
30,
|
||||
20,
|
||||
20
|
||||
]
|
||||
}
|
||||
}
|
||||
+88
@@ -0,0 +1,88 @@
|
||||
{
|
||||
"commands": [
|
||||
{
|
||||
"command": "sketch.create",
|
||||
"params": {
|
||||
"plane": {
|
||||
"origin": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"x_dir": [
|
||||
1,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"y_dir": [
|
||||
0,
|
||||
1,
|
||||
0
|
||||
]
|
||||
},
|
||||
"name": "S"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.line",
|
||||
"params": {
|
||||
"points": [
|
||||
[
|
||||
0,
|
||||
0
|
||||
],
|
||||
[
|
||||
30,
|
||||
0
|
||||
],
|
||||
[
|
||||
30,
|
||||
20
|
||||
]
|
||||
],
|
||||
"infer": false
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.finish",
|
||||
"params": {}
|
||||
},
|
||||
{
|
||||
"command": "surface.extrude",
|
||||
"params": {
|
||||
"sketch": "S",
|
||||
"curves": [
|
||||
"l1",
|
||||
"l2"
|
||||
],
|
||||
"distance": 20,
|
||||
"body_name": "L"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "surface.reverse_normal",
|
||||
"params": {
|
||||
"body": "L"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "surface.thicken",
|
||||
"params": {
|
||||
"bodies": [
|
||||
"L"
|
||||
],
|
||||
"thickness": 2,
|
||||
"operation": "new",
|
||||
"body_name": "Wall"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "solid.remove",
|
||||
"params": {
|
||||
"bodies": [
|
||||
"L"
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
{
|
||||
"sources": [],
|
||||
"what": "reverse normal on a solid: refused, its faces face out",
|
||||
"source": "invariants",
|
||||
"method": "a closed solid's orientation is fixed by its material; only a surface may be turned over",
|
||||
"outcome": "refused",
|
||||
"refusal": "a solid's faces face out"
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
{
|
||||
"commands": [
|
||||
{
|
||||
"command": "solid.box",
|
||||
"params": {
|
||||
"length": 20,
|
||||
"width": 10,
|
||||
"height": 10,
|
||||
"body_name": "Box"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "surface.reverse_normal",
|
||||
"params": {
|
||||
"body": "Box"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
{
|
||||
"sources": [],
|
||||
"what": "a 10 x 10 sheet patched on XY (normal +z) turned over, then thickened 2 along its normal: the slab lies below it",
|
||||
"source": "analytic",
|
||||
"method": "the patch of an XY sketch faces +z; reversed it faces -z, and a positive thickness goes along the normal: the box 10 x 10 x 2 at z -2..0, V = 200, 6 faces; the sheet is removed so only the slab is graded",
|
||||
"body_count": 1,
|
||||
"faces": 6,
|
||||
"volume_mm3": 200.0,
|
||||
"bbox": {
|
||||
"min": [
|
||||
0,
|
||||
0,
|
||||
-2
|
||||
],
|
||||
"max": [
|
||||
10,
|
||||
10,
|
||||
0
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,76 @@
|
||||
{
|
||||
"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.reverse_normal",
|
||||
"params": {
|
||||
"body": "Sheet"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "surface.thicken",
|
||||
"params": {
|
||||
"bodies": [
|
||||
"Sheet"
|
||||
],
|
||||
"thickness": 2,
|
||||
"operation": "new",
|
||||
"body_name": "Slab"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "solid.remove",
|
||||
"params": {
|
||||
"bodies": [
|
||||
"Sheet"
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
Reference in New Issue
Block a user