diff --git a/Printed-Parts/scad/PSU-cover-MK3.scad b/Printed-Parts/scad/PSU-cover-MK3.scad new file mode 100644 index 0000000..43d7cd8 --- /dev/null +++ b/Printed-Parts/scad/PSU-cover-MK3.scad @@ -0,0 +1,317 @@ +// PRUSA iteration3 +// PSU Cover MK3 +// GNU GPL v3 +// Josef Průša and contributors +// http://www.reprap.org/wiki/Prusa_Mendel +// http://prusamendel.org + +module CubeAdjust(Xdim, Zdim) +{ + for (x =[6:11.2:Xdim-12]) + { + for (z =[6:11.2:Zdim-12]) + { + translate([x,-0.2,z])cube([10,0.4,10]); + } + } +} + +module nuttrap() +{ + rotate([0, 180, 0]) difference() + { + union() + { + translate([-4.25,-7.5,0]) difference(){ + translate([0,0,0]) cube([8.5, 9.2, 3]); + translate([-1,10.6,0]) rotate([45,0,0]) cube([11.5,5.7,5.7]); + } + } + translate([0,0, -0.2])rotate([0,0,30]) cylinder(r=3.5,h=15-1.5, $fn=6); + } +} + +module m3_screw() +{ + translate([0,0,-0]) cylinder(r=1.5,h=12, $fn=30); + translate([0,0,12]) cylinder(r2=2.8, r1=1.5,h=2, $fn=30); + translate([0,0,14]) cylinder(r=2.8,h=5, $fn=30); +} + + + + + + + +module PSU_COVER() +{ +difference() + { + union() + { + translate([0,0,-0.46])cube([95,50+15,54.25]); // Base + translate([0,0,-3.5])cube([14-0.5,50+15,5]); // Back pillar 1 + translate([-1.6,1,51.5])cube([5,64,3]); // Back pillar 1 + translate([60-0.5,0,-3.5])cube([14,50+15,5]); // Back pillar 2 + translate([91+4,0,-0.46])cube([6,50+15,54.25]); // Base for bracket + translate([-2,45.4-4.6,19])cube([2,3,15]); // nipple on the right + + translate([-1.6,0,0])cube([1.65,65,2]); // Frame skirt 1 + translate([-1.6,0,0])cube([1.65,30,53.78]); // Frame skirt 2 + translate([-1.6,0,51.32])cube([1.65,65,2.46]); // Frame skirt 3 + } + + + //pretty corners + translate([-11,-2,-2])rotate([0,0,-45])cube([10,10,58]); + translate([95-3+5+1,-2,-2])rotate([0,0,-45])cube([10,10,58]); + + translate([-3,-9,-4.46])rotate([-45,0,0])cube([130,10,10]); + translate([-3,-12,54.78])rotate([-45,0,0])cube([130,10,10]); + + translate([-3,45+15,-4.46])rotate([-45,0,0])cube([130,10,10]); + translate([-3,48+15,54.78])rotate([-45,0,0])cube([130,10,10]); + + translate([95-3+3,70,-2])rotate([0,0,-45])cube([10,10,58]); + translate([95,0-10,-20])rotate([0,-45,-45])cube([20,20,20]); + translate([95,0-10,45])rotate([0,-45,-45])cube([20,20,20]); + + translate([95,60,-10])rotate([-35,-45,-45])cube([20,20,20]); + translate([95,60,65])rotate([-55,48,-48])cube([20,20,20]); + + translate([79,-5,67.28])rotate([0,45,0])cube([20,90,20]); + translate([79,-5,-13.96])rotate([0,45,0])cube([20,90,20]); + + + + translate([3,3,2])cube([89.02,50.02+15,50.02-0.7]); // main cutout + + translate([-3,50-16.4+15,2])cube([100,16.5,50-0.7]); // insert cutout + translate([-3,50-16.4-15.6+15,2])cube([10,100,17]); // right bottom cutout + translate([85+2,50-16.4-17.6+15+0.9,2])cube([10,100,50-0.7]); // left bottom cutout + + translate([85+2,10,2])rotate([0,0,45]) cube([10*sqrt(2),10*sqrt(2),50-0.7]); + translate([85+2,3,2]) cube([10,17,50-0.7]); + + translate([-3,50-16.4-17.6+15+0.9,2])cube([100,100,10]); // bottom cutout + + translate([5.5,0.5,0]) + { + translate([48,1.5,40])cube([27.5,32.9,30]); // socket cutout + translate([48-4.5,3+15.6+0.5,40])cylinder(r=2,h=50, $fn=8); // socket right hole cutout + translate([48-4.5+37-0.5,3+15.6+0.5,40])cylinder(r=2,h=50, $fn=8); // socket left hole cutout + translate([1,6,44])cube([12.5,20,30]); // switch cutout + } + + + translate([7-0.5-0.5,40-1+15+0.7,-10])cylinder(r=2,h=50,$fn=15); // left back mounthole cutout + translate([7-0.5-0.5,40-1+15+0.7,-3.7])cylinder(r2=2, r1=3.5,h=1.5,$fn=15); + + translate([67.5-0.7-0.5,43.5-1+15+0.5,-10])cylinder(r=2,h=50,$fn=15); // right back mounthole cutout + translate([67.5-0.7-0.5,43.5-1+15+0.5,-3.7])cylinder(r2=2, r1=3.5,h=1.5,$fn=15); + + + translate([130,32+26,55-4-25])rotate([0,-90,0])cylinder(r=2.5,h=50,$fn=35); // Left side bracket screw hole + translate([101.1,32+26,55-4-25])rotate([0,-90,0])cylinder(r2=2.5, r1=4.1,h=3,$fn=15); + translate([-0.3,1,-1.2]) CubeAdjust(102,54.25); + + for(i=[0:9]) + { + translate([20+i,6.8,-10])cylinder(r=3.5,h=50); // left back mounthole cutout + } + + + +} +} + +module PSU_Y_REINFORCEMENT() +{ +difference() +{ + union() // base shape + { + translate([ 59.5, 0, -18 ]) cube([ 33, 6, 19 ]); // reinforcement plate + translate([ 73.5, 5, -18 ]) cube([ 5, 16, 19 ]); // vertical_reinforcement + } + union () // cutouts + { + + + translate([ 87.5, -8, -20 ]) rotate([ 0, 45, 0 ]) cube([ 10, 20, 10 ]); //corner cut + translate([ 52.5, -8, -20 ]) rotate([ 0, 45, 0 ]) cube([ 10, 20, 10 ]); //corner cut + translate([ 68.5, 20, -34 ]) rotate([ 45, 0, 0 ]) cube([ 15, 23, 20 ]); //vertical reinf cutout + translate([ 66.2, -0.2, -5])cube([23.6, 0.4, 5.6]); + translate([ 68 + 1.8 +2.6, -0.2, -7.7 -5.6])cube([11.2, 0.4, 5.6]); + + + translate([ 88, 8, -11.5 ]) rotate([ 90, 0, 0]) cylinder( h = 10, r = 1.8, $fn=30 ); //hole A + translate([ 68, 8, -11.5 ]) rotate([ 90, 0, 0 ]) cylinder( h = 10, r = 1.8, $fn=30 ); //hole B + + translate([ 88, 8, -9.5 ]) rotate([ 90, 0, 0]) cylinder( h = 10, r = 1.8, $fn=30 ); //hole A + translate([ 68, 8, -9.5 ]) rotate([ 90, 0, 0 ]) cylinder( h = 10, r = 1.8, $fn=30 ); //hole B + + translate([ 86.2, -10, -11.5 ]) cube([ 3.6, 20, 2 ]); // hole cut extension + translate([ 66.2, -10, -11.5 ]) cube([ 3.6, 20, 2 ]); // hole cut extension + + + + } +} +} + + +module psu_main(){ + + +difference() + { + union() + { + PSU_COVER(); + PSU_Y_REINFORCEMENT(); + translate([85.5,4+15.6+0.5,39.1+13.5]) rotate([0,0,180]) nuttrap(); + translate([49,4+15.6+0.5,39+13.5]) rotate([0,0,180]) nuttrap(); + } + translate([-5,-9,-30]) cube([150,10,100]); + } +} + + + +module upper_part() +{ + difference() + { + union() + { + psu_main(); + translate([30,3.5,49.5]) cube([15,11,2.5]); + translate([45,3.5,1]) cube([15,11,2.5]); + + } + + translate([-5,0,-20]) cube([120,3.5,120]); + translate([37,9,39]) rotate([0,0,0]) m3_screw(); + translate([14.5,8,25]) rotate([0,-90,0]) m3_screw(); + translate([85.5,8,25]) rotate([0,90,0]) m3_screw(); + translate([52,9,14.5]) rotate([0,180,0]) m3_screw(); + + //version + translate([73,7.5,1.5]) rotate([0,0,0]) linear_extrude(height = 0.6) + { text("R1",font = "helvetica:style=Bold", size=6, center=true); } + } + + + + + +} + + +module lower_part() +{ + difference() + { + union() + { + difference() + { + union() + { + psu_main(); // base cover + translate([50,0.5,40]) cube([40,3,13.8]); + translate([5,0.5,4]) cube([90,4,45]); + + } + translate([-5,3.5,-20]) cube([120,100,120]); // cut + } + + // frame side wall + translate([3.1,3,5]) cube([3,10,40]); + translate([5.1,3,20]) cube([3,10,10]); + + // rear wall + translate([93.9,3,5]) cube([3,10,40]); + translate([91.1,3,20]) cube([3,10,10]); + + // switch side wall + translate([30,3,44.5]) cube([15,11,5]); + + // nut inserts + translate([32,1,44]) cube([10,1,5]); + translate([3,1,20]) cube([5,11,10]); + translate([92,1,20]) cube([5,11,10]); + translate([45,2,3.5]) cube([15,11,5]); + translate([46.5,1,3.5]) cube([10,2,5]); + + // floor reinforcement + difference() + { + translate([5,0.5,4]) cube([90,3.5,45]); + translate([53.5,-1,34]) cube([27.5,8,20]); + } + + } + + // rear side nut + translate([4.5,-3.4,22.2]) cube([2.3,15,5.6]); + translate([-4,8,25 ]) rotate([0,90,0]) cylinder(h=15,r=1.6, $fn=30 ); + translate([-2,8,25 ]) rotate([0,90,0]) cylinder(h=4,r=3.1, $fn=30 ); + + // frame side nut + translate([93,-3.4,22.2]) cube([2.3,15,5.6]); + translate([88,8,25 ]) rotate([0,90,0]) cylinder(h=15,r=1.6, $fn=30 ); + translate([98,8,25 ]) rotate([0,90,0]) cylinder(h=4,r=3.1, $fn=30 ); + + // edges + translate([0,15,38]) rotate([45,0,0]) cube([15,15,15]); + translate([90,15,38]) rotate([45,0,0]) cube([15,15,15]); + translate([0,15,-9]) rotate([45,0,0]) cube([15,15,15]); + translate([90,15,-9]) rotate([45,0,0]) cube([15,15,15]); + translate([25,6,38]) rotate([0,0,45]) cube([15,15,15]); + translate([49.5,6,38]) rotate([0,0,45]) cube([15,15,15]); + translate([41,6,3]) rotate([0,0,45]) cube([15,15,15]); + translate([64,6,3]) rotate([0,0,45]) cube([15,15,15]); + + // switch side nut + translate([31.5+2.8,0,47.5-2]) cube([5.6,9+2.8,2.3]); + translate([37,9,43 ]) rotate([0,0,90]) cylinder(h=15,r=1.6, $fn=30 ); + + // reinforcement side nut + translate([52,9,-5 ]) rotate([0,0,90]) cylinder(h=15,r=1.6, $fn=30 ); + translate([46+2.8,0,5]) cube([5.6,9+2.8,2.3]); + + // cleanup + translate([-5,-8,-20]) cube([120,10,120]); + + // nut edges + translate([46+2.8,1.5,4]) rotate([45,0,0]) cube([5.6,3,3]); + translate([31.5+2.8,1.5,44.5]) rotate([45,0,0]) cube([5.6,3,3]); + translate([5.5,-0.5,22.2]) rotate([0,0,45]) cube([3,3,5.6]); + translate([94,-0.5,22.2]) rotate([0,0,45]) cube([3,3,5.6]); + + + //version + translate([10,3.6,20]) rotate([90,-90,180]) linear_extrude(height = 0.8) + { text("R1",font = "helvetica:style=Bold", size=6, center=true); } + } + + + + +} + + +translate([0,0,-3.5]) rotate([90,0,0]) upper_part(); +translate([100,23,-2]) rotate([90,0,180]) lower_part(); + + + + + + + + +