90 lines
3.2 KiB
OpenSCAD
90 lines
3.2 KiB
OpenSCAD
// PRUSA iteration3
|
|
// Bearing holders
|
|
// GNU GPL v3
|
|
// Josef Průša <iam@josefprusa.cz> and contributors
|
|
// http://www.reprap.org/wiki/Prusa_Mendel
|
|
// http://prusamendel.org
|
|
|
|
use <polyholes.scad>
|
|
|
|
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);
|