// PRUSA iteration3 // Bearing holders // GNU GPL v3 // Josef Průša and contributors // http://www.reprap.org/wiki/Prusa_Mendel // http://prusamendel.org use bearing_diameter = 14.95; module horizontal_bearing_base(bearings = 1) { translate(v = [0, 0, 6]) cube(size = [24, 8 + bearings * 25, 12], center = true); } module horizontal_bearing_holes(bearings = 1) { cutter_lenght = 10 + bearings * 25; one_holder_lenght = 8 + 25; holder_lenght = 8 + bearings * 25; // Main bearing cut difference() { translate(v = [0, 0, 12]) rotate(a = [90, 0, 0]) translate(v = [0, 0, -cutter_lenght / 2]) cylinder(h = cutter_lenght, r = (bearing_diameter / 2) + 0.2, $fn = 50); // Bearing retainers translate(v = [0, 1 - holder_lenght / 2, 3]) cube(size = [24, 6, 8], center = true); translate(v = [0, -1 + holder_lenght / 2, 3]) cube(size = [24, 6, 8], center = true); } // Ziptie cutouts ziptie_cut_ofset = 0; for (i = [0 : bearings - 1]) { // For easier positioning I move them by half of one // bearing holder then add each bearign lenght and then center again translate(v = [0, -holder_lenght / 2, 0]) translate(v = [0, one_holder_lenght / 2 + i * 25, 0]) difference() { union() { translate(v = [0, 2 - 8.5, 12]) rotate(a = [90, 0, 0]) translate(v = [0, 0, 0]) cylinder(h = 4, r = 11.5, $fn = 50); translate(v = [0, 2 + 8.5, 12]) rotate(a = [90, 0, 0]) translate(v = [0, 0, 0]) cylinder(h = 4, r = 11.5, $fn = 50); } translate(v = [0, 12, 12]) rotate(a = [90, 0, 0]) translate(v = [0, 0, 0]) cylinder(h = 24, r = 9, $fn = 50); } } } module horizontal_bearing_holes_nozip(bearings = 1) { cutter_lenght = 10 + bearings * 25; one_holder_lenght = 8 + 25; holder_lenght = 8 + bearings * 25; // Main bearing cut difference() { translate(v = [0, 0, 12]) rotate(a = [90, 0, 0]) translate(v = [0, 0, -cutter_lenght / 2]) cylinder(h = cutter_lenght, r = (bearing_diameter / 2) + 0.2, $fn = 50); // Bearing retainers translate(v = [0, 1 - holder_lenght / 2, 3]) cube(size = [24, 6, 8], center = true); translate(v = [0, -1 + holder_lenght / 2, 3]) cube(size = [24, 6, 8], center = true); } } thinwall = 3; bearing_size = bearing_diameter + 2 * thinwall; module vertical_bearing_base() { translate(v = [-2 - bearing_size / 4, 0, 29]) cube(size = [4 + bearing_size / 2, bearing_size, 58], center = true); cylinder(h = 58, r = bearing_size / 2, $fn = 90); } module vertical_bearing_holes() { translate(v = [0, 0, -1]) poly_cylinder(h = 62, r = (14.80 / 2)); translate(v = [0, 0, -0.1]) cylinder(r1 = (bearing_diameter / 2) + 0.7, r2 = (bearing_diameter / 2), h = 0.5); rotate(a = [0, 0, -40]) translate(v = [bearing_diameter / 2 - 2.9, -0.5, 0.5]) cube(size = [thinwall * 2, 1, 62]); } //difference(){ //vertical_bearing_base(); vertical_bearing_holes(); //} //horizontal_bearing_test(); //horizontal_bearing_base(1); //horizontal_bearing_holes(1); //horizontal_bearing_holes_nozip(1);