X-Git-Url: https://www.fi.muni.cz/~kas/git//home/kas/public_html/git/?a=blobdiff_plain;f=toothbrush-holder-9x3.scad;h=831a7c38ecd458c53e6ac4ada378db1c6f1df32a;hb=8b2e3fb76893705ae9dda1fc8c5475eb0bb9410f;hp=dbe21001835faba6481c80d3fd15cb6ac9f1e2f6;hpb=6121b091cfb6e5614f5853fb5396192649ad1c1b;p=things.git diff --git a/toothbrush-holder-9x3.scad b/toothbrush-holder-9x3.scad index dbe2100..831a7c3 100644 --- a/toothbrush-holder-9x3.scad +++ b/toothbrush-holder-9x3.scad @@ -12,53 +12,46 @@ module cut_ellipse(height, dist, x) { }; }; +module clip() { + translate([-1.5, 0, -1]) + cube([1.5, 8, 9]); + translate([0, 0, -1]) difference() { + cube([3, 3, 9]); + translate([3-epsilon, 3-epsilon, -epsilon]) + cylinder(r=3, h=9+2*epsilon); + }; + translate([0, 0, -1]) + difference() { + translate([-1, 8, 0]) + cylinder(r=2, h=9); + translate([-infty/2-1.5+epsilon, 0, 0]) + cube(infty, center=true); + }; +}; + module stem() { hull() { cut_ellipse(25, 31, 4); cut_ellipse(10, 24, 6); }; + + // left-side and right-side clip difference() { - union() { - translate([3.75, 31-epsilon, 0]) - rotate([0, 15, 0]) { - cube([1.5, 8, 8]); - difference() { - translate([1, 8, 0]) - cylinder(r=2, h=8); - translate([infty/2+1.5-epsilon, 0, 0]) - cube(infty, center=true); - }; - }; - translate([-3.75, 31-epsilon, 0]) - rotate([0, -15, 0]) { - translate([-1.5, 0, 0]) - cube([1.5, 8, 8]); - difference() { - translate([-1, 8, 0]) - cylinder(r=2, h=8); - translate([-infty/2-1.5+epsilon, 0, 0]) - cube(infty, center=true); - }; + union() { + translate([3.75, 31-epsilon, 0]) + rotate([0, 15, 0]) + scale([-1, 1, 1]) + clip(); + + translate([-3.75, 31-epsilon, 0]) + rotate([0, -15, 0]) + clip(); }; - }; - translate([0, 0, -infty/2]) - cube(infty, center=true); - }; -/* - hull() { - cut_ellipse(12, 40, 0.5); - cut_ellipse( 8, 35, 2); - }; - hull() { - cut_ellipse(12, 35, 2); - cut_ellipse(10, 25, 5); - }; - hull() { - cut_ellipse(10, 25, 5); - cut_ellipse(12, 10, 4); + translate([0, 0, -infty/2]) + cube(infty, center=true); }; -*/ + for (dist=[0:9.5:19]) translate([0, dist, 0]) interdental_cylinder(); @@ -118,13 +111,20 @@ module body() { cube(infty, center=true); */ }; + // rear-side protrusion translate([-50, 1, 6]) - rotate([0, 90, 0]) - cylinder(r=2.5, h=100, $fn=4); + 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); }; + // screw head hole rotate([-90, 0, 0]) translate([0,-6,3]) cylinder(r=3.5, h=55); + // screw head rotate([-90, 0, 0]) translate([0,-6,-infty/2]) cylinder(r=1.75, h=infty, $fn=6);