Original-Prusa-i3/Printed-Parts/scad/Rambo-base.scad

288 lines
9.8 KiB
OpenSCAD

// PRUSA iteration4
// RAMBo base
// GNU GPL v3
// Josef Průša <iam@josefprusa.cz> and contributors
// http://www.reprap.org/wiki/Prusa_Mendel
// http://prusamendel.org
// main body
module main_body()
{
// side panel
cube([118.5,92,2]);
// upper panel
cube([1.5,92,35]);
// rear panel
translate( [0,90,0]) cube([105.5,2,35]);
// upper panel frame reinforcement
translate([0,0,1]) cube([5.5,7,34]);
// side panel reinforcement
translate([0,0,1]) cube([9,92,3]);
translate([98,0,0]) cube([9,92,4]);
// raspberry
translate([21,81,0]) cylinder( h = 4.5,r = 2.5,$fn=30);
translate([21+58,81,0]) cylinder( h = 4.5,r = 2.5,$fn=30);
// heatbed cable mounting reinforcement
translate([63,86.0,0.5]) cube([15,5,34.5]);
translate([75,99,28]) rotate([90,0,0]) cylinder(h=15,r=13,$fn=30);
translate([75,101,28]) rotate([90,0,0]) cylinder(h=2,r1=9,r2=13,$fn=30);
translate([70.3,88,13.2]) rotate([-45,0,0]) cube([9.5,5,9]);
translate([70.3,84,16.2]) rotate([-45,0,0]) cube([9.5,8,5]);
difference()
{
// bottom side reinforcement
translate([98,86,0]) cube([7.5,6,35]);
translate([96,79,0]) rotate([0,0,45]) cube([7.5,6,36]);
}
translate([0,85,0]) cube([5.5,7,35]);
// screw mounting block
translate([54,84,0]) cube([11,7,35]);
// frame side panel
translate([20,0,0]) cube([80,3,5]);
// RAMBo mounting holes
translate([102.5,14,1]) rotate([0,0,90]) cylinder( h = 7,r = 5.5,$fn=6);
translate([102.5,75,1]) rotate([0,0,90]) cylinder( h = 7,r = 5.5,$fn=6);
translate([7.5,14,1]) cylinder( h = 7,r = 5.5,$fn=6);
translate([7.5,75,1]) cylinder( h = 7,r = 5.5,$fn=6);
// corners reinforcement
translate([0,75,1]) cube([13,16,6]);
translate([0,70.25,1]) cube([7.5,11,6]);
translate([0,7.75,1]) cube([7.5,11,6]);
translate([0,0,1]) cube([13,14,6]);
// frame mounting screw blocks
//upper
translate([1,0,0]) cube([28,4,10]);
translate([18.45,0,0]) cube([3,4,5.5] );
//lower
translate([98,0,0]) cube([20.5,4,10]);
// door closing corner
translate([102,88.5,35]) cylinder( h = 3,r1=2.5,r2=1,$fn=30);
// doors pin upper
translate([2,85,31]) cube([6,7,4] );
translate([4,88.5,35]) cylinder( h = 3,r1=2.5,r2=1,$fn=30);
// x-axis cables entry hole body
translate([89,2,0]) cylinder( h = 5,r = 6,$fn=6);
// extruder cable holder
translate([0,0,15]) cube([5,40,20]);
translate([5,28,28]) rotate([0,90,0]) cylinder(h=5,r1=10,r2=8,$fn=30);
difference()
{
translate([-2,0,28]) rotate([0,45,0]) cube([9.8,25,9.8]);
translate([-5,-5,15]) cube([5,40,20]);
translate([10,-5,15]) cube([5,40,20]);
}
translate([-6,28,28]) rotate([0,90,0]) cylinder(h=6,r=13,$fn=30);
translate([-10,28,28]) rotate([0,90,0]) cylinder(h=4,r1=8,r2=13,$fn=30);
difference()
{
translate([-5.5,23.5,16]) rotate([0,45,0]) cube([8,9,8]);
translate([1,0,10]) cube([5,40,20]);
}
}
module ventilation_holes()
{
for ( i = [-5 : 8] )
{
translate([46 + (i*5.5),10.5,-1]) cube([3.65,19+49.0,1.2]);
translate([46 + (i*5.5),10.5,-1]) cube([3.65,18,10]);
translate([46 + (i*5.5),10.5+25,-1]) cube([3.65,18,10]);
translate([46 + (i*5.5),10.5+50,-1]) cube([3.65,18,10]);
}
}
module cutouts(){
// extruder cable holder
translate([1.5,7,14.8]) rotate([0,45,0]) cube([3,40,5]);
translate([-20,28,28]) rotate([0,90,0]) cylinder( h = 40,r = 5.5,$fn=30);
translate([-15,7,35]) cube([30,40,15]);
translate([-15,25,30]) cube([30,6,8]);
translate([-15,12,28]) cube([15,30,8]);
translate([-12,16.5,28]) cube([15,23,8]);
translate([-3,28,28]) rotate([35,90,0]) cylinder( h = 24,r = 1.6,$fn=30);
translate([-2.7,20.0,22]) rotate([0,0,90]) cylinder( h = 10,r = 1.6,$fn=30);
translate([-2.7,20.0,12]) rotate([0,0,90]) cylinder( h = 13,r = 3.1,$fn=6);
translate([-2.7,36,10]) rotate([0,0,90]) cylinder( h = 33,r = 1.6,$fn=30);
translate([-2.7,36,12]) rotate([0,0,90]) cylinder( h = 13,r = 3.1,$fn=6);
// side
translate([12,19,1]) cube([85.5,51,3]);
// RAMBo M3 screws
translate([7.5,14,-1]) cylinder( h = 10,r = 1.9,$fn=30);
translate([102.5,14,-1]) cylinder( h = 10,r = 1.9,$fn=30);
translate([102.5,75,-1]) cylinder( h = 10,r = 1.9,$fn=30);
translate([7.5,75,-1]) cylinder( h = 10,r = 1.9,$fn=30);
translate([7.5,14,6]) cylinder( h = 3,r1 = 1.9,r2=2.4,$fn=30);
translate([102.5,14,6]) cylinder( h = 3,r1 = 1.9,r2=2.4,$fn=30);
translate([102.5,75,6]) cylinder( h = 3,r1 = 1.9,r2=2.4,$fn=30);
translate([7.5,75,6]) cylinder( h = 3,r1 = 1.9,r2=2.4,$fn=30);
translate([2,0,0])ventilation_holes();
// frame mounting screws
//upper
translate([18.5,-2,15.6]) rotate([0,45,0]) cube([15,10,10] );
translate([16.5,8,5]) rotate([90,0,0]) cylinder( h = 10,r = 1.6,$fn=30);
translate([16.5,9,5]) rotate([90,0,0]) cylinder( h = 5,r = 3,$fn=30);
translate([15.15,-2,5]) cube([2.7,15,10] );
translate([15.1,-2,7]) rotate([0,5,0]) cube([2.8,15,10] );
translate([15.1,-2,7]) rotate([0,-5,0]) cube([2.8,15,10] );
//lower
translate([110.5,9,5]) rotate([90,0,0]) cylinder( h = 10,r = 1.6,$fn=30);
translate([110.5,9,5]) rotate([90,0,0]) cylinder( h = 5,r = 3,$fn=30);
translate([118.5,-2,6]) rotate([0,-45,0]) cube([5,15,15] );
translate([94.5,-2,8.5]) rotate([0,45,0]) cube([5,8,15] );
translate([0,-2,-5]) cube([120,15,5] );
translate([109.15,-2,5]) cube([2.7,15,10] );
translate([109.3,-2,6.5]) rotate([0,5,0]) cube([2.5,15,10] );
translate([109.2,-2,6.5]) rotate([0,-5,0]) cube([2.5,15,10] );
// USB connector hole
translate([-1,41.5,11]) cube([5.5,13,11]);
// reset button
translate([-2,65,14]) rotate([0,90,0]) cylinder( h = 10,r = 2,$fn=30);
// door closing screw
translate([58.5,88,-1]) cylinder( h = 43,r = 1.9,$fn=30);
// new heatbed cable holder
translate([75,105,28]) rotate([90,90,0]) cylinder(h=30,r=4.0,$fn=30);
translate([67,95,15.5]) rotate([0,0,0]) cylinder(h=10,r=3.2,$fn=6);
translate([83,95,15.5]) rotate([0,0,0]) cylinder(h=10,r=3.2,$fn=6);
translate([67,95,14]) rotate([0,0,0]) cylinder(h=15,r=1.6,$fn=30);
translate([83,95,14]) rotate([0,0,0]) cylinder(h=15,r=1.6,$fn=30);
translate([60,92,28]) cube([30,13,14]);
translate([60,80,35]) cube([30,13,14]);
translate([72.5,80,30]) cube([5,13,14]);
translate([75,92,25]) rotate([120,0,0]) cylinder(h=25,r=1.6,$fn=30);
translate([62.5,88,28]) cube([25,15,14]);
// nut traps HEX
translate([7.5,14,-1]){
cylinder( h = 4,r = 3.2,$fn=6);
rotate([0,0,0]) resize([0,2,0]) cylinder( h = 4,r = 3.5,$fn=6);
rotate([0,0,60]) resize([0,2,0]) cylinder( h = 4,r = 3.5,$fn=6);
rotate([0,0,120]) resize([0,2,0]) cylinder( h = 4,r = 3.5,$fn=6);
}
translate([102.5,14,-1]){
cylinder( h = 4,r = 3.2,$fn=6);
rotate([0,0,0]) resize([0,2,0]) cylinder( h = 4,r = 3.5,$fn=6);
rotate([0,0,60]) resize([0,2,0]) cylinder( h = 4,r = 3.5,$fn=6);
rotate([0,0,120]) resize([0,2,0]) cylinder( h = 4,r = 3.5,$fn=6);
}
translate([102.5,75,-1]){
cylinder( h = 4,r = 3.2,$fn=6);
rotate([0,0,0]) resize([0,2,0]) cylinder( h = 4,r = 3.5,$fn=6);
rotate([0,0,60]) resize([0,2,0]) cylinder( h = 4,r = 3.5,$fn=6);
rotate([0,0,120]) resize([0,2,0]) cylinder( h = 4,r = 3.5,$fn=6);
}
translate([7.5,75,-1]){
cylinder( h = 4,r = 3.2,$fn=6);
rotate([0,0,0]) resize([0,2,0]) cylinder( h = 4,r = 3.5,$fn=6);
rotate([0,0,60]) resize([0,2,0]) cylinder( h = 4,r = 3.5,$fn=6);
rotate([0,0,120]) resize([0,2,0]) cylinder( h = 4,r = 3.5,$fn=6);
}
translate([7.5,14,-1]) cylinder( h = 1.5,r1 = 6,r2=3.2,$fn=6);
translate([102.5,14,-1]) cylinder( h = 1.5,r1 = 6,r2=3.2,$fn=6);
translate([102.5,75,-1]) cylinder( h = 1.5,r1 = 6,r2=3.2,$fn=6);
translate([7.5,75,-1]) cylinder( h = 1.5,r1 = 6,r2=3.2,$fn=6);
translate([58.5,88,-1]) cylinder( h = 4,r = 3.2,$fn=30);
// door closing corners
translate([8,80,28]) rotate([0,0,45]) cube([5,5,10] );
translate([106,81,4]) rotate([0,0,45]) cube([5,5,40] );
// inner edges cutout
translate([54,79.5,2]) rotate([0,0,45]) cube([5,5,50] );
translate([6,80,7]) rotate([0,0,45]) cube([5,5,24] );
// x axis cable hole
translate([89,2,-1]) cylinder( h = 10,r = 4,$fn=6);
translate([80,-5,-1]) cube([15,5,10] );
// large corner coutout
translate([-27,80,-54]) rotate([50,0,45]) cube([50,50,50] );
translate([137.5,60,-10]) rotate([0,0,45]) cube([50,50,50] );
}
module RAMBo_base()
{
difference()
{
difference()
{
main_body();
cutouts();
}
//BottomCubic();
translate([14.5,10,-2]) cube([4,24,10]);
translate([16.5,10,-2]) cylinder( h = 20,r = 2,$fn=30);
translate([16.5,34,-2]) cylinder( h = 20,r = 2,$fn=30);
// lightening slots
translate([100,21,2] ) cube([5,48,5]);
translate([3,21,2] ) cube([4.5,48,5]);
translate([115,68,1.5]) rotate([0,0,90]) linear_extrude(height = 0.8)
{text("R1",font = "helvetica:style=Bold",size=6,center=true); }
}
}
RAMBo_base();