chiark / gitweb /
fruit-bowl-stand: wip
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Sat, 1 Oct 2022 16:20:13 +0000 (17:20 +0100)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Sat, 1 Oct 2022 16:20:13 +0000 (17:20 +0100)
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
fruit-bowl-stand.scad [new file with mode: 0644]

diff --git a/fruit-bowl-stand.scad b/fruit-bowl-stand.scad
new file mode 100644 (file)
index 0000000..634f4d6
--- /dev/null
@@ -0,0 +1,51 @@
+// -*- C -*-
+
+include <utils.scad>
+
+across = 12.5;
+r0 = 71;
+h = 36;
+feet = 5;
+
+// calculated
+
+r_eff_across = across/2 * cos(360/8/2);
+
+effective_corner = across/2 * [ sin(360/8/2), cos(360/8/2) ];
+
+r_mid = r0 + effective_corner[0];
+
+h_mid = h - effective_corner[1] - r_eff_across;;
+
+module XSection(){
+  rotate(360/8/2)
+    circle(r= across/2, $fn=8);
+}
+
+module Ring(){
+  rotate_extrude($fa=1)
+    translate([r_mid, 0,0])
+    XSection();
+}
+
+module Foot(){
+  rotate([180,0,0])
+    linear_extrude(h_mid)
+    XSection();
+}
+
+module Stand(){
+  Ring();
+  intersection(){
+    for (a=[0:feet-1]) {
+      rotate([0,0, 360*a/feet])
+       translate([-r_mid, 0,0])
+       Foot();
+    }
+
+    linextr(-across - h, across)
+      circle(r= r_mid + r_eff_across, $fa=1);
+  }
+}
+
+Stand();