Original-Prusa-i3/SCAD/mmu2-ele-cover.scad

160 lines
5.2 KiB
OpenSCAD

// PRUSA MMU2
// ele-cover
// GNU GPL v3
// Josef Průša <iam@josefprusa.cz> and contributors
// http://www.reprap.org/wiki/Prusa_Mendel
// http://prusamendel.org
module nut_cut()
{
translate([0,0,2]) cylinder(r=3.1, r2=4, h=4, $fn=6);
difference()
{
cylinder(r=3.1, h=4, $fn=6);
translate([-3.65,-5,-0.4]) cube([2,10,1]);
translate([1.65,-5,-0.4]) cube([2,10,1]);
translate([-2,1.65,-0.7]) cube([4,4,1]);
translate([-2,-5.65,-0.7]) cube([4,4,1]);
}
}
module head_cut()
{
translate([0,0,2.5]) cylinder(r=3.1, r2=4, h=4, $fn=30);
difference()
{
cylinder(r=3.1, h=4, $fn=30);
translate([-3.65,-5,-0.4]) cube([2,10,1]);
translate([1.65,-5,-0.4]) cube([2,10,1]);
translate([-2,1.65,-0.7]) cube([4,4,1]);
translate([-2,-5.65,-0.7]) cube([4,4,1]);
}
}
module ele_cover()
{
difference(){
translate([-29,-21,23]) cube([125,56,15]);
difference()
{
translate([-21,-11.5,21]) cube([108,48,15]);
translate([73,8,34]) cylinder(r=5, h=3, $fn=6);
translate([30,22,34]) cylinder(r=5, h=3, $fn=6);
translate([-10,1,34]) cylinder(r=5, h=3, $fn=6);
translate([-14,1,34]) cylinder(r=5, h=3, $fn=6);
translate([-19,1,34]) cylinder(r=5, h=3, $fn=6);
}
difference()
{
translate([-30,-23,22]) rotate([45,0,0]) cube([130,47,10]);
translate([-30,-12.5,22]) rotate([0,0,0]) cube([130,30,30]);
}
// angled side for buttons
translate([-17,-20,22]) rotate([55,0,0]) cube([33,13,10]);
// LED
for (i =[0:4])
{
translate([22+(i*13.716),-21,29.5]) cube([4,10,3]);
translate([22+(i*13.716),-10,31]) rotate([90,0,0]) cylinder(r=1.5, h=18, $fn=50);
translate([26+(i*13.716),-10,31]) rotate([90,0,0]) cylinder(r=1.5, h=18, $fn=50);
}
// buttons
translate([11,-11,28.5]) rotate([90,0,0]) cylinder(r=2.5, h=18, $fn=50);
translate([-1,-11,28.5]) rotate([90,0,0]) cylinder(r=2.5, h=18, $fn=50);
translate([-13,-11,28.5]) rotate([90,0,0]) cylinder(r=2.5, h=18, $fn=50);
// reset button
translate([78,7.5,28.5]) rotate([0,90,0]) cylinder(r=2.5, h=20, $fn=50);
// usb
translate([80,-8.5,29]) cube([20,12,7]);
translate([78,1.5,29]) rotate([0,90,0]) cylinder(r=2, h=20, $fn=50);
translate([78,-6.5,29]) rotate([0,90,0]) cylinder(r=2, h=20, $fn=50);
translate([75,-6.5,27]) cube([25,8,3]);
// mounting screws
translate([73,8,28.5]) cylinder(r=1.65, h=15, $fn=50);
translate([30,22,28.5]) cylinder(r=1.65, h=15, $fn=50);
translate([-10,1,28.5]) cylinder(r=1.65, h=15, $fn=50);
translate([73,8,35.0]) nut_cut();
translate([30,22,35.0]) nut_cut();
translate([-10,1,35.0]) nut_cut();
// edges
translate([-30,-16,33]) rotate([45,0,0]) cube([130,10,10]);
translate([-40,-16,37.5]) rotate([0,30,0]) cube([10,60,10]);
translate([99.5,-16,30]) rotate([0,-30,0]) cube([10,60,10]);
// ventilation
for (i =[0:3])
{
translate([15-(i*6),0,30]) cube([4,23,20]);
translate([17-(i*6),0,30]) cylinder(r=2, h=20, $fn=6);
translate([17-(i*6),23,30]) cylinder(r=2, h=20, $fn=6);
}
for (i =[0:1])
{
translate([-10-(i*6),8,30]) cube([4,15,20]);
translate([-8-(i*6),8,30]) cylinder(r=2, h=20, $fn=6);
translate([-8-(i*6),23,30]) cylinder(r=2, h=20, $fn=6);
}
// sheep ventilation
translate([21,0,30]) cube([15,15.5,20]);
translate([23,0,30]) cylinder(r=2, h=20, $fn=6);
translate([34,0,30]) cylinder(r=2, h=20, $fn=6);
translate([23,15.5,30]) cylinder(r=2, h=20, $fn=6);
translate([34,15.5,30]) cylinder(r=2, h=20, $fn=6);
translate([23,-1.75,30]) cube([10,19,20]);
translate([-4,-2,35]) cube([35,19.5,2]);
translate([-19,5.5,35]) cube([40,19.5,2]);
// mounting screws
translate([-24,8,35]) head_cut();
translate([-24,8,10]) cylinder(r=1.65, h=30, $fn=50);
translate([91,14,35]) head_cut();
translate([91,14,10]) cylinder(r=1.65, h=30, $fn=50);
for (i =[0:3])
{
translate([40+(i*14),-8,37.7]) cube([10,10,10]);
translate([40+(i*14),22,37.7]) cube([10,10,10]);
}
//version
translate([-19,-4.5,36.5]) rotate([0,180,180]) linear_extrude(height = 0.8)
{ text("R1",font = "helvetica:style=Bold", size=6, center=true); }
}
difference()
{
translate([-21,5,34]) cube([2,6,2]);
translate([-24,8,35]) cylinder(r=3.1, h=4, $fn=50);
}
}
rotate([0,180,0])
ele_cover();