Double_Helix_Toothbrush_Holder/Double Helix Toothbrush Holder Oral-B Revision.scad
2024-01-07 17:28:26 -08:00

70 lines
3.5 KiB
OpenSCAD

/* --------------------------------------------------------------------------------------- *
* Double Helix Toothbrush Holder Oral-B Revision - Copyright Matthew McClain 2024 *
* *
* This project is licensed as such: *
* You are free to use this code for personal use. If you alter or include this code *
* in your own projects you must include credit to my name and a link to this project *
* either to the printables.com page, or mcgit repository. *
* Commercial use is prohibited without a commercial license. This includes either *
* selling the code or model files derived from the code, as well as printing for *
* the purpose of selling. I am more then happy to offer a commerical license for *
* a reasonable offer. Please contact me via printables.com or mcgit if you are *
* interested in a commercial license. *
* *
* Parameters: *
* There are 6 parameters to this model as follows, *
* *
* height : The height of the helix in mm. The total model height will be *
* this height + thickness/2 +1 *
* radius : The radius of the entire toothbrush holder *
* thickness : The radius of the helix spirals *
* brushhole : This is the diameter of the hole the toothbrish will sit in *
* tubethickness: This will be the tube wall thickness of the toothbrush holder *
* brushes : Total number of toothbrushes the holder will have *
* *
* --------------------------------------------------------------------------------------- */
$fn = 60;
height = 100; // This is the total height of the toothbrush holder
radius = 35; // This is the total radius of the tothbrush holder
thickness = 32; // This is the thickness of the toothbrush holder twists
brushhole = 26; // This is the thickness of the hole a toothbrush will sit in
tubethickness = 2; // This is the wall thickness of the toothbrush tube walls
brushes = 5; // Total number of brushes
difference() {
union() {
for (i=[0:height]) {
// Twist 1
hull() {
rotate([0,0,(360*i)/height]) translate([radius,0,i]) sphere(d=thickness);
rotate([0,0,(360*(i+1))/height]) translate([radius,0,i+1]) sphere(d=thickness);
}
// Twist 2
hull() {
rotate([0,0,(360*(i-(height/2)))/height]) translate([radius,0,i]) sphere(d=thickness);
rotate([0,0,(360*((i+1)-(height/2)))/height]) translate([radius,0,i+1]) sphere(d=thickness);
}
// Base
hull() {
rotate([0,0,(360*i)/height]) translate([radius,0,0]) sphere(d=thickness);
rotate([0,0,(360*(i+1))/height]) translate([radius,0,0]) sphere(d=thickness);
}
// Top Ring
hull() {
rotate([0,0,(360*i)/height]) translate([radius,0,height+1]) sphere(d=thickness);
rotate([0,0,(360*(i+1))/height]) translate([radius,0,height+1]) sphere(d=thickness);
}
}
// Toothbrush pillar
for (i=[0:brushes-1]) {
rotate([0,0,(360/brushes)*i]) translate([radius,0,0]) cylinder(d=brushhole+(tubethickness*2),h=height);
}
}
// Toothbrush Hole
for (i=[0:brushes-1]) {
rotate([0,0,(360/brushes)*i]) translate([radius,0,radius/2]) cylinder(d=brushhole,h=height);
}
}