From: Jan "Yenya" Kasprzak Date: Sun, 8 Jan 2017 23:05:10 +0000 (+0100) Subject: antislide piece for towel bar - initial revision X-Git-Url: https://www.fi.muni.cz/~kas/git//home/kas/public_html/git/?a=commitdiff_plain;h=4e9253e3098051aff607c03c9e00e8ebcdce8186;p=things.git antislide piece for towel bar - initial revision --- diff --git a/towelbar-antislide.scad b/towelbar-antislide.scad new file mode 100644 index 0000000..538e86a --- /dev/null +++ b/towelbar-antislide.scad @@ -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); +}