Original-Prusa-i3/Printed-Parts/scad/RAMBo-cover-base.scad

263 lines
8.4 KiB
OpenSCAD

// PRUSA iteration3
// RAMBo cover 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(){
cube( [ 114.5 , 92 , 2 ] );
cube( [ 1.5 , 92 , 35 ] );
translate( [ 0 , 90 , 0 ] ) cube( [ 105.5 , 2 , 35 ] );
translate( [ 63 , 88.5 , 0.5 ] ) cube( [ 6.5 , 2 , 34.5 ] );
translate( [ 0 , 0 , 1 ] ) cube( [ 5.5 , 7 , 34 ] );
translate( [ 0 , 0 , 1 ] ) cube( [ 9 , 92 , 3 ] );
translate( [ 98 , 0 , 0 ] ) cube( [ 9 , 92 , 4 ] );
translate( [ 98 , 86 , 0 ] ) cube( [ 7.5 , 6 , 35 ] );
translate( [ 0 , 85 , 0 ] ) cube( [ 5.5 , 7 , 35 ] );
translate( [ 54 , 84 , 0 ] ) cube( [ 9.5 , 7 , 35 ] );
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
translate( [ 98 , 0 , 0 ] ) cube( [ 16.5 , 8 , 8 ] );
translate( [ 1 , 0 , 0 ] ) cube( [ 19.5 , 8 , 8 ] );
translate( [ 16.5 , 8 , 5 ] ) rotate([90,0,0]) cylinder( h = 8, r = 5, $fn=30);
translate( [ 110.5 , 8 , 5 ] ) rotate([90,90,0]) cylinder( h = 8, r = 5, $fn=30);
translate( [ 18.45 , 0 , 0 ] ) cube( [ 3 , 8 , 5.5] );
// heatbed filament holder body
translate( [ 81.6 , 90.35 , 24 ] ) rotate([0,90,0]) cylinder( h = 17, r = 5, $fn=6);
// door closing corner
translate( [ 102 , 88.5 , 35 ] ) cylinder( h = 3, r1=2.5, r2=1, $fn=30);
translate( [ 2 , 85 , 31 ] ) cube( [ 6 , 7 , 4] );
translate( [ 4 , 88.5 , 35 ] ) cylinder( h = 3, r1=2.5, r2=1, $fn=30);
translate( [ 89 , 2 , 0 ] ) cylinder( h = 5, r = 6, $fn=6);
}
module inside_cable_holder(){
translate( [ 50 , 6 , 0.5 ] ) cube( [ 30, 2, 20] );
difference(){
translate( [ 50 , 8 , 25 ] ) rotate([0,90,0]) cylinder( h = 30, r = 6, $fn=6);
translate( [ 49 , 8 , 25 ] ) rotate([0,90,0]) cylinder( h = 34, r = 4, $fn=6);
translate( [ 49 , 8 , 10 ] ) cube( [ 34, 10, 25] );
}
}
module cutouts(){
// side
translate( [ 12 , 19 , 1 ] ) cube( [ 85.5 , 51 , 3 ] );
// RAMBo M3 screws
translate( [ 7.5 , 14 , -1 ] ) cylinder( h = 10, r = 1.7, $fn=30);
translate( [ 102.5 , 14 , -1 ] ) cylinder( h = 10, r = 1.7, $fn=30);
translate( [ 102.5 , 75 , -1 ] ) cylinder( h = 10, r = 1.7, $fn=30);
translate( [ 7.5 , 75 , -1 ] ) cylinder( h = 10, r = 1.7, $fn=30);
// frame mounting screws
translate( [ 16.5 , 8 , 5 ] ) rotate([90,0,0]) cylinder( h = 10, r = 1.6, $fn=30);
translate( [ 110.5 , 9 , 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( [ 110.5 , 9 , 5 ] ) rotate([90,0,0]) cylinder( h = 5, r = 3, $fn=30);
translate( [ 114.5 , -2 , -1 ] ) cube( [ 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.8, $fn=30);
// heatbed cable opening hole
translate( [ 75.5 , 94 , 24 ] ) rotate([90,90,0]) cylinder( h = 5, r = 7, $fn=6);
translate( [ 77.6 , 80 , 20.5 ] ) cube( [ 4 , 15 , 15] );
translate( [ 69.4 , 95 , 27.5 ] ) rotate([90,60,0]) cube( [ 5 , 10 , 10] );
// heatbed cable ziptie holes
translate( [ 64 , 87 , 30 ] ) cube( [ 4 , 10 , 2 ] );
translate( [ 64 , 87 , 16 ] ) cube( [ 4 , 10 , 2 ] );
// heatbed filament holder hole
translate( [ 81 , 89 , 24 ] ) rotate([0,90,0]) cylinder( h = 17, r = 1.6, $fn=30);
translate( [ 81 , 89 , 24 ] ) rotate([0,90,0]) cylinder( h = 2, r = 2, r2=1.6, $fn=30);
translate( [ 70 , 92 , 15 ] ) cube( [ 30 , 10 , 15] );
// nut traps
translate( [ 7.5 , 14 , -1 ] ) cylinder( h = 4, r = 3.2, $fn=6);
translate( [ 102.5 , 14 , -1 ] ) cylinder( h = 4, r = 3.2, $fn=6);
translate( [ 102.5 , 75 , -1 ] ) cylinder( h = 4, r = 3.2, $fn=6);
translate( [ 7.5 , 75 , -1 ] ) cylinder( h = 4, r = 3.2, $fn=6);
translate( [ 7.5 , 14 , -1 ] ) cylinder( h = 1.5, r1 = 5, r2=3.2, $fn=6);
translate( [ 102.5 , 14 , -1 ] ) cylinder( h = 1.5, r1 = 5, r2=3.2, $fn=6);
translate( [ 102.5 , 75 , -1 ] ) cylinder( h = 1.5, r1 = 5, r2=3.2, $fn=6);
translate( [ 7.5 , 75 , -1 ] ) cylinder( h = 1.5, r1 = 5, 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] );
// 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( [ -25 , 80 , -54 ] ) rotate([50,0,45]) cube( [ 50, 50, 50] );
translate( [ 137.5 , 60 , -10 ] ) rotate([0,0,45]) cube( [ 50, 50, 50] );
}
module ext_ziptie(){
difference(){
translate( [ -6 , 28 , 27 ] ) rotate([0,90,0]) cylinder( h = 3, r = 15, $fn=30);
translate( [ -7 , 28 , 27 ] ) rotate([0,90,0]) cylinder( h = 5, r = 7, $fn=30);
}
}
module ext_cable_holder()
{
difference()
{
union(){
rotate([90,0,0]) translate([-8, 26, -28]) rotate([0,90,0]) cylinder( h = 4, r1 = 7, r2=10, $fn=6);
rotate([90,0,0]) translate([-4, 26, -28]) rotate([0,90,0]) cylinder( h = 4, r1 = 10, r2=10, $fn=6);
rotate([90,0,0]) translate( [ 1.5 , 26 , -28 ] ) rotate([0,90,0]) cylinder( h = 10, r1 = 10, r2=7, $fn=6);
translate( [ -4.1 , 28 , 17.5 ] ) rotate([0,45,0]) cube( [ 7 , 5 , 8 ] );
}
translate( [ -15 , 13 , 15] ) cube( [ 15 , 15 , 25 ] );
translate( [ 1.5 , 26 , 10] ) cube( [ 15 , 15 , 25 ] );
difference(){
rotate([90,0,0]) translate([-4, 26, -28]) rotate([0,90,0]) cylinder( h = 3.5, r = 8, $fn=30);
rotate([90,0,0]) translate([-5, 26, -28]) rotate([0,90,0]) cylinder( h = 5.5, r = 6.5, $fn=30);
}
}
}
module rambo_cover()
{
difference()
{
main_body();
cutouts();
}
}
difference(){
union(){
rambo_cover();
translate( [ 10 , 89 , 3] ) cube( [ 6 , 1 , 32 ] );
translate( [ 12 , 89 , 1] ) cube( [ 4 , 1 , 2 ] );
}
translate( [ 25 ,89 , 20.8] ) cube( [ 7.4 , 5 , 16 ] ); //Cube018
translate( [ 25 , 95 , 25 ] ) rotate([90,90,0]) cylinder( h = 7, r = 8.5, $fn=6);
// extruder cable zipties
translate( [ 11 , 87 , 30 ] ) cube( [ 4 , 10 , 2 ] );
translate( [ 11 , 87 , 16 ] ) cube( [ 4 , 10 , 2 ] );
}
module extruder_filament_holder()
{
difference(){
translate( [ 33 , 90 , 25 ] ) rotate([0,90,0]) cylinder( h = 22, r = 8, $fn=4);
translate( [ 30 , 88 , 25 ] ) rotate([0,90,0]) cylinder( h = 22, r = 1.6, $fn=30);
translate( [ 32 , 88 , 25 ] ) rotate([0,90,0]) cylinder( h = 3, r1 = 2, r2=1.6, $fn=30);
translate( [ 26 ,79 , 20.8] ) cube( [ 30 , 5 , 16 ] );
translate( [ 26 ,91 , 15] ) cube( [ 30 , 15 , 16 ] );
}
}
extruder_filament_holder();
// print part support
translate([0,1,0])
difference(){
translate( [ 18 ,90 , 15] ) cube( [ 7 , 1 , 19 ] );
translate( [ 17 ,90.6 , 29.4] ) rotate([0,60,0]) cube( [ 1 , 1 , 19 ] );
translate( [ 30 ,90.6 , 13.1] ) rotate([0,-60,0]) cube( [ 1 , 1 , 19 ] );
translate( [ 30 ,89 , 13] ) rotate([0,-60,0]) cube( [ 10 , 3 , 10 ] );
translate( [ 20 ,100, 20 ] ) rotate([90,0,0]) cylinder( h = 33, r = 1, $fn=30);
translate( [ 21 ,99, 31 ] ) rotate([90,0,0]) cylinder( h = 33, r = 1, $fn=30);
}
// print part support
difference()
{
translate( [ 70 ,90.5 , 15] ) cube( [ 7.5 , 1 , 19 ] );
translate( [ 69 ,91 , 27.8] ) rotate([0,60,0]) cube( [ 1 , 1 , 19 ] );
translate( [ 80 ,91 , 13.9] ) rotate([0,-60,0]) cube( [ 1 , 1 , 19 ] );
translate( [ 81.5 ,90 , 10] ) rotate([0,-60,0]) cube( [ 10 , 2 , 10 ] );
}