Y axis redesign

Y endstop moved on Y-motor mount, Y axis moved up and holes for bearing
expanded
dev
michalprusa 2016-04-24 13:33:03 +02:00
parent 174f922b6f
commit b2b6a3ee95
5 changed files with 17013 additions and 13653 deletions

View File

@ -1,84 +1,81 @@
// PRUSA iteration3 // PRUSA iteration3
// Bearing holders // Bearing holders
// GNU GPL v3 // GNU GPL v3
// Josef Průša <iam@josefprusa.cz> and contributors // Josef Průša <iam@josefprusa.cz> and contributors
// http://www.reprap.org/wiki/Prusa_Mendel // http://www.reprap.org/wiki/Prusa_Mendel
// http://prusamendel.org // http://prusamendel.org
use <polyholes.scad> use <polyholes.scad>
bearing_diameter = 14.5; bearing_diameter = 14.5;
module horizontal_bearing_base(bearings=1){ module horizontal_bearing_base(bearings=1){
translate(v=[0,0,6]) cube(size = [24,8+bearings*25,12], center = true); translate(v=[0,0,6]) cube(size = [24,8+bearings*25,12], center = true);
} }
module horizontal_bearing_holes(bearings=1){ module horizontal_bearing_holes(bearings=1){
cutter_lenght = 10+bearings*25; cutter_lenght = 10+bearings*25;
one_holder_lenght = 8+25; one_holder_lenght = 8+25;
holder_lenght = 8+bearings*25; holder_lenght = 8+bearings*25;
// Main bearing cut // Main bearing cut
difference(){ 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, $fn=50); 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, $fn=50);
// Bearing retainers // 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);
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 cutouts
ziptie_cut_ofset = 0; ziptie_cut_ofset = 0;
for ( i = [0 : bearings-1] ){ for ( i = [0 : bearings-1] ){
// For easier positioning I move them by half of one // For easier positioning I move them by half of one
// bearing holder then add each bearign lenght and then center again // 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(){ translate(v=[0,-holder_lenght/2,0]) translate(v=[0,one_holder_lenght/2+i*25,0]) difference(){
union(){ union(){
if(bearings == 1){ 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,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); }
}else{ translate(v=[0,12,12]) rotate(a=[90,0,0]) translate(v=[0,0,0]) cylinder(h = 24, r=9, $fn=50);
translate(v=[0,2-6,12]) rotate(a=[90,0,0]) translate(v=[0,0,0]) cylinder(h = 4, r=11.5, $fn=50); }
translate(v=[0,2+6,12]) rotate(a=[90,0,0]) translate(v=[0,0,0]) cylinder(h = 4, r=11.5, $fn=50); }
}
} }
translate(v=[0,11,12]) rotate(a=[90,0,0]) translate(v=[0,0,0]) cylinder(h = 25, r=9, $fn=50);
} module horizontal_bearing_test(){
} difference(){
horizontal_bearing_base(1);
} horizontal_bearing_holes(1);
}
module horizontal_bearing_test(){ translate(v=[30,0,0]) difference(){
difference(){ horizontal_bearing_base(2);
horizontal_bearing_base(1); #horizontal_bearing_holes(2);
horizontal_bearing_holes(1); }
} translate(v=[60,0,0]) difference(){
translate(v=[30,0,0]) difference(){ horizontal_bearing_base(3);
horizontal_bearing_base(2); horizontal_bearing_holes(3);
#horizontal_bearing_holes(2); }
} }
translate(v=[60,0,0]) difference(){
horizontal_bearing_base(3);
horizontal_bearing_holes(3);
} 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);
thinwall = 3; cylinder(h = 58, r=bearing_size/2, $fn = 90);
bearing_size = bearing_diameter + 2 * thinwall; }
module vertical_bearing_base(){ module vertical_bearing_holes(){
translate(v=[-2-bearing_size/4,0,29]) cube(size = [4+bearing_size/2,bearing_size,58], center = true); translate(v=[0,0,-1]) poly_cylinder(h = 62, r=bearing_diameter/2);
cylinder(h = 58, r=bearing_size/2, $fn = 90); rotate(a=[0,0,-40]) translate(v=[bearing_diameter/2-2.9,-0.5,0.5]) cube(size = [thinwall*2,1,62]);
}
}
module vertical_bearing_holes(){
translate(v=[0,0,-1]) poly_cylinder(h = 62, r=bearing_diameter/2); //difference(){
rotate(a=[0,0,-70]) translate(v=[bearing_diameter/2-2.9,-0.5,0.5]) cube(size = [thinwall*2,1,62]); //vertical_bearing_base();
//vertical_bearing_holes();
} //}
//horizontal_bearing_test();
difference(){ horizontal_bearing_base(1);
vertical_bearing_base(); horizontal_bearing_holes(1);
vertical_bearing_holes();
}
//horizontal_bearing_test();

View File

@ -1,65 +1,65 @@
// PRUSA iteration3 // PRUSA iteration3
// Y frame corners // Y frame corners
// GNU GPL v3 // GNU GPL v3
// Josef Průša <iam@josefprusa.cz> and contributors // Josef Průša <iam@josefprusa.cz> and contributors
// http://www.reprap.org/wiki/Prusa_Mendel // http://www.reprap.org/wiki/Prusa_Mendel
// http://prusamendel.org // http://prusamendel.org
module corner_base(){ module corner_base(){
translate([-9,-11,0])cube([18,22,47]); translate([-9,-11,0])cube([18,22,49]);
} }
module corner_holes(){ module corner_holes(){
translate([-11,-11,0]){ translate([-11,-11,0]){
// Bottom hole // Bottom hole
translate([0,11,10]) rotate([0,90,0]) translate([0,0,-5]) cylinder(h = 270, r=4.4, $fn=30); translate([0,11,10]) rotate([0,90,0]) translate([0,0,-5]) cylinder(h = 270, r=4.4, $fn=30);
// Top hole // Top hole
translate([0,11,30]) rotate([0,90,0]) translate([0,0,-5]) cylinder(h = 270, r=4.4, $fn=30); translate([0,11,30]) rotate([0,90,0]) translate([0,0,-5]) cylinder(h = 270, r=4.4, $fn=30);
// Middle hole // Middle hole
translate([11,0,20]) rotate([0,0,90]) rotate([0,90,0]) translate([0,0,-5]) cylinder(h = 270, r=5.4, $fn=30); translate([11,0,20]) rotate([0,0,90]) rotate([0,90,0]) translate([0,0,-5]) cylinder(h = 270, r=5.4, $fn=30);
// Washer hole // Washer hole
translate([11,-3,20]) rotate([0,0,90]) rotate([0,90,0]) translate([0,0,-5]) cylinder(h = 10, r=11, $fn=30); translate([11,-3,20]) rotate([0,0,90]) rotate([0,90,0]) translate([0,0,-5]) cylinder(h = 10, r=11, $fn=30);
// Top smooth rod insert // Top smooth rod insert
// Smooth rod place // Smooth rod place
translate([11,2,45]) rotate([0,90,90]) cylinder(h = 12, r=4.2, $fn=30); translate([11,1.5,47]) rotate([0,90,90]) cylinder(h = 12.5, r=4.2, $fn=30);
// Ziptie // Ziptie
translate([-5,9,39]) cube([30,3.5,2]); translate([-5,9,41]) cube([30,3.5,2]);
// LM8UU keepout // LM8UU keepout
difference(){ difference(){
translate([11,14,45]) rotate([0,90,90]) cylinder(h = 270, r=8, $fn=30); translate([11,14,46]) rotate([0,90,90]) cylinder(h = 270, r=8, $fn=30);
translate([21,14,60]) rotate([0,90,90]) cube([20,20,30]); translate([21,14,62]) rotate([0,90,90]) cube([20,20,30]);
} }
translate([21,14,60-0.2]) rotate([0,90,90]) cube([20,20,0.2]); translate([21,14,62-0.2]) rotate([0,90,90]) cube([20,20,0.2]);
translate([21,14,40]) rotate([0,90,90]) cube([0.2,20,20]); translate([21,14,42]) rotate([0,90,90]) cube([0.2,20,20]);
} }
} }
module corner_fancy(){ module corner_fancy(){
// Side corner cutouts // Side corner cutouts
translate([-8,-9,0]) rotate([0,0,-45-180]) translate([-15,0,-1]) cube([30,30,51]); translate([-8,-9,0]) rotate([0,0,-45-180]) translate([-15,0,-1]) cube([30,30,51]);
translate([8,-9,0]) rotate([0,0,45-180]) translate([-15,0,-1]) cube([30,30,51]); translate([8,-9,0]) rotate([0,0,45-180]) translate([-15,0,-1]) cube([30,30,51]);
// Top corner cutouts // Top corner cutouts
translate([7,0,49-2]) rotate([0,45,0]) translate([-15,-15,0]) cube([30,30,30]); translate([7,0,49]) rotate([0,45,0]) translate([-15,-15,0]) cube([30,30,30]);
translate([-7,0,49-2]) rotate([0,-45,0]) translate([-15,-15,0]) cube([30,30,30]); translate([-7,0,49]) rotate([0,-45,0]) translate([-15,-15,0]) cube([30,30,30]);
rotate([0,0,90]){ rotate([0,0,90]){
translate([-9,0,49-2]) rotate([0,-45,0]) translate([-15,-15,0]) cube([30,30,30]); translate([-9.5,0,49]) rotate([0,-45,0]) translate([-15,-15,0]) cube([30,30,30]);
} }
} }
// Final part // Final part
module corner(){ module corner(){
// Rotate the part for better printing // Rotate the part for better printing
translate([0,0,11]) rotate([-90,0,0]) difference(){ translate([0,0,11]) rotate([-90,0,0]) difference(){
corner_base(); corner_base();
corner_holes(); corner_holes();
corner_fancy(); corner_fancy();
} }
} }
rotate([90,0,0]) corner(); rotate([90,0,0]) corner();

View File

@ -1,46 +1,77 @@
// PRUSA iteration3 // PRUSA iteration3
// Y motor mount // Y motor mount
// GNU GPL v3 // GNU GPL v3
// Josef Průša <iam@josefprusa.cz> and contributors // Josef Průša <iam@josefprusa.cz> and contributors
// http://www.reprap.org/wiki/Prusa_Mendel // http://www.reprap.org/wiki/Prusa_Mendel
// http://prusamendel.org // http://prusamendel.org
//include <configuration.scad> //include <configuration.scad>
module y_motor_base(){ module y_motor_base(){
// Motor holding part // Motor holding part
translate(v = [29,-21+50,0]){ translate(v = [29,-21+50,0]){
translate(v = [-21+4.5,0,5]) cube(size = [9,31,10], center=true); translate(v = [-21+4.5,0,5]) cube(size = [9,31,10], center=true);
translate(v = [-15.5,-15.5,0]) cylinder(h = 10, r=5.5, $fn=50); translate(v = [-15.5,-15.5,0]) cylinder(h = 10, r=5.5, $fn=50);
translate(v = [-15.5,+15.5,0]) cylinder(h = 10, r=5.5, $fn=50); translate(v = [-15.5,+15.5,0]) cylinder(h = 10, r=5.5, $fn=50);
// Joins motor holder and rod plate
translate(v = [-29,-21,0]) cube(size = [14,30,10]); //end stop
} translate(v = [-10.5,+15.5,0]) cylinder(h = 10, r=5.5, $fn=50);
// Front holding part translate([-12,0,0]) cube([7, 15, 10]);
translate(v = [0,10,0]) cylinder(h = 10, r=8, $fn=80); translate([-16,16,0]) cube([6, 5, 10]);
translate(v = [0,20,5])cube(size = [16,20,10], center=true); translate([-21,8,0]) cube([18, 5, 28]);
translate(v = [0,30,0])cylinder(h = 10, r=8, $fn=80);
} // Joins motor holder and rod plate
translate(v = [-29,-21,0]) cube(size = [14,30,10]);
module y_motor_holes(){ }
translate(v = [29,-21+50,0]){ // Front holding part
// Screw head holes translate(v = [0,10,0]) cylinder(h = 10, r=8, $fn=80);
translate(v = [-15.5,-15.5,-1]) cylinder(h = 10, r=1.8, $fn=20); translate(v = [0,20,5])cube(size = [16,20,10], center=true);
translate(v = [-15.5,+15.5,-1]) cylinder(h = 10, r=1.8, $fn=20); translate(v = [0,30,0])cylinder(h = 10, r=8, $fn=80);
// Screw holes }
translate(v = [-15.5,-15.5,7]) cylinder(h = 7, r=3.5, $fn=30);
translate(v = [-15.5,+15.5,7]) cylinder(h = 7, r=3.5, $fn=30); module y_motor_holes(){
} translate(v = [29,-21+50,0]){
translate(v = [0,10,-1]) cylinder(h = 12, r=4.1, $fn=50); // Screw head holes
translate(v = [0,30,-1]) cylinder(h = 12, r=4.1, $fn=50); translate(v = [-15.5,-15.5,-1]) cylinder(h = 10, r=1.8, $fn=20);
} translate(v = [-15.5,+15.5,-1]) cylinder(h = 10, r=1.8, $fn=20);
// Screw holes
// Final part translate(v = [-15.5,-15.5,7]) cylinder(h = 7, r=3.5, $fn=30);
module y_motor(){ translate(v = [-15.5,+15.5,7]) cylinder(h = 25, r=3.5, $fn=30);
difference(){ }
y_motor_base(); translate(v = [0,10,-1]) cylinder(h = 12, r=4.1, $fn=50);
y_motor_holes(); translate(v = [0,30,-1]) cylinder(h = 12, r=4.1, $fn=50);
}
} //endstop
translate([25,29,0]) cylinder(h = 20, r=8, $fn=20);
y_motor();
translate([20,45,15]) rotate([90,0,0]) cylinder(h = 10, r=0.8, $fn=20);
translate([20,42.2,15]) rotate([90,0,0]) cylinder(h = 2, r1=1.2, r2=0.8, $fn=20);
translate([20,45,24]) rotate([90,0,0]) cylinder(h = 10, r=0.8, $fn=20);
translate([20,42.2,24]) rotate([90,0,0]) cylinder(h = 2, r1=1.2, r2=0.8, $fn=20);
// endstop corner cutout
translate([-5,35,28]) rotate([0,45,0]) cube([15, 10, 15]);
translate([-1,41,10]) cube([15, 5, 15]);
translate([27,33,0]) rotate([0,0,45]) cube([5, 5, 28]);
translate([19,32,0]) rotate([0,30,0]) cube([8, 20, 18]);
translate([24.5,32,17]) rotate([0,45,0]) cube([2, 20, 2]);
translate([23,32,29]) rotate([0,45,0]) cube([5, 20, 5]);
}
//#translate([18,40,10]) cube([8, 5, 5]);
// Final part
module y_motor(){
difference(){
y_motor_base();
y_motor_holes();
}
}
y_motor();

9818
Printed-Parts/stl/y-corners.stl Normal file → Executable file

File diff suppressed because it is too large Load Diff

20430
Printed-Parts/stl/y-motor.stl Normal file → Executable file

File diff suppressed because it is too large Load Diff