Y axis redesign

Y endstop moved on Y-motor mount, Y axis moved up and holes for bearing
expanded
This commit is contained in:
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
// 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.5;
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, $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(){
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);
}else{
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);
}
translate(v=[30,0,0]) difference(){
horizontal_bearing_base(2);
#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);
cylinder(h = 58, r=bearing_size/2, $fn = 90);
}
module vertical_bearing_holes(){
translate(v=[0,0,-1]) poly_cylinder(h = 62, r=bearing_diameter/2);
rotate(a=[0,0,-70]) 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();
// 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.5;
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, $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_test(){
difference(){
horizontal_bearing_base(1);
horizontal_bearing_holes(1);
}
translate(v=[30,0,0]) difference(){
horizontal_bearing_base(2);
#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);
cylinder(h = 58, r=bearing_size/2, $fn = 90);
}
module vertical_bearing_holes(){
translate(v=[0,0,-1]) poly_cylinder(h = 62, r=bearing_diameter/2);
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);

View File

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

View File

@ -1,46 +1,77 @@
// PRUSA iteration3
// Y motor mount
// GNU GPL v3
// Josef Průša <iam@josefprusa.cz> and contributors
// http://www.reprap.org/wiki/Prusa_Mendel
// http://prusamendel.org
//include <configuration.scad>
module y_motor_base(){
// Motor holding part
translate(v = [29,-21+50,0]){
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);
// Joins motor holder and rod plate
translate(v = [-29,-21,0]) cube(size = [14,30,10]);
}
// Front holding part
translate(v = [0,10,0]) cylinder(h = 10, r=8, $fn=80);
translate(v = [0,20,5])cube(size = [16,20,10], center=true);
translate(v = [0,30,0])cylinder(h = 10, r=8, $fn=80);
}
module y_motor_holes(){
translate(v = [29,-21+50,0]){
// Screw head holes
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
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);
}
translate(v = [0,10,-1]) cylinder(h = 12, r=4.1, $fn=50);
translate(v = [0,30,-1]) cylinder(h = 12, r=4.1, $fn=50);
}
// Final part
module y_motor(){
difference(){
y_motor_base();
y_motor_holes();
}
}
y_motor();
// PRUSA iteration3
// Y motor mount
// GNU GPL v3
// Josef Průša <iam@josefprusa.cz> and contributors
// http://www.reprap.org/wiki/Prusa_Mendel
// http://prusamendel.org
//include <configuration.scad>
module y_motor_base(){
// Motor holding part
translate(v = [29,-21+50,0]){
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);
//end stop
translate(v = [-10.5,+15.5,0]) cylinder(h = 10, r=5.5, $fn=50);
translate([-12,0,0]) cube([7, 15, 10]);
translate([-16,16,0]) cube([6, 5, 10]);
translate([-21,8,0]) cube([18, 5, 28]);
// Joins motor holder and rod plate
translate(v = [-29,-21,0]) cube(size = [14,30,10]);
}
// Front holding part
translate(v = [0,10,0]) cylinder(h = 10, r=8, $fn=80);
translate(v = [0,20,5])cube(size = [16,20,10], center=true);
translate(v = [0,30,0])cylinder(h = 10, r=8, $fn=80);
}
module y_motor_holes(){
translate(v = [29,-21+50,0]){
// Screw head holes
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
translate(v = [-15.5,-15.5,7]) cylinder(h = 7, r=3.5, $fn=30);
translate(v = [-15.5,+15.5,7]) cylinder(h = 25, r=3.5, $fn=30);
}
translate(v = [0,10,-1]) cylinder(h = 12, r=4.1, $fn=50);
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);
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