Original-Prusa-i3/SCAD/mmu2-idler-body.scad

224 lines
9.2 KiB
OpenSCAD

// PRUSA MMU2
// idler-body
// GNU GPL v3
// Josef Průša <iam@josefprusa.cz> and contributors
// http://www.reprap.org/wiki/Prusa_Mendel
// http://prusamendel.org
module motor_screws()
{
translate([-34,15.5,15.5]) rotate([0,90,0]) cylinder(r=1.65, h=10, $fn=50);
translate([-24.1,15.5,15.5]) rotate([0,90,0]) cylinder(r=3.2, h=15, $fn=50);
translate([-24.1,15.5-3.2,15.5]) cube([15,6.4,10]);
translate([-10,15.5-2,15.5]) rotate([0,-30,0]) cube([20,4,10]);
translate([-34,-15.5,15.5]) rotate([0,90,0]) cylinder(r=1.65, h=10, $fn=50);
translate([-24.1,-15.5,15.5]) rotate([0,90,0]) cylinder(r=3.2, h=15, $fn=50);
translate([-24.1,-15.5-3.2,15.5]) cube([15,6.4,10]);
translate([-10,-15.5-2,15.5]) rotate([0,-30,0]) cube([20,4,10]);
translate([-34,15.5,-15.5]) rotate([0,90,0]) cylinder(r=1.65, h=10, $fn=50);
translate([-24.1,15.5,-15.5]) rotate([0,90,0]) cylinder(r=3.2, h=15, $fn=50);
translate([-34,-15.5,-15.5]) rotate([0,90,0]) cylinder(r=1.65, h=10, $fn=50);
translate([-24.1,-15.5,-15.5]) rotate([0,90,0]) cylinder(r=3.2, h=15, $fn=50);
}
module idler_spring_screws()
{
translate([0,-27,-4]) rotate([0,0,0]) cylinder(r=1.7, h=30, $fn=50);
translate([0,-27.5,-4]) rotate([0,0,0]) cylinder(r=1.7, h=30, $fn=50);
translate([0,-26.5,-4]) rotate([0,0,0]) cylinder(r=1.7, h=30, $fn=50);
translate([-1.7,-27.5,-4.2]) cube([1.7*2,1,10]);
translate([0,-27,9]) rotate([-175,0,0]) cylinder(r=1.7, h=30, $fn=50);
translate([0,-27,9]) rotate([-185,0,0]) cylinder(r=1.7, h=30, $fn=50);
difference()
{
union()
{
translate([0,-27,5.5]) rotate([0,0,0]) cylinder(r=3.5, h=30, $fn=50);
translate([0,-27.5,5.5]) rotate([3,0,0]) cylinder(r=3.5, h=30, $fn=50);
translate([0,-26.5,5.5]) rotate([-3,0,0]) cylinder(r=3.5, h=30, $fn=50);
}
translate([-5,-35,-4.5]) cube([10,20,10]);
translate([-5,-33.6,-4.2]) cube([10,4.4,10]);
translate([-5,-24.8,-4.2]) cube([10,4.4,10]);
}
}
module idler_body_base()
{
difference()
{
// body
union()
{
translate([-29,-25,0]) cube([125,50,23]);
translate([-29,-25,-20]) cube([10,49,42]);
translate([70.5,0,0]) rotate([0,90,0]) cylinder(r=7, h=10, $fn=50);
// spring screw mounts
translate([86,-33,-2]) cube([10,57,25]);
translate([-27,-33,-2]) cube([10,57,25]);
translate([91,-33,-2]) rotate([0,0,0]) cylinder(r=5, h=25, $fn=6);
translate([-22,-33,-2]) rotate([0,0,0]) cylinder(r=5, h=25, $fn=6);
//translate([-27,-20,-8]) rotate([20,0,0]) cube([8,10,10]);
// hold together shaft housing
translate([81,30,-24]) rotate([0,90,0]) cylinder(r=11, h=10, $fn=50);
translate([-29,30,-24]) rotate([0,90,0]) cylinder(r=11, h=10, $fn=50);
translate([81,21,-24]) cube([10,20,46]);
translate([-29,21,-24]) cube([10,20,46]);
}
// shaft
translate([70,0,0]) rotate([0,90,0]) cylinder(r=2.55, h=12, $fn=50);
translate([80.5,0,0]) rotate([0,90,0]) cylinder(r=3, h=20, $fn=50);
translate([81,-3,-10]) cube([20,6,10]);
translate([85,0,-11.5]) rotate([45,0,0]) cube([15,10,10]);
translate([83.5,0,-9]) rotate([0,0,0]) cylinder(r=3, h=12, $fn=50);
translate([83.5,0,0]) rotate([0,0,0]) cylinder(r=1.4, h=12, $fn=50);
translate([83.5,0,2]) rotate([0,0,0]) cylinder(r2=1.4,r1=1.7, h=3, $fn=50);
// hold together shafts
translate([80,30,-24]) rotate([0,90,0]) cylinder(r=2.55, h=12, $fn=50);
translate([-30,30,-24]) rotate([0,90,0]) cylinder(r=2.55, h=12, $fn=50);
translate([89,30,-24]) rotate([0,90,0]) cylinder(r1=2.55, r2=3, h=3, $fn=50);
translate([-30,30,-24]) rotate([0,90,0]) cylinder(r2=2.55, r1=3, h=3, $fn=50);
translate([80,30,-25.5]) rotate([0,90,0]) cylinder(r=1.5, h=12, $fn=50);
translate([-30,30,-25.5]) rotate([0,90,0]) cylinder(r=1.5, h=12, $fn=50);
translate([80,30,-19]) rotate([0,90,0]) cylinder(r=1.4, h=12, $fn=50);
translate([-30,30,-19]) rotate([0,90,0]) cylinder(r=1.4, h=12, $fn=50);
translate([89,30,-19]) rotate([0,90,0]) cylinder(r1=1.4, r2=1.8, h=3, $fn=50);
translate([-31,30,-19]) rotate([0,90,0]) cylinder(r2=1.4, r1=1.8, h=3, $fn=50);
// idler bearing spaces
translate([-0.5,0,0]) rotate([0,90,0]) cylinder(r=22, h=7, $fn=50);
translate([-0.5+14,0,0]) rotate([0,90,0]) cylinder(r=22, h=7, $fn=50);
translate([-0.5+28,0,0]) rotate([0,90,0]) cylinder(r=22, h=7, $fn=50);
translate([-0.5+42,0,0]) rotate([0,90,0]) cylinder(r=22, h=7, $fn=50);
translate([-0.5+56,0,0]) rotate([0,90,0]) cylinder(r=22, h=7, $fn=50);
// idler body space
translate([-5,0,0]) rotate([0,90,0]) cylinder(r=18, h=75.5, $fn=50);
translate([-30,0,0]) rotate([0,90,0]) cylinder(r=11.5, h=5, $fn=50);
translate([-30,0,-8]) rotate([0,90,0]) cylinder(r=4, h=5, $fn=50);
// motor coupling space
translate([-26,0,0]) rotate([0,90,0]) cylinder(r=18, h=22, $fn=50);
translate([-24.1,-10,-30]) cube([15,20,20]);
// motor screws
motor_screws();
// idler tension springs and screws
translate([-22,-27,-4]) rotate([0,0,0]) cylinder(r=1.7, h=30, $fn=50);
translate([91,-27,-4]) rotate([0,0,0]) cylinder(r=1.7, h=30, $fn=50);
translate([-22,-27.5,-4]) rotate([0,0,0]) cylinder(r=1.7, h=30, $fn=50);
translate([91,-27.5,-4]) rotate([0,0,0]) cylinder(r=1.7, h=30, $fn=50);
translate([-22,-26.5,-4]) rotate([0,0,0]) cylinder(r=1.7, h=30, $fn=50);
translate([91,-26.5,-4]) rotate([0,0,0]) cylinder(r=1.7, h=30, $fn=50);
translate([-22,-27,6]) rotate([0,0,0]) cylinder(r=3.5, h=30, $fn=50);
translate([-22,-26.5,6.5]) rotate([-3,0,0]) cylinder(r=3.5, h=30, $fn=50);
translate([-22,-27.5,6.5]) rotate([3,0,0]) cylinder(r=3.5, h=30, $fn=50);
translate([91,-27,6]) rotate([0,0,0]) cylinder(r=3.5, h=30, $fn=50);
translate([91,-27.5,6.5]) rotate([3,0,0]) cylinder(r=3.5, h=30, $fn=50);
translate([91,-26.5,6.5]) rotate([-3,0,0]) cylinder(r=3.5, h=30, $fn=50);
translate([91,0,0]) idler_spring_screws();
translate([-22,0,0]) idler_spring_screws();
// front edge
translate([-30,-35,-27]) cube([15,15,25]);
translate([-30,-24,-35]) rotate([45,0,0]) cube([15,15,15]);
translate([-30,-40,-23]) rotate([45,0,0]) cube([150,15,25]);
// rear edge
translate([-30,44,-20]) rotate([25,0,0]) cube([130,20,55]);
translate([105.2,11.5,-20]) rotate([0,0,45]) cube([20,20,55]);
translate([-19,44,-20]) rotate([25,0,0]) cube([100,20,55]);
translate([-19,20,-17]) rotate([10,0,0]) cube([100,20,20]);
// easy printing
translate([10,3,22.7]) cube([15,15,1]);
translate([30,3,22.7]) cube([15,15,1]);
translate([70,3,22.7]) cube([15,15,1]);
translate([50,3,22.7]) cube([15,15,1]);
translate([10,-17,22.7]) cube([15,15,1]);
translate([30,-17,22.7]) cube([15,15,1]);
translate([50,-17,22.7]) cube([15,15,1]);
translate([70,-17,22.7]) cube([15,15,1]);
translate([-10,-7,22.7]) cube([15,15,1]);
// endstop mount
translate([-0,15,-3]) cube([20,12,8]);
// cover nuts
translate([91,14,10]) cylinder(r=1.65, h=25, $fn=50);
translate([91,14,22]) cylinder(r1=1.65, r2=2.2,h=2, $fn=50);
translate([-24,8,10]) cylinder(r=1.65, h=25, $fn=50);
translate([-24,8,22]) cylinder(r1=1.65, r2=2.2,h=2, $fn=50);
translate([91-2.9,14-2.8,18]) cube([10,5.6,2]);
translate([-34+2.8,8-2.8,18]) cube([10,5.6,2]);
translate([91-1.65,14-2.8,17.4]) cube([1.65*2,5.6,2]);
translate([-27.3+1.65,8-2.8,17.4]) cube([1.65*2,5.6,2]);
// cover edges
translate([-17,-34,18]) rotate([-31,0,0]) cube([33,10,20]);
translate([-17,-36,18]) rotate([-31,0,0]) cube([103,10,20]);
translate([-17,-25,-3]) rotate([-45,0,0]) cube([88,11,11]);
//version
translate([-5,24.4,7]) rotate([-90,180,0]) linear_extrude(height = 0.8)
{ text("M1",font = "helvetica:style=Bold", size=5, center=true); }
}
}
module endstop_block()
{
difference()
{
translate([-1,15.5,3]) cube([22,9.5,5]);
translate([-1,14,2.4]) rotate([45,0,0]) cube([22,10,5]);
translate([-0.8,11,2]) rotate([0,0,45]) cube([5,5,5]);
translate([20.8,11,2]) rotate([0,0,45]) cube([5,5,5]);
}
}
module idler_body()
{
endstop_block();
idler_body_base();
}
rotate([0,180,0])
idler_body();