Original-Prusa-i3/Printed-Parts/scad/x-carriage-back.scad

147 lines
6.6 KiB
OpenSCAD

// PRUSA iteration4
// X carriage back
// GNU GPL v3
// Josef Průša <iam@josefprusa.cz> and contributors
// http://www.reprap.org/wiki/Prusa_Mendel
// http://prusamendel.org
module m3head()
{
intersection()
{
translate([30, 5, 9]) cylinder(r = 3.1, h = 25, $fn = 30); // head cut
translate([30, 5, 17 - 3.5]) cube([6.2, 3.4, 1], center = true);
}
translate([30, 5, 17 - 4]) cube([3.4, 3.4, 1], center = true);
translate([30, 5, 17 - 3.5]) cylinder(r = 3.1, h = 20, $fn = 30); // head cut
}
module x_carriage_back()
{
difference()
{
union()
{
// base block
translate([-16, -39.0, 15.1]) cube([33, 72, 8]);
translate([-25.5, -5, 15.1]) cube([52, 39.5, 8]);
}
// lower bearing cut
translate([-17, -22, 7.5]) cube([35, 4, 10]);
// cables opening
translate([-4.5, -18, 15]) cube([10, 4, 10]);
translate([0.5, -18, 10]) rotate([0, 0, 90]) cylinder(h = 32, r = 5, $fn = 30);
translate([0.5, -14, 10]) rotate([0, 0, 90]) cylinder(h = 32, r = 5, $fn = 30);
translate([-20, -19.5, 9]) cube([50, 7.5, 10]);
// bearings
translate([-15, -25, 11.75]) rotate([0, 90, 0]) cylinder(h = 31, r = 7.6, $fn = 30);
translate([-30, 20, 11.75]) rotate([0, 90, 0]) cylinder(h = 60, r = 7.6, $fn = 30);
translate([-17, -25, 11.75]) rotate([0, 90, 0]) cylinder(h = 60, r = 7, $fn = 30);
translate([-32, 20, 11.75]) rotate([0, 90, 0]) cylinder(h = 80, r = 7, $fn = 30);
// hold together screws
translate([-9.5, -36, 10]) rotate([0, 0, 0]) cylinder(h = 50, r = 1.65, $fn = 50);
translate([10.5, -36, 10]) rotate([0, 0, 0]) cylinder(h = 50, r = 1.65, $fn = 50);
translate([1, 4, 10]) rotate([0, 0, 0]) cylinder(h = 50, r = 1.65, $fn = 50);
translate([13, 31, 10]) rotate([0, 0, 0]) cylinder(h = 50, r = 1.65, $fn = 50);
translate([-10.5, 31, 10]) rotate([0, 0, 0]) cylinder(h = 50, r = 1.65, $fn = 50);
translate([13, 31, 19]) cylinder(h = 50, r = 3.1, $fn = 30);
translate([-10.5, 31, 19]) cylinder(h = 50, r = 3.1, $fn = 30);
// lower screw heads
translate([-9.5, -36, 19]) cylinder(h = 6, r = 3.1, $fn = 30);
translate([10.5, -36, 19]) cylinder(h = 50, r = 3.1, $fn = 30);
translate([-12.6, -46, 18]) cube([6.2, 10, 10]);
translate([7.4, -46, 18]) cube([6.2, 10, 10]);
// center screw head
translate([1, 4, 18]) cylinder(h = 7, r = 3.1, $fn = 30);
// heat cables cut
translate([0.5, -42.5, 0]) rotate([-5, 0, 0]) cylinder(h = 50, r = 6, $fn = 30);
// cable holder screw
translate([0.5, -27, 11]) rotate([0, 0, 90]) cylinder(h = 40, r = 1.6, $fn = 30);
translate([0.5, -27, 16.5]) rotate([0, 0, 0]) cylinder(h = 5, r = 3.1, $fn = 6);
// x-carriage screws in belt holders
translate([11.5, -0.5, 10]) rotate([0, 0, 90]) cylinder(h = 40, r = 3, $fn = 30);
translate([-11.5, -0.5, 10]) rotate([0, 0, 90]) cylinder(h = 40, r = 3, $fn = 30);
// nice edges
translate([-20.8, -46.1, 10]) rotate([0, 0, 45]) cube([10, 10, 15]);
translate([21.8, -46.1, 10]) rotate([0, 0, 45]) cube([10, 10, 15]);
translate([-24.4, 15.2, 10]) rotate([0, 0, 45]) cube([14, 10, 15]);
translate([26.9, 15.2, 10]) rotate([0, 0, 45]) cube([10, 14, 15]);
translate([-19.55, 28, 10]) rotate([0, 0, 45]) cube([10, 10, 15]);
translate([22.05, 28, 10]) rotate([0, 0, 45]) cube([10, 10, 15]);
translate([-22, 35, 21]) rotate([30, 0, 0]) cube([44, 10, 10]);
translate([-22, 35, 17]) rotate([30, 0, 0]) cube([14.5, 10, 10]);
translate([10, 35, 17]) rotate([30, 0, 0]) cube([14.5, 10, 10]);
// upper side cuts
translate([17, 25, 10]) rotate([0, 0, 0]) cube([10, 10, 15]);
translate([-29.5, 25, 10]) rotate([0, 0, 0]) cube([15, 15, 15]);
translate([17, 22, 13]) rotate([0, 0, 0]) cube([10, 10, 5]);
translate([-24.5, 22, 13]) rotate([0, 0, 0]) cube([10, 10, 5]);
// side edges
translate([27, -20, 16]) rotate([0, -30, 0]) cube([10, 50, 10]);
translate([-34.2, -20, 21]) rotate([0, 30, 0]) cube([10, 50, 10]);
translate([19.5, -55, 16]) rotate([0, -30, 0]) cube([10, 50, 10]);
translate([-27.1, -55, 21]) rotate([0, 30, 0]) cube([10, 50, 10]);
// inner cable cleanup
translate([-1, -19.5, 14]) rotate([0, 30, 0]) cube([10, 7.5, 10]);
translate([-5, -19.5, 10]) rotate([0, -30, 0]) cube([10, 7.5, 10]);
// filament sensor cable
translate([4.5, 28.5, 12]) rotate([0, 0, 0]) cube([3.5, 4, 20]);
translate([0.5, 28.5, 12]) rotate([0, 0, 0]) cube([4.5, 7, 20]);
translate([4.5, -5, 19.5]) rotate([0, 0, 0]) cube([3.5, 35, 4.3]);
translate([4.5, 17.5, 16.5]) rotate([0, 0, 0]) cube([3.5, 5, 4.3]);
translate([-1.55, -9.60, 19.5]) rotate([0, 0, -45]) cube([3.5, 10, 4]);
translate([-1.9, -9.95, 15]) rotate([45, 0, -45]) cube([3.5, 10, 4]);
translate([4.5, 29, 16]) rotate([45, 0, 0]) cube([3.5, 5, 5]);
translate([3.5, -4.60, 19.5]) rotate([0, 0, -15]) cube([3, 4, 4]);
// version
translate([-14.5, 13, 22.8]) rotate([0, 0, 0]) linear_extrude(height = 0.4)
{ text("MK3", font = "helvetica:style = Bold", size = 6, center = true); }
translate([-15, 3, 15.8]) rotate([0, 180, 0]) linear_extrude(height = 0.8)
{ text("R2", font = "helvetica:style = Bold", size = 4, center = true); }
translate([-23, 2.3, 14.3]) cube([9, 5.0, 1]);
// upper ziptie left
translate([-21.5, -25, 0]) difference()
{
translate([1, 45, 12]) rotate([0, 90, 0]) cylinder(r = 8.5, h = 4, $fn = 25);
translate([0, 45, 12]) rotate([0, 90, 0]) cylinder(r = 7, h = 6, $fn = 25);
}
translate([19.5, 8, 14.5]) rotate([-60, 0, 0]) cube([4, 3, 10]);
translate([-20.5, 8, 14.5]) rotate([-60, 0, 0]) cube([4, 3, 10]);
// upper ziptie right
translate([19, -25, 0]) difference()
{
translate([0.5, 45, 12]) rotate([0, 90, 0]) cylinder(r = 8.5, h = 4, $fn = 25);
translate([0, 45, 12]) rotate([0, 90, 0]) cylinder(r = 7, h = 6, $fn = 25);
}
// supports
translate([-17, 26, 5]) m3head();
translate([-40.5, 26, 5]) m3head();
translate([-29, -1, 4]) m3head();
translate([-19.5, -41, 5]) m3head();
translate([-39.5, -41, 5]) m3head();
}
}
rotate([0, 180, 0]) x_carriage_back();