X-Git-Url: https://www.fi.muni.cz/~kas/git//home/kas/public_html/git/?a=blobdiff_plain;f=towelbar-antislide.scad;h=4a35d8a37724cbab0f029dfa2fedd9701f80075a;hb=5ea2183729d895f546814c9da9da7d6700ac93cc;hp=538e86ac90e01b631c599881d2df9763c734bf8e;hpb=4e9253e3098051aff607c03c9e00e8ebcdce8186;p=things.git diff --git a/towelbar-antislide.scad b/towelbar-antislide.scad index 538e86a..4a35d8a 100644 --- a/towelbar-antislide.scad +++ b/towelbar-antislide.scad @@ -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); }