From 6638ac5e4ade52e447306402a026aa0147705c3f Mon Sep 17 00:00:00 2001 From: "Jan \"Yenya\" Kasprzak" Date: Wed, 26 Nov 2014 21:45:46 +0100 Subject: [PATCH] New toothbrush holder with 9x2 config --- toothbrush-holder-9x2.scad | 90 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 90 insertions(+) create mode 100644 toothbrush-holder-9x2.scad diff --git a/toothbrush-holder-9x2.scad b/toothbrush-holder-9x2.scad new file mode 100644 index 0000000..eee5bfd --- /dev/null +++ b/toothbrush-holder-9x2.scad @@ -0,0 +1,90 @@ +eps=0.01; +infty=400; + +off_center = 112; +ext_angle = 56; + +main_depth = 42; + +module off_c() { + translate([0, -off_center, 0]) + children(); +}; + +module off_c_rot(angle) { + off_c() + rotate([0, 0, angle]) + translate([0, off_center, 0]) + children(); +} + +module interdental_hole() { + translate([0, 0, -infty/2]) + cylinder(r=4.1, h=infty); + translate([0, 0, 20]) + scale ([2, 1, 1]) sphere(10, center=true); +} + +module toothbrush_hole() { + difference() { + union() { + translate([0, 0, 2]) + cylinder(r1=4, r2=8, h = 13); + translate([0, 0, -1]) + cylinder(r=4, h = 3+eps); + }; + translate([-infty/2, -4.5-infty, -infty/2]) + cube(infty); + } + translate([-3, 0, -infty/2]) cube([6, infty, infty]); +} + +module body() { + intersection() { + off_c() rotate([0, 0, 0]) { + cylinder(r = main_depth + off_center, h = 12, $fn = 60); + //translate([0, 0, 12-eps]) + // cylinder(r1 = 150, r2 = 0,h = 10, $fn = 60); + }; + translate([-infty/2, 0, -infty/2]) cube(infty); + off_c_rot(ext_angle/2) translate([0, -infty/2, -infty/2]) cube(infty); + off_c_rot(-ext_angle/2) translate([0, -infty/2, -infty/2]) + scale([-1, 1, 1]) cube(infty); + }; + // rear-side protrusion + translate([-50, 1, 6]) + rotate([0, 90, 0]) + cylinder(r=3, h=40, $fn=4); + // rear-side protrusion + translate([10, 1, 6]) + rotate([0, 90, 0]) + cylinder(r=3, h=40, $fn=4); + // off_c() cube(1, center=true); +}; + +module body_neg() { + // screw head hole + rotate([-90, 0, 0]) + translate([0,-6,5]) + cylinder(r=3.5, h=infty); + // screw head + rotate([-90, 0, 0]) + translate([0,-6,-infty/2]) + cylinder(r=1.75, h=infty, $fn=6); + + for (angle = [-24:6:24]) { + off_c_rot(angle) + translate([0, 38, 0]) + render() toothbrush_hole(); + for (dist = [17,27]) + off_c_rot(angle) + translate([0, dist, 0]) + interdental_hole(); + } +} + +difference() { + body(); + body_neg(); +} + -- 2.43.0