mirror of
https://github.com/bherbruck/solidcraft.git
synced 2026-11-05 03:25:58 +00:00
Kernel rig: pattern on path cases, bosses along a line, bodies turning with an arc's tangent, and instances past the path's end refused
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,20 @@
|
||||
{
|
||||
"sources": [],
|
||||
"what": "a body patterned 3 times along a half circle r20 with orientation path: each copy turns with the tangent",
|
||||
"source": "analytic",
|
||||
"method": "instances at 0, 90 and 180 deg along the arc, each turned with the tangent: the 4x2x2 key (long side radial) stays radial, at (0,20) 2 wide in X and 4 long in Y (y 18..22). Unturned it would be 4 wide in X (x -2..2, y 19..21). Three keys: V = 3*16, bbox x -22..22, y -1..22, z 0..2",
|
||||
"body_count": 3,
|
||||
"volume_mm3": 48.0,
|
||||
"bbox": {
|
||||
"min": [
|
||||
-22,
|
||||
-1,
|
||||
0
|
||||
],
|
||||
"max": [
|
||||
22,
|
||||
22,
|
||||
2
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,61 @@
|
||||
{
|
||||
"commands": [
|
||||
{
|
||||
"command": "solid.box",
|
||||
"params": {
|
||||
"length": 4,
|
||||
"width": 2,
|
||||
"height": 2,
|
||||
"center": [
|
||||
20,
|
||||
0,
|
||||
1
|
||||
],
|
||||
"body_name": "Key"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.create",
|
||||
"params": {
|
||||
"plane": "XY",
|
||||
"name": "Path"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.arc.center_point",
|
||||
"params": {
|
||||
"center": [
|
||||
0,
|
||||
0
|
||||
],
|
||||
"start": [
|
||||
20,
|
||||
0
|
||||
],
|
||||
"sweep": 180,
|
||||
"id": "arc"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.finish",
|
||||
"params": {
|
||||
"sketch": "Path"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "solid.pattern.path",
|
||||
"params": {
|
||||
"bodies": [
|
||||
"Key"
|
||||
],
|
||||
"path_sketch": "Path",
|
||||
"path": [
|
||||
"arc"
|
||||
],
|
||||
"count": 3,
|
||||
"distance": 62.83185307179586,
|
||||
"orientation": "path"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
{
|
||||
"sources": [],
|
||||
"what": "a boss joined to a plate, patterned 5 times 20 mm apart along a sketch line",
|
||||
"source": "analytic",
|
||||
"method": "plate 100x20x5 = 10000 plus 5 bosses r3 h5 at x = 10, 30 ... 90: 5 pi 9 5; faces: plate 6 + 2 a boss (side, top) = 16",
|
||||
"body_count": 1,
|
||||
"faces": 16,
|
||||
"volume_mm3": 10706.858347057703,
|
||||
"bbox": {
|
||||
"min": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"max": [
|
||||
100,
|
||||
20,
|
||||
10
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,73 @@
|
||||
{
|
||||
"commands": [
|
||||
{
|
||||
"command": "solid.box",
|
||||
"params": {
|
||||
"length": 100,
|
||||
"width": 20,
|
||||
"height": 5,
|
||||
"body_name": "Plate"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "solid.cylinder",
|
||||
"params": {
|
||||
"base": [
|
||||
10,
|
||||
10,
|
||||
5
|
||||
],
|
||||
"radius": 3,
|
||||
"height": 5,
|
||||
"operation": "join",
|
||||
"name": "Boss"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.create",
|
||||
"params": {
|
||||
"plane": "XY",
|
||||
"name": "Path"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.line",
|
||||
"params": {
|
||||
"points": [
|
||||
[
|
||||
10,
|
||||
10
|
||||
],
|
||||
[
|
||||
90,
|
||||
10
|
||||
]
|
||||
],
|
||||
"ids": [
|
||||
"p1"
|
||||
],
|
||||
"infer": false
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.finish",
|
||||
"params": {
|
||||
"sketch": "Path"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "solid.pattern.path",
|
||||
"params": {
|
||||
"features": [
|
||||
"Boss"
|
||||
],
|
||||
"path_sketch": "Path",
|
||||
"path": [
|
||||
"p1"
|
||||
],
|
||||
"count": 5,
|
||||
"spacing": 20
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
{
|
||||
"sources": [],
|
||||
"what": "6 instances 20 mm apart need 100 mm of an 80 mm path: refused",
|
||||
"source": "analytic",
|
||||
"method": "(6 - 1) * 20 = 100 > 80: the last instances would leave the path; a clean refusal naming its length",
|
||||
"outcome": "refused",
|
||||
"refusal": "run past the end of the path (80.000 mm long)"
|
||||
}
|
||||
@@ -0,0 +1,73 @@
|
||||
{
|
||||
"commands": [
|
||||
{
|
||||
"command": "solid.box",
|
||||
"params": {
|
||||
"length": 100,
|
||||
"width": 20,
|
||||
"height": 5,
|
||||
"body_name": "Plate"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "solid.cylinder",
|
||||
"params": {
|
||||
"base": [
|
||||
10,
|
||||
10,
|
||||
5
|
||||
],
|
||||
"radius": 3,
|
||||
"height": 5,
|
||||
"operation": "join",
|
||||
"name": "Boss"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.create",
|
||||
"params": {
|
||||
"plane": "XY",
|
||||
"name": "Path"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.line",
|
||||
"params": {
|
||||
"points": [
|
||||
[
|
||||
10,
|
||||
10
|
||||
],
|
||||
[
|
||||
90,
|
||||
10
|
||||
]
|
||||
],
|
||||
"ids": [
|
||||
"p1"
|
||||
],
|
||||
"infer": false
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.finish",
|
||||
"params": {
|
||||
"sketch": "Path"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "solid.pattern.path",
|
||||
"params": {
|
||||
"features": [
|
||||
"Boss"
|
||||
],
|
||||
"path_sketch": "Path",
|
||||
"path": [
|
||||
"p1"
|
||||
],
|
||||
"count": 6,
|
||||
"spacing": 20
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
Reference in New Issue
Block a user