]> www.fi.muni.cz Git - things.git/blobdiff - towelbar-antislide.scad
switch holder.scad
[things.git] / towelbar-antislide.scad
index 538e86ac90e01b631c599881d2df9763c734bf8e..4a35d8a37724cbab0f029dfa2fedd9701f80075a 100644 (file)
@@ -2,20 +2,24 @@ infty=200;
 eps=0.01;
 
 bar_diam = 20;
-body_h = 15;
-body_l = 100;
+body_h = 7;
+body_l = 150;
 
 wall = 1.5;
 
-spike_w = 1;
-spike_l = 2;
+spike_w_bot = 1;
+spike_w_top = 6;
+spike_l = 5;
+
+spike_count = 8;
+spike_dist = body_l/(spike_count + 1);
 
 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]);
+               translate([-spike_w_top/2, 0, body_h/2-eps])
+                       cube([spike_w_top, bar_diam/2+wall/2, eps]);
+               translate([-spike_w_bot/2, 0, -body_h/2])
+                       cube([spike_w_bot, bar_diam/2 + wall + spike_l, eps]);
        }
 }
 
@@ -24,10 +28,8 @@ difference() {
                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();
+               for (i = [-spike_count/2:1:spike_count/2])
+                       translate([i*spike_dist, 0, 0]) spike();
        }
                        
        // tube hole
@@ -36,8 +38,8 @@ difference() {
                        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
+       // cut the top
        translate([-infty/2, -infty/2, body_h/2]) cube(infty);
-       // cut the bottom rear half
+       // cut the rear half
        translate([-infty/2, -infty, -infty/2]) cube(infty);
 }