From 3dc4e39104209304ce105a7b878a9ee05a820807 Mon Sep 17 00:00:00 2001 From: Alexandr Kukan Date: Tue, 12 Feb 2019 15:13:17 +0100 Subject: [PATCH] MK3S initial --- Printed-Parts/SCAD/Einsy-base.scad | 977 ++++++++++++++++++ Printed-Parts/SCAD/Einsy-doors.scad | 129 +++ Printed-Parts/SCAD/Einsy-hinges.scad | 47 + Printed-Parts/SCAD/Extruder-cable-clip.scad | 58 ++ Printed-Parts/SCAD/Heatbed-cable-clip.scad | 83 ++ .../SCAD/Heatbed-cable-clip_8mm.scad | 83 ++ .../SCAD/LCD-cover-ORIGINAL-MK3.scad | 200 ++++ Printed-Parts/SCAD/LCD-knob.scad | 56 + Printed-Parts/SCAD/PSU-cover-MK3.scad | 317 ++++++ .../SCAD/heatbed-cable-cover-no-screw.scad | 206 ++++ ...atbed-cable-cover-no-screw_8mm_sleeve.scad | 206 ++++ Printed-Parts/SCAD/heatbed-cable-cover.scad | 244 +++++ .../SCAD/heatbed-cable-cover_8mm_sleeve.scad | 244 +++++ Printed-Parts/SCAD/lcd-supports.scad | 119 +++ Printed-Parts/SCAD/x-end-idler.scad | 218 ++++ Printed-Parts/SCAD/x-end-motor.scad | 174 ++++ Printed-Parts/SCAD/x-end.scad | 150 +++ Printed-Parts/SCAD/y-rod-holder.scad | 94 ++ Printed-Parts/SCAD/z-axis-bottom.scad | 168 +++ Printed-Parts/SCAD/z-axis-top.scad | 107 ++ Printed-Parts/SCAD/z-screw-cover.scad | 33 + 21 files changed, 3913 insertions(+) create mode 100644 Printed-Parts/SCAD/Einsy-base.scad create mode 100644 Printed-Parts/SCAD/Einsy-doors.scad create mode 100644 Printed-Parts/SCAD/Einsy-hinges.scad create mode 100644 Printed-Parts/SCAD/Extruder-cable-clip.scad create mode 100644 Printed-Parts/SCAD/Heatbed-cable-clip.scad create mode 100644 Printed-Parts/SCAD/Heatbed-cable-clip_8mm.scad create mode 100644 Printed-Parts/SCAD/LCD-cover-ORIGINAL-MK3.scad create mode 100644 Printed-Parts/SCAD/LCD-knob.scad create mode 100644 Printed-Parts/SCAD/PSU-cover-MK3.scad create mode 100644 Printed-Parts/SCAD/heatbed-cable-cover-no-screw.scad create mode 100644 Printed-Parts/SCAD/heatbed-cable-cover-no-screw_8mm_sleeve.scad create mode 100644 Printed-Parts/SCAD/heatbed-cable-cover.scad create mode 100644 Printed-Parts/SCAD/heatbed-cable-cover_8mm_sleeve.scad create mode 100644 Printed-Parts/SCAD/lcd-supports.scad create mode 100644 Printed-Parts/SCAD/x-end-idler.scad create mode 100644 Printed-Parts/SCAD/x-end-motor.scad create mode 100644 Printed-Parts/SCAD/x-end.scad create mode 100644 Printed-Parts/SCAD/y-rod-holder.scad create mode 100644 Printed-Parts/SCAD/z-axis-bottom.scad create mode 100644 Printed-Parts/SCAD/z-axis-top.scad create mode 100644 Printed-Parts/SCAD/z-screw-cover.scad diff --git a/Printed-Parts/SCAD/Einsy-base.scad b/Printed-Parts/SCAD/Einsy-base.scad new file mode 100644 index 0000000..10fc1d9 --- /dev/null +++ b/Printed-Parts/SCAD/Einsy-base.scad @@ -0,0 +1,977 @@ +// PRUSA iteration4 +// Einsy base +// GNU GPL v3 +// Josef Průša and contributors +// http://www.reprap.org/wiki/Prusa_Mendel +// http://prusamendel.org + + +module CubicPattern(Xdim, Ydim) +{ + for (x =[0:12:Xdim-10]) + { + for (y =[0:12:Ydim-10]) + { + translate([x,y,-0.2])cube([10,10,0.4]); + } + } +} + +module BottomCubic() +{ + difference() + { + translate([5,5,0]) CubicPattern(110,90); + translate([11,0,-1]) cube( [ 11, 40 , 4 ] ); + translate([0,0,-1]) cube( [ 11, 28 , 4 ] ); + translate([0,64,-1]) cube( [ 16, 28 , 4 ] ); + translate([95,64,-1]) cube( [ 20, 28 , 4 ] ); + translate([95,0,-1]) cube( [ 20, 28 , 4 ] ); + translate([76,-10,-1]) cube( [ 20, 20 , 4 ] ); + translate([52,76,-1]) cube( [ 12, 20 , 4 ] ); + } +} + + + +// main body +module main_body() + + +{ + + + //raspberry frame + + + + // 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 , 7 , 34 ] ); + + // side panel reinforcement + translate( [ 0 , 0 , 1 ] ) cube( [ 9 , 92 , 3 ] ); + translate( [ 98 , 0 , 0 ] ) cube( [ 9 , 92 , 4 ] ); + + // + 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); + + + // ziptie cable managment + translate( [0 , 55 , 22 ] ) difference() { + + translate( [0 , 0 , -2 ] ) cube( [ 5 , 8 , 10 ] ); + translate( [0 , -1 , -3 ] ) rotate([0,45,0]) cube( [ 5 , 10 , 8 ] ); + translate( [5, -1 , 6 ] ) rotate([0,-60,0]) cube( [ 5 , 10 , 8 ] ); + union() { + translate( [1.5 , 2.5 , 3.5] ) cube( [ 2 , 3 ,10 ] ); + translate( [3 , 2.5 , 2 ] ) cube( [ 5.5 , 3 ,2 ] ); + translate( [2 , 2.5 , 6.5 ] ) cube( [ 5 , 3 ,3 ] ); + + difference () { + translate( [ 3 ,5.5 , 3.5 ] ) rotate([90,0,0]) cylinder( h = 3, r = 1.5, $fn=30); + translate( [3.5 , 1.5 , 4 ] ) cube( [ 5 , 5 ,3 ] ); + + } + + + + + difference () { + translate( [ 4,5.5 , 4.5 ] ) rotate([90,0,0]) cylinder( h = 3, r = 1, $fn=30); + translate( [ 4,5.5 , 4.5 ] ) rotate([90,0,0]) cylinder( h = 3, r = 0.5, $fn=30); + translate( [3.5 , 1.5 , 4.5 ] ) cube( [ 5 , 5 ,3 ] ); + translate( [4. , 1.5 , 4 ] ) cube( [ 5 , 5 ,3 ] ); + } + } + } + + translate( [25 , 91.5 , 22 ] ) rotate([0,0,-90]) difference() { + + translate( [0 , 0 , -2 ] ) cube( [ 5 , 8 , 10 ] ); + translate( [0 , -1 , -3 ] ) rotate([0,45,0]) cube( [ 5 , 10 , 8 ] ); + translate( [5, -1 , 6 ] ) rotate([0,-60,0]) cube( [ 5 , 10 , 8 ] ); + union() { + translate( [1.5 , 2.5 , 3.5] ) cube( [ 2 , 3 ,10 ] ); + translate( [3 , 2.5 , 2 ] ) cube( [ 5.5 , 3 ,2 ] ); + translate( [2 , 2.5 , 6.5 ] ) cube( [ 5 , 3 ,3 ] ); + + difference () { + translate( [ 3 ,5.5 , 3.5 ] ) rotate([90,0,0]) cylinder( h = 3, r = 1.5, $fn=30); + translate( [3.5 , 1.5 , 4 ] ) cube( [ 5 , 5 ,3 ] ); + + } + + + + + difference () { + translate( [ 4,5.5 , 4.5 ] ) rotate([90,0,0]) cylinder( h = 3, r = 1, $fn=30); + translate( [ 4,5.5 , 4.5 ] ) rotate([90,0,0]) cylinder( h = 3, r = 0.5, $fn=30); + translate( [3.5 , 1.5 , 4.5 ] ) cube( [ 5 , 5 ,3 ] ); + translate( [4. , 1.5 , 4 ] ) cube( [ 5 , 5 ,3 ] ); + } + } + } + + + + 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( [ 9.5 , 7 , 35 ] ); + + // frame side panel + translate( [ 20 , 0 , 0 ] ) cube( [ 80 , 3 , 5 ] ); + + // Einsy 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); + + +} + module rambo_popout_cover () { + + //raspberry cover + translate( [ 20 , 37.5 , 0] ) cube( [ 3 , 1 , 0.5] ); + translate( [ 33 , 37.5 , 0] ) cube( [ 3 , 1 , 0.5] ); + translate( [ 45.8 , 37.5 , 0] ) cube( [ 3 , 1 , 0.5] ); + translate( [ 59 , 37.5 , 0] ) cube( [ 3 , 1 , 0.5] ); + translate( [72.5 , 37.5 , 0] ) cube( [ 3 , 1 , 0.5] ); + + + translate( [ 20 , 71.5 , 0] ) cube( [ 3 , 1 , 0.5] ); + translate( [ 33 , 71.5 , 0] ) cube( [ 3 , 1 , 0.5] ); + translate( [ 45.8 , 71.5 , 0] ) cube( [ 3 , 1 , 0.5] ); + translate( [ 59 , 71.5 , 0] ) cube( [ 3 , 1 , 0.5] ); + translate( [72.5 , 71.5 , 0] ) cube( [ 3 , 1 , 0.5] ); + + + translate( [ 9 , 51.5 , 0] ) cube( [ 5 , 7 , 0.5] ); + translate( [ 81 , 53.5 , 0] ) cube( [ 1 , 3 , 0.5] ); + + + + + + + difference() { + translate( [ 14 , 38.5 , 0] ) cube( [ 67 , 33 , 2] ); + + + translate( [ 0.5 , 0.5 , 0] ) difference() + { + translate( [ 17.5 , 42 , -1.1] ) cylinder( h = 9.2, r = 8, $fn=40); + translate( [ 17.2 , 41.7 , -1] ) cylinder( h = 9, r = 3.7, $fn=40); + + translate( [ 13.5 , 41.7 , -1] ) cube( [ 12.7 , 9 , 9] ); + translate( [ 17.2 , 38 , -1] ) cube( [ 9, 5 , 9] ); + } + + + translate( [ 60 , 0 , 0] ) difference() + { + translate( [ 17.3 , 42.2 , -1.1] ) cylinder( h = 9.2, r = 8, $fn=40); + translate( [ 17.3 , 42.2 , -1] ) cylinder( h = 9, r = 3.7, $fn=40); + + translate( [ 9.0 , 42 , -1] ) cube( [ 12 , 9 , 9] ); + translate( [ 8.8 , 38.5 , -1] ) cube( [ 9, 5 , 9] ); + +} + translate( [ 60 , 26 , 0] ) difference() + { + translate( [ 17.3 , 41.8 , -1.1] ) cylinder( h = 9.2, r = 8, $fn=40); + translate( [ 17.4 , 41.8 , -1] ) cylinder( h = 9, r = 3.7, $fn=40); + + translate( [ 8.5 , 33.5 , -1] ) cube( [ 9 , 12 , 9] ); + translate( [ 17 , 33 , -1] ) cube( [ 4, 9 , 9] ); +} + + translate( [ 0 , 26 , 0] ) difference() + { + translate( [ 17.7 , 41.8 , -1.1] ) cylinder( h = 9.2, r = 8, $fn=40); + translate( [ 17.7 , 41.8 , -1] ) cylinder( h = 9, r = 3.7, $fn=40); + + translate( [ 17.5 , 33.5 , -1] ) cube( [ 9 , 12 , 9] ); + translate( [ 14 , 33.5 , -1] ) cube( [ 5, 9 , 9] ); + } }} + + + + + module ventilation_holes() + { + + difference () { + 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]); + } + difference () { + translate( [ 13 , 35 , 0] ) cube( [ 71 , 39 , 2] ); + translate( [ 14 , 40.5 , -0.1] ) cube( [ 63 , 29 , 2.2] ); +}} +} + + + + + + + +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,0,35]) cube([30,60,15]); + translate([-15,24,30]) cube([30,8,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.7,$fn=30); + + + + + + + + + // side + translate( [ 12 , 19 , 1 ] ) cube( [ 85.5 , 51 , 3 ] ); + + // Einsy 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); + + + + + + + + + + + + + // 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( [ 70 , 82.5 , 2 ] ) rotate([0,0,45]) cube( [ 5 , 5 , 50] ); + translate( [ 6 , 80 , 7 ] ) rotate([0,0,45]) cube( [ 5 , 5 , 24] ); + translate( [ 5.5 , 4 , 7 ] ) rotate([0,0,45]) cube( [ 3 , 5 , 29] ); + + // 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] ); + + + // screw body edge + translate( [ 65 ,74.2 , 2] ) rotate([0,0,45]) cube( [ 10 , 10 , 50 ] ); + + + +} + + + + module raspberry() + + { + //raspberry pcb + + translate( [ 11 , 42 , -1] ) cube( [ 2.1 , 26 , 9] ); + translate( [ 81.9 , 42 , -1] ) cube( [ 2.1 , 5 , 9] ); + translate( [ 81.9 ,63 , -1] ) cube( [ 2.1 , 5 , 9] ); + + difference() { + translate( [ 13 , 37.5 , -1] ) cube( [ 69 , 35 , 9] ); + + + translate( [ 0 , 0 , 0] ) difference() + { + translate( [ 17.5 , 42 , -1.1] ) cylinder( h = 9.2, r = 8, $fn=40); + translate( [ 17.5 , 42 , -1] ) cylinder( h = 9, r = 4.5, $fn=40); + + translate( [ 13 , 42 , -1] ) cube( [ 12 , 8 , 9] ); + translate( [ 17.5 , 37.5 , -1] ) cube( [ 8, 5 , 9] ); + } + + + translate( [ 60 , 0 , 0] ) difference() + { + translate( [ 17.5 , 42 , -1.1] ) cylinder( h = 9.2, r = 8, $fn=40); + translate( [ 17.5 , 42 , -1] ) cylinder( h = 9, r = 4.5, $fn=40); + + translate( [ 10 , 42 , -1] ) cube( [ 12 , 8 , 9] ); + translate( [ 9.5 , 37.5 , -1] ) cube( [ 8, 5 , 9] ); + +} + translate( [ 60 , 26 , 0] ) difference() + { + translate( [ 17.5 , 42 , -1.1] ) cylinder( h = 9.2, r = 8, $fn=40); + translate( [ 17.5 , 42 , -1] ) cylinder( h = 9, r = 4.5, $fn=40); + + translate( [ 9.5 , 34.5 , -1] ) cube( [ 8 , 12 , 9] ); + translate( [ 18 , 34 , -1] ) cube( [ 4, 8 , 9] ); +} + + translate( [ 0 , 26 , 0] ) difference() + { + translate( [ 17.5 , 42 , -1.1] ) cylinder( h = 9.2, r = 8, $fn=40); + translate( [ 17.5 , 42 , -1] ) cylinder( h = 9, r = 4.5, $fn=40); + + translate( [ 17.5 , 34.5 , -1] ) cube( [ 8 , 12 , 9] ); + translate( [ 13 , 34 , -1] ) cube( [ 5, 8 , 9] ); + + + } }} + + + +module rambo_cover() +{ + + + difference(){ + rambo_popout_cover (); + cutouts(); + } + + difference(){ + main_body(); + + cutouts(); + + raspberry(); + + // main hole + translate( [ -10 , 28 , 26 ] ) rotate([0,90,0]) cylinder( h = 24, r = 6.8, $fn=30); + // cable opening slot + translate( [ -15 , 25 , 30 ] ) cube( [ 30 , 6 , 10 ] ); + + + + + + } +} + + +difference() +{ + union() + { + rambo_cover(); + + + // extruder cable holder + + + difference(){ + translate([0,0,15]) cube([5,40,20]); + translate([1.5,3,14.8]) rotate([0,45,0]) cube([3,40,5]); + } + translate([5,28,28]) rotate([0,90,0]) cylinder(h=5,r1=10,r2=8,$fn=30); + difference() + { + translate([-1.93,0,28.07]) 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]); + + + + // screwdriver hole + translate( [ 7.5 , 14 , 15 ] ) cylinder( h = 25, r = 2, $fn=30); + translate( [ 7.5 , 12 , 15 ] ) cube( [ 8 , 4 , 25] ); + + } + translate([-6,28,28]) rotate([0,90,0]) cylinder(h=6,r=13.5,$fn=30); + translate([-10,28,28]) rotate([0,90,0]) cylinder(h=4,r1=8.5,r2=13.5,$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]); + + + } + + + + // heatbed cable mounting reinforcement + translate([63,86.0,0.5]) cube([15,5,34.5]); + translate([75,90,28]) rotate([90,0,0]) cylinder(h=6,r1=16.5,r2=11,$fn=30); + translate([75,99,28]) rotate([90,0,0]) cylinder(h=9,r=13,$fn=30); + translate([75,101,28]) rotate([90,0,0]) cylinder(h=2,r1=9,r2=13,$fn=30); + difference(){ + translate([70.3,88.5,12.7]) rotate([-45,0,0]) cube([9.5,5,10]); + translate([70.4,85.5,10]) cube([9.5,5,9]); + } + + + } + + + + + // extruder cable holder + translate([1.5,7.1,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,23.5,30]) cube([30,9,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.8,$fn=30); + + + //screw holes + translate([-2.7,19.5,20]) rotate([0,0,90]) cylinder( h = 33,r = 1.6,$fn=30); + translate([-2.7,36.5,20]) rotate([0,0,90]) cylinder( h = 33,r = 1.6,$fn=30); + + + // nuts with supports + translate([-5.7,19.5,24.5]) difference (){ +translate([0,0,-0.25]) rotate([0,0,0]) cube([12,5.7,2.7], center =true) ; +translate([-8.6,-5,0.35]) cube([10,15,0.75]); +translate([4.6,-5,0.35]) cube([4,15,0.75]); +translate([-2.6,-5.6,0.65]) cube([15,4,0.35]); +translate([-2.6,1.6,0.65]) cube([15,4,0.35]); + + } + + + translate([-5.7,36.5,24.5]) difference (){ + translate([0,0,-0.25]) rotate([0,0,0]) cube([12,5.7,2.7], center =true) ; +translate([-8.6,-5,0.35]) cube([10,15,0.75]); +translate([4.6,-5,0.35]) cube([4,15,0.75]); +translate([-2.6,-5.6,0.65]) cube([15,4,0.35]); +translate([-2.6,1.6,0.65]) cube([15,4,0.35]); + } + + + + + + + + + + translate([-2.7,36,12]) rotate([0,0,90]) cube([3,40,5]); + + + // new heatbed cable holder + translate([61,102,28]) rotate([35,90,0]) cylinder(h=35,r=3.3,$fn=30); + + + // nuts with supports + translate([67,90.8 -4,24.5]) difference (){ +translate([0,0,-0.25]) rotate([0,0,90]) cube([10,5.7,2.7], center =true) ; +translate([-5.6,-5,0.65]) cube([4,15,0.5]); +translate([1.6,-5,0.65]) cube([4,15,0.5]); +translate([-5.6,-3.6,0.35]) cube([15,4,0.75]); +translate([-5.6,3.6,0.35]) cube([15,4,0.75]); + + } + + + translate([83,98,24.5]) difference (){ +translate([0,0,-0.25]) rotate([0,0,90]) cube([10,5.7,2.7], center =true) ; +translate([-5.6,-5,0.65]) cube([4,15,0.5]); +translate([1.6,-5,0.65]) cube([4,15,0.5]); +translate([-5.6,-7.6,0.35]) cube([15,4,0.75]); +translate([-5.6,-0.4,0.35]) cube([15,4,0.75]); + } + + + + + translate([67,88.8,20]) rotate([0,0,0]) cylinder(h=15,r=1.6,$fn=30); + translate([83,96,20]) rotate([0,0,0]) cylinder(h=15,r=1.6,$fn=30); + translate([60,92,28]) rotate([0,0,0]) cube([30,13,14]); + translate([60,80,35]) rotate([0,0,0]) cube([30,13,14]); + translate([72.5,80,30])rotate([0,0,0]) cube([5,13,14]); + + translate([62.5,82,28]) rotate([0,0,0]) cube([25,20,14]); + + + translate( [ 58.5 , 88 , -1 ] ) cylinder( h = 43, r = 1.9, $fn=30); + + + + translate( [ -16.2 , 28, 29 ] ) rotate([45,0,0]) cube( [ 40 , 12 , 12 ] ); + + //BottomCubic(); + translate( [ 14.5, 10, -2 ] ) cube( [ 4 , 23 , 10 ] ); + translate( [ 16.5, 10, -2 ] ) cylinder( h = 20, r = 2, $fn=30); + translate( [ 16.5, 33, -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 ] ); + + // bottom holes print supports + translate( [ 7.5 , 14 ,0] ){ + translate( [ 0 , 0 , 2.5 ] ) cube([3.2,5.6,2], center=true); + translate( [ 0 , 0 , 3 ] ) cube([3.2,3.8,2], center=true); + } + + translate( [ 102.5 , 14 ,0] ){ + translate( [ 0 , 0 , 2.5 ] ) cube([3.2,5.6,2], center=true); + translate( [ 0 , 0 , 3 ] ) cube([3.2,3.8,2], center=true); + } + + translate( [ 102.5 , 75 ,0] ){ + translate( [ 0 , 0 , 2.5 ] ) cube([3.2,5.6,2], center=true); + translate( [ 0 , 0 , 3 ] ) cube([3.2,3.8,2], center=true); + } + + translate( [ 7.5 , 75 ,0] ){ + translate( [ 0 , 0 , 2.5 ] ) cube([3.2,5.6,2], center=true); + translate( [ 0 , 0 , 3 ] ) cube([3.2,3.8,2], center=true); + } + + translate( [ 58.5 , 88 ,0] ){ + intersection(){cylinder(r=3.2, h=10, $fn=30); + translate( [ 0 , 0 , 2.5 ] ) cube([3.8,8,2], center=true);} + translate( [ 0 , 0 , 3 ] ) cube([3.8,3.8,2], center=true); + } + + translate([21,81,-5]) cylinder( h = 24, r = 0.8, $fn=30); + translate([21+58,81,-5]) cylinder( h = 24, r = 0.8, $fn=30); + + + translate([115,68,1.5]) rotate([0,0,90]) linear_extrude(height = 0.8) + { text("R3",font = "helvetica:style=Bold", size=6, center=true); } + +} + + module heatbed_cable_clip() +{ + +difference() +{ + + union() + { + difference() + { + union() + { + // body base + 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); + + } + + + + + // cut flat and shape + translate([60,82,14]) cube([30,20,14]); + translate([60,72,20]) cube([30,20,30]); + } + + + difference() { + translate([62.75,84,28]) cube([24.5,8,7]); + difference () { + translate([75,85,28]) rotate([90,0,0]) cube([30,20,10], center = true); + translate([75,90,28]) rotate([90,0,0]) cylinder(h=6,r1=16.5,r2=11,$fn=30); + + } + }} + + // cable opening + translate([61,102,28]) rotate([35,90,0]) + + difference (){ + + cylinder(h=35,r=4,$fn=30); + + + translate([0,0,3]) cylinder(h=5,r=4,$fn=30); + translate([0,0,12]) cylinder(h=1,r=4,$fn=30); + translate([0,0,16]) cylinder(h=1,r=4,$fn=30); + translate([0,0,20]) cylinder(h=1,r=4,$fn=30); + + } + translate([61,102,28]) rotate([35,90,0]) cylinder(h=35,r=3,$fn=30); + + + + // screw heads + translate([67,88.8,30.5]) rotate([0,0,0]) cylinder(h=10,r=3.2,$fn=30); + translate([83,96,30.5]) rotate([0,0,0]) cylinder(h=10,r=3.2,$fn=30); + + + // screws + translate([67,88.8,14]) rotate([0,0,0]) cylinder(h=35,r=1.6,$fn=50); + translate([83,96,14]) rotate([0,0,0]) cylinder(h=35,r=1.6,$fn=50); + + + // grips + + + +} + + + + +} + +//translate([0,0,0]) heatbed_cable_clip(); + + +module extruder_cable_clip() +{ + + difference(){ + difference() + { + union() + { + // body shape + translate([-6,28,28]) rotate([0,90,0]) cylinder(h=6,r=13.5,$fn=30); + translate([-10,28,28]) rotate([0,90,0]) cylinder(h=4,r1=8.5,r2=13.5, $fn=30); + translate([0,16.6,28]) cube([2.9,22.8,7]); + } + + // bottom cut and shape + translate([-15,7,13]) cube([30,40,15]); + translate([-20,28,28]) rotate([0,90,0]) cylinder(h=40,r=6, $fn=30); + + // screws + translate([-2.7,19.5,25]) rotate([0,0,90]) cylinder(h= 10, r = 1.6, $fn=50); + translate([-2.7,36.5,25]) rotate([0,0,90]) cylinder( h = 10, r = 1.6, $fn=50); + translate([-2.7,36.5,32]) rotate([0,0,90]) cylinder( h = 13, r = 3.1, $fn=30); + translate([-2.7,19.5,32]) rotate([0,0,90]) cylinder( h = 13, r = 3.1, $fn=30); + + // screw heads opening + translate([-2.7,16.4,35]) cube([10,6.2,15]); + translate([-2.7,33.4,35]) cube([10,6.2,15]); + + + } + + difference() + { + // cable grip + translate([-8,28,28]) rotate([0,90,0]) cylinder( h = 10, r = 6, $fn=30); + translate([-20,28,28]) rotate([0,90,0]) cylinder( h = 40, r = 5.5, $fn=30); + translate([-15,7,13]) cube([30,40,15]); + translate([-6,7,13]) cube([2,40,25]); + translate([-2,7,13]) cube([2,40,25]); + + } + + + //nylon hole + + translate([-3,28,28]) rotate([35,90,0]) cylinder( h = 24,r = 1.8,$fn=30);} + +} + +//translate([0,0,0]) extruder_cable_clip(); + + +module raspberry_cover () { + + + + //holders + + difference() { + union () { + + translate( [ 11.5 , 42.5 , 0] ) cube( [ 2 , 4 , 3.5] ); + translate( [ 11.5 ,63.5 , 0] ) cube( [ 2 , 4 , 3.5] ); + translate( [ 81.5 , 42.5 , 0] ) cube( [ 2 , 4 , 2.5] ); + translate( [ 81.5 ,63.5 , 0] ) cube( [ 2 , 4 , 2.5] ); + + translate( [ 10.4 , 42.5 , 2.7] ) rotate([0,45,0]) cube( [ 2 , 4 , 2] ); + translate( [ 10.4 ,63.5 , 2.7] ) rotate([0,45,0]) cube( [ 2 , 4 , 2] ); + translate( [ 81.7 , 42.5 , 1.7] ) rotate([0,45,0]) cube( [ 2 , 4 , 2] ); + translate( [ 81.7 ,63.5 , 1.7] ) rotate([0,45,0]) cube( [ 2 , 4 , 2] );} + + translate( [ 10.5 , 42 , 3.5] ) cube( [ 4 , 5 , 3.5] ); + translate( [ 10.5 ,63 , 3.5] ) cube( [ 4 , 5 , 3.5] ); + translate( [ 81.5 , 42 , 2.5] ) cube( [ 4 , 5 , 2.5] ); + translate( [ 81.5 ,63 , 2.5] ) cube( [ 4 , 5 , 2.5] ); + + } + + //body + + difference() { + translate( [ 11.5 , 36 , -3] ) cube( [ 72 , 38 , 3] ); + + + translate( [ -0.4 , -0.4 , 0] ) difference() + { + translate( [ 17.5 , 42 , -4.1] ) cylinder( h = 4.2, r = 8, $fn=40); + translate( [ 17.5 , 42 , -4] ) cylinder( h = 4, r = 5.6, $fn=40); + + translate( [ 11.9 , 42 , -4] ) cube( [ 14 , 8 , 4] ); + translate( [ 17.5 , 36.4 , -4] ) cube( [ 8, 6 , 4] ); + } + + + translate( [ 60.4 , -0.4 , 0] ) difference() + { + translate( [ 17.5 , 42 , -4.1] ) cylinder( h = 4.2, r = 8, $fn=40); + translate( [ 17.5 , 42 , -4] ) cylinder( h = 4, r = 5.6, $fn=40); + + translate( [ 9.1 , 42 , -4] ) cube( [ 14 , 8 , 4] ); + translate( [ 9.5 , 36.4 , -4] ) cube( [ 8, 6 , 4] ); + +} + translate( [ 60.4 , 26.4 , 0] ) difference() + { + translate( [ 17.5 , 42 , -4.1] ) cylinder( h = 4.2, r = 8, $fn=40); + translate( [ 17.5 , 42 , -4] ) cylinder( h = 4, r = 5.6, $fn=40); + + translate( [ 8.5 , 33.6 , -4] ) cube( [ 9 , 14 , 4] ); + translate( [ 17.1 , 34 , -4] ) cube( [ 6, 8 , 4] ); +} + + translate( [ -0.4 , 26.4 , 0] ) difference() + { + translate( [ 17.5 , 42 , -4.1] ) cylinder( h = 4.2, r = 8, $fn=40); + translate( [ 17.5 , 42 , -4] ) cylinder( h = 4, r = 5.6, $fn=40); + + translate( [ 17.5 , 33.6 , -4] ) cube( [ 9 , 14 , 4] ); + translate( [ 11.9 , 33.4 , -4] ) cube( [ 6, 9 , 4] ); + + + + + + + } + + + // ventilation cutout + + + for ( i = [-5 : 6] ){ + + translate([43 + (i*5.5),42.3,-5]) cube([3.65,25.2,10]); + + + } + + + + + + //raspberry pcb cutout + + + + translate ([0,0,-2]) difference() { + translate( [ 13.5 , 38 , 0] ) cube( [ 68 , 34 , 9] ); + + + translate( [ 0 , 0 , 0] ) difference() + { + translate( [ 17.5 , 42 , -1.1] ) cylinder( h = 9.2, r = 8, $fn=40); + translate( [ 17.5 , 42 , -1] ) cylinder( h = 9, r = 4, $fn=40); + + translate( [ 13.5 , 42 , -1] ) cube( [ 12 , 8 , 9] ); + translate( [ 17.5 , 38 , -1] ) cube( [ 8, 5 , 9] ); + } + + + translate( [ 60 , 0 , 0] ) difference() + { + translate( [ 17.5 , 42 , -1.1] ) cylinder( h = 9.2, r = 8, $fn=40); + translate( [ 17.5 , 42 , -1] ) cylinder( h = 9, r = 4, $fn=40); + + translate( [ 9.5 , 42 , -1] ) cube( [ 12 , 8 , 9] ); + translate( [ 9.5 , 38 , -1] ) cube( [ 8, 5 , 9] ); + +} + translate( [ 60 , 26 , 0] ) difference() + { + translate( [ 17.5 , 42 , -1.1] ) cylinder( h = 9.2, r = 8, $fn=40); + translate( [ 17.5 , 42 , -1] ) cylinder( h = 9, r = 4, $fn=40); + + translate( [ 9.5 , 34 , -1] ) cube( [ 8 , 12 , 9] ); + translate( [ 17.5 , 34 , -1] ) cube( [ 4, 8 , 9] ); +} + + translate( [ 0 , 26 , 0] ) difference() + { + translate( [ 17.5 , 42 , -1.1] ) cylinder( h = 9.2, r = 8, $fn=40); + translate( [ 17.5 , 42 , -1] ) cylinder( h = 9, r = 4, $fn=40); + + translate( [ 17.5 , 34 , -1] ) cube( [ 8 , 12 , 9] ); + translate( [ 13.5 , 34 , -1] ) cube( [ 5, 8 , 9] ); + + + + + + } } + + + + + + } + + + + + + + + + + + + + + + + + +} + + + diff --git a/Printed-Parts/SCAD/Einsy-doors.scad b/Printed-Parts/SCAD/Einsy-doors.scad new file mode 100644 index 0000000..809697c --- /dev/null +++ b/Printed-Parts/SCAD/Einsy-doors.scad @@ -0,0 +1,129 @@ +// PRUSA iteration4 +// Einsy doors +// GNU GPL v3 +// Josef Průša and contributors +// http://www.reprap.org/wiki/Prusa_Mendel +// http://prusamendel.org + +module body() +{ + // side panels + cube([105.5,87.5,1.5]); + cube([105.5,2,16]); + cube([2,87.5,16]); + + // corner reinforcement + translate([98,1,0]) cube([7.5,5,16]); + translate([0.5,0.5,0]) cube([5,6.5,16]); + translate([1,0,0]) cube([10,87.5,6]); + translate([99.5,0,0] ) cube([6,87.5,7]); + translate([10,0,0]) cube([6,5,6]); + + // screw thread body + translate([54,2,0]) cube([9.5,6,16]); + + // rounded side + translate([0,87.5,4.5]) rotate([0,90,0]) cylinder( h=105.5, r=4.5, $fn=30); + + // upper hinge reinforcement + translate([0.5,69,-9]) rotate([20,0,0]) cube([26,20,10]); + + // door closing + translate([4,3.5,12.8]) rotate([0,0,0]) cylinder( h=3.2, r1=1.8, r2=3.5, $fn=30); + translate([102,3.5,12.8]) rotate([0,0,0]) cylinder( h=3.2, r1=1.8, r2=3.5, $fn=30); +} + +module ventilation_holes() + { + for ( i = [0 : 9] ) + { + translate([40 + (i*6),10.5,-1]) cube([3.65,19+50,1.2]); + translate([40 + (i*6),10.5,-1]) cube([3.65,19,10]); + translate([40 + (i*6),10.5+25,-1]) cube([3.65,19,10]); + translate([40 + (i*6),10.5+50,-1]) cube([3.65,19,10]); + } + for ( i = [0 : -4] ) + { + translate([40 + (i*6),10.5,-1]) cube([3.65,19+50,1.2]); + } + for ( i = [-6 : -7] ) + { + translate([46 + (i*6),20.5,-1]) cube([3.65,19+40,1.2]); + } + + translate([15,10,1]) cube([20,55,1.5]); +} + +module cutouts() +{ + // door closing screw + translate([58.5,4,1]) cylinder( h = 17, r = 1.8, $fn=30); + translate([58.5,4,14.5]) cylinder( h = 2.6, r1 = 1.8, r2=2.2, $fn=30); + translate([58.5,4,11.5]) + { + translate([0,0,2.5]) cube([5.7,3.8,1], center=true); + translate([0,0,3]) cube([3.8,3.8,1], center=true); + } + + ventilation_holes(); + + // rounded side cutoff + translate([26.5,87.5,4.5]) rotate([0,90,0]) cylinder( h = 73, r = 3.5, $fn=30); + translate([26.5,80,5]) cube([73,19,10]); + translate([26.5,82.5,1]) cube([73,5,10]); + + // upper hinge cut + translate([0,60,-10]) cube([30,30,10]); + translate([-1,87.5,0]) cube([22.5,10,10]); + + // upper hinge + translate([2,80,6]) cube([19.5,10,10]); + translate([-2,89.7,3]) rotate([70,0,0]) cube([19.5,10,5]); + translate([-5,87.5,4.5]) rotate([0,90,0]) cylinder( h = 26.5, r = 2.5, $fn=30); + + // hinge hole + translate([-5,87.5,4.5]) rotate([0,90,0]) cylinder( h = 120, r = 2.6, $fn=30); + + // door closing + translate([4,3.5,12.9]) rotate([0,0,0]) cylinder( h = 3.2, r1 = 1.2, r2= 2.8, $fn=30); + translate([102,3.5,12.9]) rotate([0,0,0]) cylinder( h = 3.2, r1 = 1.2, r2= 2.8, $fn=30); + + // M3 nut + translate([55.65,0.5,12]) cube([5.7,10,2.2]); + + // side panel lightning slot + translate([2,10,3] ) cube([7,65,5]); + translate([101,10,3] ) cube([3,70,5]); + + // corners - cut + translate([53,3,1.5]) rotate([0,0,70]) cube([10,10,50]); + translate([61,12,1.5]) rotate([0,0,-70]) cube([10,10,50]); + translate([16,2,1.5]) rotate([0,0,45]) cube([5,5,50]); + +} + +module Einsy_doors() +{ +difference() +{ + body(); + cutouts(); + // large corner cut + translate( [0 , -20, -3] ) rotate([0,45,45]) cube( [ 30, 30 , 20 ] ); + + translate([30,79,1]) rotate([0,0,-90]) linear_extrude(height = 0.8) + { text("R1",font = "helvetica:style=Bold", size=6, center=true); } +} +} + +Einsy_doors(); + + + + + + + + + + \ No newline at end of file diff --git a/Printed-Parts/SCAD/Einsy-hinges.scad b/Printed-Parts/SCAD/Einsy-hinges.scad new file mode 100644 index 0000000..52f7e1f --- /dev/null +++ b/Printed-Parts/SCAD/Einsy-hinges.scad @@ -0,0 +1,47 @@ +// PRUSA iteration4 +// Einsy cover hinges +// GNU GPL v3 +// Josef Průša and contributors +// http://www.reprap.org/wiki/Prusa_Mendel +// http://prusamendel.org + +module upper_hinge() +{ +difference() +{ + union(){ + // body + cylinder( h = 26, r = 2.4, $fn=30); + translate([0,0,26]) cylinder( h = 2, r1 = 2.4, r2 = 1.8, $fn=30); + translate( [ -5 , -10.7 , 0 ] ) cube( [ 7 , 10.7 , 21 ] ); + } + // M3 screw hole + translate( [ -12.5 , -2.5 , 17 ] ) rotate( [0,90,0] ) cylinder( h = 20, r = 1.75, $fn=30); + translate( [ -1.5 , -2.5 , 17 ] ) rotate( [0,90,0] ) cylinder( h = 9, r = 3, $fn=30); + // angle cut + translate([-2.9,-20,-1]) rotate([0,0,60]) cube([25,5,26]); +} +} + +module lower_hinge() +{ +difference() +{ + union(){ + // body + translate( [ 0 , 6 , 0 ] ) cylinder( h = 15, r = 2.4, $fn=30); + translate( [ 0 , 6 , 0 ] ) cylinder( h = 10, r = 2.8, $fn=30); + translate( [ 0 , 6 , 15 ] ) cylinder( h = 2, r1 = 2.4, r2=1.8, $fn=30); + translate( [ -5 , 6 , 0 ] ) cube( [ 7 , 10.7 , 10 ] ); + } + // M3 screw + translate( [ -0.5 , 8.5 , 4 ] ) rotate( [0,90,0] ) cylinder( h = 20, r = 3, $fn=30); + translate( [ -12 , 8.5 , 4 ] ) rotate( [0,90,0] ) cylinder( h = 20, r = 1.75, $fn=30); + // angle cut + translate([-5,20,-1]) rotate([0,0,-60]) cube([20,5,20]); +} +} + + +upper_hinge(); +lower_hinge(); \ No newline at end of file diff --git a/Printed-Parts/SCAD/Extruder-cable-clip.scad b/Printed-Parts/SCAD/Extruder-cable-clip.scad new file mode 100644 index 0000000..520108e --- /dev/null +++ b/Printed-Parts/SCAD/Extruder-cable-clip.scad @@ -0,0 +1,58 @@ +// PRUSA iteration4 +// Extruder cable clip +// GNU GPL v3 +// Josef Průša and contributors +// http://www.reprap.org/wiki/Prusa_Mendel +// http://prusamendel.org + +module extruder_cable_clip() +{ + + difference(){ + difference() + { + union() + { + // body shape + translate([-6,28,28]) rotate([0,90,0]) cylinder(h=6,r=13.5,$fn=30); + translate([-10,28,28]) rotate([0,90,0]) cylinder(h=4,r1=8.5,r2=13.5, $fn=30); + translate([0,16.6,28]) cube([2.9,22.8,7]); + } + + // bottom cut and shape + translate([-15,7,13]) cube([30,40,15]); + translate([-20,28,28]) rotate([0,90,0]) cylinder(h=40,r=6, $fn=30); + + // screws + translate([-2.7,19.5,25]) rotate([0,0,90]) cylinder(h= 10, r = 1.6, $fn=50); + translate([-2.7,36.5,25]) rotate([0,0,90]) cylinder( h = 10, r = 1.6, $fn=50); + translate([-2.7,36.5,32]) rotate([0,0,90]) cylinder( h = 13, r = 3.1, $fn=30); + translate([-2.7,19.5,32]) rotate([0,0,90]) cylinder( h = 13, r = 3.1, $fn=30); + + // screw heads opening + translate([-2.7,16.4,35]) cube([10,6.2,15]); + translate([-2.7,33.4,35]) cube([10,6.2,15]); + + + } + + difference() + { + // cable grip + translate([-8,28,28]) rotate([0,90,0]) cylinder( h = 10, r = 6, $fn=30); + translate([-20,28,28]) rotate([0,90,0]) cylinder( h = 40, r = 5.5, $fn=30); + translate([-15,7,13]) cube([30,40,15]); + translate([-6,7,13]) cube([2,40,25]); + translate([-2,7,13]) cube([2,40,25]); + + } + + + //nylon hole + + translate([-3,28,28]) rotate([35,90,0]) cylinder( h = 24,r = 1.8,$fn=30);}} + + +//translate([0,0,0]) extruder_cable_clip(); + +translate([6,-28,-28]) extruder_cable_clip(); \ No newline at end of file diff --git a/Printed-Parts/SCAD/Heatbed-cable-clip.scad b/Printed-Parts/SCAD/Heatbed-cable-clip.scad new file mode 100644 index 0000000..3471e52 --- /dev/null +++ b/Printed-Parts/SCAD/Heatbed-cable-clip.scad @@ -0,0 +1,83 @@ +// PRUSA iteration4 +// Heatbed cable clip +// GNU GPL v3 +// Josef Průša and contributors +// http://www.reprap.org/wiki/Prusa_Mendel +// http://prusamendel.org + + + module heatbed_cable_clip() +{ + +difference() +{ + + union() + { + difference() + { + union() + { + // body base + 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); + + } + + + + + // cut flat and shape + translate([60,82,14]) cube([30,20,14]); + translate([60,72,20]) cube([30,20,30]); + } + + + difference() { + translate([62.75,84,28]) cube([24.5,8,7]); + difference () { + translate([75,85,28]) rotate([90,0,0]) cube([30,20,10], center = true); + translate([75,90,28]) rotate([90,0,0]) cylinder(h=6,r1=16.5,r2=11,$fn=30); + + } + }} + + // cable opening + translate([61,102,28]) rotate([35,90,0]) + + difference (){ + + cylinder(h=35,r=4,$fn=30); + + + translate([0,0,3]) cylinder(h=5,r=4,$fn=30); + translate([0,0,12]) cylinder(h=1,r=4,$fn=30); + translate([0,0,16]) cylinder(h=1,r=4,$fn=30); + translate([0,0,20]) cylinder(h=1,r=4,$fn=30); + + } + translate([61,102,28]) rotate([35,90,0]) cylinder(h=35,r=3.3,$fn=30); + + + + // screw heads + translate([67,88.8,30.5]) rotate([0,0,0]) cylinder(h=10,r=3.2,$fn=30); + translate([83,96,31]) rotate([0,0,0]) cylinder(h=10,r=3.2,$fn=30); + + + // screws + translate([67,88.8,14]) rotate([0,0,0]) cylinder(h=35,r=1.6,$fn=50); + translate([83,96,14]) rotate([0,0,0]) cylinder(h=35,r=1.6,$fn=50); + + + + + +} + + + + +} + +translate([-70,-110,0]) heatbed_cable_clip(); diff --git a/Printed-Parts/SCAD/Heatbed-cable-clip_8mm.scad b/Printed-Parts/SCAD/Heatbed-cable-clip_8mm.scad new file mode 100644 index 0000000..f97252a --- /dev/null +++ b/Printed-Parts/SCAD/Heatbed-cable-clip_8mm.scad @@ -0,0 +1,83 @@ +// PRUSA iteration4 +// Heatbed cable clip +// GNU GPL v3 +// Josef Průša and contributors +// http://www.reprap.org/wiki/Prusa_Mendel +// http://prusamendel.org + + + module heatbed_cable_clip() +{ + +difference() +{ + + union() + { + difference() + { + union() + { + // body base + 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); + + } + + + + + // cut flat and shape + translate([60,82,14]) cube([30,20,14]); + translate([60,72,20]) cube([30,20,30]); + } + + + difference() { + translate([62.75,84,28]) cube([24.5,8,7]); + difference () { + translate([75,85,28]) rotate([90,0,0]) cube([30,20,10], center = true); + translate([75,90,28]) rotate([90,0,0]) cylinder(h=6,r1=16.5,r2=11,$fn=30); + + } + }} + + // cable opening + translate([61,102,28]) rotate([35,90,0]) + + difference (){ + + cylinder(h=35,r=5,$fn=30); + + + //translate([0,0,3]) cylinder(h=5,r=5,$fn=30); + translate([0,0,12]) cylinder(h=1,r=5,$fn=30); + translate([0,0,16]) cylinder(h=1,r=5,$fn=30); + translate([0,0,20]) cylinder(h=1,r=5,$fn=30); + + } + translate([61,102,28]) rotate([35,90,0]) cylinder(h=35,r=4.3,$fn=30); + + + + // screw heads + translate([67,88.8,30.5]) rotate([0,0,0]) cylinder(h=10,r=3.2,$fn=30); + translate([83,96,31]) rotate([0,0,0]) cylinder(h=10,r=3.2,$fn=30); + + + // screws + translate([67,88.8,14]) rotate([0,0,0]) cylinder(h=35,r=1.6,$fn=50); + translate([83,96,14]) rotate([0,0,0]) cylinder(h=35,r=1.6,$fn=50); + + + + + +} + + + + +} + +translate([-70,-110,0]) heatbed_cable_clip(); diff --git a/Printed-Parts/SCAD/LCD-cover-ORIGINAL-MK3.scad b/Printed-Parts/SCAD/LCD-cover-ORIGINAL-MK3.scad new file mode 100644 index 0000000..63f0f5f --- /dev/null +++ b/Printed-Parts/SCAD/LCD-cover-ORIGINAL-MK3.scad @@ -0,0 +1,200 @@ +// PRUSA iteration4 +// LCD cover +// GNU GPL v3 +// Josef Průša and contributors +// http://www.reprap.org/wiki/Prusa_Mendel +// http://prusamendel.org + + +module main_body() +{ + difference() + { + union() + { + // main body + translate( [ -77 , -4.5 , 0 ] ) cube( [ 155 , 59.8 , 2 ] ); + translate( [ -77 , -4.5 , 0 ] ) rotate([35,0,0]) cube( [ 155 , 2 , 20.08 ] ); + translate( [ -77 , -3.5 , -1 ] ) rotate([35,0,0]) cube( [ 7 , 5 , 15 ] ); + translate( [ 71 , -3.5 , -1 ] ) rotate([35,0,0]) cube( [ 7 , 5 , 15 ] ); + translate( [ -77 , -14.7 , 14.2 ] ) cube( [ 155 , 2 , 11.8 ] ); + translate( [ -77 , 54 , 0 ] ) cube( [ 155 , 2 , 17 ] ); + + // M3 hole body + translate( [ 73.5 , 43.3 , 0.5 ] ) rotate([0,0,90]) cylinder( h = 14, r = 4, $fn=6); + translate( [ -72.5 , 43.5 , 0.5 ] ) rotate([0,0,90]) cylinder( h = 14, r = 4, $fn=6); + } + + // LCD window + translate( [ -61.5 , 1 , 1.2 ] ) cube( [ 98.5 , 42 , 10 ] ); + translate( [ -54.5 , 8 , -1 ] ) cube( [ 85 , 30.5 , 10 ] ); + + // buzzer holes + translate( [ 55 , 1.5 , -1 ] ) cube( [ 1.3 , 4 , 10 ] ); + translate( [ 57 , 1.5 , -1 ] ) cube( [ 1.3 , 4 , 10 ] ); + translate( [ 59 , 1.5 , -1 ] ) cube( [ 1.3 , 4 , 10 ] ); + translate( [ 61 , 1.5 , -1 ] ) cube( [ 1.3 , 4 , 10 ] ); + translate( [ 63 , 1.5 , -1 ] ) cube( [ 1.3 , 4 , 10 ] ); + translate( [ 65 , 1.5 , -1 ] ) cube( [ 1.3 , 4 , 10 ] ); + translate( [ 67 , 1.5 , -1 ] ) cube( [ 1.3 , 4 , 10 ] ); + + // buzzer holes corners + translate( [ 66.25 , 1.5 , -0.5 ] ) rotate([0,45,0]) cube( [ 2 , 4 , 2 ] ); + translate( [ 64.25 , 1.5 , -0.5 ] ) rotate([0,45,0]) cube( [ 2 , 4 , 2 ] ); + translate( [ 62.25 , 1.5 , -0.5 ] ) rotate([0,45,0]) cube( [ 2 , 4 , 2 ] ); + translate( [ 60.25 , 1.5 , -0.5 ] ) rotate([0,45,0]) cube( [ 2 , 4 , 2 ] ); + translate( [ 58.25 , 1.5 , -0.5 ] ) rotate([0,45,0]) cube( [ 2 , 4 , 2 ] ); + translate( [ 56.25 , 1.5 , -0.5 ] ) rotate([0,45,0]) cube( [ 2 , 4 , 2 ] ); + translate( [ 54.25 , 1.5 , -0.5 ] ) rotate([0,45,0]) cube( [ 2 , 4 , 2 ] ); + + // knob hole + translate( [ 62.5 , 21 , -1 ] ) cylinder( h = 10, r = 6, $fn=30); + translate( [ 62.5 , 21 , -1.2 ] ) cylinder( h = 2, r1 = 7, r2 = 6, $fn=30); + + // reset button cutout + translate( [ 44 , 26 , -1 ] ) cube( [ 1 , 6 , 9 ] ); + translate( [ 48 , 26 , -1 ] ) cube( [ 1 , 2.5 , 9 ] ); + translate( [ 68.5 , 36 , -1 ] ) cube( [ 1 , 8 , 9 ] ); + translate( [ 56 , 43 , -1 ] ) cube( [ 13.5 , 1 , 9 ] ); + translate( [ 50.5 , 30 , -1 ] ) cube( [ 13 , 1 , 9 ] ); + translate( [ 44.7 , 31.28 , -1 ] ) rotate([0,0,45]) cube( [ 17 , 1 , 9 ] ); + translate( [ 63.5 , 30 , -1 ] ) rotate([0,0,45]) cube( [ 8.5 , 1 , 9 ] ); + translate( [ 48.7 , 27.8 , -1 ] ) rotate([0,0,45]) cube( [ 3.55 , 1 , 9 ] ); + + // rear support cutout + translate( [ -64.5 , -12.7 , 14 ] ) cube( [ 10 , 3 , 16 ] ); + translate( [ 55.5 , -12.7 , 14 ] ) cube( [ 10 , 3 , 16 ] ); + + } +} + +module pcb_clip() +{ + difference() + { + union() + { + translate( [ -3 , -12 , 17.5 ] ) cube( [ 7 , 4 , 5 ] ); + translate( [ -3 , -10.6 , 12.5 ] ) cube( [ 1 , 2.6 , 7 ] ); + translate( [ 3 , -10.6 , 12.5 ] ) cube( [ 1 , 2.6 , 7 ] ); + } + translate( [ -4 , -8 , 18.5 ] ) rotate([30,0,0]) cube( [ 10 , 6 , 6 ] ); + translate( [ 2.5 , -12 , 14.5 ] ) cube( [ 1 , 4 , 0.2 ] ); + translate( [ -2.5 , -12 , 14.5 ] ) cube( [ 1 , 4 , 0.2 ] ); + translate( [ 2.5 , -12 , 17.3 ] ) cube( [ 1 , 4 , 0.2 ] ); + translate( [ -2.5 , -12 , 17.3 ] ) cube( [ 1 , 4 , 0.2 ] ); + } +} + + + +difference() +{ + union() + { + + pcb_clip(); + main_body(); + + // reset button + translate( [ 62.5 , 37.3 , 0 ] ) cylinder( h = 7.2, r = 3.5, $fn=30); + + //left side + translate( [ -77 , -14.7 , 0 ] ) cube( [ 1.5 , 70.7 , 26 ] ); + translate( [ -76.5 , -15 , 0 ] ) cube( [ 4 , 70 , 14.6 ] ); + + //right side + translate( [ 76.5 , -14.7 , 0 ] ) cube( [ 1.5 , 70.7 , 26 ] ); + translate( [ 73.5 , -14 , 0 ] ) cube( [ 4 , 70 , 14.5 ] ); + + //rear side reinforcement + translate( [ -54.5 , -11.7 , 8 ] ) cube( [ 110 , 4 , 6.5 ] ); + translate( [ 65.5 , -11.7 , 8 ] ) cube( [ 12 , 4 , 6.5 ] ); + translate( [ 65.5 , -13 , 14 ] ) cube( [ 12 , 2 , 12 ] ); + translate( [ -76.5 , -11.7 , 8 ] ) cube( [ 12 , 4 , 6.5 ] ); + translate( [ -76.5 , -14.7 , 14.5 ] ) cube( [ 12 , 4 , 11.5 ] ); + translate( [ -44 , -14.7 , 14.5 ] ) cube( [ 89 , 4 , 11.5 ] ); + translate( [ -43.5 , -10.7 , 15 ] ) rotate([90,0,0]) cylinder( h = 2, r = 11, $fn=60); + translate( [ 44.5 , -10.7 , 15 ] ) rotate([90,0,0]) cylinder( h = 2, r = 11, $fn=60); + + //front left side reinforcement + difference() + { + union() + { + translate( [ -77 , 41.3 , 0 ] ) cube( [ 15 , 14 , 25 ] ); + translate( [ -77 , 46.3 , 14 ] ) cube( [ 15 , 9 , 3 ] ); + } + translate( [ -64.5 , 40 , -3 ] ) cube( [ 4 , 8 , 40 ] ); + translate( [ -75.5 , 40.3 , 14.5 ] ) cube( [15 , 6.5 , 25 ] ); + } + + + //front right side reinforcement + difference() + { + translate( [ 38 , 41.2 , 0 ] ) cube( [ 40 , 14 , 26 ] ); + translate( [ 55 , 44.5 , 0 ] ) cube( [ 10.5 , 3.7 , 30 ] ); + translate( [ 44 , 39.5 , 0 ] ) cube( [ 25.5 , 5 , 30 ] ); + translate( [ 35 , 39.3 , 14.5 ] ) cube( [ 42.5 , 7 , 15 ] ); + translate( [ 49 , 43.2 , 25 ] ) rotate([0,60,0]) cube( [ 12 , 5 , 10 ] ); + } + } + + // SD card opening + translate( [ -80 , 9 , 16.5 ] ) cube( [ 10 , 28 , 4.5 ] ); + + // front and rear angle + translate( [ -81 , -9.3 , -17 ] ) rotate([35,0,0]) cube( [ 164 , 14 , 54.08 ] ); + translate( [ -78 , 72.7 , -3 ] ) rotate([45,0,0]) cube( [ 160 , 14 , 54.08 ] ); + + // M3 screw thread + translate( [ 72.5 , 43.2 , 3 ] ) cylinder( h = 20, r = 1.4, $fn=30); + translate( [ -72.5 , 42.7 , 3 ] ) cylinder( h = 20, r = 1.4, $fn=30); + translate( [ 72.5 , 43.2 , 11.7 ] ) cylinder( h = 3, r1 = 1.4, r2=2.2, $fn=30); + translate( [ -72.5 , 42.7 , 11.7 ] ) cylinder( h = 3, r = 1.4, r2=2.2, $fn=30); + + // ORIGINAL PRUSA text + translate([-67,51,0.6]) rotate([180,0,0]) linear_extrude(height = 2) + { text("ORIGINAL",font = "helvetica:style=Bold", size=7, center=true); } + translate([-18,51,0.6]) rotate([180,0,0]) linear_extrude(height = 2) + { text("PRUSA",font = "helvetica:style=Bold", size=11, center=true); } + translate( [ -66 , 40.5 , -0.4 ] ) cube( [ 45 , 1.6 , 1 ] ); + translate( [ -66 , 41.3 , -0.4 ] ) cylinder( h = 1, r = 0.8, $fn=30); + translate( [ -21 , 41.3 , -0.4 ] ) cylinder( h = 1, r = 0.8, $fn=30); + + // front cleanup + translate( [ -100 , -64 , 0 ] ) cube( [ 200 , 50 , 50 ] ); + + // X sign on reset button + translate( [ 63 , 34 , -1 ] ) rotate([0,0,45]) cube( [ 2, 8, 2 ] ); + translate( [ 57.5 , 35.5 , -1 ] ) rotate([0,0,-45]) cube( [ 2, 8, 2 ] ); + + // corners + translate( [ 73 , -5 , -1 ] ) rotate([0,45,0]) cube( [ 7, 80, 7 ] ); + translate( [ -82 , -5 , -1 ] ) rotate([0,45,0]) cube( [ 7, 80, 7 ] ); + + translate( [ -82 , 58 , -5 ] ) rotate([45,0,0]) cube( [ 200, 7, 7 ] ); + translate( [ -77 , 51 , -4 ] ) rotate([0,0,45]) cube( [ 8, 8, 50 ] ); + translate( [ 78 , 51 , -4 ] ) rotate([0,0,45]) cube( [ 8, 8, 50 ] ); + translate( [ 78 , -19 , -4 ] ) rotate([0,0,45]) cube( [ 5, 5, 50 ] ); + translate( [ -77 , -19 , -4 ] ) rotate([0,0,45]) cube( [ 5, 5, 50 ] ); + + // LCD corners + translate( [ -54.5 , 9.5 , -5.2 ] ) rotate([45,0,0]) cube( [ 85 , 5 , 5 ] ); // LCD window + translate( [ -54.5 , 37 , -5.2 ] ) rotate([45,0,0]) cube( [ 85 , 5 , 5 ] ); // LCD window + rotate([35,0,0]) translate( [ -78 , -8 , -4 ] ) rotate([0,0,45]) cube( [ 6, 6, 50 ] ); + rotate([35,0,0]) translate( [ 79 , -8 , -4 ] ) rotate([0,0,45]) cube( [ 6, 6, 50 ] ); + translate( [ -100 , -40 , -50 ] ) cube( [ 200 , 50 , 50 ] ); + + // version + translate([-73,15,4]) rotate([90,0,90]) linear_extrude(height = 2) + { text("R2",font = "helvetica:style=Bold", size=7, center=true); } + + +} + +// print support for SD card opening +translate( [ -76.5 , 15 , 16.70 ] ) cube( [ 1 , 5 , 4.1 ] ); +translate( [ -76.5 , 25 , 16.70 ] ) cube( [ 1 , 5 , 4.1 ] ); + diff --git a/Printed-Parts/SCAD/LCD-knob.scad b/Printed-Parts/SCAD/LCD-knob.scad new file mode 100644 index 0000000..3c03f6b --- /dev/null +++ b/Printed-Parts/SCAD/LCD-knob.scad @@ -0,0 +1,56 @@ +// PRUSA iteration3 +// LCD Knob +// GNU GPL v3 +// Josef Průša and contributors +// http://www.reprap.org/wiki/Prusa_Mendel +// http://prusamendel.org + +difference () { + +// main body + +translate([0,0,0]) rotate(a=[0,0,0]) cylinder(h = 7.5, r1=10, r=7.25, $fn=60); + +translate([0,0,20]) rotate(a=[0,0,0]) sphere(14); + +// knob cutout +translate([0,0,-0.1]) rotate(a=[0,0,0]) cylinder(h = 4.6, d=6.1, $fn=60); + +translate([0,0,-0.1]) rotate(a=[0,0,0]) cylinder(h = 0.6, d1=7.1, d2=6.1 , $fn=30); + +translate([0,0.75,-0.1]) rotate(a=[0,0,-90]) cube([1.5,5.3,4.6]); + +// first layer correction +union () { + +difference (){ +translate([0,0,-0.1]) rotate(a=[0,0,0]) cylinder(h = 2,d1= 11.5, d2=10.5, $fn=60); +translate([0,0,-0.15]) rotate(a=[0,0,0]) cylinder(h = 2,d1= 9.5, d2=10.5, $fn=60); +translate([0,0,1]) rotate(a=[0,0,0]) cylinder(h = 2,d= 13, $fn=30); + translate([-13.5,-6,-0.1]) rotate(a=[0,0,0]) cube([10,12,4.6]); +} +} + + +difference () { + +translate([0,0,-0.1]) rotate(a=[0,0,0]) cylinder(h = 4.6, d=11, $fn=60); +translate([0,0,-0.1]) rotate(a=[0,0,0]) cylinder(h = 4.6, d= 10, $fn=60); +translate([-13.5,-6,-0.1]) rotate(a=[0,0,0]) cube([10,12,4.6]); + + } + + + + } + +// handle + +difference () { + +translate([-2.1,6.5,0]) rotate(a=[0,0,0]) cube([4.2,12,7.5]); +translate([-2.5,15,7.7]) rotate(a=[-67,0,0]) cube([5.5,11,7.5]); +translate([-2.2,18.22,-0.1]) rotate(a=[0,0,0]) cube([4.4,12,0.21]); + +} + 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(); + + + + + + + + + diff --git a/Printed-Parts/SCAD/heatbed-cable-cover-no-screw.scad b/Printed-Parts/SCAD/heatbed-cable-cover-no-screw.scad new file mode 100644 index 0000000..4d8897a --- /dev/null +++ b/Printed-Parts/SCAD/heatbed-cable-cover-no-screw.scad @@ -0,0 +1,206 @@ +// PRUSA iteration4 +// Heatbed cover +// GNU GPL v3 +// Josef Průša and contributors +// http://www.reprap.org/wiki/Prusa_Mendel +// http://prusamendel.org + + + +module cover() +{ + difference() + { + // base block + translate([-18,0,0]) cube([36,32,8.6]); + + // inner cut + translate([-15,-0.5,-3]) cube([30,16.5,9]); + translate([-0,33,3]) rotate([90,0,0]) cylinder(h = 15, r=3.3, $fn=60); + translate([-15,15,-6]) cube([30,19,9]); + + // inner edges + translate([-4,4.5,0]) rotate([0,0,45]) cube([15,15,6]); + translate([4.0,4.51,0]) rotate([0,0,45]) cube([15,15,6]); + + // outer edges + translate([-18.0,25,-1]) rotate([0,0,45]) cube([11,11,10]); + translate([18,25,-1]) rotate([0,0,45]) cube([11,11,10]); + + // screw holes for clip + translate([-10,25,0]) cylinder(h = 10, r=1.7, $fn=50); + translate([10,25,0]) cylinder(h = 10, r=1.7, $fn=50); + + + // clip nuts entry + translate([-10,25,8]) cylinder(h = 4, r1=3.15, r2=6, $fn=6); + translate([10,25,8]) cylinder(h = 4, r1=3.15, r2=6, $fn=6); + + // clip nuts with print supports + difference() + { + union() + { + + + translate( [ -10 , 25 , 5.65 ] ){ + cylinder( h = 4, r = 3.15, $fn=6); + + } + + + + translate( [ 10 , 25 , 5.65 ] ){ + cylinder( h = 4, r = 3.15, $fn=6); + } + + + + } + translate([-8.3,0,0.25]) cube([16.6,40,5.7]); + translate([-16.7,0,0.25]) cube([5,40,5.7]); + translate([11.7,0,0.25]) cube([5,40,5.7]); + translate([-20,13.3,0.25]) cube([70,10,6]); + translate([-20,26.7,0.25]) cube([70,10,6]); + + } + // pcb nut + difference() + { + union() + { + + translate( [ 0 , 7.5 , 5.5 ] ){ + cylinder( h = 4, r = 3.15, $fn=6); + + } + + + } + translate([-11.7,0,0.8]) cube([10,40,5.5]); + translate([1.7,0,.8]) cube([10,40,5.5]); + translate([-5,-4.2,1.1]) cube([10,10,5.5]); + translate([-5,9.2,1.1]) cube([10,10,5.5]); + } + + + // heatbed screw + translate([0,7.5,8]) cylinder(h = 4, r1=3.15, r2=6, $fn=6); + translate([0,7.5,3]) cylinder(h = 6, r=1.7, $fn=50); + + // LED window + translate([-2.5,-1,-4]) cube([5,3.5,10]); + translate([-14,-4,-6]) rotate([0,0,45]) cube([5,5,10]); + translate([14,-4,-6]) rotate([0,0,45]) cube([5,5,10]); + + // edges + translate([-20,-0,6.5]) rotate([45,0,0]) cube([40,5,5]); + translate([-23,-1,8.5]) rotate([0,45,0]) cube([5,45,6]); + translate([15.8,-1,8.7]) rotate([0,45,0]) cube([6,45,5]); + translate([30,12,8.7]) rotate([0,45,45]) cube([6,45,5]); + translate([-40.6,12,9.7]) rotate([0,45,-45]) cube([6,45,5]); +} + + // heatbed pcb support + translate([-17,0,4]) cube([3,20,2]); + translate([14,0,4]) cube([3,20,2]); + translate([-17,0,4]) cube([14,2,2]); + translate([3,0,4]) cube([14,2,2]); + + + // heatbed screw body + difference() + { + translate([0,7.5,4]) cylinder(h = 2.1, r=5, $fn=6); + translate([0,7.5,6.05]) cylinder(h = 4, r=3.15, $fn=6); + translate([0,7.5,3]) cylinder(h = 7, r=1.7, $fn=50); + } + + +} + + + + + +module clip() +{ + + difference() + { + // base body + translate([-15,15.5,-3]) cube([30,16.5,6]); + + // cables cut + translate([-0,33,3]) rotate([90,0,0]) cylinder(h = 15, r=4, $fn=60); + + // screws + translate([-10,25,-3]) cylinder(h = 10, r=1.7, $fn=50); + translate([10,25,-3]) cylinder(h = 10, r=1.7, $fn=50); + translate([-10,25,-5.5]) cylinder(h = 3, r2=3.1, r1=5, $fn=50); + translate([10,25,-5.5]) cylinder(h = 3, r2=3.1, r1=5,$fn=50); + + // print support for nut heads + difference() + { + union() + { + translate([-10,25,-3.5]) cylinder(h = 3, r=3.1, $fn=50); + translate([10,25,-3.5]) cylinder(h = 3, r=3.1, $fn=50); + } + translate([-30,13.3,-0.8]) cube([60,10,2]); + translate([-30,26.7,-0.8]) cube([60,10,2]); + translate([-8.3,20,-1.1]) cube([16.6,10,2]); + translate([-21.7,20,-1.1]) cube([10,10,2]); + translate([11.7,20,-1.1]) cube([10,10,2]); + } + + // thermistor cable entry + translate([-0,22,4]) rotate([115,0,0]) cylinder(h = 15, r=3.3, $fn=60); + + + // edges + translate([-18.0,25,-5]) rotate([0,0,45]) cube([11,11,15]); + translate([18,25,-5]) rotate([0,0,45]) cube([11,11,15]); + + // inner angled cut + difference() + { + translate([-15,15,0]) cube([30,11,4]); + translate([-14.5,14.5,-1]) rotate([0,0,45]) cube([17,17,6]); + translate([14.5,14.5,-1]) rotate([0,0,45]) cube([17,17,6]); + + translate([-13,11,-1]) rotate([-45,0,45]) cube([20,20,6]); + translate([13,11,-1]) rotate([0,45,45]) cube([20,20,6]); + translate([-10,16,-10]) rotate([30,0,0]) cube([20,20,6]); + } + + } + + // cable rims + difference() + { + difference() + { + translate([-0,32,3]) rotate([90,0,0]) cylinder(h = 7, r=4.5, $fn=60); + translate([-0,34,3]) rotate([90,0,0]) cylinder(h = 17, r=3, $fn=60); + } + translate([-15,17,3]) cube([30,20,6]); + translate([-15,26,-5]) cube([30,2,16]); + translate([-15,29,-5]) cube([30,2,16]); + + + } +} + + +translate([0,0,8.6]) rotate([0,180,0]) +{ +translate([0,20,5.6]) rotate([0,180,0]) clip(); +cover(); +} + + + + + diff --git a/Printed-Parts/SCAD/heatbed-cable-cover-no-screw_8mm_sleeve.scad b/Printed-Parts/SCAD/heatbed-cable-cover-no-screw_8mm_sleeve.scad new file mode 100644 index 0000000..810421f --- /dev/null +++ b/Printed-Parts/SCAD/heatbed-cable-cover-no-screw_8mm_sleeve.scad @@ -0,0 +1,206 @@ +// PRUSA iteration4 +// Heatbed cover +// GNU GPL v3 +// Josef Průša and contributors +// http://www.reprap.org/wiki/Prusa_Mendel +// http://prusamendel.org + + + +module cover() +{ + difference() + { + // base block + translate([-18,0,0]) cube([36,32,8.6]); + + // inner cut + translate([-15,-0.5,-3]) cube([30,16.5,9]); + translate([-0,33,3]) rotate([90,0,0]) cylinder(h = 15, r=4, $fn=60); + translate([-15,15,-6]) cube([30,19,9]); + + // inner edges + translate([-4,4.5,0]) rotate([0,0,45]) cube([15,15,6]); + translate([4.0,4.51,0]) rotate([0,0,45]) cube([15,15,6]); + + // outer edges + translate([-18.0,25,-1]) rotate([0,0,45]) cube([11,11,10]); + translate([18,25,-1]) rotate([0,0,45]) cube([11,11,10]); + + // screw holes for clip + translate([-10,25,0]) cylinder(h = 10, r=1.7, $fn=50); + translate([10,25,0]) cylinder(h = 10, r=1.7, $fn=50); + + + // clip nuts entry + translate([-10,25,8]) cylinder(h = 4, r1=3.15, r2=6, $fn=6); + translate([10,25,8]) cylinder(h = 4, r1=3.15, r2=6, $fn=6); + + // clip nuts with print supports + difference() + { + union() + { + + + translate( [ -10 , 25 , 5.65 ] ){ + cylinder( h = 4, r = 3.15, $fn=6); + + } + + + + translate( [ 10 , 25 , 5.65 ] ){ + cylinder( h = 4, r = 3.15, $fn=6); + } + + + + } + translate([-8.3,0,0.25]) cube([16.6,40,5.7]); + translate([-16.7,0,0.25]) cube([5,40,5.7]); + translate([11.7,0,0.25]) cube([5,40,5.7]); + translate([-20,13.3,0.25]) cube([70,10,6]); + translate([-20,26.7,0.25]) cube([70,10,6]); + + } + // pcb nut + difference() + { + union() + { + + translate( [ 0 , 7.5 , 5.5 ] ){ + cylinder( h = 4, r = 3.15, $fn=6); + + } + + + } + translate([-11.7,0,0.8]) cube([10,40,5.5]); + translate([1.7,0,.8]) cube([10,40,5.5]); + translate([-5,-4.2,1.1]) cube([10,10,5.5]); + translate([-5,9.2,1.1]) cube([10,10,5.5]); + } + + + // heatbed screw + translate([0,7.5,8]) cylinder(h = 4, r1=3.15, r2=6, $fn=6); + translate([0,7.5,3]) cylinder(h = 6, r=1.7, $fn=50); + + // LED window + translate([-2.5,-1,-4]) cube([5,3.5,10]); + translate([-14,-4,-6]) rotate([0,0,45]) cube([5,5,10]); + translate([14,-4,-6]) rotate([0,0,45]) cube([5,5,10]); + + // edges + translate([-20,-0,6.5]) rotate([45,0,0]) cube([40,5,5]); + translate([-23,-1,8.5]) rotate([0,45,0]) cube([5,45,6]); + translate([15.8,-1,8.7]) rotate([0,45,0]) cube([6,45,5]); + translate([30,12,8.7]) rotate([0,45,45]) cube([6,45,5]); + translate([-40.6,12,9.7]) rotate([0,45,-45]) cube([6,45,5]); +} + + // heatbed pcb support + translate([-17,0,4]) cube([3,20,2]); + translate([14,0,4]) cube([3,20,2]); + translate([-17,0,4]) cube([14,2,2]); + translate([3,0,4]) cube([14,2,2]); + + + // heatbed screw body + difference() + { + translate([0,7.5,4]) cylinder(h = 2.1, r=5, $fn=6); + translate([0,7.5,6.05]) cylinder(h = 4, r=3.15, $fn=6); + translate([0,7.5,3]) cylinder(h = 7, r=1.7, $fn=50); + } + + +} + + + + + +module clip() +{ + + difference() + { + // base body + translate([-15,15.5,-3]) cube([30,16.5,6]); + + // cables cut + translate([-0,33,3]) rotate([90,0,0]) cylinder(h = 15, r=4, $fn=60); + + // screws + translate([-10,25,-3]) cylinder(h = 10, r=1.7, $fn=50); + translate([10,25,-3]) cylinder(h = 10, r=1.7, $fn=50); + translate([-10,25,-5.5]) cylinder(h = 3, r2=3.1, r1=5, $fn=50); + translate([10,25,-5.5]) cylinder(h = 3, r2=3.1, r1=5,$fn=50); + + // print support for nut heads + difference() + { + union() + { + translate([-10,25,-3.5]) cylinder(h = 3, r=3.1, $fn=50); + translate([10,25,-3.5]) cylinder(h = 3, r=3.1, $fn=50); + } + translate([-30,13.3,-0.8]) cube([60,10,2]); + translate([-30,26.7,-0.8]) cube([60,10,2]); + translate([-8.3,20,-1.1]) cube([16.6,10,2]); + translate([-21.7,20,-1.1]) cube([10,10,2]); + translate([11.7,20,-1.1]) cube([10,10,2]); + } + + // thermistor cable entry + translate([-0,22,4]) rotate([115,0,0]) cylinder(h = 15, r=3.3, $fn=60); + + + // edges + translate([-18.0,25,-5]) rotate([0,0,45]) cube([11,11,15]); + translate([18,25,-5]) rotate([0,0,45]) cube([11,11,15]); + + // inner angled cut + difference() + { + translate([-15,15,0]) cube([30,11,4]); + translate([-14.5,14.5,-1]) rotate([0,0,45]) cube([17,17,6]); + translate([14.5,14.5,-1]) rotate([0,0,45]) cube([17,17,6]); + + translate([-13,11,-1]) rotate([-45,0,45]) cube([20,20,6]); + translate([13,11,-1]) rotate([0,45,45]) cube([20,20,6]); + translate([-10,16,-10]) rotate([30,0,0]) cube([20,20,6]); + } + + } + + // cable rims + difference() + { + difference() + { + translate([-0,32,3]) rotate([90,0,0]) cylinder(h = 7, r=4.5, $fn=60); + translate([-0,34,3]) rotate([90,0,0]) cylinder(h = 17, r=3.5, $fn=60); + } + translate([-15,17,3]) cube([30,20,6]); + translate([-15,26,-5]) cube([30,2,16]); + translate([-15,29,-5]) cube([30,2,16]); + + + } +} + + +translate([0,0,8.6]) rotate([0,180,0]) +{ +translate([0,20,5.6]) rotate([0,180,0]) clip(); +cover(); +} + + + + + diff --git a/Printed-Parts/SCAD/heatbed-cable-cover.scad b/Printed-Parts/SCAD/heatbed-cable-cover.scad new file mode 100644 index 0000000..e94b6fa --- /dev/null +++ b/Printed-Parts/SCAD/heatbed-cable-cover.scad @@ -0,0 +1,244 @@ +// PRUSA iteration4 +// Heatbed cover MK2.5 +// GNU GPL v3 +// Josef Průša and contributors +// http://www.reprap.org/wiki/Prusa_Mendel +// http://prusamendel.org + +module cover() +{ + + + difference() + { + + + + // base block + translate([-18,0,0]) cube([36,36,9]); + + // inner cut + translate([-15,-0.5,-3]) cube([30,16,9]); + translate([-0,37,3]) rotate([90,0,0]) cylinder(h = 15, r=3.3, $fn=60); + translate([-15,15,-6]) cube([30,22,9]); + + // inner edges + translate([3.5,2,0]) rotate([0,0,0]) cube([10.5,15,6]); + translate([-14,2,0]) rotate([0,0,0]) cube([10.5,15,6]); + + translate([2.5,15,0]) rotate([0,0,0]) cube([8,8,6]); + translate([-10.5,15,0]) rotate([0,0,0]) cube([8,8,6]); + + translate([6.96,19.45,0]) rotate([0,0,45]) cube([5,10,6]); + translate([-6.96,19.45,0]) rotate([0,0,45]) cube([10,5,6]); + + translate([3.96,18.45,0]) rotate([0,0,20]) cube([5,6,6]); + translate([-3.96,18.45,0]) rotate([0,0,70]) cube([6,5,6]); + + + + translate([-0,20,0.5]) rotate([90,0,0]) cube([11,11,11], center = true); + + translate([2,14,-1]) rotate([0,0,10]) cube([8,13,6]); + translate([-9.88,15.21,-1]) rotate([0,0,-10]) cube([8,13,6]); + + // outer edges + translate([-18.0,32,-1]) rotate([0,0,25]) cube([11,11,11]); + translate([18,32,-1]) rotate([0,0,65]) cube([11,11,11]); + + // screw holes for clip + translate([-11,30,0]) cylinder(h = 10, r=1.6, $fn=50); + translate([11,30,0]) cylinder(h = 10, r=1.6, $fn=50); + + + // clip nuts entry + translate([-11,30,8.2]) rotate([0,0,0]) cylinder(h = 4, r1=3.15, r2=6, $fn=6); + translate([11,30,8.2]) rotate([0,0,0]) cylinder(h = 4, r1=3.15, r2=6, $fn=6); + + // heatbed terminal screw pockets + + translate([8.5,7.5,0]) cylinder(h = 8.6, r=3.25, $fn=50); + translate([-8.5,7.5,0]) cylinder(h = 8.6, r=3.25, $fn=50); + + + // clip nuts with print supports + difference() + { + union() + { + + + translate( [ 11 , 30 , 6 ] ){ + cylinder( h = 4, r = 3.15, $fn=6); + + } + + + translate( [ -11 , 30 , 6 ] ){ + cylinder( h = 4, r = 3.15, $fn=6); + + } + } + translate([-9.4,4,0.6]) cube([18.8,40,5.7]); + translate([-17.6,4,0.6]) cube([5,40,5.7]); + translate([12.6,4,0.6]) cube([5,40,5.7]); + translate([-22,18.4,0.6]) cube([70,10,6]); + translate([-20,31.6,0.6]) cube([70,10,6]); + + } + + difference() + { + union() + { + + + translate( [ 0 , 7.5 , 5.4 ] ){ + cylinder( h = 4, r = 3.15, $fn=6); + + } + + + } + translate([-11.6,0,1]) cube([10,40,5.7]); + translate([1.6,0,1]) cube([10,40,5.7]); + translate([-5,-4.1,1]) cube([10,10,6]); + translate([-5,9.1,1]) cube([10,10,6]); + } + + // heatbed screw nut entry + + translate([0,7.5,8.2]) rotate([0,0,0]) cylinder(h = 4, r1=3.15, r2=6, $fn=6); + + + // LED window + translate([-2.5,-1,-4]) cube([5,3.5,10]); + translate([-14,-4,-6]) rotate([0,0,45]) cube([5,5,10]); + translate([14,-4,-6]) rotate([0,0,45]) cube([5,5,10]); + + // edges + translate([-20,-0,6.5]) rotate([45,0,0]) cube([40,5,5]); + translate([-23.3,-1,9.7]) rotate([0,45,0]) cube([6,45,6]); + translate([14.8,-1,9.7]) rotate([0,45,0]) cube([6,45,5]); + +} + + // heatbed pcb support + translate([-17,0,4]) cube([3,20,2]); + translate([14,0,4]) cube([3,20,2]); + translate([-17,0,4]) cube([14,2,2]); + translate([3,0,4]) cube([14,2,2]); + + + // heatbed screw body + difference() + { + + + translate([0,7.5,4]) rotate(90, v = [0,0,1]) cylinder(h = 3.9, r=2.75, $fn=50); + translate([0,7.5,6.5]) cylinder(h = 4, r=2.76, $fn=50); + translate([0,7.5,3]) cylinder(h = 4, r=1.6, $fn=50); + } + + +} + +module clip() +{ + + difference() + { + // base body + translate([-15,15.5,-3]) cube([30,20.5,6]); + + // inner angled cut + translate([3.5,2,0]) rotate([0,0,0]) cube([10.5,15,6]); + translate([-14,2,0]) rotate([0,0,0]) cube([10.5,15,6]); + + translate([3.5,15,0]) rotate([0,0,0]) cube([7,8,6]); + translate([-10.5,15,0]) rotate([0,0,0]) cube([7,8,6]); + + translate([6.96,19.45,1]) rotate([0,0,45]) cube([5,10,6]); + translate([-6.96,19.45,1]) rotate([0,0,45]) cube([10,5,6]); + + translate([-0,37,3]) rotate([90,0,0]) cylinder(h = 17, r=3.5, $fn=60); + + translate([-7,15,0]) rotate([0,0,0]) cube([14,11,6]); + + translate([3,14,1]) rotate([0,0,10]) cube([7,13,6]); + translate([-9.88,15.21,1]) rotate([0,0,-10]) cube([7,13,6]); + + // cables cut + translate([-0,36,3]) rotate([90,0,0]) cylinder(h = 187, r=4, $fn=60); + + // screws + translate([-11,30,-3]) cylinder(h = 10, r=1.6, $fn=50); + translate([11,30,-3]) cylinder(h = 10, r=1.6, $fn=50); + translate([-11,30,-5.5]) cylinder(h = 3, r2=3.1, r1=5, $fn=50); + translate([11,30,-5.5]) cylinder(h = 3, r2=3.1, r1=5,$fn=50); + + // print support for nut heads + difference() + { + union() + { + translate([-11,30,-3.5]) cylinder(h = 3, r=3.1, $fn=50); + translate([11,30,-3.5]) cylinder(h = 3, r=3.1, $fn=50); + } + translate([-30,18.4,-0.8]) cube([60,10,2]); + translate([-30,31.6,-0.8]) cube([60,10,2]); + translate([-9.4,25,-1.1]) cube([18.8,10,2]); + translate([-22.6,25,-1.1]) cube([10,10,2]); + translate([12.6,25,-1.1]) cube([10,10,2]); + } + + // thermistor cable entry + translate([-0,22,4]) rotate([115,0,0]) cylinder(h = 15, r=3, $fn=60); + + + // edges + + translate([-18.0,32,-5]) rotate([0,0,25]) cube([11,11,15]); + translate([18,32,-5]) rotate([0,0,65]) cube([11,11,15]); + + + + + } + + // cable rims + difference() + { + difference() + { + translate([-0,36,3]) rotate([90,0,0]) cylinder(h = 10, r=4.5, $fn=60); + translate([-0,37,3]) rotate([90,0,0]) cylinder(h = 17, r=3, $fn=60); + + } + translate([-15,18,3]) cube([30,20,6]); + translate([-15,27,-5]) cube([30,2,16]); + translate([-15,30,-5]) cube([30,2,16]); + translate([-15,33,-5]) cube([30,2,16]); + translate([6.96,19.45,1]) rotate([0,0,45]) cube([5,10,6]); + translate([-6.96,19.45,1]) rotate([0,0,45]) cube([10,5,6]); + translate([-4,20,0]) rotate([0,0,0]) cube([8,11,6]); + + + + } + +} + + + + +translate([0,40,3]) +clip(); + +translate([0,40,9]) rotate([180,0,0]) +cover(); + + + + + diff --git a/Printed-Parts/SCAD/heatbed-cable-cover_8mm_sleeve.scad b/Printed-Parts/SCAD/heatbed-cable-cover_8mm_sleeve.scad new file mode 100644 index 0000000..0f7c5f0 --- /dev/null +++ b/Printed-Parts/SCAD/heatbed-cable-cover_8mm_sleeve.scad @@ -0,0 +1,244 @@ +// PRUSA iteration4 +// Heatbed cover MK2.5 +// GNU GPL v3 +// Josef Průša and contributors +// http://www.reprap.org/wiki/Prusa_Mendel +// http://prusamendel.org + +module cover() +{ + + + difference() + { + + + + // base block + translate([-18,0,0]) cube([36,36,9]); + + // inner cut + translate([-15,-0.5,-3]) cube([30,16,9]); + translate([-0,37,3]) rotate([90,0,0]) cylinder(h = 15, r=4, $fn=60); + translate([-15,15,-6]) cube([30,22,9]); + + // inner edges + translate([3.5,2,0]) rotate([0,0,0]) cube([10.5,15,6]); + translate([-14,2,0]) rotate([0,0,0]) cube([10.5,15,6]); + + translate([2.5,15,0]) rotate([0,0,0]) cube([8,8,6]); + translate([-10.5,15,0]) rotate([0,0,0]) cube([8,8,6]); + + translate([6.96,19.45,0]) rotate([0,0,45]) cube([5,10,6]); + translate([-6.96,19.45,0]) rotate([0,0,45]) cube([10,5,6]); + + translate([3.96,18.45,0]) rotate([0,0,20]) cube([5,6,6]); + translate([-3.96,18.45,0]) rotate([0,0,70]) cube([6,5,6]); + + + + translate([-0,20,0.5]) rotate([90,0,0]) cube([11,11,11], center = true); + + translate([2,14,-1]) rotate([0,0,10]) cube([8,13,6]); + translate([-9.88,15.21,-1]) rotate([0,0,-10]) cube([8,13,6]); + + // outer edges + translate([-18.0,32,-1]) rotate([0,0,25]) cube([11,11,11]); + translate([18,32,-1]) rotate([0,0,65]) cube([11,11,11]); + + // screw holes for clip + translate([-11,30,0]) cylinder(h = 10, r=1.6, $fn=50); + translate([11,30,0]) cylinder(h = 10, r=1.6, $fn=50); + + + // clip nuts entry + translate([-11,30,8.2]) rotate([0,0,0]) cylinder(h = 4, r1=3.15, r2=6, $fn=6); + translate([11,30,8.2]) rotate([0,0,0]) cylinder(h = 4, r1=3.15, r2=6, $fn=6); + + // heatbed terminal screw pockets + + translate([8.5,7.5,0]) cylinder(h = 8.6, r=3.25, $fn=50); + translate([-8.5,7.5,0]) cylinder(h = 8.6, r=3.25, $fn=50); + + + // clip nuts with print supports + difference() + { + union() + { + + + translate( [ 11 , 30 , 6 ] ){ + cylinder( h = 4, r = 3.15, $fn=6); + + } + + + translate( [ -11 , 30 , 6 ] ){ + cylinder( h = 4, r = 3.15, $fn=6); + + } + } + translate([-9.4,4,0.6]) cube([18.8,40,5.7]); + translate([-17.6,4,0.6]) cube([5,40,5.7]); + translate([12.6,4,0.6]) cube([5,40,5.7]); + translate([-22,18.4,0.6]) cube([70,10,6]); + translate([-20,31.6,0.6]) cube([70,10,6]); + + } + + difference() + { + union() + { + + + translate( [ 0 , 7.5 , 5.4 ] ){ + cylinder( h = 4, r = 3.15, $fn=6); + + } + + + } + translate([-11.6,0,1]) cube([10,40,5.7]); + translate([1.6,0,1]) cube([10,40,5.7]); + translate([-5,-4.1,1]) cube([10,10,6]); + translate([-5,9.1,1]) cube([10,10,6]); + } + + // heatbed screw nut entry + + translate([0,7.5,8.2]) rotate([0,0,0]) cylinder(h = 4, r1=3.15, r2=6, $fn=6); + + + // LED window + translate([-2.5,-1,-4]) cube([5,3.5,10]); + translate([-14,-4,-6]) rotate([0,0,45]) cube([5,5,10]); + translate([14,-4,-6]) rotate([0,0,45]) cube([5,5,10]); + + // edges + translate([-20,-0,6.5]) rotate([45,0,0]) cube([40,5,5]); + translate([-23.3,-1,9.7]) rotate([0,45,0]) cube([6,45,6]); + translate([14.8,-1,9.7]) rotate([0,45,0]) cube([6,45,5]); + +} + + // heatbed pcb support + translate([-17,0,4]) cube([3,20,2]); + translate([14,0,4]) cube([3,20,2]); + translate([-17,0,4]) cube([14,2,2]); + translate([3,0,4]) cube([14,2,2]); + + + // heatbed screw body + difference() + { + + + translate([0,7.5,4]) rotate(90, v = [0,0,1]) cylinder(h = 3.9, r=2.75, $fn=50); + translate([0,7.5,6.5]) cylinder(h = 4, r=2.76, $fn=50); + translate([0,7.5,3]) cylinder(h = 4, r=1.6, $fn=50); + } + + +} + +module clip() +{ + + difference() + { + // base body + translate([-15,15.5,-3]) cube([30,20.5,6]); + + // inner angled cut + translate([3.5,2,0]) rotate([0,0,0]) cube([10.5,15,6]); + translate([-14,2,0]) rotate([0,0,0]) cube([10.5,15,6]); + + translate([3.5,15,0]) rotate([0,0,0]) cube([7,8,6]); + translate([-10.5,15,0]) rotate([0,0,0]) cube([7,8,6]); + + translate([6.96,19.45,1]) rotate([0,0,45]) cube([5,10,6]); + translate([-6.96,19.45,1]) rotate([0,0,45]) cube([10,5,6]); + + translate([-0,37,3]) rotate([90,0,0]) cylinder(h = 17, r=3.5, $fn=60); + + translate([-7,15,0]) rotate([0,0,0]) cube([14,11,6]); + + translate([3,14,1]) rotate([0,0,10]) cube([7,13,6]); + translate([-9.88,15.21,1]) rotate([0,0,-10]) cube([7,13,6]); + + // cables cut + translate([-0,36,3]) rotate([90,0,0]) cylinder(h = 187, r=4, $fn=60); + + // screws + translate([-11,30,-3]) cylinder(h = 10, r=1.6, $fn=50); + translate([11,30,-3]) cylinder(h = 10, r=1.6, $fn=50); + translate([-11,30,-5.5]) cylinder(h = 3, r2=3.1, r1=5, $fn=50); + translate([11,30,-5.5]) cylinder(h = 3, r2=3.1, r1=5,$fn=50); + + // print support for nut heads + difference() + { + union() + { + translate([-11,30,-3.5]) cylinder(h = 3, r=3.1, $fn=50); + translate([11,30,-3.5]) cylinder(h = 3, r=3.1, $fn=50); + } + translate([-30,18.4,-0.8]) cube([60,10,2]); + translate([-30,31.6,-0.8]) cube([60,10,2]); + translate([-9.4,25,-1.1]) cube([18.8,10,2]); + translate([-22.6,25,-1.1]) cube([10,10,2]); + translate([12.6,25,-1.1]) cube([10,10,2]); + } + + // thermistor cable entry + translate([-0,22,4]) rotate([115,0,0]) cylinder(h = 15, r=3, $fn=60); + + + // edges + + translate([-18.0,32,-5]) rotate([0,0,25]) cube([11,11,15]); + translate([18,32,-5]) rotate([0,0,65]) cube([11,11,15]); + + + + + } + + // cable rims + difference() + { + difference() + { + translate([-0,36,3]) rotate([90,0,0]) cylinder(h = 10, r=4.5, $fn=60); + translate([-0,37,3]) rotate([90,0,0]) cylinder(h = 17, r=3.5, $fn=60); + + } + translate([-15,18,3]) cube([30,20,6]); + translate([-15,27,-5]) cube([30,2,16]); + translate([-15,30,-5]) cube([30,2,16]); + translate([-15,33,-5]) cube([30,2,16]); + translate([6.96,19.45,1]) rotate([0,0,45]) cube([5,10,6]); + translate([-6.96,19.45,1]) rotate([0,0,45]) cube([10,5,6]); + translate([-4,20,0]) rotate([0,0,0]) cube([8,11,6]); + + + + } + +} + + + + +translate([0,40,3]) +clip(); + +translate([0,40,9]) rotate([180,0,0]) +cover(); + + + + + diff --git a/Printed-Parts/SCAD/lcd-supports.scad b/Printed-Parts/SCAD/lcd-supports.scad new file mode 100644 index 0000000..b9f21d4 --- /dev/null +++ b/Printed-Parts/SCAD/lcd-supports.scad @@ -0,0 +1,119 @@ +// PRUSA iteration4 +// lcd supports +// GNU GPL v3 +// Josef Průša and contributors +// http://www.reprap.org/wiki/Prusa_Mendel +// http://prusamendel.org + + + + +module body() +{ + + difference() + { + // base block + translate([-55,-2,0]) cube([69,81,10]); + + union () + { + // outer body shape + translate([-69.6,32,-1]) rotate([0,0,45]) cube([60,53,15]); + translate([13.7,89.7,-1]) rotate([0,0,135]) cube([60,42,15]); + translate([-19,-9,-1]) cube([60,9,15] ); + translate([7,-3,-1]) cube([60,68,16]); + translate([-16,60,-1]) cube([60,50,15] ); + translate([-41, -45,-1]) rotate([0,0,45]) cube([60,80,13]); + + // pcb cout out + translate([4,1.5,-1]) cube([1.8,56.5,17]); + translate([0,7.5,-1]) cube([5.8,44.5,17]); + translate([4.8,3.5,-1]) cube([5.8,52.5,17]); + translate([8,-5,-1] ) rotate([0,0,45]) cube([5,5,17]); + translate([8,58,-1]) rotate([0,0,45]) cube([5,5,17]); + } + + // pcb inserts + translate([4,3,8]) rotate([45,0,0]) cube([1.8,5,5]); + translate([4,56.5,8]) rotate([45,0,0]) cube([1.8,5,5]); + translate([4,3,-5]) rotate([45,0,0]) cube([1.8,5,5]); + translate([4,56.5,-5]) rotate([45,0,0]) cube([1.8,5,5]); + } +} + + + +module support() +{ + difference() + { + + union() + { + rotate([0,0,45]) body(); + // screw block + translate([-72,22,0]) cube([30,16,10]); + } + + // lower angled part cut + translate([-75,-2,-1]) cube([20,14,15]); + translate([-70,-2,-1]) cube([20,14,15]); + translate([-50,-16.3,-1]) rotate([0,0,45]) cube([20,20,15]); + + translate([-76.5,-2,-1]) cube([15,40,15]); + + difference() + { + translate([-28,0,-1]) rotate([0,0,45]) cube([10,40,15]); + translate([-38,-12,-1]) cube([20,20,15]); + translate([-58,23.5,-1]) cube([25,25,15]); + } + + // screw holes + translate([-71,18+4,5]) rotate([0,90,0]) cylinder(h=22, r=1.75, $fn=30); + translate([-70,29+4,5]) rotate([0,90,0]) cylinder(h=22, r=1.75, $fn=30); + + // nut traps + translate([-58,15.1+4,5-2.8]) cube([2.2,5.8,29.7]); + translate([-58,26.1+4,5-2.8]) cube([2.2,5.8,29.7]); + + // version + translate([-20,2,9.5]) rotate([0,0,0]) linear_extrude(height = 0.6) + { text("R1",font = "helvetica:style=Bold", size=5, center=true); } + } +} + + +module left_lcd_support() +{ + support(); + + rotate([0,0,45]) difference() + { + // sd card shield + translate([-3,3,10]) cube([2,55,10]); + translate([-4,3,20]) rotate([0,90,0]) cylinder( h=4, r=7, $fn=30); + translate([-4,58,20]) rotate([0,90,0]) cylinder( h=4, r=7, $fn=30); + } +} + +translate([-60,-2,0]) rotate([0,0,180]) support(); +left_lcd_support(); + + + + + + + + + + + + + + + + + diff --git a/Printed-Parts/SCAD/x-end-idler.scad b/Printed-Parts/SCAD/x-end-idler.scad new file mode 100644 index 0000000..960effb --- /dev/null +++ b/Printed-Parts/SCAD/x-end-idler.scad @@ -0,0 +1,218 @@ +// PRUSA iteration4 +// X end idler +// GNU GPL v3 +// Josef Průša and contributors +// http://www.reprap.org/wiki/Prusa_Mendel +// http://prusamendel.org + +use + +module x_end_idler_holes() +{ + x_end_holes(); + translate([0,3.5,0]) + { + // pulley screw + translate(v=[0,-19,30.25]) rotate(a=[0,-90,0]) cylinder(h = 80, r=1.55, $fn=50); + translate(v=[-4,-19,30.25]) rotate(a=[0,-90,0]) cylinder(h = 4, r=3, $fn=50); + + translate(v=[-21.5,-19,30.25]) rotate([0,-90,0]){ + rotate([0,0,30])cylinder( h = 4, r = 3.1, $fn=6); + } + + translate(v=[-24,-19,30.25]) rotate([0,-90,0]){ + rotate([0,0,30])cylinder( h = 4, r1 = 3.1, r2 = 7, $fn=6); + } + + + + + translate(v=[-4.5,-19,30.25]) rotate(a=[0,-90,0]) cylinder(h = 1, r2=3, r1=4, $fn=50); + + + + + // pulley side cut + translate(v=[-9,-19,30.25]) rotate(a=[0,-90,0]) cylinder(h = 9, r=9.5, $fn=30); + translate([-19,-35,21.25]) cube([10,20,18]); + translate([-16.1,-35,21.3]) rotate([0,45,0]) cube([5,20,5]); + translate([-16.1,-35,39.25]) rotate([0,45,0]) cube([5,20,5]); + } + + } + + +module waste_pocket() +{ + // waste pocket + translate([-15,-1,6]) rotate([90,0,0]) cylinder( h=5, r=5, $fn=30); + translate([-15,-1,51]) rotate([90,0,0]) cylinder( h=5, r=5, $fn=30); + translate([-15,-5.9,6]) rotate([90,0,0]) cylinder( h=3, r1=5, r2=4.3, $fn=30); + translate([-15,-5.9,51]) rotate([90,0,0]) cylinder( h=3, r=5, r2=4.3, $fn=30); + + // opening window + translate([-17,-1,51]) rotate([90,0,0]) cube([4,15,4]); + translate([-17,-1,-1]) rotate([90,0,0]) cube([4,15,4]); +} + + +module x_end_idler_base() +{ + difference() + { + union() + { + x_end_base(); + difference() + { + + + translate(v=[-6.5,-21,13.5]) cube([1,12.5,42]); + + + translate([-24,-11.5,19]) cube([20,10,24]); + translate(v=[-6.5,-10,55.5]) rotate([180,-45,0]) cube([1.5,19,5]); + translate(v=[-6.5,-29,13.5]) rotate([0,45,0]) cube([1.5,19,5]); + translate(v=[-5.5,-19,13.5]) rotate([90,0,-35]) cube([1.5,45,6]); + + + + + + + + + } + // pulley nut support + difference() { + translate(v=[-23.5,-15.5,30.25]) rotate(a=[0,-90,0]) rotate(a=[0,0,30]) cylinder(h = 1,r1=5.5, r2=3.7, $fn=30); + translate([-26,-11.5,19]) cube([20,10,24]); + + + + + } + + + } + x_end_idler_holes(); + + + + } + translate([-15,10.5,6]) rotate([90,0,0]) cylinder( h=13, r=6, $fn=30); + translate([-15,10.5,51]) rotate([90,0,0]) cylinder( h=13, r=6, $fn=30); + + difference() + { + translate(v=[-19,-16.5,30.25]) rotate(a=[0,-90,0]) cylinder(h = 1, r1=9, r2=12, $fn=30); + translate([-25,-11.5,19]) cube([20,10,24]); + translate(v=[0,-15.5,30.25]) rotate(a=[0,-90,0]) cylinder(h = 80, r=1.55, $fn=30); + } + +// nut trap print supoorts + + translate(v=[-5.8,-13.149,13.5]) rotate([0,0,45]) cube(size = [10,2.1,1], center = true); + + translate(v=[-9.8,-11,13.7]) rotate([0,0,135]) cube(size = [8,2.1,0.4], center = true); + + translate(v=[-5.2,-8,13.7]) rotate([0,0,135]) cube(size = [8,2.1,0.4], center = true); + + translate(v=[-8.8,-8.55,13.5]) rotate([0,0,45]) cube(size = [8,2.1,1], center = true); + + +} + +module selective_infill() +mirror([0,1,0]) translate([-50, -33, 0.6]) +{ + difference() + { + union() + { + difference() + { + translate([50,50,0.6]) rotate([0,0,90]) cylinder( h=6, r=11.7, $fn=30); + translate([50,50,-1]) rotate([0,0,90]) cylinder( h=10, r=11.5, $fn=30); + } + difference() + { + translate([50,50,0.6]) rotate([0,0,90]) cylinder( h=6, r=10.7, $fn=30); + translate([50,50,-1]) rotate([0,0,90]) cylinder( h=10, r=10.5, $fn=30); + } + difference() + { + translate([50,50,0.6]) rotate([0,0,90]) cylinder( h=6, r=9.9, $fn=30); + translate([50,50,-1]) rotate([0,0,90]) cylinder( h=10, r=9.7, $fn=30); + } + difference() + { + translate([50,50,0.6]) rotate([0,0,90]) cylinder( h=6, r=9, $fn=30); + translate([50,50,-1]) rotate([0,0,90]) cylinder( h=10, r=8.8, $fn=30); + } + } + translate([57.5,50.5,-1]) rotate([0,0,45]) cube([8,10,9]); + translate([52,30.5,-1]) rotate([0,0,45]) cube([10,20,20]); + translate([32,35.5,-1]) cube([8,30,9]); + } +} + + + + +module x_end_idler() +{ + mirror([0,1,0]) + difference() + { + x_end_idler_base(); + waste_pocket(); + + translate(v=[-8,-15.5,30.25]) rotate(a=[0,-90,0]) cylinder(h = 20, r=1.55, $fn=30); + translate([-25,7.5,-1]) rotate([0,0,45]) cube([10,10,100]); + //version + translate([-23.7,-25,2]) rotate([90,0,90]) linear_extrude(height = 0.6) + { text("R3",font = "helvetica:style=Bold", size=4, center=true); } + } + + // bearings stop + difference() + { + translate([0,0,57]) rotate([0,0,90]) cylinder( h=1, r=8, $fn=30); + translate([0,0,56.9]) rotate([0,0,90]) cylinder( h=0.5, r1=8, r2=7,$fn=30); + translate([0,0,56.5]) rotate([0,0,90]) cylinder( h=2, r=7, $fn=30); + translate([0.2,-0.5,50]) rotate([0,0,40]) cube([12,1,10]); + } + + // bearings spacer + difference() + { + translate([0,0,26]) rotate([0,0,90]) cylinder( h=6, r=8, $fn=30); + translate([0,0,25]) rotate([0,0,90]) cylinder( h=8, r=7.55, $fn=60); + translate([0,0,25.9]) rotate([0,0,90]) cylinder( h=2, r2=7.5, r1=7.7,$fn=30); + translate([0,0,31.4]) rotate([0,0,90]) cylinder( h=2, r1=7.5, r2=8.3,$fn=30); + + rotate([0,0,310]) translate([-2.5,0,26]) cube([5,15,10]); + rotate([0,0,310-120]) translate([-2.5,0,26]) cube([5,15,10]); + rotate([0,0,310-240]) translate([-2.5,0,26]) cube([5,15,10]); + } + + + + +} + +difference() +{ + union() + { + x_end_idler(); + translate([-8,15,13.0]) rotate([0,0,-45.4]) cube([10,1.5,1]); + } + + // chamfers + translate([-47,-40,60]) rotate([0,45,0]) cube([20,80,20]); + translate([-20,10.5,69]) rotate([0,45,0]) cube([20,20,20]); + translate([-25,37,49]) rotate([45,0,0]) cube([30,20,20]); +} + diff --git a/Printed-Parts/SCAD/x-end-motor.scad b/Printed-Parts/SCAD/x-end-motor.scad new file mode 100644 index 0000000..ed0a15f --- /dev/null +++ b/Printed-Parts/SCAD/x-end-motor.scad @@ -0,0 +1,174 @@ +// PRUSA iteration4 +// X end motor +// GNU GPL v3 +// Josef Průša and contributors +// http://www.reprap.org/wiki/Prusa_Mendel +// http://prusamendel.org + +use + +module x_end_motor_base() +{ + x_end_base(); + translate(v=[-15,31,26.5]) cube(size = [17,44,53], center = true); +} + +module x_end_motor_holes() +{ + x_end_holes(); + + // Position to place + translate(v=[-1,32,30.25]) + { + // Belt hole + translate(v=[-19,-21,-12]) cube(size = [10,25,22]); + + // Motor mounting holes + translate(v=[0,-15.5,15.5]) rotate(a=[0,-90,0]) rotate(a=[0,0,90]) cylinder(h=30, r=1.55, $fn=60); + translate(v=[0,-15.5,15.5]) rotate(a=[0,-90,0]) rotate(a=[0,0,90]) cylinder(h=18, r2=1.55, r1=1.7, $fn=60); + translate(v=[1,-15.5,15.5]) rotate(a=[0,-90,0]) rotate(a=[0,0,90]) cylinder(h=10, r=3.05, $fn=60); + + translate(v=[20,-15,-15.5]) rotate(a=[0,-90,0]) rotate(a=[0,0,90]) cylinder(h=70, r=1.6, $fn=30); + translate(v=[1,-15,-15.5]) rotate(a=[0,-90,0]) rotate(a=[0,0,90]) cylinder(h=10, r=3.1, $fn=30); + translate(v=[20,-15.5,-15.5]) rotate(a=[0,-90,0]) rotate(a=[0,0,90]) cylinder(h=70, r=1.6, $fn=30); + translate(v=[1,-15.5,-15.5]) rotate(a=[0,-90,0]) rotate(a=[0,0,90]) cylinder(h=10, r=3.1, $fn=30); + translate(v=[20,-16,-15.5]) rotate(a=[0,-90,0]) rotate(a=[0,0,90]) cylinder(h=70, r=1.6, $fn=30); + translate(v=[1,-16,-15.5]) rotate(a=[0,-90,0]) rotate(a=[0,0,90]) cylinder(h=10, r=3.1, $fn=30); + translate(v=[20,-16.5,-15.5]) rotate(a=[0,-90,0]) rotate(a=[0,0,90]) cylinder(h=70, r=1.6, $fn=30); + translate(v=[1,-16.5,-15.5]) rotate(a=[0,-90,0]) rotate(a=[0,0,90]) cylinder(h=10, r=3.1, $fn=30); + + translate(v=[20,16.,-15.0]) rotate(a=[0,-90,0]) rotate(a=[0,0,90]) cylinder(h=70, r=1.6, $fn=30); + translate(v=[1,16.,-15.0]) rotate(a=[0,-90,0]) rotate(a=[0,0,90]) cylinder(h=10, r=3.1, $fn=30); + translate(v=[20,15.5,-15.5]) rotate(a=[0,-90,0]) rotate(a=[0,0,90]) cylinder(h=70, r=1.6, $fn=30); + translate(v=[1,15.5,-15.5]) rotate(a=[0,-90,0]) rotate(a=[0,0,90]) cylinder(h=10, r=3.1, $fn=30); + translate(v=[20,15,-16]) rotate(a=[0,-90,0]) rotate(a=[0,0,90]) cylinder(h=70, r=1.6, $fn=30); + translate(v=[1,15,-16]) rotate(a=[0,-90,0]) rotate(a=[0,0,90]) cylinder(h=10, r=3.1, $fn=30); + translate(v=[20,14.5,-16.5]) rotate(a=[0,-90,0]) rotate(a=[0,0,90]) cylinder(h=70, r=1.6, $fn=30); + translate(v=[1,14.5,-16.5]) rotate(a=[0,-90,0]) rotate(a=[0,0,90]) cylinder(h=10, r=3.1, $fn=30); + + // Material saving cutout + translate(v=[-10,12,12]) cube(size = [60,42,42], center = true); + translate(v=[-25,10.5,-11]) rotate([45,0,0]) cube(size = [60,10,10]); + translate(v=[-25,21,-11]) rotate([45,0,0]) cube(size = [60,10,10]); + + // Material saving cutout + translate(v=[-10,41,-30.5]) rotate(a=[45,0,0]) cube(size = [60,42,42], center = true); + + + translate([-15,-2,-33]) rotate([-45,0,0]) cylinder(h=25, r=1.7, $fn=30); + translate([-15,-2,-33]) rotate([-45,0,0]) cylinder(h=28-18, r=3.2, $fn=30); + translate([-35+2.8,10,-25]) rotate([45,0,0]) cube(size = [20,2,5.6]); + + } +} + +// Motor shaft cutout +module x_end_motor_shaft_cutout() +{ + union() + { + difference() + { + translate(v=[0,32,30]) rotate(a=[0,-90,0]) rotate(a=[0,0,90]) cylinder(h = 70, r=17, $fn=6); + translate(v=[-10,-17+32,30]) cube(size = [60,2,10], center = true); + translate(v=[-10,-8+32,-15.5+30]) rotate(a=[60,0,0]) cube(size = [60,2,10], center = true); + translate(v=[-10,8+32,-15.5+30]) rotate(a=[-60,0,0]) cube(size = [60,2,10], center = true); + } + translate(v=[-30,25.2,-11.8 +30]) rotate(a=[0,90,0]) cylinder(h = 30, r=3, $fn=30); + translate(v=[-30,19.05,30]) rotate(a=[0,90,0]) cylinder(h = 30, r=3.5, $fn=100); + } +} + + + + + + + +// Final part +module x_end_motor() +{ + difference() + { + x_end_motor_base(); + x_end_motor_shaft_cutout(); + x_end_motor_holes(); + + + // waste pocket + translate([-15,7,6]) rotate([90,0,0]) cylinder(h=3.5, r=5, $fn=30); + translate([-15,7,51]) rotate([90,0,0]) cylinder(h=3.5, r=5, $fn=30); + translate([-15,3.5,6]) rotate([90,0,0]) cylinder(h=3, r1=5, r2=4, $fn=30); + translate([-15,3.5,51]) rotate([90,0,0]) cylinder(h=3, r1=5, r2=4, $fn=30); + + // rod contact window + translate([-17,3,55]) cube([4,4,10]); + translate([-17,3,-8]) cube([4,4,10]); + translate([-30,-30,58]) cube([30,30,10]); + + // version + translate([-23.2,-20,2]) rotate([90,0,270]) linear_extrude(height = 0.6) + { text("R3",font = "helvetica:style=Bold", size=4, center=true); } + } + + translate([-15,10,6]) rotate([90,0,0]) cylinder(h=3, r=5, $fn=30); + translate([-15,10,51]) rotate([90,0,0]) cylinder(h=3, r=5, $fn=30); + + // bearing stop + difference() + { + translate([0,0,57]) rotate([0,0,90]) cylinder( h=1, r=8, $fn=30); + translate([0,0,56.9]) rotate([0,0,90]) cylinder( h=0.5, r1=8, r2=7,$fn=30); + translate([0,0,56.5]) rotate([0,0,90]) cylinder( h=2, r=7, $fn=30); + translate([-0.18,-0.5,50]) rotate([0,0,-40]) cube([12,1,10]); + } + + // bearings spacer + rotate([0,0,45]) difference() + { + translate([0,0,26]) rotate([0,0,90]) cylinder( h=6, r=8, $fn=30); + translate([0,0,25]) rotate([0,0,90]) cylinder( h=8, r=7.55, $fn=60); + translate([0,0,25.9]) rotate([0,0,90]) cylinder( h=2, r2=7.5, r1=7.7,$fn=30); + translate([0,0,31.4]) rotate([0,0,90]) cylinder( h=2, r1=7.5, r2=8.3,$fn=30); + + rotate([0,0,310]) translate([-2.5,0,26]) cube([5,15,10]); + rotate([0,0,310-120]) translate([-2.5,0,26]) cube([5,15,10]); + rotate([0,0,310-240]) translate([-2.5,0,26]) cube([5,15,10]); + } + + // nut trap print supoorts + + translate(v=[-5.8,-13.149,13.5]) rotate([0,0,45]) cube(size = [10,2.1,1], center = true); + + translate(v=[-9.8,-11,13.7]) rotate([0,0,135]) cube(size = [8,2.1,0.4], center = true); + + translate(v=[-5.2,-8,13.7]) rotate([0,0,135]) cube(size = [8,2.1,0.4], center = true); + + translate(v=[-8.8,-8.55,13.5]) rotate([0,0,45]) cube(size = [8,2.1,1], center = true); + +} + +difference() +{ + union() + { + x_end_motor(); + translate([-8,-17,13.0]) rotate([0,0,44.7]) cube([10,1.5,1]); + } + //chamfers + translate([-47,-40,60]) rotate([0,45,0]) cube([20,80,20]); + translate([-20,-30.5,69]) rotate([0,45,0]) cube([20,20,20]); + translate([-25,-37,49]) rotate([45,0,0]) cube([30,20,20]); + translate([-25,23.5,49]) rotate([45,0,0]) cube([30,20,20]); +} + + + + + + + + + + + diff --git a/Printed-Parts/SCAD/x-end.scad b/Printed-Parts/SCAD/x-end.scad new file mode 100644 index 0000000..26607db --- /dev/null +++ b/Printed-Parts/SCAD/x-end.scad @@ -0,0 +1,150 @@ +// PRUSA iteration4 +// X end prototype +// GNU GPL v3 +// Josef Průša and contributors +// http://www.reprap.org/wiki/Prusa_Mendel +// http://prusamendel.org + +use +use +rod_distance = 45; + +module x_end_base() +{ + + + + // Main block + height = 58; + translate(v=[-15,-9,height/2]) cube(size = [17,39,height], center = true); + translate([-8,-28.5,0]) cube(size = [5,1,13.5]); + + // Bearing holder + vertical_bearing_base(); + + //Nut trap + // Cylinder + translate(v=[0,-17,0]) cylinder(h = 13.5, r=12.5, $fn=100); + difference() + { + translate(v=[0,-17,13]) poly_cylinder(h = 3, r=12.5, $fn=25); + translate(v=[8,-17,12]) rotate([0,0,0]) cube(size = [15,50,10], center = true); + translate(v=[8,-24,12]) rotate([0,0,0]) cube(size = [50,15,10], center = true); + translate(v=[0,-17, -1]) cylinder(h = 20, r = 6.7, $fn = 60); + } + + + + + + + +} +module reinforcement_selective_infill() +{ + rotate([90,0,-15,]) translate ([-1.5, 8, 26])linear_extrude(height = 0.2) polygon( points=[[-2,0],[0,5],[8,0]] ); + rotate([90,0,-50,]) translate ([8.5, 8, 1.4])linear_extrude(height = 0.2) polygon( points=[[0,0],[0,5],[12,0]] ); +} + + + +module x_end_holes() +{ + vertical_bearing_holes(); + // Belt hole + translate(v=[-1,0,0]) + { + // Stress relief + translate(v=[-5.5-10+1.5,-10-1,30]) cube(size = [18,1,28], center = true); + difference() + { + + translate(v=[-5.5-10+1.5,-10,30]) cube(size = [10,46,28], center = true); + + // Nice edges + translate(v=[-5.5-10+1.5-5,-10,30+23]) rotate([0,20,0]) cube(size = [10,46,28], center = true); + translate(v=[-5.5-10+1.5+5,-10,30+23]) rotate([0,-20,0]) cube(size = [10,46,28], center = true); + translate(v=[-5.5-10+1.5,-10,30-23]) rotate([0,45,0]) cube(size = [10,46,28], center = true); + translate(v=[-5.5-10+1.5,-10,30-23]) rotate([0,-45,0]) cube(size = [10,46,28], center = true); + + } + } + + +// Bottom pushfit rod + translate(v=[-15,-41,6]) rotate(a=[-90,0,0]) pushfit_rod(7.8,50); + +// Top pushfit rod + translate(v=[-15,-41.5,rod_distance+6]) rotate(a=[-90,0,0]) pushfit_rod(7.8,50); + +// TR Nut trap + // Hole for the nut + //#translate(v=[0,-17, -1]) poly_cylinder(h = 9.01, r = 6.7, $fn = 60); + translate(v=[0,-17, -1]) cylinder(h = 14.51, r = 6.7, $fn = 60); + translate(v=[0,-17, -0.1]) cylinder(h = 1, r1 = 7.2,r2 = 6.7, $fn = 60); + +// Screw holes for TR nut + + + translate(v=[0,-17, 0]) rotate([0, 0, -135]) translate([0, 9.5, -4]) cylinder(h = 19, r = 1.65, $fn=50); + + translate(v=[0,-17, 0]) rotate([0, 0, -135]) translate([0, -9.5, -4]) cylinder(h = 19, r = 1.65, $fn=50); + + + + translate(v=[0,-17,0]) rotate([0,0,-135]) translate([0,9.5,-1]) cylinder(h=2, r1=2.2,r2=1.65, $fn=50); + translate(v=[0,-17,0]) rotate([0,0,-135]) translate([0,-9.5,-1]) cylinder(h=2, r1=2.2,r2=1.65,, $fn=50); + + +// Nut traps for TR nut screws + translate(v=[0,-17, 0]) rotate([0, 0, -135]) translate([0, 9.5, 11]) rotate([0, 0, 0])cylinder(h = 6, r = 3.1, $fn=6); + + translate(v=[0,-17, 0]) rotate([0,0,-135]) translate([0,-9.5,10]) rotate([0,0,30])cylinder(h = 4, r = 3.2, $fn=6); + translate([-5.5,-17.2,10]) rotate([0,0,32]) cube([5,5.9,3.5]); + translate([-0,-17.2,10]) rotate([0,0,58]) cube([5,10,3.5]); + + + + + +} + + +// Final prototype +module x_end_plain() +{ + difference() + { + union() + { + difference() + { + x_end_base(); + x_end_holes(); + } + + } + + } + + + + +} + + + +module pushfit_rod(diameter,length) +{ + poly_cylinder(h = length, r=diameter/2); + difference() + { + translate(v=[0,-diameter/2.85,length/2]) rotate([0,0,45]) cube(size = [diameter/2,diameter/2,length], center = true); + translate(v=[0,-diameter/4-diameter/2-0.4,length/2]) rotate([0,0,0]) cube(size = [diameter,diameter/2,length], center = true); + } +} +difference () { +x_end_plain(); + //translate([-50,-50,-1]) rotate([0,0,0]) cube([100,100,5]); +} +// \ No newline at end of file diff --git a/Printed-Parts/SCAD/y-rod-holder.scad b/Printed-Parts/SCAD/y-rod-holder.scad new file mode 100644 index 0000000..26b7c33 --- /dev/null +++ b/Printed-Parts/SCAD/y-rod-holder.scad @@ -0,0 +1,94 @@ +// PRUSA iteration4 +// Y holder front +// GNU GPL v3 +// Josef Průša and contributors +// http://www.reprap.org/wiki/Prusa_Mendel +// http://prusamendel.org + +module ziptie_round_edge() +{ + difference() + { + translate([0,0,0]) rotate([90,0,0]) cylinder( h=3.2, r=4, $fn=50 ); + translate([0,1,0]) rotate([90,0,0]) cylinder( h=5, r=2, $fn=50 ); + translate([-10,-4,0]) cube([20,5,5]); + translate([-20,-4,-13]) cube([20,5,20]); + } +} + + +module part() +{ + + difference() + { + union() + { + // body block + difference() { + translate([-13,-3,0]) cube([26,10,12]); + + // upper corners + translate([4,-3.5,20]) rotate([0,60,0]) cube([20,30,20]); + translate([-21.2,-3.5,30]) rotate([0,120,0]) cube([20,30,20]); + translate([-15,-3.3,-6]) rotate([45,0,0]) cube([30,5,5]); + translate([15,7.3,-6]) rotate([45,0,180]) cube([30,5,5]); + } + difference() { + translate([-4,2,-2]) cube([8,5,3]); + + // upper corners + translate([-15,2,-7.07]) rotate([45,0,0]) cube([30,5,5]); + translate([15,9.5,-6]) rotate([45,0,180]) cube([30,5,5]); + } + } + + // y-axis cut + translate([0,11,10.5]) rotate([90,0,0]) cylinder( h=14, r=4, $fn=50 ); + translate([0,8,10.5]) rotate([90,0,0]) cylinder( h=2, r1=4.5, r2=4, $fn=50 ); + translate([0,-2,10.5]) rotate([90,0,0]) cylinder( h=2, r1=4, r2=4.5, $fn=50 ); + translate([-7,-4,14.5]) rotate([0,45,0]) cube([10,20,10]); + translate([0,8,10.5]) rotate([90,0,0]) cylinder( h=1.4, r1=5, r2=4, $fn=50 ); + + // screw holes + translate([-5.5,4,3.5]) rotate([90,0,0]) cylinder( h=20, r=1.55, $fn=60 ); + translate([5.5,4,3.5]) rotate([90,0,0]) cylinder( h=20, r=1.55, $fn=60 ); + translate([-5.5,-2.4,3.5]) rotate([90,0,0]) cylinder( h=2, r1=1.5, r2=2.6, $fn=60 ); + translate([5.5,-2.4,3.5]) rotate([90,0,0]) cylinder( h=2, r1=1.5, r2=2.6, $fn=60 ); + + + // ziptie + translate([7.8,5.75,9]) ziptie_round_edge(); + translate([-7.8,2.55,9]) rotate([0,0,180]) ziptie_round_edge(); + translate([-8.1,2.55,5]) cube([16.2,3.2,2]); + translate([0.8,2.55,25]) rotate([0,60,0]) cube([20,3.2,2]); + translate([-1.8,2.55,27]) rotate([0,120,0]) cube([20,3.2,2]); + + + // nuts + difference () { + union(){ + translate([-8.2,-0.45,-3.4]) cube([5.6,2.1,10]); + translate([2.8,-0.45,-3.4]) cube([5.6,2.1,10]);} + + // nut holding ' + translate([-14,-0.45,-0.02]) cube([24,0.5,0.5]); + + } + // nut print supports + translate([-8.2,-0.25,3.5-3.2/2]) cube([5.6,2.1,3.2]); + translate([2.8,-0.25,3.5-3.2/2]) cube([5.6,2.1,3.2]); + translate([-7.1,0,3.5-3.2/2]) cube([3.2,2.1,3.2]); + translate([3.9,0,3.5-3.2/2]) cube([3.2,2.1,3.2]); + + + // upper corners + + + } +} + + +rotate([90,0,0])part(); + + diff --git a/Printed-Parts/SCAD/z-axis-bottom.scad b/Printed-Parts/SCAD/z-axis-bottom.scad new file mode 100644 index 0000000..235ec81 --- /dev/null +++ b/Printed-Parts/SCAD/z-axis-bottom.scad @@ -0,0 +1,168 @@ +// PRUSA iteration4 +// Z axis bottom holder +// GNU GPL v3 +// Josef Průša and contributors +// http://www.reprap.org/wiki/Prusa_Mendel +// http://prusamendel.org + +module z_bottom_base() +{ + translate([0,-1.5,0]) cube([7.5,49,16+20]); // plate touching the base + translate([0,-5,0]) cube([30,3.7,22]); // plate touching the base + translate([0,42,0]) cube([30,5.5,22]); // plate touching the base + translate([0,-5,0]) cube([50,52.5,7]); // plate touching the base +} + +module z_bottom_fancy() +{ + // corner cutouts + translate([0.5,-2.5,-2]) rotate([0,0,-45-180]) translate([-15,0,-1]) cube([30,30,51]); + translate([0.5,40-0.5+5,-2]) rotate([0,0,-45+90]) translate([-15,0,-1]) cube([30,30,51]); + + translate([8,0,12+20+6]) rotate([0,-90,0]) translate([0,-5,0]) cube([30,50,30]); + translate([21,-2,12+8]) rotate([45,0,0]) rotate([0,-90,0]) translate([0,-5,0]) cube([30,50,30]); + translate([25,20,12+30]) rotate([-45,0,0]) rotate([0,-90,0]) translate([0,-5,0]) cube([30,50,30]); + translate([50-2.5,-5+2.5+67,-2]) rotate([0,0,-45-90]) translate([-15,0,-1]) cube([30,30,51]); + translate([50-2.5,-5+2.5,-2]) rotate([0,0,-45-90]) translate([-15,0,-1]) cube([30,30,51]); + + translate([-38,-10,-2]) rotate([0,45,0]) cube([30,60,30]); + + // Stiffner cut out + translate([30,0,7.5]) rotate([0,-45,0]) translate([0,-5,0]) cube([30,60,30]); + + translate([-5,-10,-8.0]) rotate([45,0,0]) cube([60,10,10]); + translate([-5,52.0,-8.5]) rotate([45,0,0]) cube([60,10,10]); + translate([47,-10,-2]) rotate([0,45,0]) cube([30,60,30]); + + translate([49,37.5,-2]) rotate([0,45,45]) cube([30,30,30]); + translate([29,-16.7,-2]) rotate([0,45,-45]) cube([30,30,30]); +} + +module z_bottom_holes() +{ + // Frame mounting screw holes + translate([-1,10,12]) rotate([0,90,0]) cylinder(h = 20, r=1.6, $fn=50); + translate([-1,10+20,12]) rotate([0,90,0]) cylinder(h = 20, r=1.6, $fn=50); + translate([-1,10+10,32]) rotate([0,90,0]) cylinder(h = 20, r=1.6, $fn=50); + + // Frame mounting screw head holes + translate([4,10,12]) rotate([0,90,0]) cylinder(h = 20, r=3.1, $fn=30); + translate([4,10+20,12]) rotate([0,90,0]) cylinder(h = 20, r=3.1, $fn=30); + translate([4,10+10,32]) rotate([0,90,0]) cylinder(h = 20, r=3.1, $fn=30); + translate([4,10+10-3.1,10+20+2]) cube([10,6.2,10]); + translate([4,10,38]) rotate([0,45,0]) cube([10,20,10]); + + // Z rod holder + difference() { + + translate([25+4.3,3,-0.1]) rotate([0,0,0]) cylinder(h = 5.6, r=4.05, $fn=50); + translate([23.3,-5,5.45-0.222]) cube([5,20,5]); + translate([23.3+7,-5,5.45-0.22]) cube([5,20,5]); + + } + + translate([25+4.3-1,2,4.5]) rotate([0,0,0]) cube([2,10,3]) ; + translate([25+4.3,3,-2.1]) rotate([0,0,0]) cylinder(h = 2.6, r1=6, r2=4, $fn=50); + translate([25+4.3-1,3,0.5]) cube([2,10,8]); // it's bit up because it helps with printing + + // motor mounting + translate([25+4.3,20,-1]){ + + translate([15.5,15.5,-1]) cylinder(h = 20, r=1.65, $fn=50); + translate([15.5,-15.5,-1]) cylinder(h = 20, r=1.65, $fn=50); + translate([-15.5,15.5,-1]) cylinder(h = 20, r=1.65, $fn=50); + translate([-15.5,-15.5,-1]) cylinder(h = 20, r=1.65, $fn=50); + + + + translate([15.5,15.5,-0.5]) cylinder(h = 2, r1=4.5, r2=3.2,$fn=50); + translate([15.5,-15.5,-0.5]) cylinder(h = 2, r1=4.5, r2=3.2, $fn=50); + translate([-15.5,15.5,-0.5]) cylinder(h = 2, r1=4.5, r2=3.2, $fn=50); + translate([-15.5,-15.5,-0.5]) cylinder(h = 2, r1=4.5, r2=3.26, $fn=50); + + // motor opening + translate([0,0,-1]) cylinder(h = 20, r=11.2, $fn=30); + translate([0,0,-0]) cylinder(h = 2, r2=11.2, r1=12, $fn=30); + + difference() + { + union() + { + translate([15.5,15.5,0.9]) cylinder(h = 2.9, r=3.2, $fn=50); + translate([15.5,-15.5,0.9]) cylinder(h = 2.9, r=3.2, $fn=50); + translate([-15.5,15.5,0.9]) cylinder(h = 2.9, r=3.2, $fn=50); + translate([-15.5,-15.5,0.9]) cylinder(h = 2.9, r=3.2, $fn=50); + + + } + translate([-25,3.85,3.2]) cube([55,10,2]); + translate([-25,-27.15,3.2]) cube([55,10,2]); + translate([-25,-13.85,3.2]) cube([55,10,2]); + translate([-25,17.15,3.2]) cube([55,10,2]); + + + + + translate([17.15,-20,3.5]) cube([10,60,2]); + translate([3.85,-20,3.5]) cube([10,60,2]); + translate([-27.15,-20,3.5]) cube([10,60,2]); + translate([-13.85,-20,3.5]) cube([10,60,2]); + + } + + } + +} + + + + +module z_bottom_right() +{ + difference() + { + difference() + { + z_bottom_base(); + z_bottom_fancy(); + z_bottom_holes(); + } + translate([7.3,25,14]) rotate([90,180,90]) linear_extrude(height = 0.6) + { text("R3",font = "helvetica:style=Bold", size=5, center=true); } + } +} + +module z_bottom_left() +{ + difference() + { + translate([0,-13,0]) mirror([0,1,0]) + difference() + { + z_bottom_base(); + z_bottom_fancy(); + z_bottom_holes(); + } + translate([7.3,-28.5,14]) rotate([90,180,90]) linear_extrude(height = 0.6) + { text("R3",font = "helvetica:style=Bold", size=5, center=true); } + } +} + + + + +z_bottom_right(); +z_bottom_left(); + + + + + + + + + + + + + diff --git a/Printed-Parts/SCAD/z-axis-top.scad b/Printed-Parts/SCAD/z-axis-top.scad new file mode 100644 index 0000000..be34014 --- /dev/null +++ b/Printed-Parts/SCAD/z-axis-top.scad @@ -0,0 +1,107 @@ +// PRUSA iteration4 +// Z axis top holder +// GNU GPL v3 +// Josef Průša and contributors +// http://www.reprap.org/wiki/Prusa_Mendel +// http://prusamendel.org + +module z_top_base() +{ + translate([0,-5,0]) cube([8,45,16]); // plate touching the base + translate([0,-5,0]) cube([33,3.6,12]); // plate touching the base + translate([0,-5,0]) cube([38,45,5]); // plate touching the base + translate([25+4.3,3.2,5]) rotate([0,0,0]) cylinder(h = 2.5, r=7, $fn=60); +} + +module z_top_fancy() +{ + // Corner cutouts + translate([0.5,0.5,0]) rotate([0,0,-45-180]) translate([-15,0,-1]) cube([30,30,51]); + + // frame side angle + translate([-13,40+5+10.2,-3]) rotate([0,0,-45-0]) translate([0,0,-1]) cube([30,30,51]); + translate([8,28,-3]) translate([0,0,-1]) cube([50,50,51]); + + // cut to shape + translate([4,-1,12]) rotate([0,0, 0]) translate([0,-5,0]) cube([30,50,30]); + translate([6,0,12]) rotate([0,-45, 0]) translate([0,-5,0]) cube([30,50,30]); + translate([8,3.9,10]) rotate([0,-45, 0]) translate([0,-5,0]) cube([30,50,30]); + + // nice edges + translate([38-2.5,-5+2.5,-3]) rotate([0,0,-45-90]) translate([-15,0,-1]) cube([30,30,51]); + translate([-10,49,3.2]) rotate([45,0,0]) translate([-15,0,-1]) cube([50,20,20]); + + // outer corner + translate([35,26,-3]) rotate([0,0,-45]) translate([-15,0,-1]) cube([30,30,51]); + translate([0,0,5]) rotate([45+180,0,0]) rotate([0,0,-45+90]) translate([0,0,-15]) cube([30,30,30]); + + // Stiffner cut out + translate([33,-1,7.5]) rotate([0,-45,0]) translate([0,-5,0]) cube([30,50,30]); + + // side cut out + translate([-6,-5,-5.55]) rotate([45,0,0]) cube([50,5,5]); + translate([-6,-5,-0.8]) rotate([0,45,0]) cube([5,50,5]); +} + +module z_top_holes() +{ + // Screw holes frame + translate([-1,10,10]) rotate([0,90,0]) cylinder(h = 20, r=1.6, $fn=30); + translate([-1,10+20,10]) rotate([0,90,0]) cylinder(h = 20, r=1.6, $fn=30); + + // Screw heads + translate([4,10,10]) rotate([0,90,0]) cylinder(h = 20, r=3.1, $fn=30); + translate([4,10-3.1,10]) cube([10,6.2,10]); + translate([4,10+20,10]) rotate([0,90,0]) cylinder(h = 20, r=3.1, $fn=30); + translate([4,10+20-3.1,10]) cube([10,6.2,10]); + + // Z rod holder + translate([25+4.3,3,0.6]) rotate([0,0,0]) cylinder(h = 50, r=4.05, $fn=50); + translate([25+4.3,3,3.4]) rotate([0,0,0]) cylinder(h = 4.2, r2=4.3, r1=4.05, $fn=50); + + // material saving cut + translate([16,10,-4]) rotate([0,0,0]) cylinder(h = 50, r=8, $fn=6); + translate([16,28,-4]) rotate([0,0,0]) cylinder(h = 50, r=8, $fn=6); + + // z screw hole + translate([25+4.3,3+17,3]) rotate([0,0,0]) cylinder(h = 50, r=5.8, $fn=15); // screw hole + translate([25+4.3,3+17,0.6]) rotate([0,0,0]) cylinder(h = 50, r=5.8, $fn=15); // screw hole + translate([25+4.3-1,3,0.6]) cube([2,15,8]); // it's bit up because it helps with printing + + //selective infill + translate([36.5,1.5,0.5]) cube([0.1,20,3.5]); + translate([10,-3,0.5]) cube([22,0.1,3.5]); + translate([3,1,0.5]) cube([18,0.1,3.5]); + translate([1.5,19,0.5]) cube([21,0.1,3.5]); + +} + +module z_top_right(){ + difference() + { + z_top_base(); + z_top_fancy(); + z_top_holes(); + //version + translate([12,-1.5,10]) rotate([90,180,180]) linear_extrude(height = 0.6) + { text("R2",font = "helvetica:style=Bold", size=4, center=true); } + } +} + +module z_top_left(){ + translate([0,-12,0]) mirror([0,1,0]) + difference() + { + z_top_base(); + z_top_fancy(); + z_top_holes(); + //version + translate([19,-1,10]) rotate([90,180,0]) linear_extrude(height = 0.6) + { text("R2",font = "helvetica:style=Bold", size=4, center=true); } + } +} + +// Final parts +z_top_left(); +z_top_right(); + diff --git a/Printed-Parts/SCAD/z-screw-cover.scad b/Printed-Parts/SCAD/z-screw-cover.scad new file mode 100644 index 0000000..345f5f7 --- /dev/null +++ b/Printed-Parts/SCAD/z-screw-cover.scad @@ -0,0 +1,33 @@ +// PRUSA iteration4 +// Z screw cover +// GNU GPL v3 +// Josef Průša and contributors +// http://www.reprap.org/wiki/Prusa_Mendel +// http://prusamendel.org + + +translate(v=[-4.2, 0, 4.3]) rotate([0,90,0]) cylinder(r1=0.6, r2=0.4, h = 1, $fn=60); +translate(v=[4.2, 0, 4.3]) rotate([0,-90,0]) cylinder(r1=0.6, r2=0.4, h = 1, $fn=60); +translate(v=[0, 4.2, 4.3]) rotate([90,0,0]) cylinder(r1=0.6, r2=0.4, h = 1, $fn=60); +translate(v=[0, -4.2, 4.3]) rotate([-90,0,0]) cylinder(r1=0.6, r2=0.4, h = 1, $fn=60); + +translate(v=[-4.2, 0.5, 4.0]) rotate([0,90,0]) cylinder(r1=0.6, r2=0.3, h = 0.8, $fn=60); +translate(v=[4.2, -0.5, 4.0]) rotate([0,-90,0]) cylinder(r1=0.6, r2=0.3, h = 0.8, $fn=60); +translate(v=[0.5, 4.2, 4.0]) rotate([90,0,0]) cylinder(r1=0.6, r2=0.3, h = 0.8, $fn=60); +translate(v=[-0.5, -4.2, 4.0]) rotate([-90,0,0]) cylinder(r1=0.6, r2=0.3, h = 0.8, $fn=60); + +translate(v=[-4.2, 1, 3.7]) rotate([0,90,0]) cylinder(r1=0.5, r2=0.3, h = 0.6, $fn=60); +translate(v=[4.2, -1, 3.7]) rotate([0,-90,0]) cylinder(r1=0.5, r2=0.3, h = 0.6, $fn=60); +translate(v=[1, 4.2, 3.7]) rotate([90,0,0]) cylinder(r1=0.5, r2=0.3, h = 0.6, $fn=60); +translate(v=[-1, -4.2, 3.7]) rotate([-90,0,0]) cylinder(r1=0.5, r2=0.3, h = 0.6, $fn=60); + +difference() +{ + union() + { + translate(v=[0, 0, 1]) cylinder(r1=8, r2=4.6, h = 4); + cylinder(r=8, h = 1, $fn=60); + } + translate(v=[0, 0, -1]) cylinder(r=4.2, h = 7, $fn=60); + cylinder(r1=4.5, r2=4.2, h = 1, $fn=60); +} \ No newline at end of file