From 4e9253e3098051aff607c03c9e00e8ebcdce8186 Mon Sep 17 00:00:00 2001 From: "Jan \"Yenya\" Kasprzak" Date: Mon, 9 Jan 2017 00:05:10 +0100 Subject: [PATCH] antislide piece for towel bar - initial revision --- towelbar-antislide.scad | 43 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 towelbar-antislide.scad 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); +} -- 2.43.0