]> www.fi.muni.cz Git - things.git/commitdiff
antislide piece for towel bar - initial revision
authorJan "Yenya" Kasprzak <kas@fi.muni.cz>
Sun, 8 Jan 2017 23:05:10 +0000 (00:05 +0100)
committerJan "Yenya" Kasprzak <kas@fi.muni.cz>
Sun, 8 Jan 2017 23:05:43 +0000 (00:05 +0100)
towelbar-antislide.scad [new file with mode: 0644]

diff --git a/towelbar-antislide.scad b/towelbar-antislide.scad
new file mode 100644 (file)
index 0000000..538e86a
--- /dev/null
@@ -0,0 +1,43 @@
+infty=200;
+eps=0.01;
+
+bar_diam = 20;
+body_h = 15;
+body_l = 100;
+
+wall = 1.5;
+
+spike_w = 1;
+spike_l = 2;
+
+module spike() {
+       hull() {
+               translate([-body_h/4, 0, -eps])
+                       cube([body_h/2, bar_diam/2+wall/2, eps]);
+               translate([-spike_w/2, 0, -body_h/2])
+                       cube([spike_w, bar_diam/2 + wall + spike_l, eps]);
+       }
+}
+
+difference() {
+       union() {
+               translate([-body_l/2, 0, 0])
+                       rotate([0, 90, 0])
+                               cylinder(r = bar_diam/2 + wall, h = body_l);
+               for (x = [-37.5:15:37.5])
+                       translate([x, 0, 0]) spike();
+               for (x = [-45:15:45])
+                       translate([x, 0, 0]) scale([1, 1, -1]) spike();
+       }
+                       
+       // tube hole
+       translate([-body_l/2-eps, 0, 0])
+               rotate([0, 90, 0])
+                       cylinder(r = bar_diam/2, h = body_l + 2*eps);
+       // cut the bottom
+       translate([-infty/2, -infty/2, -infty-body_h/2]) cube(infty);
+       // cut the bottom
+       translate([-infty/2, -infty/2, body_h/2]) cube(infty);
+       // cut the bottom rear half
+       translate([-infty/2, -infty, -infty/2]) cube(infty);
+}