mirror of
https://github.com/bherbruck/solidcraft.git
synced 2026-11-04 02:55:54 +00:00
Kernel rig: second cases for draft (two adjacent faces), rib (in plane), press pull (an edge), split face (sketch and tool face) and sketch projection (a face loop and a silhouette)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
+21
@@ -0,0 +1,21 @@
|
||||
{
|
||||
"sources": [],
|
||||
"what": "two adjacent sides of a block (front and right) drafted 10 deg from the base: the drafted faces meet along a new slanted edge",
|
||||
"source": "analytic",
|
||||
"method": "the section at height z is (40 - z tan10)(30 - z tan10); V = int_0^20 = 24000 - 70 tan10 * 200 + tan10^2 * 8000/3; still 6 faces",
|
||||
"body_count": 1,
|
||||
"faces": 6,
|
||||
"volume_mm3": 21614.332147750192,
|
||||
"bbox": {
|
||||
"min": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"max": [
|
||||
40,
|
||||
30,
|
||||
20
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,32 @@
|
||||
{
|
||||
"commands": [
|
||||
{
|
||||
"command": "solid.box",
|
||||
"params": {
|
||||
"length": 40,
|
||||
"width": 30,
|
||||
"height": 20,
|
||||
"body_name": "Block"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "solid.draft",
|
||||
"params": {
|
||||
"faces": [
|
||||
[
|
||||
20,
|
||||
0,
|
||||
10
|
||||
],
|
||||
[
|
||||
40,
|
||||
15,
|
||||
10
|
||||
]
|
||||
],
|
||||
"angle": "10 deg",
|
||||
"neutral": "XY"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
{
|
||||
"sources": [],
|
||||
"what": "Press Pull on an edge (its fillet mode): the block's top front edge rounded r2",
|
||||
"source": "analytic",
|
||||
"method": "a round r2 along 40 mm removes (1 - pi/4) r^2 * 40; faces 6 + 1",
|
||||
"body_count": 1,
|
||||
"faces": 7,
|
||||
"volume_mm3": 11965.663706143592
|
||||
}
|
||||
@@ -0,0 +1,26 @@
|
||||
{
|
||||
"commands": [
|
||||
{
|
||||
"command": "solid.box",
|
||||
"params": {
|
||||
"length": 40,
|
||||
"width": 30,
|
||||
"height": 10,
|
||||
"body_name": "Block"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "solid.press_pull",
|
||||
"params": {
|
||||
"edges": [
|
||||
[
|
||||
20,
|
||||
0,
|
||||
10
|
||||
]
|
||||
],
|
||||
"distance": 2
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
{
|
||||
"sources": [],
|
||||
"what": "a cylinder's top face projected onto a sketch 10 mm above it and extruded: the projected circle is the profile",
|
||||
"source": "analytic",
|
||||
"method": "the top's loop is the circle r10: extruded 5 from z=20, a second cylinder 500 pi beside the first 1000 pi",
|
||||
"body_count": 2,
|
||||
"volume_mm3": 4712.38898038469,
|
||||
"bbox": {
|
||||
"min": [
|
||||
-10,
|
||||
-10,
|
||||
0
|
||||
],
|
||||
"max": [
|
||||
10,
|
||||
10,
|
||||
25
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,48 @@
|
||||
{
|
||||
"commands": [
|
||||
{
|
||||
"command": "solid.cylinder",
|
||||
"params": {
|
||||
"radius": 10,
|
||||
"height": 10,
|
||||
"body_name": "Post"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.create",
|
||||
"params": {
|
||||
"plane": "XY",
|
||||
"offset": 20,
|
||||
"name": "Above"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.project",
|
||||
"params": {
|
||||
"refs": [
|
||||
{
|
||||
"face": [
|
||||
0,
|
||||
0,
|
||||
10
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.finish",
|
||||
"params": {
|
||||
"sketch": "Above"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "solid.extrude",
|
||||
"params": {
|
||||
"sketch": "Above",
|
||||
"distance": 5,
|
||||
"operation": "new"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
{
|
||||
"sources": [],
|
||||
"what": "a sphere's silhouette projected onto a plane below it and extruded: the outline is its equator circle, exactly",
|
||||
"source": "analytic",
|
||||
"method": "the silhouette of a sphere r8 seen along Z is the circle r8: extruded 5 down from z=-10, 320 pi beside the sphere 4/3 pi 512",
|
||||
"body_count": 2,
|
||||
"volume_mm3": 3149.9702339993655,
|
||||
"bbox": {
|
||||
"min": [
|
||||
-8,
|
||||
-8,
|
||||
-15
|
||||
],
|
||||
"max": [
|
||||
8,
|
||||
8,
|
||||
8
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,43 @@
|
||||
{
|
||||
"commands": [
|
||||
{
|
||||
"command": "solid.sphere",
|
||||
"params": {
|
||||
"radius": 8,
|
||||
"body_name": "Ball"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.create",
|
||||
"params": {
|
||||
"plane": "XY",
|
||||
"offset": -10,
|
||||
"name": "Below"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.project",
|
||||
"params": {
|
||||
"refs": [
|
||||
{
|
||||
"body": "Ball"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.finish",
|
||||
"params": {
|
||||
"sketch": "Below"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "solid.extrude",
|
||||
"params": {
|
||||
"sketch": "Below",
|
||||
"distance": -5,
|
||||
"operation": "new"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
{
|
||||
"sources": [],
|
||||
"what": "a block's top face split by a sketch circle on it: a disc face and the face around it",
|
||||
"source": "analytic",
|
||||
"method": "the shape is unchanged (V 12000, A 3800); the top becomes two faces: 7",
|
||||
"body_count": 1,
|
||||
"faces": 7,
|
||||
"volume_mm3": 12000.0,
|
||||
"area_mm2": 3800.0
|
||||
}
|
||||
@@ -0,0 +1,50 @@
|
||||
{
|
||||
"commands": [
|
||||
{
|
||||
"command": "solid.box",
|
||||
"params": {
|
||||
"length": 40,
|
||||
"width": 30,
|
||||
"height": 10,
|
||||
"body_name": "Block"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.create",
|
||||
"params": {
|
||||
"plane": "XY",
|
||||
"offset": 10,
|
||||
"name": "Ring"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.circle.center",
|
||||
"params": {
|
||||
"center": [
|
||||
20,
|
||||
15
|
||||
],
|
||||
"radius": 5
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.finish",
|
||||
"params": {
|
||||
"sketch": "Ring"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "solid.split_face",
|
||||
"params": {
|
||||
"faces": [
|
||||
[
|
||||
5,
|
||||
5,
|
||||
10
|
||||
]
|
||||
],
|
||||
"sketch": "Ring"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
{
|
||||
"sources": [],
|
||||
"what": "a block's top face split by the side of a cylinder standing on it (the tool face's surface extended)",
|
||||
"source": "analytic",
|
||||
"method": "the cylinder's side meets the top in the circle r5: the top becomes two faces (7); the block keeps V 12000, the cylinder 250 pi and its 3 faces",
|
||||
"body_count": 2,
|
||||
"faces": 10,
|
||||
"volume_mm3": 12785.398163397449
|
||||
}
|
||||
@@ -0,0 +1,47 @@
|
||||
{
|
||||
"commands": [
|
||||
{
|
||||
"command": "solid.box",
|
||||
"params": {
|
||||
"length": 40,
|
||||
"width": 30,
|
||||
"height": 10,
|
||||
"body_name": "Block"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "solid.cylinder",
|
||||
"params": {
|
||||
"base": [
|
||||
20,
|
||||
15,
|
||||
10
|
||||
],
|
||||
"radius": 5,
|
||||
"height": 10,
|
||||
"body_name": "Cutter"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "solid.split_face",
|
||||
"params": {
|
||||
"faces": [
|
||||
[
|
||||
5,
|
||||
5,
|
||||
10
|
||||
]
|
||||
],
|
||||
"body": "Block",
|
||||
"tool": {
|
||||
"body": "Cutter",
|
||||
"point": [
|
||||
25,
|
||||
15,
|
||||
15
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
{
|
||||
"sources": [],
|
||||
"what": "an in-plane rib (the default direction): a diagonal line across the inside corner of an L bracket fills to the two faces",
|
||||
"source": "analytic",
|
||||
"method": "L bracket: base 60x40x5 + wall 5x40x35 above it = 19000; the line (5,25)-(25,5) in the plane y=20 closes with the wall x=5 and the base top z=5 a right triangle of legs 20: 200 mm^2, 2 thick across the plane: + 400",
|
||||
"body_count": 1,
|
||||
"volume_mm3": 19400.0,
|
||||
"bbox": {
|
||||
"min": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"max": [
|
||||
60,
|
||||
40,
|
||||
40
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,85 @@
|
||||
{
|
||||
"commands": [
|
||||
{
|
||||
"command": "solid.box",
|
||||
"params": {
|
||||
"length": 60,
|
||||
"width": 40,
|
||||
"height": 5,
|
||||
"body_name": "Bracket"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "solid.box",
|
||||
"params": {
|
||||
"length": 5,
|
||||
"width": 40,
|
||||
"height": 40,
|
||||
"corner": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"operation": "join"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.create",
|
||||
"params": {
|
||||
"plane": {
|
||||
"origin": [
|
||||
0,
|
||||
20,
|
||||
0
|
||||
],
|
||||
"x_dir": [
|
||||
1,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"y_dir": [
|
||||
0,
|
||||
0,
|
||||
1
|
||||
]
|
||||
},
|
||||
"name": "Gussets"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.line",
|
||||
"params": {
|
||||
"points": [
|
||||
[
|
||||
5,
|
||||
25
|
||||
],
|
||||
[
|
||||
25,
|
||||
5
|
||||
]
|
||||
],
|
||||
"ids": [
|
||||
"g1"
|
||||
],
|
||||
"infer": false
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.finish",
|
||||
"params": {
|
||||
"sketch": "Gussets"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "solid.rib",
|
||||
"params": {
|
||||
"sketch": "Gussets",
|
||||
"curves": [
|
||||
"g1"
|
||||
],
|
||||
"thickness": 2
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
Reference in New Issue
Block a user