mirror of
https://github.com/bherbruck/solidcraft.git
synced 2026-11-03 02:25:55 +00:00
kernel-cases: sweeps revolve cases from #450-#2947 (faces, axis, cuts, seams)
Spherical shell sketched off the origin, adjacent profiles on the axis, whole planar faces of full and partial turns and a face pick on a fresh revolve, a half slot turned about its centreline (alone and as a cut), a torus cut by an overlapping ring, and a 300 degree revolve crossed by a plate. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
+12
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"sources": [
|
||||
"tangency-labs/solidcraft#1853",
|
||||
"tangency-labs/solidcraft#1866"
|
||||
],
|
||||
"what": "half a slot (r 3, centres 14 apart) revolved a full turn about its own centreline, which lies in the top face of a plate, as a cut (no result after about 10 s of retries)",
|
||||
"source": "analytic",
|
||||
"method": "the half slot revolved 360 degrees is a capsule: cylinder r 3, length 14 plus two hemispheres: V = pi 9 14 + 4/3 pi 27 = 508.94. Its axis lies in the plate top face z = 10, so exactly half of it is inside the 40 x 20 x 10 plate: V = 8000 - 508.94 / 2 = 7745.53. Faces: 5 plate faces + top face with the slot outline + half cylinder + 2 quarter spheres = 9.",
|
||||
"body_count": 1,
|
||||
"volume_mm3": 7745.530995059226,
|
||||
"faces": 9
|
||||
}
|
||||
+119
@@ -0,0 +1,119 @@
|
||||
{
|
||||
"commands": [
|
||||
{
|
||||
"command": "solid.box",
|
||||
"params": {
|
||||
"length": 40,
|
||||
"width": 20,
|
||||
"height": 10,
|
||||
"corner": [
|
||||
-20,
|
||||
-10,
|
||||
0
|
||||
],
|
||||
"body_name": "Plate"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.create",
|
||||
"params": {
|
||||
"plane": {
|
||||
"origin": [
|
||||
0.0,
|
||||
0.0,
|
||||
10.0
|
||||
],
|
||||
"x_dir": [
|
||||
1,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"y_dir": [
|
||||
0,
|
||||
1,
|
||||
0
|
||||
]
|
||||
},
|
||||
"name": "Slot"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.line",
|
||||
"params": {
|
||||
"points": [
|
||||
[
|
||||
-7,
|
||||
3
|
||||
],
|
||||
[
|
||||
7,
|
||||
3
|
||||
]
|
||||
],
|
||||
"infer": false
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.arc.center_point",
|
||||
"params": {
|
||||
"center": [
|
||||
7,
|
||||
0
|
||||
],
|
||||
"start": [
|
||||
10,
|
||||
0
|
||||
],
|
||||
"end": [
|
||||
7,
|
||||
3
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.arc.center_point",
|
||||
"params": {
|
||||
"center": [
|
||||
-7,
|
||||
0
|
||||
],
|
||||
"start": [
|
||||
-7,
|
||||
3
|
||||
],
|
||||
"end": [
|
||||
-10,
|
||||
0
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.line",
|
||||
"params": {
|
||||
"points": [
|
||||
[
|
||||
-10,
|
||||
0
|
||||
],
|
||||
[
|
||||
10,
|
||||
0
|
||||
]
|
||||
],
|
||||
"infer": false
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.finish",
|
||||
"params": {}
|
||||
},
|
||||
{
|
||||
"command": "solid.revolve",
|
||||
"params": {
|
||||
"axis": "x",
|
||||
"angle": "360 deg",
|
||||
"operation": "cut"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
{
|
||||
"sources": [
|
||||
"tangency-labs/solidcraft#1866"
|
||||
],
|
||||
"what": "half a slot (r 3, centres 14 apart; the segment before the axis edge comes back to the axis along an arc) revolved 180 deg about its centreline",
|
||||
"source": "analytic",
|
||||
"method": "the profile lies on one side of the axis, so a turn of theta gives theta / 2 pi of the capsule (cylinder r 3, length 14 plus two hemispheres, 508.94): V = 1/2 of it; faces: the cylinder part, two spherical parts and one flat face = 4 (the two end faces of a half turn lie in the one plane through the axis and form a single stadium-shaped face).",
|
||||
"body_count": 1,
|
||||
"volume_mm3": 254.46900494077323,
|
||||
"faces": 4
|
||||
}
|
||||
@@ -0,0 +1,105 @@
|
||||
{
|
||||
"commands": [
|
||||
{
|
||||
"command": "sketch.create",
|
||||
"params": {
|
||||
"plane": {
|
||||
"origin": [
|
||||
0.0,
|
||||
0.0,
|
||||
0.0
|
||||
],
|
||||
"x_dir": [
|
||||
1,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"y_dir": [
|
||||
0,
|
||||
1,
|
||||
0
|
||||
]
|
||||
},
|
||||
"name": "Slot"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.line",
|
||||
"params": {
|
||||
"points": [
|
||||
[
|
||||
-7,
|
||||
3
|
||||
],
|
||||
[
|
||||
7,
|
||||
3
|
||||
]
|
||||
],
|
||||
"infer": false
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.arc.center_point",
|
||||
"params": {
|
||||
"center": [
|
||||
7,
|
||||
0
|
||||
],
|
||||
"start": [
|
||||
10,
|
||||
0
|
||||
],
|
||||
"end": [
|
||||
7,
|
||||
3
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.arc.center_point",
|
||||
"params": {
|
||||
"center": [
|
||||
-7,
|
||||
0
|
||||
],
|
||||
"start": [
|
||||
-7,
|
||||
3
|
||||
],
|
||||
"end": [
|
||||
-10,
|
||||
0
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.line",
|
||||
"params": {
|
||||
"points": [
|
||||
[
|
||||
-10,
|
||||
0
|
||||
],
|
||||
[
|
||||
10,
|
||||
0
|
||||
]
|
||||
],
|
||||
"infer": false
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.finish",
|
||||
"params": {}
|
||||
},
|
||||
{
|
||||
"command": "solid.revolve",
|
||||
"params": {
|
||||
"axis": "x",
|
||||
"angle": "180 deg",
|
||||
"operation": "new"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
{
|
||||
"sources": [
|
||||
"tangency-labs/solidcraft#1866"
|
||||
],
|
||||
"what": "half a slot (r 3, centres 14 apart; the segment before the axis edge comes back to the axis along an arc) revolved 90 deg about its centreline",
|
||||
"source": "analytic",
|
||||
"method": "the profile lies on one side of the axis, so a turn of theta gives theta / 2 pi of the capsule (cylinder r 3, length 14 plus two hemispheres, 508.94): V = 1/4 of it; faces: the cylinder part, two spherical parts and the two planar end faces = 5.",
|
||||
"body_count": 1,
|
||||
"volume_mm3": 127.23450247038662,
|
||||
"faces": 5
|
||||
}
|
||||
@@ -0,0 +1,105 @@
|
||||
{
|
||||
"commands": [
|
||||
{
|
||||
"command": "sketch.create",
|
||||
"params": {
|
||||
"plane": {
|
||||
"origin": [
|
||||
0.0,
|
||||
0.0,
|
||||
0.0
|
||||
],
|
||||
"x_dir": [
|
||||
1,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"y_dir": [
|
||||
0,
|
||||
1,
|
||||
0
|
||||
]
|
||||
},
|
||||
"name": "Slot"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.line",
|
||||
"params": {
|
||||
"points": [
|
||||
[
|
||||
-7,
|
||||
3
|
||||
],
|
||||
[
|
||||
7,
|
||||
3
|
||||
]
|
||||
],
|
||||
"infer": false
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.arc.center_point",
|
||||
"params": {
|
||||
"center": [
|
||||
7,
|
||||
0
|
||||
],
|
||||
"start": [
|
||||
10,
|
||||
0
|
||||
],
|
||||
"end": [
|
||||
7,
|
||||
3
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.arc.center_point",
|
||||
"params": {
|
||||
"center": [
|
||||
-7,
|
||||
0
|
||||
],
|
||||
"start": [
|
||||
-7,
|
||||
3
|
||||
],
|
||||
"end": [
|
||||
-10,
|
||||
0
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.line",
|
||||
"params": {
|
||||
"points": [
|
||||
[
|
||||
-10,
|
||||
0
|
||||
],
|
||||
[
|
||||
10,
|
||||
0
|
||||
]
|
||||
],
|
||||
"infer": false
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.finish",
|
||||
"params": {}
|
||||
},
|
||||
{
|
||||
"command": "solid.revolve",
|
||||
"params": {
|
||||
"axis": "x",
|
||||
"angle": "90 deg",
|
||||
"operation": "new"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"sources": [
|
||||
"tangency-labs/solidcraft#2295"
|
||||
],
|
||||
"what": "a torus (R 10, r 5) cut by a disc of radius 5 centred at (15,0) in the XZ plane revolved about Z (the disc overlaps the torus tube)",
|
||||
"source": "analytic",
|
||||
"method": "both are coaxial rings, so the cut removes the revolution of the lens where the two circles (centres 10 and 15, r 5) overlap. Lens area = 2 r^2 acos(d/2r) - d/2 sqrt(4r^2 - d^2) = 30.709, centroid x = 12.5 by symmetry. V = 2 pi^2 10 25 - 2 pi 12.5 A_lens = 2522.9. Area (Pappus for curves): arc of the tube circle outside the disc (240 degrees, centroid x 10 - 5 sin(120)/(2 pi/3)) and arc of the disc circle inside the tube (120 degrees, centroid x 15 - 5 sin(60)/(pi/3)), each turned 2 pi about Z. Two toroidal faces.",
|
||||
"body_count": 1,
|
||||
"volume_mm3": 2522.903937393692,
|
||||
"area_mm2": 1758.767884317251,
|
||||
"faces": 2
|
||||
}
|
||||
@@ -0,0 +1,57 @@
|
||||
{
|
||||
"commands": [
|
||||
{
|
||||
"command": "solid.torus",
|
||||
"params": {
|
||||
"major": 10,
|
||||
"minor": 5,
|
||||
"body_name": "Torus"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.create",
|
||||
"params": {
|
||||
"plane": {
|
||||
"origin": [
|
||||
0.0,
|
||||
0.0,
|
||||
0.0
|
||||
],
|
||||
"x_dir": [
|
||||
1,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"y_dir": [
|
||||
0,
|
||||
0,
|
||||
1
|
||||
]
|
||||
},
|
||||
"name": "Tool"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.circle.center",
|
||||
"params": {
|
||||
"center": [
|
||||
15,
|
||||
0
|
||||
],
|
||||
"radius": 5
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.finish",
|
||||
"params": {}
|
||||
},
|
||||
{
|
||||
"command": "solid.revolve",
|
||||
"params": {
|
||||
"axis": "Z",
|
||||
"angle": "360 deg",
|
||||
"operation": "cut"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
+11
@@ -0,0 +1,11 @@
|
||||
{
|
||||
"sources": [
|
||||
"tangency-labs/solidcraft#2947",
|
||||
"tangency-labs/solidcraft#2948"
|
||||
],
|
||||
"what": "a rectangle section revolved 300 degrees about Z, then intersected with a plate (slab |y| <= 5) crossing the ring at the start/end gap side and the far side (boolean gave up: \"loop not inside any face piece\")",
|
||||
"source": "analytic",
|
||||
"method": "the ring section r 20..30, z 0..10 turns from +x counter-clockwise through 300 degrees (the gap is -60..0 degrees). The slab |y| <= 5 meets +x (only y >= 0 is covered) and -x (fully covered). Area of annulus part with |y| <= 5, x > 0: F(R) = a sqrt(R^2 - a^2) + R^2 asin(a/R); V = 10 [ (F(30) - F(20)) / 2 + (F(30) - F(20)) ]. The two crossings are disjoint, so two bodies.",
|
||||
"body_count": 2,
|
||||
"volume_mm3": 1510.6287024479082
|
||||
}
|
||||
@@ -0,0 +1,77 @@
|
||||
{
|
||||
"commands": [
|
||||
{
|
||||
"command": "sketch.create",
|
||||
"params": {
|
||||
"plane": {
|
||||
"origin": [
|
||||
0.0,
|
||||
0.0,
|
||||
0.0
|
||||
],
|
||||
"x_dir": [
|
||||
1,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"y_dir": [
|
||||
0,
|
||||
0,
|
||||
1
|
||||
]
|
||||
},
|
||||
"name": "Sec"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.rectangle.two_point",
|
||||
"params": {
|
||||
"p0": [
|
||||
20,
|
||||
0
|
||||
],
|
||||
"p1": [
|
||||
30,
|
||||
10
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.finish",
|
||||
"params": {}
|
||||
},
|
||||
{
|
||||
"command": "solid.revolve",
|
||||
"params": {
|
||||
"axis": "Z",
|
||||
"angle": "300 deg",
|
||||
"operation": "new",
|
||||
"body_name": "Ring"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "solid.box",
|
||||
"params": {
|
||||
"length": 100,
|
||||
"width": 10,
|
||||
"height": 12,
|
||||
"corner": [
|
||||
-50,
|
||||
-5,
|
||||
-1
|
||||
],
|
||||
"body_name": "Plate"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "solid.combine",
|
||||
"params": {
|
||||
"target": "Ring",
|
||||
"tools": [
|
||||
"Plate"
|
||||
],
|
||||
"operation": "intersect"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
+25
@@ -0,0 +1,25 @@
|
||||
{
|
||||
"sources": [
|
||||
"tangency-labs/solidcraft#450",
|
||||
"tangency-labs/solidcraft#452"
|
||||
],
|
||||
"what": "a half ring between two arcs (both radial lines on the axis) revolved a full turn from a sketch plane 10 mm above the origin (volume +34 %)",
|
||||
"source": "analytic",
|
||||
"method": "the revolve is a hollow ball of radii 40 and 18.5 centred at (0,0,10): V = 4/3 pi (40^3 - 18.5^3), A = 4 pi (40^2 + 18.5^2); two spherical faces, one body with an inner shell.",
|
||||
"body_count": 1,
|
||||
"volume_mm3": 241560.72432594837,
|
||||
"area_mm2": 24407.033325739103,
|
||||
"faces": 2,
|
||||
"bbox": {
|
||||
"min": [
|
||||
-40,
|
||||
-40,
|
||||
-30
|
||||
],
|
||||
"max": [
|
||||
40,
|
||||
40,
|
||||
50
|
||||
]
|
||||
}
|
||||
}
|
||||
+105
@@ -0,0 +1,105 @@
|
||||
{
|
||||
"commands": [
|
||||
{
|
||||
"command": "sketch.create",
|
||||
"params": {
|
||||
"plane": {
|
||||
"origin": [
|
||||
0.0,
|
||||
0.0,
|
||||
10.0
|
||||
],
|
||||
"x_dir": [
|
||||
1,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"y_dir": [
|
||||
0,
|
||||
1,
|
||||
0
|
||||
]
|
||||
},
|
||||
"name": "Shell"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.arc.three_point",
|
||||
"params": {
|
||||
"start": [
|
||||
0,
|
||||
-40
|
||||
],
|
||||
"through": [
|
||||
40,
|
||||
0
|
||||
],
|
||||
"end": [
|
||||
0,
|
||||
40
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.line",
|
||||
"params": {
|
||||
"points": [
|
||||
[
|
||||
0,
|
||||
40
|
||||
],
|
||||
[
|
||||
0,
|
||||
18.5
|
||||
]
|
||||
],
|
||||
"infer": false
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.arc.three_point",
|
||||
"params": {
|
||||
"start": [
|
||||
0,
|
||||
18.5
|
||||
],
|
||||
"through": [
|
||||
18.5,
|
||||
0
|
||||
],
|
||||
"end": [
|
||||
0,
|
||||
-18.5
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.line",
|
||||
"params": {
|
||||
"points": [
|
||||
[
|
||||
0,
|
||||
-18.5
|
||||
],
|
||||
[
|
||||
0,
|
||||
-40
|
||||
]
|
||||
],
|
||||
"infer": false
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.finish",
|
||||
"params": {}
|
||||
},
|
||||
{
|
||||
"command": "solid.revolve",
|
||||
"params": {
|
||||
"axis": "y",
|
||||
"angle": "360 deg",
|
||||
"operation": "new"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
{
|
||||
"sources": [
|
||||
"tangency-labs/solidcraft#487",
|
||||
"tangency-labs/solidcraft#490"
|
||||
],
|
||||
"what": "a disc cut by the body made from two adjacent profiles revolved on the axis, around the disc flat end",
|
||||
"source": "analytic",
|
||||
"method": "Hand = cylinder r 20 from x = 0 to 60; Holder = disc r 40 from x = -1 to 1; keep_tools keeps Hand. Cut removes r < 20, x in [0,1] from the disc: V(Holder) = pi 40^2 2 - pi 20^2 1. Both bodies exist at the end: Holder 8796.46 and Hand 75398.22; the totals below add them.",
|
||||
"body_count": 2,
|
||||
"volume_mm3": 84194.68311620646
|
||||
}
|
||||
@@ -0,0 +1,152 @@
|
||||
{
|
||||
"commands": [
|
||||
{
|
||||
"command": "sketch.create",
|
||||
"params": {
|
||||
"plane": {
|
||||
"origin": [
|
||||
0.0,
|
||||
0.0,
|
||||
0.0
|
||||
],
|
||||
"x_dir": [
|
||||
1,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"y_dir": [
|
||||
0,
|
||||
1,
|
||||
0
|
||||
]
|
||||
},
|
||||
"name": "P"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.line",
|
||||
"params": {
|
||||
"points": [
|
||||
[
|
||||
0,
|
||||
0
|
||||
],
|
||||
[
|
||||
60,
|
||||
0
|
||||
]
|
||||
],
|
||||
"infer": false
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.line",
|
||||
"params": {
|
||||
"points": [
|
||||
[
|
||||
0,
|
||||
0
|
||||
],
|
||||
[
|
||||
0,
|
||||
20
|
||||
]
|
||||
],
|
||||
"infer": false
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.line",
|
||||
"params": {
|
||||
"points": [
|
||||
[
|
||||
0,
|
||||
20
|
||||
],
|
||||
[
|
||||
60,
|
||||
20
|
||||
]
|
||||
],
|
||||
"infer": false
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.line",
|
||||
"params": {
|
||||
"points": [
|
||||
[
|
||||
30,
|
||||
20
|
||||
],
|
||||
[
|
||||
30,
|
||||
0
|
||||
]
|
||||
],
|
||||
"infer": false
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.line",
|
||||
"params": {
|
||||
"points": [
|
||||
[
|
||||
60,
|
||||
20
|
||||
],
|
||||
[
|
||||
60,
|
||||
0
|
||||
]
|
||||
],
|
||||
"infer": false
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.finish",
|
||||
"params": {}
|
||||
},
|
||||
{
|
||||
"command": "solid.revolve",
|
||||
"params": {
|
||||
"sketch": "P",
|
||||
"profiles": [
|
||||
0,
|
||||
1
|
||||
],
|
||||
"axis": "X",
|
||||
"body_name": "Hand"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "solid.cylinder",
|
||||
"params": {
|
||||
"radius": 40,
|
||||
"height": 2,
|
||||
"base": [
|
||||
-1,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"axis": [
|
||||
1,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"body_name": "Holder"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "solid.combine",
|
||||
"params": {
|
||||
"target": "Holder",
|
||||
"tools": [
|
||||
"Hand"
|
||||
],
|
||||
"operation": "cut",
|
||||
"keep_tools": true
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
{
|
||||
"sources": [
|
||||
"tangency-labs/solidcraft#487",
|
||||
"tangency-labs/solidcraft#490"
|
||||
],
|
||||
"what": "two rectangles sharing an edge, both resting on the axis, revolved together (zero-area faces along the axis)",
|
||||
"source": "analytic",
|
||||
"method": "the two 30 x 20 rectangles merge into one 60 x 20 region on the axis: a cylinder r = 20, length 60: V = pi 20^2 60, A = 2 pi 20 60 + 2 pi 20^2; 3 faces (side and two disks), none of zero area.",
|
||||
"body_count": 1,
|
||||
"volume_mm3": 75398.22368615503,
|
||||
"area_mm2": 10053.096491487338,
|
||||
"faces": 3
|
||||
}
|
||||
@@ -0,0 +1,123 @@
|
||||
{
|
||||
"commands": [
|
||||
{
|
||||
"command": "sketch.create",
|
||||
"params": {
|
||||
"plane": {
|
||||
"origin": [
|
||||
0.0,
|
||||
0.0,
|
||||
0.0
|
||||
],
|
||||
"x_dir": [
|
||||
1,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"y_dir": [
|
||||
0,
|
||||
1,
|
||||
0
|
||||
]
|
||||
},
|
||||
"name": "P"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.line",
|
||||
"params": {
|
||||
"points": [
|
||||
[
|
||||
0,
|
||||
0
|
||||
],
|
||||
[
|
||||
60,
|
||||
0
|
||||
]
|
||||
],
|
||||
"infer": false
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.line",
|
||||
"params": {
|
||||
"points": [
|
||||
[
|
||||
0,
|
||||
0
|
||||
],
|
||||
[
|
||||
0,
|
||||
20
|
||||
]
|
||||
],
|
||||
"infer": false
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.line",
|
||||
"params": {
|
||||
"points": [
|
||||
[
|
||||
0,
|
||||
20
|
||||
],
|
||||
[
|
||||
60,
|
||||
20
|
||||
]
|
||||
],
|
||||
"infer": false
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.line",
|
||||
"params": {
|
||||
"points": [
|
||||
[
|
||||
30,
|
||||
20
|
||||
],
|
||||
[
|
||||
30,
|
||||
0
|
||||
]
|
||||
],
|
||||
"infer": false
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.line",
|
||||
"params": {
|
||||
"points": [
|
||||
[
|
||||
60,
|
||||
20
|
||||
],
|
||||
[
|
||||
60,
|
||||
0
|
||||
]
|
||||
],
|
||||
"infer": false
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.finish",
|
||||
"params": {}
|
||||
},
|
||||
{
|
||||
"command": "solid.revolve",
|
||||
"params": {
|
||||
"sketch": "P",
|
||||
"profiles": [
|
||||
0,
|
||||
1
|
||||
],
|
||||
"axis": "X",
|
||||
"body_name": "Hand"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
+12
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"sources": [
|
||||
"tangency-labs/solidcraft#726",
|
||||
"tangency-labs/solidcraft#494",
|
||||
"tangency-labs/solidcraft#2114"
|
||||
],
|
||||
"what": "the flange top annulus of a freshly revolved hub (z = 6, r 18..30) picked by a point and extruded 5 mm (the pick found a third of the face: \"the selected planar face no longer exists\")",
|
||||
"source": "analytic",
|
||||
"method": "hub = revolve of (8,0) (30,0) (30,6) (18,6) (18,22) (8,22) about Z: V = pi [(30^2 - 8^2) 6 + (18^2 - 8^2) 16] = 28826.6. Extruding the whole annulus z = 6, r 18..30 outward (upward) 5 mm adds pi (30^2 - 18^2) 5 = 9047.8 (the new ring sits on the flange and touches the hub wall r = 18).",
|
||||
"body_count": 1,
|
||||
"volume_mm3": 37875.04103167855
|
||||
}
|
||||
@@ -0,0 +1,85 @@
|
||||
{
|
||||
"commands": [
|
||||
{
|
||||
"command": "sketch.create",
|
||||
"params": {
|
||||
"plane": {
|
||||
"origin": [
|
||||
0.0,
|
||||
0.0,
|
||||
0.0
|
||||
],
|
||||
"x_dir": [
|
||||
1,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"y_dir": [
|
||||
0,
|
||||
0,
|
||||
1
|
||||
]
|
||||
},
|
||||
"name": "P"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.line",
|
||||
"params": {
|
||||
"points": [
|
||||
[
|
||||
8,
|
||||
0
|
||||
],
|
||||
[
|
||||
30,
|
||||
0
|
||||
],
|
||||
[
|
||||
30,
|
||||
6
|
||||
],
|
||||
[
|
||||
18,
|
||||
6
|
||||
],
|
||||
[
|
||||
18,
|
||||
22
|
||||
],
|
||||
[
|
||||
8,
|
||||
22
|
||||
]
|
||||
],
|
||||
"infer": false,
|
||||
"closed": true
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.finish",
|
||||
"params": {}
|
||||
},
|
||||
{
|
||||
"command": "solid.revolve",
|
||||
"params": {
|
||||
"axis": "Z",
|
||||
"angle": "360 deg",
|
||||
"operation": "new",
|
||||
"body_name": "Hub"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "solid.extrude",
|
||||
"params": {
|
||||
"face": [
|
||||
12,
|
||||
20.784609690826528,
|
||||
6
|
||||
],
|
||||
"distance": 5,
|
||||
"operation": "join"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
{
|
||||
"sources": [
|
||||
"tangency-labs/solidcraft#726",
|
||||
"tangency-labs/solidcraft#1687"
|
||||
],
|
||||
"what": "a flanged hub profile (six edges, none on the axis) revolved a full turn: the planar faces must come out whole, not as three patches",
|
||||
"source": "analytic",
|
||||
"method": "profile (8,0) (30,0) (30,6) (18,6) (18,22) (8,22) about the Z axis: V = pi [(30^2 - 8^2) 6 + (18^2 - 8^2) 16] = 28826.6; area = side walls 2 pi (30 6 + 18 16 + 8 22) + annuli pi [(30^2-8^2) + (30^2-18^2) + (18^2-8^2)]. Six whole faces: three annuli and three cylinders.",
|
||||
"body_count": 1,
|
||||
"volume_mm3": 28827.254189339943,
|
||||
"area_mm2": 9299.114254625787,
|
||||
"faces": 6
|
||||
}
|
||||
@@ -0,0 +1,72 @@
|
||||
{
|
||||
"commands": [
|
||||
{
|
||||
"command": "sketch.create",
|
||||
"params": {
|
||||
"plane": {
|
||||
"origin": [
|
||||
0.0,
|
||||
0.0,
|
||||
0.0
|
||||
],
|
||||
"x_dir": [
|
||||
1,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"y_dir": [
|
||||
0,
|
||||
0,
|
||||
1
|
||||
]
|
||||
},
|
||||
"name": "P"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.line",
|
||||
"params": {
|
||||
"points": [
|
||||
[
|
||||
8,
|
||||
0
|
||||
],
|
||||
[
|
||||
30,
|
||||
0
|
||||
],
|
||||
[
|
||||
30,
|
||||
6
|
||||
],
|
||||
[
|
||||
18,
|
||||
6
|
||||
],
|
||||
[
|
||||
18,
|
||||
22
|
||||
],
|
||||
[
|
||||
8,
|
||||
22
|
||||
]
|
||||
],
|
||||
"infer": false,
|
||||
"closed": true
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.finish",
|
||||
"params": {}
|
||||
},
|
||||
{
|
||||
"command": "solid.revolve",
|
||||
"params": {
|
||||
"axis": "Z",
|
||||
"angle": "360 deg",
|
||||
"operation": "new"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
{
|
||||
"sources": [
|
||||
"tangency-labs/solidcraft#726",
|
||||
"tangency-labs/solidcraft#1718"
|
||||
],
|
||||
"what": "the same flanged hub profile revolved 240 degrees: its planar faces (three annular sectors and two end faces) must come out whole",
|
||||
"source": "analytic",
|
||||
"method": "a 240 degree turn is 2/3 of the full body: V = 2/3 * pi [(30^2 - 8^2) 6 + (18^2 - 8^2) 16]; area = 2/3 of the full-turn walls and annuli plus two end faces, each the profile (22 x 6 + 10 x 16 = 292 mm2). Eight faces: three annular sectors, three cylinder sectors, two end faces.",
|
||||
"body_count": 1,
|
||||
"volume_mm3": 19218.169459559962,
|
||||
"area_mm2": 6783.409503083858,
|
||||
"faces": 8
|
||||
}
|
||||
@@ -0,0 +1,72 @@
|
||||
{
|
||||
"commands": [
|
||||
{
|
||||
"command": "sketch.create",
|
||||
"params": {
|
||||
"plane": {
|
||||
"origin": [
|
||||
0.0,
|
||||
0.0,
|
||||
0.0
|
||||
],
|
||||
"x_dir": [
|
||||
1,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"y_dir": [
|
||||
0,
|
||||
0,
|
||||
1
|
||||
]
|
||||
},
|
||||
"name": "P"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.line",
|
||||
"params": {
|
||||
"points": [
|
||||
[
|
||||
8,
|
||||
0
|
||||
],
|
||||
[
|
||||
30,
|
||||
0
|
||||
],
|
||||
[
|
||||
30,
|
||||
6
|
||||
],
|
||||
[
|
||||
18,
|
||||
6
|
||||
],
|
||||
[
|
||||
18,
|
||||
22
|
||||
],
|
||||
[
|
||||
8,
|
||||
22
|
||||
]
|
||||
],
|
||||
"infer": false,
|
||||
"closed": true
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.finish",
|
||||
"params": {}
|
||||
},
|
||||
{
|
||||
"command": "solid.revolve",
|
||||
"params": {
|
||||
"axis": "Z",
|
||||
"angle": "240 deg",
|
||||
"operation": "new"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
Reference in New Issue
Block a user