mirror of
https://github.com/bherbruck/solidcraft.git
synced 2026-11-03 10:35:58 +00:00
kernel-cases: sweeps lofted tubes, blades and windows from #968-#2992
Hollow elbows lofted along a bend (Pappus), hollow bands halved and joined, a flange touching the end of a bent tapered loft, tapered and twisted lofted blades patterned round a disk, and a loft joined into a window that it overhangs, alone and mirrored on a hollow case. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,11 @@
|
||||
{
|
||||
"sources": [
|
||||
"tangency-labs/solidcraft#1093",
|
||||
"tangency-labs/solidcraft#1107"
|
||||
],
|
||||
"what": "a tapered lofted blade (6 x 3 root embedded 2 mm into a disk, 3 x 1.5 tip) joined to a disk and patterned 9 times round the axis as joins (31 minutes with eight retries, or \"cavity ownership is ambiguous\")",
|
||||
"source": "analytic",
|
||||
"method": "the blade is a ruled loft of two rectangles (a prismatoid): above the disk top z = 5 its section runs from 5.838 x 2.919 to 3 x 1.5; with the section area quadratic in z, V_blade = 35/6 (A(5) + 4 A(22.5) + A(40)) = 353.464. The blades stand 40 mm out on a circle and are far apart, each embedded in the disk (pi 60^2 5 = 56548.7): V = disk + 9 V_blade = 59729.8. One body.",
|
||||
"body_count": 1,
|
||||
"volume_mm3": 59729.84563167252
|
||||
}
|
||||
@@ -0,0 +1,156 @@
|
||||
{
|
||||
"commands": [
|
||||
{
|
||||
"command": "sketch.create",
|
||||
"params": {
|
||||
"plane": {
|
||||
"origin": [
|
||||
0.0,
|
||||
0.0,
|
||||
0.0
|
||||
],
|
||||
"x_dir": [
|
||||
1,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"y_dir": [
|
||||
0,
|
||||
1,
|
||||
0
|
||||
]
|
||||
},
|
||||
"name": "Disk"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.circle.center",
|
||||
"params": {
|
||||
"center": [
|
||||
0,
|
||||
0
|
||||
],
|
||||
"radius": 60
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.finish",
|
||||
"params": {}
|
||||
},
|
||||
{
|
||||
"command": "solid.extrude",
|
||||
"params": {
|
||||
"distance": 5,
|
||||
"body_name": "Hub"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.create",
|
||||
"params": {
|
||||
"plane": {
|
||||
"origin": [
|
||||
0.0,
|
||||
0.0,
|
||||
3.0
|
||||
],
|
||||
"x_dir": [
|
||||
1,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"y_dir": [
|
||||
0,
|
||||
1,
|
||||
0
|
||||
]
|
||||
},
|
||||
"name": "Root"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.rectangle.center",
|
||||
"params": {
|
||||
"center": [
|
||||
40,
|
||||
0
|
||||
],
|
||||
"corner": [
|
||||
43,
|
||||
1.5
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.finish",
|
||||
"params": {}
|
||||
},
|
||||
{
|
||||
"command": "sketch.create",
|
||||
"params": {
|
||||
"plane": {
|
||||
"origin": [
|
||||
0.0,
|
||||
0.0,
|
||||
40.0
|
||||
],
|
||||
"x_dir": [
|
||||
1,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"y_dir": [
|
||||
0,
|
||||
1,
|
||||
0
|
||||
]
|
||||
},
|
||||
"name": "Tip"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.rectangle.center",
|
||||
"params": {
|
||||
"center": [
|
||||
40,
|
||||
0
|
||||
],
|
||||
"corner": [
|
||||
41.5,
|
||||
0.75
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.finish",
|
||||
"params": {}
|
||||
},
|
||||
{
|
||||
"command": "solid.loft",
|
||||
"params": {
|
||||
"sections": [
|
||||
{
|
||||
"sketch": "Root"
|
||||
},
|
||||
{
|
||||
"sketch": "Tip"
|
||||
}
|
||||
],
|
||||
"operation": "join",
|
||||
"name": "Blade",
|
||||
"targets": [
|
||||
"Hub"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "solid.pattern.circular",
|
||||
"params": {
|
||||
"features": [
|
||||
"Blade"
|
||||
],
|
||||
"axis": "Z",
|
||||
"count": 9
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
{
|
||||
"sources": [
|
||||
"tangency-labs/solidcraft#1140"
|
||||
],
|
||||
"what": "two hollow lofted tube bands (outer r 30, bore r 18 on R100, 5 sections each, 45 degrees each), each cut in half through its axis plane z = 0 and the halves joined into one body (\"no result\" after ten minutes of fallbacks)",
|
||||
"source": "analytic",
|
||||
"method": "the two bands meet on a shared section plane and together are the 90 degree wall: pi (30^2 - 18^2) * 100 * (pi/2), cut in half by the plane through the axis (the arc lies in z = 0, so the halves are equal): V = 1/2 * pi * 576 * 100 * pi/2 = 142122.3.",
|
||||
"body_count": 1,
|
||||
"volume_mm3": 142122.30337568675
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
+11
@@ -0,0 +1,11 @@
|
||||
{
|
||||
"sources": [
|
||||
"tangency-labs/solidcraft#1391",
|
||||
"tangency-labs/solidcraft#1556"
|
||||
],
|
||||
"what": "a half tube (6 mm wall, inner radius tapering 60 to 75 mm) lofted through 5 sections along an R300 bend of 20 degrees, with an 8 mm half-annulus flange (inner radius +3 into the wall, outer +25 beyond it) extruded from the end plane outward and joined: the flange face lies in the end plane (\"Union: no result\")",
|
||||
"source": "analytic",
|
||||
"method": "each section is a half annulus in a plane through the bend axis, centred on the path, so Pappus holds with the section area A(t) = pi/2 (12 r(t) + 36), r(t) = 60 + 15 t: V_tube = R theta * pi/2 (12 * 67.5 + 36), R = 300, theta = 20 degrees = 139161.4. The flange stands outside the tube end plane and touches the tube only along the coplanar end face, so V = V_tube + V_flange, V_flange = pi/2 (106^2 - 78^2) 8 = 64741.9. One body.",
|
||||
"body_count": 1,
|
||||
"volume_mm3": 203903.36346053838
|
||||
}
|
||||
+599
@@ -0,0 +1,599 @@
|
||||
{
|
||||
"commands": [
|
||||
{
|
||||
"command": "sketch.create",
|
||||
"params": {
|
||||
"plane": {
|
||||
"origin": [
|
||||
0.0,
|
||||
0.0,
|
||||
0.0
|
||||
],
|
||||
"x_dir": [
|
||||
0,
|
||||
0,
|
||||
1
|
||||
],
|
||||
"y_dir": [
|
||||
0.0,
|
||||
-1.0,
|
||||
0
|
||||
]
|
||||
},
|
||||
"name": "S0"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.arc.three_point",
|
||||
"params": {
|
||||
"start": [
|
||||
0,
|
||||
-66.0
|
||||
],
|
||||
"through": [
|
||||
66.0,
|
||||
0
|
||||
],
|
||||
"end": [
|
||||
0,
|
||||
66.0
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.line",
|
||||
"params": {
|
||||
"points": [
|
||||
[
|
||||
0,
|
||||
66.0
|
||||
],
|
||||
[
|
||||
0,
|
||||
60.0
|
||||
]
|
||||
],
|
||||
"infer": false
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.arc.three_point",
|
||||
"params": {
|
||||
"start": [
|
||||
0,
|
||||
60.0
|
||||
],
|
||||
"through": [
|
||||
60.0,
|
||||
0
|
||||
],
|
||||
"end": [
|
||||
0,
|
||||
-60.0
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.line",
|
||||
"params": {
|
||||
"points": [
|
||||
[
|
||||
0,
|
||||
-60.0
|
||||
],
|
||||
[
|
||||
0,
|
||||
-66.0
|
||||
]
|
||||
],
|
||||
"infer": false
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.finish",
|
||||
"params": {}
|
||||
},
|
||||
{
|
||||
"command": "sketch.create",
|
||||
"params": {
|
||||
"plane": {
|
||||
"origin": [
|
||||
26.146722824,
|
||||
1.141590572,
|
||||
0.0
|
||||
],
|
||||
"x_dir": [
|
||||
0,
|
||||
0,
|
||||
1
|
||||
],
|
||||
"y_dir": [
|
||||
0.087155743,
|
||||
-0.996194698,
|
||||
0
|
||||
]
|
||||
},
|
||||
"name": "S1"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.arc.three_point",
|
||||
"params": {
|
||||
"start": [
|
||||
0,
|
||||
-69.75
|
||||
],
|
||||
"through": [
|
||||
69.75,
|
||||
0
|
||||
],
|
||||
"end": [
|
||||
0,
|
||||
69.75
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.line",
|
||||
"params": {
|
||||
"points": [
|
||||
[
|
||||
0,
|
||||
69.75
|
||||
],
|
||||
[
|
||||
0,
|
||||
63.75
|
||||
]
|
||||
],
|
||||
"infer": false
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.arc.three_point",
|
||||
"params": {
|
||||
"start": [
|
||||
0,
|
||||
63.75
|
||||
],
|
||||
"through": [
|
||||
63.75,
|
||||
0
|
||||
],
|
||||
"end": [
|
||||
0,
|
||||
-63.75
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.line",
|
||||
"params": {
|
||||
"points": [
|
||||
[
|
||||
0,
|
||||
-63.75
|
||||
],
|
||||
[
|
||||
0,
|
||||
-69.75
|
||||
]
|
||||
],
|
||||
"infer": false
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.finish",
|
||||
"params": {}
|
||||
},
|
||||
{
|
||||
"command": "sketch.create",
|
||||
"params": {
|
||||
"plane": {
|
||||
"origin": [
|
||||
52.0944533,
|
||||
4.557674096,
|
||||
0.0
|
||||
],
|
||||
"x_dir": [
|
||||
0,
|
||||
0,
|
||||
1
|
||||
],
|
||||
"y_dir": [
|
||||
0.173648178,
|
||||
-0.984807753,
|
||||
0
|
||||
]
|
||||
},
|
||||
"name": "S2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.arc.three_point",
|
||||
"params": {
|
||||
"start": [
|
||||
0,
|
||||
-73.5
|
||||
],
|
||||
"through": [
|
||||
73.5,
|
||||
0
|
||||
],
|
||||
"end": [
|
||||
0,
|
||||
73.5
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.line",
|
||||
"params": {
|
||||
"points": [
|
||||
[
|
||||
0,
|
||||
73.5
|
||||
],
|
||||
[
|
||||
0,
|
||||
67.5
|
||||
]
|
||||
],
|
||||
"infer": false
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.arc.three_point",
|
||||
"params": {
|
||||
"start": [
|
||||
0,
|
||||
67.5
|
||||
],
|
||||
"through": [
|
||||
67.5,
|
||||
0
|
||||
],
|
||||
"end": [
|
||||
0,
|
||||
-67.5
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.line",
|
||||
"params": {
|
||||
"points": [
|
||||
[
|
||||
0,
|
||||
-67.5
|
||||
],
|
||||
[
|
||||
0,
|
||||
-73.5
|
||||
]
|
||||
],
|
||||
"infer": false
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.finish",
|
||||
"params": {}
|
||||
},
|
||||
{
|
||||
"command": "sketch.create",
|
||||
"params": {
|
||||
"plane": {
|
||||
"origin": [
|
||||
77.645713531,
|
||||
10.222252113,
|
||||
0.0
|
||||
],
|
||||
"x_dir": [
|
||||
0,
|
||||
0,
|
||||
1
|
||||
],
|
||||
"y_dir": [
|
||||
0.258819045,
|
||||
-0.965925826,
|
||||
0
|
||||
]
|
||||
},
|
||||
"name": "S3"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.arc.three_point",
|
||||
"params": {
|
||||
"start": [
|
||||
0,
|
||||
-77.25
|
||||
],
|
||||
"through": [
|
||||
77.25,
|
||||
0
|
||||
],
|
||||
"end": [
|
||||
0,
|
||||
77.25
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.line",
|
||||
"params": {
|
||||
"points": [
|
||||
[
|
||||
0,
|
||||
77.25
|
||||
],
|
||||
[
|
||||
0,
|
||||
71.25
|
||||
]
|
||||
],
|
||||
"infer": false
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.arc.three_point",
|
||||
"params": {
|
||||
"start": [
|
||||
0,
|
||||
71.25
|
||||
],
|
||||
"through": [
|
||||
71.25,
|
||||
0
|
||||
],
|
||||
"end": [
|
||||
0,
|
||||
-71.25
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.line",
|
||||
"params": {
|
||||
"points": [
|
||||
[
|
||||
0,
|
||||
-71.25
|
||||
],
|
||||
[
|
||||
0,
|
||||
-77.25
|
||||
]
|
||||
],
|
||||
"infer": false
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.finish",
|
||||
"params": {}
|
||||
},
|
||||
{
|
||||
"command": "sketch.create",
|
||||
"params": {
|
||||
"plane": {
|
||||
"origin": [
|
||||
102.606042998,
|
||||
18.092213764,
|
||||
0.0
|
||||
],
|
||||
"x_dir": [
|
||||
0,
|
||||
0,
|
||||
1
|
||||
],
|
||||
"y_dir": [
|
||||
0.342020143,
|
||||
-0.939692621,
|
||||
0
|
||||
]
|
||||
},
|
||||
"name": "S4"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.arc.three_point",
|
||||
"params": {
|
||||
"start": [
|
||||
0,
|
||||
-81.0
|
||||
],
|
||||
"through": [
|
||||
81.0,
|
||||
0
|
||||
],
|
||||
"end": [
|
||||
0,
|
||||
81.0
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.line",
|
||||
"params": {
|
||||
"points": [
|
||||
[
|
||||
0,
|
||||
81.0
|
||||
],
|
||||
[
|
||||
0,
|
||||
75.0
|
||||
]
|
||||
],
|
||||
"infer": false
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.arc.three_point",
|
||||
"params": {
|
||||
"start": [
|
||||
0,
|
||||
75.0
|
||||
],
|
||||
"through": [
|
||||
75.0,
|
||||
0
|
||||
],
|
||||
"end": [
|
||||
0,
|
||||
-75.0
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.line",
|
||||
"params": {
|
||||
"points": [
|
||||
[
|
||||
0,
|
||||
-75.0
|
||||
],
|
||||
[
|
||||
0,
|
||||
-81.0
|
||||
]
|
||||
],
|
||||
"infer": false
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.finish",
|
||||
"params": {}
|
||||
},
|
||||
{
|
||||
"command": "solid.loft",
|
||||
"params": {
|
||||
"sections": [
|
||||
{
|
||||
"sketch": "S0"
|
||||
},
|
||||
{
|
||||
"sketch": "S1"
|
||||
},
|
||||
{
|
||||
"sketch": "S2"
|
||||
},
|
||||
{
|
||||
"sketch": "S3"
|
||||
},
|
||||
{
|
||||
"sketch": "S4"
|
||||
}
|
||||
],
|
||||
"operation": "new",
|
||||
"name": "TubeLoft",
|
||||
"body_name": "Tube"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.create",
|
||||
"params": {
|
||||
"plane": {
|
||||
"origin": [
|
||||
102.606042998,
|
||||
18.092213764,
|
||||
0.0
|
||||
],
|
||||
"x_dir": [
|
||||
0,
|
||||
0,
|
||||
1
|
||||
],
|
||||
"y_dir": [
|
||||
0.342020143,
|
||||
-0.939692621,
|
||||
0
|
||||
]
|
||||
},
|
||||
"name": "Flange"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.arc.three_point",
|
||||
"params": {
|
||||
"start": [
|
||||
0,
|
||||
-106.0
|
||||
],
|
||||
"through": [
|
||||
106.0,
|
||||
0
|
||||
],
|
||||
"end": [
|
||||
0,
|
||||
106.0
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.line",
|
||||
"params": {
|
||||
"points": [
|
||||
[
|
||||
0,
|
||||
106.0
|
||||
],
|
||||
[
|
||||
0,
|
||||
78.0
|
||||
]
|
||||
],
|
||||
"infer": false
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.arc.three_point",
|
||||
"params": {
|
||||
"start": [
|
||||
0,
|
||||
78.0
|
||||
],
|
||||
"through": [
|
||||
78.0,
|
||||
0
|
||||
],
|
||||
"end": [
|
||||
0,
|
||||
-78.0
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.line",
|
||||
"params": {
|
||||
"points": [
|
||||
[
|
||||
0,
|
||||
-78.0
|
||||
],
|
||||
[
|
||||
0,
|
||||
-106.0
|
||||
]
|
||||
],
|
||||
"infer": false
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.finish",
|
||||
"params": {}
|
||||
},
|
||||
{
|
||||
"command": "solid.extrude",
|
||||
"params": {
|
||||
"sketch": "Flange",
|
||||
"distance": 8.0,
|
||||
"operation": "join",
|
||||
"targets": [
|
||||
"Tube"
|
||||
],
|
||||
"name": "JoinFlange"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
+11
@@ -0,0 +1,11 @@
|
||||
{
|
||||
"sources": [
|
||||
"tangency-labs/solidcraft#1391",
|
||||
"tangency-labs/solidcraft#1556"
|
||||
],
|
||||
"what": "a half tube (6 mm wall, inner radius tapering 60 to 75 mm) lofted through 5 sections along an R300 bend of 40 degrees, with an 8 mm half-annulus flange (inner radius +3 into the wall, outer +25 beyond it) extruded from the end plane outward and joined: the flange face lies in the end plane (\"Union: no result\")",
|
||||
"source": "analytic",
|
||||
"method": "each section is a half annulus in a plane through the bend axis, centred on the path, so Pappus holds with the section area A(t) = pi/2 (12 r(t) + 36), r(t) = 60 + 15 t: V_tube = R theta * pi/2 (12 * 67.5 + 36), R = 300, theta = 40 degrees = 278322.8. The flange stands outside the tube end plane and touches the tube only along the coplanar end face, so V = V_tube + V_flange, V_flange = pi/2 (106^2 - 78^2) 8 = 64741.9. One body.",
|
||||
"body_count": 1,
|
||||
"volume_mm3": 343064.7855158983
|
||||
}
|
||||
+599
@@ -0,0 +1,599 @@
|
||||
{
|
||||
"commands": [
|
||||
{
|
||||
"command": "sketch.create",
|
||||
"params": {
|
||||
"plane": {
|
||||
"origin": [
|
||||
0.0,
|
||||
0.0,
|
||||
0.0
|
||||
],
|
||||
"x_dir": [
|
||||
0,
|
||||
0,
|
||||
1
|
||||
],
|
||||
"y_dir": [
|
||||
0.0,
|
||||
-1.0,
|
||||
0
|
||||
]
|
||||
},
|
||||
"name": "S0"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.arc.three_point",
|
||||
"params": {
|
||||
"start": [
|
||||
0,
|
||||
-66.0
|
||||
],
|
||||
"through": [
|
||||
66.0,
|
||||
0
|
||||
],
|
||||
"end": [
|
||||
0,
|
||||
66.0
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.line",
|
||||
"params": {
|
||||
"points": [
|
||||
[
|
||||
0,
|
||||
66.0
|
||||
],
|
||||
[
|
||||
0,
|
||||
60.0
|
||||
]
|
||||
],
|
||||
"infer": false
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.arc.three_point",
|
||||
"params": {
|
||||
"start": [
|
||||
0,
|
||||
60.0
|
||||
],
|
||||
"through": [
|
||||
60.0,
|
||||
0
|
||||
],
|
||||
"end": [
|
||||
0,
|
||||
-60.0
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.line",
|
||||
"params": {
|
||||
"points": [
|
||||
[
|
||||
0,
|
||||
-60.0
|
||||
],
|
||||
[
|
||||
0,
|
||||
-66.0
|
||||
]
|
||||
],
|
||||
"infer": false
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.finish",
|
||||
"params": {}
|
||||
},
|
||||
{
|
||||
"command": "sketch.create",
|
||||
"params": {
|
||||
"plane": {
|
||||
"origin": [
|
||||
52.0944533,
|
||||
4.557674096,
|
||||
0.0
|
||||
],
|
||||
"x_dir": [
|
||||
0,
|
||||
0,
|
||||
1
|
||||
],
|
||||
"y_dir": [
|
||||
0.173648178,
|
||||
-0.984807753,
|
||||
0
|
||||
]
|
||||
},
|
||||
"name": "S1"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.arc.three_point",
|
||||
"params": {
|
||||
"start": [
|
||||
0,
|
||||
-69.75
|
||||
],
|
||||
"through": [
|
||||
69.75,
|
||||
0
|
||||
],
|
||||
"end": [
|
||||
0,
|
||||
69.75
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.line",
|
||||
"params": {
|
||||
"points": [
|
||||
[
|
||||
0,
|
||||
69.75
|
||||
],
|
||||
[
|
||||
0,
|
||||
63.75
|
||||
]
|
||||
],
|
||||
"infer": false
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.arc.three_point",
|
||||
"params": {
|
||||
"start": [
|
||||
0,
|
||||
63.75
|
||||
],
|
||||
"through": [
|
||||
63.75,
|
||||
0
|
||||
],
|
||||
"end": [
|
||||
0,
|
||||
-63.75
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.line",
|
||||
"params": {
|
||||
"points": [
|
||||
[
|
||||
0,
|
||||
-63.75
|
||||
],
|
||||
[
|
||||
0,
|
||||
-69.75
|
||||
]
|
||||
],
|
||||
"infer": false
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.finish",
|
||||
"params": {}
|
||||
},
|
||||
{
|
||||
"command": "sketch.create",
|
||||
"params": {
|
||||
"plane": {
|
||||
"origin": [
|
||||
102.606042998,
|
||||
18.092213764,
|
||||
0.0
|
||||
],
|
||||
"x_dir": [
|
||||
0,
|
||||
0,
|
||||
1
|
||||
],
|
||||
"y_dir": [
|
||||
0.342020143,
|
||||
-0.939692621,
|
||||
0
|
||||
]
|
||||
},
|
||||
"name": "S2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.arc.three_point",
|
||||
"params": {
|
||||
"start": [
|
||||
0,
|
||||
-73.5
|
||||
],
|
||||
"through": [
|
||||
73.5,
|
||||
0
|
||||
],
|
||||
"end": [
|
||||
0,
|
||||
73.5
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.line",
|
||||
"params": {
|
||||
"points": [
|
||||
[
|
||||
0,
|
||||
73.5
|
||||
],
|
||||
[
|
||||
0,
|
||||
67.5
|
||||
]
|
||||
],
|
||||
"infer": false
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.arc.three_point",
|
||||
"params": {
|
||||
"start": [
|
||||
0,
|
||||
67.5
|
||||
],
|
||||
"through": [
|
||||
67.5,
|
||||
0
|
||||
],
|
||||
"end": [
|
||||
0,
|
||||
-67.5
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.line",
|
||||
"params": {
|
||||
"points": [
|
||||
[
|
||||
0,
|
||||
-67.5
|
||||
],
|
||||
[
|
||||
0,
|
||||
-73.5
|
||||
]
|
||||
],
|
||||
"infer": false
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.finish",
|
||||
"params": {}
|
||||
},
|
||||
{
|
||||
"command": "sketch.create",
|
||||
"params": {
|
||||
"plane": {
|
||||
"origin": [
|
||||
150.0,
|
||||
40.192378865,
|
||||
0.0
|
||||
],
|
||||
"x_dir": [
|
||||
0,
|
||||
0,
|
||||
1
|
||||
],
|
||||
"y_dir": [
|
||||
0.5,
|
||||
-0.866025404,
|
||||
0
|
||||
]
|
||||
},
|
||||
"name": "S3"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.arc.three_point",
|
||||
"params": {
|
||||
"start": [
|
||||
0,
|
||||
-77.25
|
||||
],
|
||||
"through": [
|
||||
77.25,
|
||||
0
|
||||
],
|
||||
"end": [
|
||||
0,
|
||||
77.25
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.line",
|
||||
"params": {
|
||||
"points": [
|
||||
[
|
||||
0,
|
||||
77.25
|
||||
],
|
||||
[
|
||||
0,
|
||||
71.25
|
||||
]
|
||||
],
|
||||
"infer": false
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.arc.three_point",
|
||||
"params": {
|
||||
"start": [
|
||||
0,
|
||||
71.25
|
||||
],
|
||||
"through": [
|
||||
71.25,
|
||||
0
|
||||
],
|
||||
"end": [
|
||||
0,
|
||||
-71.25
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.line",
|
||||
"params": {
|
||||
"points": [
|
||||
[
|
||||
0,
|
||||
-71.25
|
||||
],
|
||||
[
|
||||
0,
|
||||
-77.25
|
||||
]
|
||||
],
|
||||
"infer": false
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.finish",
|
||||
"params": {}
|
||||
},
|
||||
{
|
||||
"command": "sketch.create",
|
||||
"params": {
|
||||
"plane": {
|
||||
"origin": [
|
||||
192.836282906,
|
||||
70.186667064,
|
||||
0.0
|
||||
],
|
||||
"x_dir": [
|
||||
0,
|
||||
0,
|
||||
1
|
||||
],
|
||||
"y_dir": [
|
||||
0.64278761,
|
||||
-0.766044443,
|
||||
0
|
||||
]
|
||||
},
|
||||
"name": "S4"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.arc.three_point",
|
||||
"params": {
|
||||
"start": [
|
||||
0,
|
||||
-81.0
|
||||
],
|
||||
"through": [
|
||||
81.0,
|
||||
0
|
||||
],
|
||||
"end": [
|
||||
0,
|
||||
81.0
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.line",
|
||||
"params": {
|
||||
"points": [
|
||||
[
|
||||
0,
|
||||
81.0
|
||||
],
|
||||
[
|
||||
0,
|
||||
75.0
|
||||
]
|
||||
],
|
||||
"infer": false
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.arc.three_point",
|
||||
"params": {
|
||||
"start": [
|
||||
0,
|
||||
75.0
|
||||
],
|
||||
"through": [
|
||||
75.0,
|
||||
0
|
||||
],
|
||||
"end": [
|
||||
0,
|
||||
-75.0
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.line",
|
||||
"params": {
|
||||
"points": [
|
||||
[
|
||||
0,
|
||||
-75.0
|
||||
],
|
||||
[
|
||||
0,
|
||||
-81.0
|
||||
]
|
||||
],
|
||||
"infer": false
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.finish",
|
||||
"params": {}
|
||||
},
|
||||
{
|
||||
"command": "solid.loft",
|
||||
"params": {
|
||||
"sections": [
|
||||
{
|
||||
"sketch": "S0"
|
||||
},
|
||||
{
|
||||
"sketch": "S1"
|
||||
},
|
||||
{
|
||||
"sketch": "S2"
|
||||
},
|
||||
{
|
||||
"sketch": "S3"
|
||||
},
|
||||
{
|
||||
"sketch": "S4"
|
||||
}
|
||||
],
|
||||
"operation": "new",
|
||||
"name": "TubeLoft",
|
||||
"body_name": "Tube"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.create",
|
||||
"params": {
|
||||
"plane": {
|
||||
"origin": [
|
||||
192.836282906,
|
||||
70.186667064,
|
||||
0.0
|
||||
],
|
||||
"x_dir": [
|
||||
0,
|
||||
0,
|
||||
1
|
||||
],
|
||||
"y_dir": [
|
||||
0.64278761,
|
||||
-0.766044443,
|
||||
0
|
||||
]
|
||||
},
|
||||
"name": "Flange"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.arc.three_point",
|
||||
"params": {
|
||||
"start": [
|
||||
0,
|
||||
-106.0
|
||||
],
|
||||
"through": [
|
||||
106.0,
|
||||
0
|
||||
],
|
||||
"end": [
|
||||
0,
|
||||
106.0
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.line",
|
||||
"params": {
|
||||
"points": [
|
||||
[
|
||||
0,
|
||||
106.0
|
||||
],
|
||||
[
|
||||
0,
|
||||
78.0
|
||||
]
|
||||
],
|
||||
"infer": false
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.arc.three_point",
|
||||
"params": {
|
||||
"start": [
|
||||
0,
|
||||
78.0
|
||||
],
|
||||
"through": [
|
||||
78.0,
|
||||
0
|
||||
],
|
||||
"end": [
|
||||
0,
|
||||
-78.0
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.line",
|
||||
"params": {
|
||||
"points": [
|
||||
[
|
||||
0,
|
||||
-78.0
|
||||
],
|
||||
[
|
||||
0,
|
||||
-106.0
|
||||
]
|
||||
],
|
||||
"infer": false
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.finish",
|
||||
"params": {}
|
||||
},
|
||||
{
|
||||
"command": "solid.extrude",
|
||||
"params": {
|
||||
"sketch": "Flange",
|
||||
"distance": 8.0,
|
||||
"operation": "join",
|
||||
"targets": [
|
||||
"Tube"
|
||||
],
|
||||
"name": "JoinFlange"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
+10
@@ -0,0 +1,10 @@
|
||||
{
|
||||
"sources": [
|
||||
"tangency-labs/solidcraft#1490"
|
||||
],
|
||||
"what": "a wall 2.5 mm thick with a 30 x 20 window cut through it and a loft (34 x 24 growing to 38 x 28 over 3.5 mm) joined into the window so that its strips overhang the wall on both faces (\"Union: no result\" at some wall thicknesses)",
|
||||
"source": "analytic",
|
||||
"method": "the loft section is larger than the window at every depth inside the wall, and lies inside the wall face, so inside the 2.5 mm slab the window is filled and nothing else changes: the body is the plain 2.5 x 60 x 40 wall (6000) plus the two overhanging strips of the loft, x from -0.5 to 0 and from 2.5 to 3.0, of area w(x) h(x) with w = 34 + 4 (x + 0.5)/3.5 and h = 24 + 4 (x + 0.5)/3.5: V = 6000 + 938.966.",
|
||||
"body_count": 1,
|
||||
"volume_mm3": 6938.965986394556
|
||||
}
|
||||
+168
@@ -0,0 +1,168 @@
|
||||
{
|
||||
"commands": [
|
||||
{
|
||||
"command": "solid.box",
|
||||
"params": {
|
||||
"length": 2.5,
|
||||
"width": 60,
|
||||
"height": 40,
|
||||
"corner": [
|
||||
0,
|
||||
-30,
|
||||
0
|
||||
],
|
||||
"body_name": "Wall"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.create",
|
||||
"params": {
|
||||
"plane": {
|
||||
"origin": [
|
||||
-1.0,
|
||||
0.0,
|
||||
0.0
|
||||
],
|
||||
"x_dir": [
|
||||
0,
|
||||
1,
|
||||
0
|
||||
],
|
||||
"y_dir": [
|
||||
0,
|
||||
0,
|
||||
1
|
||||
]
|
||||
},
|
||||
"name": "Win"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.rectangle.two_point",
|
||||
"params": {
|
||||
"p0": [
|
||||
-15,
|
||||
10
|
||||
],
|
||||
"p1": [
|
||||
15,
|
||||
30
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.finish",
|
||||
"params": {}
|
||||
},
|
||||
{
|
||||
"command": "solid.extrude",
|
||||
"params": {
|
||||
"sketch": "Win",
|
||||
"distance": 5,
|
||||
"operation": "cut",
|
||||
"targets": [
|
||||
"Wall"
|
||||
],
|
||||
"name": "PleatCut"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.create",
|
||||
"params": {
|
||||
"plane": {
|
||||
"origin": [
|
||||
-0.5,
|
||||
0.0,
|
||||
0.0
|
||||
],
|
||||
"x_dir": [
|
||||
0,
|
||||
1,
|
||||
0
|
||||
],
|
||||
"y_dir": [
|
||||
0,
|
||||
0,
|
||||
1
|
||||
]
|
||||
},
|
||||
"name": "Near"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.rectangle.center",
|
||||
"params": {
|
||||
"center": [
|
||||
0,
|
||||
20
|
||||
],
|
||||
"corner": [
|
||||
17,
|
||||
32
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.finish",
|
||||
"params": {}
|
||||
},
|
||||
{
|
||||
"command": "sketch.create",
|
||||
"params": {
|
||||
"plane": {
|
||||
"origin": [
|
||||
3.0,
|
||||
0.0,
|
||||
0.0
|
||||
],
|
||||
"x_dir": [
|
||||
0,
|
||||
1,
|
||||
0
|
||||
],
|
||||
"y_dir": [
|
||||
0,
|
||||
0,
|
||||
1
|
||||
]
|
||||
},
|
||||
"name": "Far"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.rectangle.center",
|
||||
"params": {
|
||||
"center": [
|
||||
0,
|
||||
20
|
||||
],
|
||||
"corner": [
|
||||
19,
|
||||
34
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.finish",
|
||||
"params": {}
|
||||
},
|
||||
{
|
||||
"command": "solid.loft",
|
||||
"params": {
|
||||
"sections": [
|
||||
{
|
||||
"sketch": "Near"
|
||||
},
|
||||
{
|
||||
"sketch": "Far"
|
||||
}
|
||||
],
|
||||
"operation": "join",
|
||||
"name": "PleatNear",
|
||||
"targets": [
|
||||
"Wall"
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
+11
@@ -0,0 +1,11 @@
|
||||
{
|
||||
"sources": [
|
||||
"tangency-labs/solidcraft#1669"
|
||||
],
|
||||
"what": "a closed hollow box (60 x 60 x 40, 2.5 mm walls) with a window cut in one end wall and a loft joined into it, both mirrored about the middle plane x = 30 onto the far wall (\"Union: no result\" on the mirror only)",
|
||||
"source": "analytic",
|
||||
"method": "as for one wall: each window is filled by its loft (the loft section is larger than the window), and what is added to the plain hollow case (60 x 60 x 40 minus the 55 x 55 x 35 cavity = 38125) is the overhanging strip of the loft outside the wall (x in [-0.5, 0]) and the strip inside the cavity (x in [2.5, 3]), 938.966 each; the mirror gives the far wall the same: V = 38125 + 2 * 938.966. The windows are filled again, so the cavity is sealed (an internal void: shell count 2, which the rig cannot grade, so valid is false).",
|
||||
"valid": false,
|
||||
"body_count": 1,
|
||||
"volume_mm3": 40002.93197278911
|
||||
}
|
||||
@@ -0,0 +1,214 @@
|
||||
{
|
||||
"commands": [
|
||||
{
|
||||
"command": "solid.box",
|
||||
"params": {
|
||||
"length": 60,
|
||||
"width": 60,
|
||||
"height": 40,
|
||||
"corner": [
|
||||
0,
|
||||
-30,
|
||||
0
|
||||
],
|
||||
"body_name": "Case"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "solid.box",
|
||||
"params": {
|
||||
"length": 55,
|
||||
"width": 55,
|
||||
"height": 35,
|
||||
"corner": [
|
||||
2.5,
|
||||
-27.5,
|
||||
2.5
|
||||
],
|
||||
"body_name": "Cavity"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "solid.combine",
|
||||
"params": {
|
||||
"target": "Case",
|
||||
"tools": [
|
||||
"Cavity"
|
||||
],
|
||||
"operation": "cut",
|
||||
"name": "Hollow"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.create",
|
||||
"params": {
|
||||
"plane": {
|
||||
"origin": [
|
||||
-1.0,
|
||||
0.0,
|
||||
0.0
|
||||
],
|
||||
"x_dir": [
|
||||
0,
|
||||
1,
|
||||
0
|
||||
],
|
||||
"y_dir": [
|
||||
0,
|
||||
0,
|
||||
1
|
||||
]
|
||||
},
|
||||
"name": "Win"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.rectangle.two_point",
|
||||
"params": {
|
||||
"p0": [
|
||||
-15,
|
||||
10
|
||||
],
|
||||
"p1": [
|
||||
15,
|
||||
30
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.finish",
|
||||
"params": {}
|
||||
},
|
||||
{
|
||||
"command": "solid.extrude",
|
||||
"params": {
|
||||
"sketch": "Win",
|
||||
"distance": 3.5,
|
||||
"operation": "cut",
|
||||
"targets": [
|
||||
"Case"
|
||||
],
|
||||
"name": "PleatCut"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.create",
|
||||
"params": {
|
||||
"plane": {
|
||||
"origin": [
|
||||
-0.5,
|
||||
0.0,
|
||||
0.0
|
||||
],
|
||||
"x_dir": [
|
||||
0,
|
||||
1,
|
||||
0
|
||||
],
|
||||
"y_dir": [
|
||||
0,
|
||||
0,
|
||||
1
|
||||
]
|
||||
},
|
||||
"name": "Near"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.rectangle.center",
|
||||
"params": {
|
||||
"center": [
|
||||
0,
|
||||
20
|
||||
],
|
||||
"corner": [
|
||||
17,
|
||||
32
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.finish",
|
||||
"params": {}
|
||||
},
|
||||
{
|
||||
"command": "sketch.create",
|
||||
"params": {
|
||||
"plane": {
|
||||
"origin": [
|
||||
3.0,
|
||||
0.0,
|
||||
0.0
|
||||
],
|
||||
"x_dir": [
|
||||
0,
|
||||
1,
|
||||
0
|
||||
],
|
||||
"y_dir": [
|
||||
0,
|
||||
0,
|
||||
1
|
||||
]
|
||||
},
|
||||
"name": "Far"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.rectangle.center",
|
||||
"params": {
|
||||
"center": [
|
||||
0,
|
||||
20
|
||||
],
|
||||
"corner": [
|
||||
19,
|
||||
34
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.finish",
|
||||
"params": {}
|
||||
},
|
||||
{
|
||||
"command": "solid.loft",
|
||||
"params": {
|
||||
"sections": [
|
||||
{
|
||||
"sketch": "Near"
|
||||
},
|
||||
{
|
||||
"sketch": "Far"
|
||||
}
|
||||
],
|
||||
"operation": "join",
|
||||
"name": "PleatNear",
|
||||
"targets": [
|
||||
"Case"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "solid.mirror",
|
||||
"params": {
|
||||
"features": [
|
||||
"PleatCut",
|
||||
"PleatNear"
|
||||
],
|
||||
"plane": {
|
||||
"origin": [
|
||||
30,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"normal": [
|
||||
1,
|
||||
0,
|
||||
0
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
{
|
||||
"sources": [
|
||||
"tangency-labs/solidcraft#2992",
|
||||
"tangency-labs/solidcraft#1856"
|
||||
],
|
||||
"what": "a disk joined to 36 patterned twisted lofted blades (each a loft of 9 rectangle sections turning 7.5 degrees apart, rooted 2 mm inside the disk): hang of minutes",
|
||||
"source": "analytic",
|
||||
"method": "each blade section is a 6 x 3 rectangle (area 18) turning about its own centre, which stays on the vertical line at radius 50: the section area and centre do not change, so a blade above the disk top z = 5 is 18 * (43 - 5) = 684 and its root part is inside the disk. The 36 blades (centres 8.7 apart, reach 3.4 each) do not touch each other, so V = pi 60^2 5 + 36 * 684 = 81172.7.",
|
||||
"body_count": 1,
|
||||
"volume_mm3": 81172.66776461627
|
||||
}
|
||||
@@ -0,0 +1,565 @@
|
||||
{
|
||||
"commands": [
|
||||
{
|
||||
"command": "sketch.create",
|
||||
"params": {
|
||||
"plane": {
|
||||
"origin": [
|
||||
0.0,
|
||||
0.0,
|
||||
0.0
|
||||
],
|
||||
"x_dir": [
|
||||
1,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"y_dir": [
|
||||
0,
|
||||
1,
|
||||
0
|
||||
]
|
||||
},
|
||||
"name": "Disk"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.circle.center",
|
||||
"params": {
|
||||
"center": [
|
||||
0,
|
||||
0
|
||||
],
|
||||
"radius": 60
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.finish",
|
||||
"params": {}
|
||||
},
|
||||
{
|
||||
"command": "solid.extrude",
|
||||
"params": {
|
||||
"distance": 5,
|
||||
"body_name": "Disk"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.create",
|
||||
"params": {
|
||||
"plane": {
|
||||
"origin": [
|
||||
0.0,
|
||||
0.0,
|
||||
3.0
|
||||
],
|
||||
"x_dir": [
|
||||
1,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"y_dir": [
|
||||
0,
|
||||
1,
|
||||
0
|
||||
]
|
||||
},
|
||||
"name": "B0"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.line",
|
||||
"params": {
|
||||
"points": [
|
||||
[
|
||||
47.0,
|
||||
-1.5
|
||||
],
|
||||
[
|
||||
53.0,
|
||||
-1.5
|
||||
],
|
||||
[
|
||||
53.0,
|
||||
1.5
|
||||
],
|
||||
[
|
||||
47.0,
|
||||
1.5
|
||||
]
|
||||
],
|
||||
"infer": false,
|
||||
"closed": true
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.finish",
|
||||
"params": {}
|
||||
},
|
||||
{
|
||||
"command": "sketch.create",
|
||||
"params": {
|
||||
"plane": {
|
||||
"origin": [
|
||||
0.0,
|
||||
0.0,
|
||||
8.0
|
||||
],
|
||||
"x_dir": [
|
||||
1,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"y_dir": [
|
||||
0,
|
||||
1,
|
||||
0
|
||||
]
|
||||
},
|
||||
"name": "B1"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.line",
|
||||
"params": {
|
||||
"points": [
|
||||
[
|
||||
47.221454704,
|
||||
-1.878745869
|
||||
],
|
||||
[
|
||||
53.170123872,
|
||||
-1.095588715
|
||||
],
|
||||
[
|
||||
52.778545296,
|
||||
1.878745869
|
||||
],
|
||||
[
|
||||
46.829876128,
|
||||
1.095588715
|
||||
]
|
||||
],
|
||||
"infer": false,
|
||||
"closed": true
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.finish",
|
||||
"params": {}
|
||||
},
|
||||
{
|
||||
"command": "sketch.create",
|
||||
"params": {
|
||||
"plane": {
|
||||
"origin": [
|
||||
0.0,
|
||||
0.0,
|
||||
13.0
|
||||
],
|
||||
"x_dir": [
|
||||
1,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"y_dir": [
|
||||
0,
|
||||
1,
|
||||
0
|
||||
]
|
||||
},
|
||||
"name": "B2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.line",
|
||||
"params": {
|
||||
"points": [
|
||||
[
|
||||
47.490451089,
|
||||
-2.225345875
|
||||
],
|
||||
[
|
||||
53.286006047,
|
||||
-0.672431604
|
||||
],
|
||||
[
|
||||
52.509548911,
|
||||
2.225345875
|
||||
],
|
||||
[
|
||||
46.713993953,
|
||||
0.672431604
|
||||
]
|
||||
],
|
||||
"infer": false,
|
||||
"closed": true
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.finish",
|
||||
"params": {}
|
||||
},
|
||||
{
|
||||
"command": "sketch.create",
|
||||
"params": {
|
||||
"plane": {
|
||||
"origin": [
|
||||
0.0,
|
||||
0.0,
|
||||
18.0
|
||||
],
|
||||
"x_dir": [
|
||||
1,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"y_dir": [
|
||||
0,
|
||||
1,
|
||||
0
|
||||
]
|
||||
},
|
||||
"name": "B3"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.line",
|
||||
"params": {
|
||||
"points": [
|
||||
[
|
||||
47.802386551,
|
||||
-2.533869596
|
||||
],
|
||||
[
|
||||
53.345663746,
|
||||
-0.237769002
|
||||
],
|
||||
[
|
||||
52.197613449,
|
||||
2.533869596
|
||||
],
|
||||
[
|
||||
46.654336254,
|
||||
0.237769002
|
||||
]
|
||||
],
|
||||
"infer": false,
|
||||
"closed": true
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.finish",
|
||||
"params": {}
|
||||
},
|
||||
{
|
||||
"command": "sketch.create",
|
||||
"params": {
|
||||
"plane": {
|
||||
"origin": [
|
||||
0.0,
|
||||
0.0,
|
||||
23.0
|
||||
],
|
||||
"x_dir": [
|
||||
1,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"y_dir": [
|
||||
0,
|
||||
1,
|
||||
0
|
||||
]
|
||||
},
|
||||
"name": "B4"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.line",
|
||||
"params": {
|
||||
"points": [
|
||||
[
|
||||
48.151923789,
|
||||
-2.799038106
|
||||
],
|
||||
[
|
||||
53.348076211,
|
||||
0.200961894
|
||||
],
|
||||
[
|
||||
51.848076211,
|
||||
2.799038106
|
||||
],
|
||||
[
|
||||
46.651923789,
|
||||
-0.200961894
|
||||
]
|
||||
],
|
||||
"infer": false,
|
||||
"closed": true
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.finish",
|
||||
"params": {}
|
||||
},
|
||||
{
|
||||
"command": "sketch.create",
|
||||
"params": {
|
||||
"plane": {
|
||||
"origin": [
|
||||
0.0,
|
||||
0.0,
|
||||
28.0
|
||||
],
|
||||
"x_dir": [
|
||||
1,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"y_dir": [
|
||||
0,
|
||||
1,
|
||||
0
|
||||
]
|
||||
},
|
||||
"name": "B5"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.line",
|
||||
"params": {
|
||||
"points": [
|
||||
[
|
||||
48.533082123,
|
||||
-3.016314297
|
||||
],
|
||||
[
|
||||
53.293202164,
|
||||
0.636254277
|
||||
],
|
||||
[
|
||||
51.466917877,
|
||||
3.016314297
|
||||
],
|
||||
[
|
||||
46.706797836,
|
||||
-0.636254277
|
||||
]
|
||||
],
|
||||
"infer": false,
|
||||
"closed": true
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.finish",
|
||||
"params": {}
|
||||
},
|
||||
{
|
||||
"command": "sketch.create",
|
||||
"params": {
|
||||
"plane": {
|
||||
"origin": [
|
||||
0.0,
|
||||
0.0,
|
||||
33.0
|
||||
],
|
||||
"x_dir": [
|
||||
1,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"y_dir": [
|
||||
0,
|
||||
1,
|
||||
0
|
||||
]
|
||||
},
|
||||
"name": "B6"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.line",
|
||||
"params": {
|
||||
"points": [
|
||||
[
|
||||
48.939339828,
|
||||
-3.181980515
|
||||
],
|
||||
[
|
||||
53.181980515,
|
||||
1.060660172
|
||||
],
|
||||
[
|
||||
51.060660172,
|
||||
3.181980515
|
||||
],
|
||||
[
|
||||
46.818019485,
|
||||
-1.060660172
|
||||
]
|
||||
],
|
||||
"infer": false,
|
||||
"closed": true
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.finish",
|
||||
"params": {}
|
||||
},
|
||||
{
|
||||
"command": "sketch.create",
|
||||
"params": {
|
||||
"plane": {
|
||||
"origin": [
|
||||
0.0,
|
||||
0.0,
|
||||
38.0
|
||||
],
|
||||
"x_dir": [
|
||||
1,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"y_dir": [
|
||||
0,
|
||||
1,
|
||||
0
|
||||
]
|
||||
},
|
||||
"name": "B7"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.line",
|
||||
"params": {
|
||||
"points": [
|
||||
[
|
||||
49.363745723,
|
||||
-3.293202164
|
||||
],
|
||||
[
|
||||
53.016314297,
|
||||
1.466917877
|
||||
],
|
||||
[
|
||||
50.636254277,
|
||||
3.293202164
|
||||
],
|
||||
[
|
||||
46.983685703,
|
||||
-1.466917877
|
||||
]
|
||||
],
|
||||
"infer": false,
|
||||
"closed": true
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.finish",
|
||||
"params": {}
|
||||
},
|
||||
{
|
||||
"command": "sketch.create",
|
||||
"params": {
|
||||
"plane": {
|
||||
"origin": [
|
||||
0.0,
|
||||
0.0,
|
||||
43.0
|
||||
],
|
||||
"x_dir": [
|
||||
1,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"y_dir": [
|
||||
0,
|
||||
1,
|
||||
0
|
||||
]
|
||||
},
|
||||
"name": "B8"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.line",
|
||||
"params": {
|
||||
"points": [
|
||||
[
|
||||
49.799038106,
|
||||
-3.348076211
|
||||
],
|
||||
[
|
||||
52.799038106,
|
||||
1.848076211
|
||||
],
|
||||
[
|
||||
50.200961894,
|
||||
3.348076211
|
||||
],
|
||||
[
|
||||
47.200961894,
|
||||
-1.848076211
|
||||
]
|
||||
],
|
||||
"infer": false,
|
||||
"closed": true
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.finish",
|
||||
"params": {}
|
||||
},
|
||||
{
|
||||
"command": "solid.loft",
|
||||
"params": {
|
||||
"sections": [
|
||||
{
|
||||
"sketch": "B0"
|
||||
},
|
||||
{
|
||||
"sketch": "B1"
|
||||
},
|
||||
{
|
||||
"sketch": "B2"
|
||||
},
|
||||
{
|
||||
"sketch": "B3"
|
||||
},
|
||||
{
|
||||
"sketch": "B4"
|
||||
},
|
||||
{
|
||||
"sketch": "B5"
|
||||
},
|
||||
{
|
||||
"sketch": "B6"
|
||||
},
|
||||
{
|
||||
"sketch": "B7"
|
||||
},
|
||||
{
|
||||
"sketch": "B8"
|
||||
}
|
||||
],
|
||||
"operation": "join",
|
||||
"name": "Blade",
|
||||
"targets": [
|
||||
"Disk"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "solid.pattern.circular",
|
||||
"params": {
|
||||
"features": [
|
||||
"Blade"
|
||||
],
|
||||
"axis": "Z",
|
||||
"count": 36
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
{
|
||||
"sources": [
|
||||
"tangency-labs/solidcraft#968",
|
||||
"tangency-labs/solidcraft#1084"
|
||||
],
|
||||
"what": "a bent tube (circles r 30 lofted through 5 sections along an R100 arc turning 60 degrees) with a bore (r 18, sections running 5 mm of arc past both ends) cut out of it: a hollow elbow (\"no result\" for some section counts, not their neighbours)",
|
||||
"source": "analytic",
|
||||
"method": "the wall of a bent tube is a ring section turned about the bend axis, its centre at radius 100: Pappus V = pi (30^2 - 18^2) * 100 * theta with theta = 60 degrees = 189496.4. The bore overshoots both ends along the same arc, so the cut opens the ends and leaves exactly the wall.",
|
||||
"body_count": 1,
|
||||
"volume_mm3": 189496.40450091567
|
||||
}
|
||||
@@ -0,0 +1,515 @@
|
||||
{
|
||||
"commands": [
|
||||
{
|
||||
"command": "sketch.create",
|
||||
"params": {
|
||||
"plane": {
|
||||
"origin": [
|
||||
100.0,
|
||||
0.0,
|
||||
0.0
|
||||
],
|
||||
"x_dir": [
|
||||
0,
|
||||
0,
|
||||
1
|
||||
],
|
||||
"y_dir": [
|
||||
1.0,
|
||||
0.0,
|
||||
0
|
||||
]
|
||||
},
|
||||
"name": "O0"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.circle.center",
|
||||
"params": {
|
||||
"center": [
|
||||
0,
|
||||
0
|
||||
],
|
||||
"radius": 30.0
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.finish",
|
||||
"params": {}
|
||||
},
|
||||
{
|
||||
"command": "sketch.create",
|
||||
"params": {
|
||||
"plane": {
|
||||
"origin": [
|
||||
96.59258262890683,
|
||||
25.881904510252074,
|
||||
0.0
|
||||
],
|
||||
"x_dir": [
|
||||
0,
|
||||
0,
|
||||
1
|
||||
],
|
||||
"y_dir": [
|
||||
0.9659258262890683,
|
||||
0.25881904510252074,
|
||||
0
|
||||
]
|
||||
},
|
||||
"name": "O1"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.circle.center",
|
||||
"params": {
|
||||
"center": [
|
||||
0,
|
||||
0
|
||||
],
|
||||
"radius": 30.0
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.finish",
|
||||
"params": {}
|
||||
},
|
||||
{
|
||||
"command": "sketch.create",
|
||||
"params": {
|
||||
"plane": {
|
||||
"origin": [
|
||||
86.60254037844388,
|
||||
49.99999999999999,
|
||||
0.0
|
||||
],
|
||||
"x_dir": [
|
||||
0,
|
||||
0,
|
||||
1
|
||||
],
|
||||
"y_dir": [
|
||||
0.8660254037844387,
|
||||
0.49999999999999994,
|
||||
0
|
||||
]
|
||||
},
|
||||
"name": "O2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.circle.center",
|
||||
"params": {
|
||||
"center": [
|
||||
0,
|
||||
0
|
||||
],
|
||||
"radius": 30.0
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.finish",
|
||||
"params": {}
|
||||
},
|
||||
{
|
||||
"command": "sketch.create",
|
||||
"params": {
|
||||
"plane": {
|
||||
"origin": [
|
||||
70.71067811865476,
|
||||
70.71067811865474,
|
||||
0.0
|
||||
],
|
||||
"x_dir": [
|
||||
0,
|
||||
0,
|
||||
1
|
||||
],
|
||||
"y_dir": [
|
||||
0.7071067811865476,
|
||||
0.7071067811865475,
|
||||
0
|
||||
]
|
||||
},
|
||||
"name": "O3"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.circle.center",
|
||||
"params": {
|
||||
"center": [
|
||||
0,
|
||||
0
|
||||
],
|
||||
"radius": 30.0
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.finish",
|
||||
"params": {}
|
||||
},
|
||||
{
|
||||
"command": "sketch.create",
|
||||
"params": {
|
||||
"plane": {
|
||||
"origin": [
|
||||
50.000000000000014,
|
||||
86.60254037844386,
|
||||
0.0
|
||||
],
|
||||
"x_dir": [
|
||||
0,
|
||||
0,
|
||||
1
|
||||
],
|
||||
"y_dir": [
|
||||
0.5000000000000001,
|
||||
0.8660254037844386,
|
||||
0
|
||||
]
|
||||
},
|
||||
"name": "O4"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.circle.center",
|
||||
"params": {
|
||||
"center": [
|
||||
0,
|
||||
0
|
||||
],
|
||||
"radius": 30.0
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.finish",
|
||||
"params": {}
|
||||
},
|
||||
{
|
||||
"command": "solid.loft",
|
||||
"params": {
|
||||
"sections": [
|
||||
{
|
||||
"sketch": "O0"
|
||||
},
|
||||
{
|
||||
"sketch": "O1"
|
||||
},
|
||||
{
|
||||
"sketch": "O2"
|
||||
},
|
||||
{
|
||||
"sketch": "O3"
|
||||
},
|
||||
{
|
||||
"sketch": "O4"
|
||||
}
|
||||
],
|
||||
"operation": "new",
|
||||
"name": "LoftO",
|
||||
"body_name": "TubeO"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.create",
|
||||
"params": {
|
||||
"plane": {
|
||||
"origin": [
|
||||
99.87502603949663,
|
||||
-4.997916927067833,
|
||||
0.0
|
||||
],
|
||||
"x_dir": [
|
||||
0,
|
||||
0,
|
||||
1
|
||||
],
|
||||
"y_dir": [
|
||||
0.9987502603949663,
|
||||
-0.04997916927067833,
|
||||
0
|
||||
]
|
||||
},
|
||||
"name": "I0"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.circle.center",
|
||||
"params": {
|
||||
"center": [
|
||||
0,
|
||||
0
|
||||
],
|
||||
"radius": 18.0
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.finish",
|
||||
"params": {}
|
||||
},
|
||||
{
|
||||
"command": "sketch.create",
|
||||
"params": {
|
||||
"plane": {
|
||||
"origin": [
|
||||
100.0,
|
||||
0.0,
|
||||
0.0
|
||||
],
|
||||
"x_dir": [
|
||||
0,
|
||||
0,
|
||||
1
|
||||
],
|
||||
"y_dir": [
|
||||
1.0,
|
||||
0.0,
|
||||
0
|
||||
]
|
||||
},
|
||||
"name": "I1"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.circle.center",
|
||||
"params": {
|
||||
"center": [
|
||||
0,
|
||||
0
|
||||
],
|
||||
"radius": 18.0
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.finish",
|
||||
"params": {}
|
||||
},
|
||||
{
|
||||
"command": "sketch.create",
|
||||
"params": {
|
||||
"plane": {
|
||||
"origin": [
|
||||
96.59258262890683,
|
||||
25.881904510252074,
|
||||
0.0
|
||||
],
|
||||
"x_dir": [
|
||||
0,
|
||||
0,
|
||||
1
|
||||
],
|
||||
"y_dir": [
|
||||
0.9659258262890683,
|
||||
0.25881904510252074,
|
||||
0
|
||||
]
|
||||
},
|
||||
"name": "I2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.circle.center",
|
||||
"params": {
|
||||
"center": [
|
||||
0,
|
||||
0
|
||||
],
|
||||
"radius": 18.0
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.finish",
|
||||
"params": {}
|
||||
},
|
||||
{
|
||||
"command": "sketch.create",
|
||||
"params": {
|
||||
"plane": {
|
||||
"origin": [
|
||||
86.60254037844388,
|
||||
49.99999999999999,
|
||||
0.0
|
||||
],
|
||||
"x_dir": [
|
||||
0,
|
||||
0,
|
||||
1
|
||||
],
|
||||
"y_dir": [
|
||||
0.8660254037844387,
|
||||
0.49999999999999994,
|
||||
0
|
||||
]
|
||||
},
|
||||
"name": "I3"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.circle.center",
|
||||
"params": {
|
||||
"center": [
|
||||
0,
|
||||
0
|
||||
],
|
||||
"radius": 18.0
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.finish",
|
||||
"params": {}
|
||||
},
|
||||
{
|
||||
"command": "sketch.create",
|
||||
"params": {
|
||||
"plane": {
|
||||
"origin": [
|
||||
70.71067811865476,
|
||||
70.71067811865474,
|
||||
0.0
|
||||
],
|
||||
"x_dir": [
|
||||
0,
|
||||
0,
|
||||
1
|
||||
],
|
||||
"y_dir": [
|
||||
0.7071067811865476,
|
||||
0.7071067811865475,
|
||||
0
|
||||
]
|
||||
},
|
||||
"name": "I4"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.circle.center",
|
||||
"params": {
|
||||
"center": [
|
||||
0,
|
||||
0
|
||||
],
|
||||
"radius": 18.0
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.finish",
|
||||
"params": {}
|
||||
},
|
||||
{
|
||||
"command": "sketch.create",
|
||||
"params": {
|
||||
"plane": {
|
||||
"origin": [
|
||||
50.000000000000014,
|
||||
86.60254037844386,
|
||||
0.0
|
||||
],
|
||||
"x_dir": [
|
||||
0,
|
||||
0,
|
||||
1
|
||||
],
|
||||
"y_dir": [
|
||||
0.5000000000000001,
|
||||
0.8660254037844386,
|
||||
0
|
||||
]
|
||||
},
|
||||
"name": "I5"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.circle.center",
|
||||
"params": {
|
||||
"center": [
|
||||
0,
|
||||
0
|
||||
],
|
||||
"radius": 18.0
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.finish",
|
||||
"params": {}
|
||||
},
|
||||
{
|
||||
"command": "sketch.create",
|
||||
"params": {
|
||||
"plane": {
|
||||
"origin": [
|
||||
45.60918999490332,
|
||||
88.9932682173703,
|
||||
0.0
|
||||
],
|
||||
"x_dir": [
|
||||
0,
|
||||
0,
|
||||
1
|
||||
],
|
||||
"y_dir": [
|
||||
0.45609189994903315,
|
||||
0.889932682173703,
|
||||
0
|
||||
]
|
||||
},
|
||||
"name": "I6"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.circle.center",
|
||||
"params": {
|
||||
"center": [
|
||||
0,
|
||||
0
|
||||
],
|
||||
"radius": 18.0
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.finish",
|
||||
"params": {}
|
||||
},
|
||||
{
|
||||
"command": "solid.loft",
|
||||
"params": {
|
||||
"sections": [
|
||||
{
|
||||
"sketch": "I0"
|
||||
},
|
||||
{
|
||||
"sketch": "I1"
|
||||
},
|
||||
{
|
||||
"sketch": "I2"
|
||||
},
|
||||
{
|
||||
"sketch": "I3"
|
||||
},
|
||||
{
|
||||
"sketch": "I4"
|
||||
},
|
||||
{
|
||||
"sketch": "I5"
|
||||
},
|
||||
{
|
||||
"sketch": "I6"
|
||||
}
|
||||
],
|
||||
"operation": "new",
|
||||
"name": "LoftI",
|
||||
"body_name": "TubeI"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "solid.combine",
|
||||
"params": {
|
||||
"target": "TubeO",
|
||||
"tools": [
|
||||
"TubeI"
|
||||
],
|
||||
"operation": "cut",
|
||||
"name": "Hollow"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
{
|
||||
"sources": [
|
||||
"tangency-labs/solidcraft#968",
|
||||
"tangency-labs/solidcraft#1084"
|
||||
],
|
||||
"what": "a bent tube (circles r 30 lofted through 10 sections along an R100 arc turning 90 degrees) with a bore (r 18, sections running 5 mm of arc past both ends) cut out of it: a hollow elbow (\"no result\" for some section counts, not their neighbours)",
|
||||
"source": "analytic",
|
||||
"method": "the wall of a bent tube is a ring section turned about the bend axis, its centre at radius 100: Pappus V = pi (30^2 - 18^2) * 100 * theta with theta = 90 degrees = 284244.6. The bore overshoots both ends along the same arc, so the cut opens the ends and leaves exactly the wall.",
|
||||
"body_count": 1,
|
||||
"volume_mm3": 284244.6067513735
|
||||
}
|
||||
@@ -0,0 +1,915 @@
|
||||
{
|
||||
"commands": [
|
||||
{
|
||||
"command": "sketch.create",
|
||||
"params": {
|
||||
"plane": {
|
||||
"origin": [
|
||||
100.0,
|
||||
0.0,
|
||||
0.0
|
||||
],
|
||||
"x_dir": [
|
||||
0,
|
||||
0,
|
||||
1
|
||||
],
|
||||
"y_dir": [
|
||||
1.0,
|
||||
0.0,
|
||||
0
|
||||
]
|
||||
},
|
||||
"name": "O0"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.circle.center",
|
||||
"params": {
|
||||
"center": [
|
||||
0,
|
||||
0
|
||||
],
|
||||
"radius": 30.0
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.finish",
|
||||
"params": {}
|
||||
},
|
||||
{
|
||||
"command": "sketch.create",
|
||||
"params": {
|
||||
"plane": {
|
||||
"origin": [
|
||||
98.4807753012208,
|
||||
17.364817766693033,
|
||||
0.0
|
||||
],
|
||||
"x_dir": [
|
||||
0,
|
||||
0,
|
||||
1
|
||||
],
|
||||
"y_dir": [
|
||||
0.984807753012208,
|
||||
0.17364817766693033,
|
||||
0
|
||||
]
|
||||
},
|
||||
"name": "O1"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.circle.center",
|
||||
"params": {
|
||||
"center": [
|
||||
0,
|
||||
0
|
||||
],
|
||||
"radius": 30.0
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.finish",
|
||||
"params": {}
|
||||
},
|
||||
{
|
||||
"command": "sketch.create",
|
||||
"params": {
|
||||
"plane": {
|
||||
"origin": [
|
||||
93.96926207859084,
|
||||
34.20201433256687,
|
||||
0.0
|
||||
],
|
||||
"x_dir": [
|
||||
0,
|
||||
0,
|
||||
1
|
||||
],
|
||||
"y_dir": [
|
||||
0.9396926207859084,
|
||||
0.3420201433256687,
|
||||
0
|
||||
]
|
||||
},
|
||||
"name": "O2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.circle.center",
|
||||
"params": {
|
||||
"center": [
|
||||
0,
|
||||
0
|
||||
],
|
||||
"radius": 30.0
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.finish",
|
||||
"params": {}
|
||||
},
|
||||
{
|
||||
"command": "sketch.create",
|
||||
"params": {
|
||||
"plane": {
|
||||
"origin": [
|
||||
86.60254037844388,
|
||||
49.99999999999999,
|
||||
0.0
|
||||
],
|
||||
"x_dir": [
|
||||
0,
|
||||
0,
|
||||
1
|
||||
],
|
||||
"y_dir": [
|
||||
0.8660254037844387,
|
||||
0.49999999999999994,
|
||||
0
|
||||
]
|
||||
},
|
||||
"name": "O3"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.circle.center",
|
||||
"params": {
|
||||
"center": [
|
||||
0,
|
||||
0
|
||||
],
|
||||
"radius": 30.0
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.finish",
|
||||
"params": {}
|
||||
},
|
||||
{
|
||||
"command": "sketch.create",
|
||||
"params": {
|
||||
"plane": {
|
||||
"origin": [
|
||||
76.60444431189781,
|
||||
64.27876096865393,
|
||||
0.0
|
||||
],
|
||||
"x_dir": [
|
||||
0,
|
||||
0,
|
||||
1
|
||||
],
|
||||
"y_dir": [
|
||||
0.766044443118978,
|
||||
0.6427876096865393,
|
||||
0
|
||||
]
|
||||
},
|
||||
"name": "O4"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.circle.center",
|
||||
"params": {
|
||||
"center": [
|
||||
0,
|
||||
0
|
||||
],
|
||||
"radius": 30.0
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.finish",
|
||||
"params": {}
|
||||
},
|
||||
{
|
||||
"command": "sketch.create",
|
||||
"params": {
|
||||
"plane": {
|
||||
"origin": [
|
||||
64.27876096865394,
|
||||
76.60444431189781,
|
||||
0.0
|
||||
],
|
||||
"x_dir": [
|
||||
0,
|
||||
0,
|
||||
1
|
||||
],
|
||||
"y_dir": [
|
||||
0.6427876096865394,
|
||||
0.766044443118978,
|
||||
0
|
||||
]
|
||||
},
|
||||
"name": "O5"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.circle.center",
|
||||
"params": {
|
||||
"center": [
|
||||
0,
|
||||
0
|
||||
],
|
||||
"radius": 30.0
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.finish",
|
||||
"params": {}
|
||||
},
|
||||
{
|
||||
"command": "sketch.create",
|
||||
"params": {
|
||||
"plane": {
|
||||
"origin": [
|
||||
50.000000000000014,
|
||||
86.60254037844386,
|
||||
0.0
|
||||
],
|
||||
"x_dir": [
|
||||
0,
|
||||
0,
|
||||
1
|
||||
],
|
||||
"y_dir": [
|
||||
0.5000000000000001,
|
||||
0.8660254037844386,
|
||||
0
|
||||
]
|
||||
},
|
||||
"name": "O6"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.circle.center",
|
||||
"params": {
|
||||
"center": [
|
||||
0,
|
||||
0
|
||||
],
|
||||
"radius": 30.0
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.finish",
|
||||
"params": {}
|
||||
},
|
||||
{
|
||||
"command": "sketch.create",
|
||||
"params": {
|
||||
"plane": {
|
||||
"origin": [
|
||||
34.20201433256688,
|
||||
93.96926207859083,
|
||||
0.0
|
||||
],
|
||||
"x_dir": [
|
||||
0,
|
||||
0,
|
||||
1
|
||||
],
|
||||
"y_dir": [
|
||||
0.3420201433256688,
|
||||
0.9396926207859083,
|
||||
0
|
||||
]
|
||||
},
|
||||
"name": "O7"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.circle.center",
|
||||
"params": {
|
||||
"center": [
|
||||
0,
|
||||
0
|
||||
],
|
||||
"radius": 30.0
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.finish",
|
||||
"params": {}
|
||||
},
|
||||
{
|
||||
"command": "sketch.create",
|
||||
"params": {
|
||||
"plane": {
|
||||
"origin": [
|
||||
17.36481776669304,
|
||||
98.4807753012208,
|
||||
0.0
|
||||
],
|
||||
"x_dir": [
|
||||
0,
|
||||
0,
|
||||
1
|
||||
],
|
||||
"y_dir": [
|
||||
0.17364817766693041,
|
||||
0.984807753012208,
|
||||
0
|
||||
]
|
||||
},
|
||||
"name": "O8"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.circle.center",
|
||||
"params": {
|
||||
"center": [
|
||||
0,
|
||||
0
|
||||
],
|
||||
"radius": 30.0
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.finish",
|
||||
"params": {}
|
||||
},
|
||||
{
|
||||
"command": "sketch.create",
|
||||
"params": {
|
||||
"plane": {
|
||||
"origin": [
|
||||
6.123233995736766e-15,
|
||||
100.0,
|
||||
0.0
|
||||
],
|
||||
"x_dir": [
|
||||
0,
|
||||
0,
|
||||
1
|
||||
],
|
||||
"y_dir": [
|
||||
6.123233995736766e-17,
|
||||
1.0,
|
||||
0
|
||||
]
|
||||
},
|
||||
"name": "O9"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.circle.center",
|
||||
"params": {
|
||||
"center": [
|
||||
0,
|
||||
0
|
||||
],
|
||||
"radius": 30.0
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.finish",
|
||||
"params": {}
|
||||
},
|
||||
{
|
||||
"command": "solid.loft",
|
||||
"params": {
|
||||
"sections": [
|
||||
{
|
||||
"sketch": "O0"
|
||||
},
|
||||
{
|
||||
"sketch": "O1"
|
||||
},
|
||||
{
|
||||
"sketch": "O2"
|
||||
},
|
||||
{
|
||||
"sketch": "O3"
|
||||
},
|
||||
{
|
||||
"sketch": "O4"
|
||||
},
|
||||
{
|
||||
"sketch": "O5"
|
||||
},
|
||||
{
|
||||
"sketch": "O6"
|
||||
},
|
||||
{
|
||||
"sketch": "O7"
|
||||
},
|
||||
{
|
||||
"sketch": "O8"
|
||||
},
|
||||
{
|
||||
"sketch": "O9"
|
||||
}
|
||||
],
|
||||
"operation": "new",
|
||||
"name": "LoftO",
|
||||
"body_name": "TubeO"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.create",
|
||||
"params": {
|
||||
"plane": {
|
||||
"origin": [
|
||||
99.87502603949663,
|
||||
-4.997916927067833,
|
||||
0.0
|
||||
],
|
||||
"x_dir": [
|
||||
0,
|
||||
0,
|
||||
1
|
||||
],
|
||||
"y_dir": [
|
||||
0.9987502603949663,
|
||||
-0.04997916927067833,
|
||||
0
|
||||
]
|
||||
},
|
||||
"name": "I0"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.circle.center",
|
||||
"params": {
|
||||
"center": [
|
||||
0,
|
||||
0
|
||||
],
|
||||
"radius": 18.0
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.finish",
|
||||
"params": {}
|
||||
},
|
||||
{
|
||||
"command": "sketch.create",
|
||||
"params": {
|
||||
"plane": {
|
||||
"origin": [
|
||||
100.0,
|
||||
0.0,
|
||||
0.0
|
||||
],
|
||||
"x_dir": [
|
||||
0,
|
||||
0,
|
||||
1
|
||||
],
|
||||
"y_dir": [
|
||||
1.0,
|
||||
0.0,
|
||||
0
|
||||
]
|
||||
},
|
||||
"name": "I1"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.circle.center",
|
||||
"params": {
|
||||
"center": [
|
||||
0,
|
||||
0
|
||||
],
|
||||
"radius": 18.0
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.finish",
|
||||
"params": {}
|
||||
},
|
||||
{
|
||||
"command": "sketch.create",
|
||||
"params": {
|
||||
"plane": {
|
||||
"origin": [
|
||||
98.4807753012208,
|
||||
17.364817766693033,
|
||||
0.0
|
||||
],
|
||||
"x_dir": [
|
||||
0,
|
||||
0,
|
||||
1
|
||||
],
|
||||
"y_dir": [
|
||||
0.984807753012208,
|
||||
0.17364817766693033,
|
||||
0
|
||||
]
|
||||
},
|
||||
"name": "I2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.circle.center",
|
||||
"params": {
|
||||
"center": [
|
||||
0,
|
||||
0
|
||||
],
|
||||
"radius": 18.0
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.finish",
|
||||
"params": {}
|
||||
},
|
||||
{
|
||||
"command": "sketch.create",
|
||||
"params": {
|
||||
"plane": {
|
||||
"origin": [
|
||||
93.96926207859084,
|
||||
34.20201433256687,
|
||||
0.0
|
||||
],
|
||||
"x_dir": [
|
||||
0,
|
||||
0,
|
||||
1
|
||||
],
|
||||
"y_dir": [
|
||||
0.9396926207859084,
|
||||
0.3420201433256687,
|
||||
0
|
||||
]
|
||||
},
|
||||
"name": "I3"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.circle.center",
|
||||
"params": {
|
||||
"center": [
|
||||
0,
|
||||
0
|
||||
],
|
||||
"radius": 18.0
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.finish",
|
||||
"params": {}
|
||||
},
|
||||
{
|
||||
"command": "sketch.create",
|
||||
"params": {
|
||||
"plane": {
|
||||
"origin": [
|
||||
86.60254037844388,
|
||||
49.99999999999999,
|
||||
0.0
|
||||
],
|
||||
"x_dir": [
|
||||
0,
|
||||
0,
|
||||
1
|
||||
],
|
||||
"y_dir": [
|
||||
0.8660254037844387,
|
||||
0.49999999999999994,
|
||||
0
|
||||
]
|
||||
},
|
||||
"name": "I4"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.circle.center",
|
||||
"params": {
|
||||
"center": [
|
||||
0,
|
||||
0
|
||||
],
|
||||
"radius": 18.0
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.finish",
|
||||
"params": {}
|
||||
},
|
||||
{
|
||||
"command": "sketch.create",
|
||||
"params": {
|
||||
"plane": {
|
||||
"origin": [
|
||||
76.60444431189781,
|
||||
64.27876096865393,
|
||||
0.0
|
||||
],
|
||||
"x_dir": [
|
||||
0,
|
||||
0,
|
||||
1
|
||||
],
|
||||
"y_dir": [
|
||||
0.766044443118978,
|
||||
0.6427876096865393,
|
||||
0
|
||||
]
|
||||
},
|
||||
"name": "I5"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.circle.center",
|
||||
"params": {
|
||||
"center": [
|
||||
0,
|
||||
0
|
||||
],
|
||||
"radius": 18.0
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.finish",
|
||||
"params": {}
|
||||
},
|
||||
{
|
||||
"command": "sketch.create",
|
||||
"params": {
|
||||
"plane": {
|
||||
"origin": [
|
||||
64.27876096865394,
|
||||
76.60444431189781,
|
||||
0.0
|
||||
],
|
||||
"x_dir": [
|
||||
0,
|
||||
0,
|
||||
1
|
||||
],
|
||||
"y_dir": [
|
||||
0.6427876096865394,
|
||||
0.766044443118978,
|
||||
0
|
||||
]
|
||||
},
|
||||
"name": "I6"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.circle.center",
|
||||
"params": {
|
||||
"center": [
|
||||
0,
|
||||
0
|
||||
],
|
||||
"radius": 18.0
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.finish",
|
||||
"params": {}
|
||||
},
|
||||
{
|
||||
"command": "sketch.create",
|
||||
"params": {
|
||||
"plane": {
|
||||
"origin": [
|
||||
50.000000000000014,
|
||||
86.60254037844386,
|
||||
0.0
|
||||
],
|
||||
"x_dir": [
|
||||
0,
|
||||
0,
|
||||
1
|
||||
],
|
||||
"y_dir": [
|
||||
0.5000000000000001,
|
||||
0.8660254037844386,
|
||||
0
|
||||
]
|
||||
},
|
||||
"name": "I7"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.circle.center",
|
||||
"params": {
|
||||
"center": [
|
||||
0,
|
||||
0
|
||||
],
|
||||
"radius": 18.0
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.finish",
|
||||
"params": {}
|
||||
},
|
||||
{
|
||||
"command": "sketch.create",
|
||||
"params": {
|
||||
"plane": {
|
||||
"origin": [
|
||||
34.20201433256688,
|
||||
93.96926207859083,
|
||||
0.0
|
||||
],
|
||||
"x_dir": [
|
||||
0,
|
||||
0,
|
||||
1
|
||||
],
|
||||
"y_dir": [
|
||||
0.3420201433256688,
|
||||
0.9396926207859083,
|
||||
0
|
||||
]
|
||||
},
|
||||
"name": "I8"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.circle.center",
|
||||
"params": {
|
||||
"center": [
|
||||
0,
|
||||
0
|
||||
],
|
||||
"radius": 18.0
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.finish",
|
||||
"params": {}
|
||||
},
|
||||
{
|
||||
"command": "sketch.create",
|
||||
"params": {
|
||||
"plane": {
|
||||
"origin": [
|
||||
17.36481776669304,
|
||||
98.4807753012208,
|
||||
0.0
|
||||
],
|
||||
"x_dir": [
|
||||
0,
|
||||
0,
|
||||
1
|
||||
],
|
||||
"y_dir": [
|
||||
0.17364817766693041,
|
||||
0.984807753012208,
|
||||
0
|
||||
]
|
||||
},
|
||||
"name": "I9"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.circle.center",
|
||||
"params": {
|
||||
"center": [
|
||||
0,
|
||||
0
|
||||
],
|
||||
"radius": 18.0
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.finish",
|
||||
"params": {}
|
||||
},
|
||||
{
|
||||
"command": "sketch.create",
|
||||
"params": {
|
||||
"plane": {
|
||||
"origin": [
|
||||
6.123233995736766e-15,
|
||||
100.0,
|
||||
0.0
|
||||
],
|
||||
"x_dir": [
|
||||
0,
|
||||
0,
|
||||
1
|
||||
],
|
||||
"y_dir": [
|
||||
6.123233995736766e-17,
|
||||
1.0,
|
||||
0
|
||||
]
|
||||
},
|
||||
"name": "I10"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.circle.center",
|
||||
"params": {
|
||||
"center": [
|
||||
0,
|
||||
0
|
||||
],
|
||||
"radius": 18.0
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.finish",
|
||||
"params": {}
|
||||
},
|
||||
{
|
||||
"command": "sketch.create",
|
||||
"params": {
|
||||
"plane": {
|
||||
"origin": [
|
||||
-4.997916927067831,
|
||||
99.87502603949663,
|
||||
0.0
|
||||
],
|
||||
"x_dir": [
|
||||
0,
|
||||
0,
|
||||
1
|
||||
],
|
||||
"y_dir": [
|
||||
-0.04997916927067831,
|
||||
0.9987502603949663,
|
||||
0
|
||||
]
|
||||
},
|
||||
"name": "I11"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.circle.center",
|
||||
"params": {
|
||||
"center": [
|
||||
0,
|
||||
0
|
||||
],
|
||||
"radius": 18.0
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "sketch.finish",
|
||||
"params": {}
|
||||
},
|
||||
{
|
||||
"command": "solid.loft",
|
||||
"params": {
|
||||
"sections": [
|
||||
{
|
||||
"sketch": "I0"
|
||||
},
|
||||
{
|
||||
"sketch": "I1"
|
||||
},
|
||||
{
|
||||
"sketch": "I2"
|
||||
},
|
||||
{
|
||||
"sketch": "I3"
|
||||
},
|
||||
{
|
||||
"sketch": "I4"
|
||||
},
|
||||
{
|
||||
"sketch": "I5"
|
||||
},
|
||||
{
|
||||
"sketch": "I6"
|
||||
},
|
||||
{
|
||||
"sketch": "I7"
|
||||
},
|
||||
{
|
||||
"sketch": "I8"
|
||||
},
|
||||
{
|
||||
"sketch": "I9"
|
||||
},
|
||||
{
|
||||
"sketch": "I10"
|
||||
},
|
||||
{
|
||||
"sketch": "I11"
|
||||
}
|
||||
],
|
||||
"operation": "new",
|
||||
"name": "LoftI",
|
||||
"body_name": "TubeI"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "solid.combine",
|
||||
"params": {
|
||||
"target": "TubeO",
|
||||
"tools": [
|
||||
"TubeI"
|
||||
],
|
||||
"operation": "cut",
|
||||
"name": "Hollow"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
Reference in New Issue
Block a user