diff --git a/LICENSE b/LICENSE index 8cdb8451..23cb7903 100644 --- a/LICENSE +++ b/LICENSE @@ -337,4 +337,3 @@ proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Lesser General Public License instead of this License. - diff --git a/Original_Prusa_i3_MK2S_to_MK3_upgrade_Parts_list.txt b/Original_Prusa_i3_MK2S_to_MK3_upgrade_Parts_list.txt index c4a7496b..75975076 100644 --- a/Original_Prusa_i3_MK2S_to_MK3_upgrade_Parts_list.txt +++ b/Original_Prusa_i3_MK2S_to_MK3_upgrade_Parts_list.txt @@ -24,7 +24,7 @@ nozzle-fan-45deg-support (1x) https://raw.githubusercontent.com/prusa3d/Origina Black parts bundle (Extruder parts MUST BE printed in BLACK): X-carriage* (1x) https://raw.githubusercontent.com/prusa3d/Original-Prusa-i3/MK3/Printed-Parts/stl/x-carriage.stl -X-carriage-back* (1x) https://raw.githubusercontent.com/prusa3d/Original-Prusa-i3/MK3/Printed-Parts/stl/x-carriage-back.stl +X-carriage-back* (1x) https://raw.githubusercontent.com/prusa3d/Original-Prusa-i3/MK3/Printed-Parts/stl/x-carriage-back.stl Cable-holder* (1x) https://raw.githubusercontent.com/prusa3d/Original-Prusa-i3/MK3/Printed-Parts/stl/cable-holder.stl Extruder-body* (1x) https://raw.githubusercontent.com/prusa3d/Original-Prusa-i3/MK3/Printed-Parts/stl/extruder-body.stl Extruder-cover* (1x) https://raw.githubusercontent.com/prusa3d/Original-Prusa-i3/MK3/Printed-Parts/stl/extruder-cover.stl diff --git a/Printed-Parts/scad/Einsy-base.scad b/Printed-Parts/scad/Einsy-base.scad index 10fc1d98..c5bb9dc4 100644 --- a/Printed-Parts/scad/Einsy-base.scad +++ b/Printed-Parts/scad/Einsy-base.scad @@ -1,5 +1,5 @@ // PRUSA iteration4 -// Einsy base +// Einsy base // GNU GPL v3 // Josef Průša and contributors // http://www.reprap.org/wiki/Prusa_Mendel @@ -8,482 +8,419 @@ module CubicPattern(Xdim, Ydim) { - for (x =[0:12:Xdim-10]) + for (x = [0 : 12 : Xdim - 10]) + { + for (y = [0 : 12 : Ydim - 10]) { - for (y =[0:12:Ydim-10]) - { - translate([x,y,-0.2])cube([10,10,0.4]); - } + 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 ] ); + 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() + //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() { - // 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([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( [ 0 , 85 , 0 ] ) cube( [ 5.5 , 7 , 35 ] ); + } - // screw mounting block - translate( [ 54 , 84 , 0 ] ) cube( [ 9.5 , 7 , 35 ] ); + 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]); - // frame side panel - translate( [ 20 , 0 , 0 ] ) cube( [ 80 , 3 , 5 ] ); + 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]); + } - // 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); + 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]); + } + } + } - // 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 ] ); + 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 mounting screw blocks - //upper - translate( [ 1 , 0 , 0 ] ) cube( [ 28 , 4 , 10 ] ); - translate( [ 18.45 , 0 , 0 ] ) cube( [ 3 , 4 , 5.5] ); + // frame side panel + translate([20, 0, 0]) cube([80, 3, 5]); - //lower - translate( [ 98 , 0 , 0 ] ) cube( [ 20.5 , 4 , 10 ] ); + // 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]); - // door closing corner - translate( [ 102 , 88.5 , 35 ] ) cylinder( h = 3, r1=2.5, r2=1, $fn=30); + // frame mounting screw blocks + //upper + translate([1, 0, 0]) cube([28, 4, 10]); + translate([18.45, 0, 0]) cube([3, 4, 5.5]); - // 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); + //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); - // x-axis cables entry hole body - translate( [ 89 , 2 , 0 ] ) cylinder( h = 5, r = 6, $fn=6); - - + // 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() + +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() { - - 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]); + 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]); + } } - difference () { - translate( [ 13 , 35 , 0] ) cube( [ 71 , 39 , 2] ); - translate( [ 14 , 40.5 , -0.1] ) cube( [ 63 , 29 , 2.2] ); -}} } +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); -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 ] ); + // 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] ); + 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] ); + 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 ] ); + 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); + 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); - - - - + 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); + // 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, 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([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, 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); + 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] ); + 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] ); + 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] ); + 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] ); + 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]); +} - // 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); - 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] ); - - - } }} + 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() + { + 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() + { + 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]); } } @@ -491,487 +428,392 @@ module rambo_cover() 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] ); - + 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([-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.7, 36.5, 24.5]) 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]); - - + 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 ] ); - + 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); - - - + 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 ] ); + 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([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, 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([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([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([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([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); } - 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() +module heatbed_cable_clip() { - difference() + + difference() + { + + union() { - union() + difference() { - // 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); - + 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]); } - - - - // 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); + } + } } - - - 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); - + + // 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([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); -//translate([0,0,0]) heatbed_cable_clip(); + // 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]); + } -module extruder_cable_clip() + //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() { - - difference(){ + //holders 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]); + + 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]); } - - // 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]); - - + + 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() { - // 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([11.5, 36, -3]) cube([72, 38, 3]); -//translate([0,0,0]) extruder_cable_clip(); + 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]); + } -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] ); - - - - - - } } - - - - - - } - - - - - - - - - - - - - - - - - -} + 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 index 809697cd..f01a3ca0 100644 --- a/Printed-Parts/scad/Einsy-doors.scad +++ b/Printed-Parts/scad/Einsy-doors.scad @@ -8,122 +8,111 @@ module body() { // side panels - cube([105.5,87.5,1.5]); - cube([105.5,2,16]); - cube([2,87.5,16]); + 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]); + 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]); + 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); + 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]); - + 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); + 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]) { - 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]); + 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] ) + for (i = [0 : -4]) { - 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 + 50, 1.2]); } - for ( i = [-6 : -7] ) + for (i = [-6 : -7]) { - translate([46 + (i*6),20.5,-1]) cube([3.65,19+40,1.2]); + translate([46 + (i * 6), 20.5, -1]) cube([3.65, 19 + 40, 1.2]); } - - translate([15,10,1]) cube([20,55,1.5]); + + 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([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); + 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]); - + + // 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]); + 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); + // 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); + 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); + // 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]); + 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]); + 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]); - + 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 ] ); + 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); } -} + 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 index 52f7e1f2..ea64b851 100644 --- a/Printed-Parts/scad/Einsy-hinges.scad +++ b/Printed-Parts/scad/Einsy-hinges.scad @@ -7,41 +7,42 @@ 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 ] ); + 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]); } - // 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]); -} + 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 +lower_hinge(); diff --git a/Printed-Parts/scad/Extruder-cable-clip.scad b/Printed-Parts/scad/Extruder-cable-clip.scad index 520108e4..2f503661 100644 --- a/Printed-Parts/scad/Extruder-cable-clip.scad +++ b/Printed-Parts/scad/Extruder-cable-clip.scad @@ -7,52 +7,47 @@ module extruder_cable_clip() { - - difference(){ difference() { - union() + difference() { - // 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]); + 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]); } - - // 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);}} + 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]); + } -//translate([0,0,0]) extruder_cable_clip(); + //nylon hole + translate([-3, 28, 28]) rotate([35, 90, 0]) cylinder(h = 24, r = 1.8, $fn = 30); + } +} -translate([6,-28,-28]) extruder_cable_clip(); \ No newline at end of file +//translate([0, 0, 0]) extruder_cable_clip(); +translate([6, -28, -28]) extruder_cable_clip(); diff --git a/Printed-Parts/scad/Heatbed-cable-clip.scad b/Printed-Parts/scad/Heatbed-cable-clip.scad index 3471e527..bd1962b7 100644 --- a/Printed-Parts/scad/Heatbed-cable-clip.scad +++ b/Printed-Parts/scad/Heatbed-cable-clip.scad @@ -5,79 +5,59 @@ // http://www.reprap.org/wiki/Prusa_Mendel // http://prusamendel.org - - module heatbed_cable_clip() +module heatbed_cable_clip() { - -difference() -{ - - union() + difference() { - difference() + union() { - union() + difference() { - // 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); - + 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]); } - - - - // 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); + } + } } - - - 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); - - - - -} + // 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(); +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 index f97252aa..b4229295 100644 --- a/Printed-Parts/scad/Heatbed-cable-clip_8mm.scad +++ b/Printed-Parts/scad/Heatbed-cable-clip_8mm.scad @@ -5,79 +5,60 @@ // http://www.reprap.org/wiki/Prusa_Mendel // http://prusamendel.org - - module heatbed_cable_clip() +module heatbed_cable_clip() { - -difference() -{ - - union() + difference() { - difference() + union() { - union() + difference() { - // 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); - + 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]); } - - - - // 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); + } + } } - - - 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); - - - - -} + // 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(); +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 index 63f0f5f0..04c57f7a 100644 --- a/Printed-Parts/scad/LCD-cover-ORIGINAL-MK3.scad +++ b/Printed-Parts/scad/LCD-cover-ORIGINAL-MK3.scad @@ -8,63 +8,62 @@ module main_body() { - difference() + difference() { - union() + 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 ] ); - + 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); + 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 ] ); + 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 ] ); + 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 ] ); + 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); + 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 ] ); + 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 ] ); - + translate([-64.5, -12.7, 14]) cube([10, 3, 16]); + translate([55.5, -12.7, 14]) cube([10, 3, 16]); } } @@ -72,129 +71,123 @@ module pcb_clip() { difference() { - union() + 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([-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 ] ); + 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(); + pcb_clip(); + main_body(); - // reset button - translate( [ 62.5 , 37.3 , 0 ] ) cylinder( h = 7.2, r = 3.5, $fn=30); + // 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 ] ); + //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 ] ); + //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); + //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() + //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([-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 ] ); - } - + 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() + //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 ] ); + 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 ] ); + 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 ] ); + 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); + 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); + 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 ] ); + 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 ] ); + 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([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 ] ); + 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 ] ); + 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); } - - + 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 ] ); - +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 index 3c03f6bd..68f65c2a 100644 --- a/Printed-Parts/scad/LCD-knob.scad +++ b/Printed-Parts/scad/LCD-knob.scad @@ -5,52 +5,41 @@ // 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 () { +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]); + } + } -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]); - - } - - - + 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]); - +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 index 43d7cd87..ba9d88e2 100644 --- a/Printed-Parts/scad/PSU-cover-MK3.scad +++ b/Printed-Parts/scad/PSU-cover-MK3.scad @@ -7,209 +7,180 @@ module CubeAdjust(Xdim, Zdim) { - for (x =[6:11.2:Xdim-12]) + for (x = [6 : 11.2 : Xdim - 12]) + { + for (z = [6 : 11.2 : Zdim - 12]) { - for (z =[6:11.2:Zdim-12]) - { - translate([x,-0.2,z])cube([10,0.4,10]); - } + translate([x, -0.2, z]) cube([10, 0.4, 10]); } + } } module nuttrap() { - rotate([0, 180, 0]) difference() - { + 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([-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); - } + } + 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); + 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() + 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 + 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]); + //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,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([-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([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([-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,60,-10])rotate([-35,-45,-45])cube([20,20,20]); - translate([95,60,65])rotate([-55,48,-48])cube([20,20,20]); + 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([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([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,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([-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([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([-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([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([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([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); + 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]) + for (i = [0 : 9]) { - translate([20+i,6.8,-10])cylinder(r=3.5,h=50); // left back mounthole cutout + translate([20 + i, 6.8, -10]) cylinder(r = 3.5, h = 50); // left back mounthole cutout } - - - -} + } } module PSU_Y_REINFORCEMENT() { -difference() -{ - union() // base shape + 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 + translate([59.5, 0, -18]) cube([33, 6, 19]); // reinforcement plate + translate([73.5, 5, -18]) cube([5, 16, 19]); // vertical_reinforcement } - union () // cutouts + 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 - - - + 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() - { +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]); - } + 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]); - + 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); } - } - - - + 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() @@ -217,101 +188,85 @@ module lower_part() 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 + 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]); - + 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]); - + 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]); + 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]); - + 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]); - } - + { + 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(); + // 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/bearing.scad b/Printed-Parts/scad/bearing.scad index e888171f..1cb5392e 100644 --- a/Printed-Parts/scad/bearing.scad +++ b/Printed-Parts/scad/bearing.scad @@ -9,68 +9,74 @@ use bearing_diameter = 14.95; -module horizontal_bearing_base(bearings=1){ - translate(v=[0,0,6]) cube(size = [24,8+bearings*25,12], center = true); +module horizontal_bearing_base(bearings = 1) +{ + translate(v = [0, 0, 6]) cube(size = [24, 8 + bearings * 25, 12], center = true); } -module horizontal_bearing_holes(bearings=1){ - cutter_lenght = 10+bearings*25; - one_holder_lenght = 8+25; - holder_lenght = 8+bearings*25; - - // Main bearing cut - difference(){ - translate(v=[0,0,12]) rotate(a=[90,0,0]) translate(v=[0,0,-cutter_lenght/2]) cylinder(h = cutter_lenght, r=(bearing_diameter/2)+0.2, $fn=50); - // Bearing retainers - translate(v=[0,1-holder_lenght/2,3]) cube(size = [24,6,8], center = true); - translate(v=[0,-1+holder_lenght/2,3]) cube(size = [24,6,8], center = true); - } - - // Ziptie cutouts - ziptie_cut_ofset = 0; - for ( i = [0 : bearings-1] ){ - // For easier positioning I move them by half of one - // bearing holder then add each bearign lenght and then center again - translate(v=[0,-holder_lenght/2,0]) translate(v=[0,one_holder_lenght/2+i*25,0]) difference(){ - union(){ - translate(v=[0,2-8.5,12]) rotate(a=[90,0,0]) translate(v=[0,0,0]) cylinder(h = 4, r=11.5, $fn=50); - translate(v=[0,2+8.5,12]) rotate(a=[90,0,0]) translate(v=[0,0,0]) cylinder(h = 4, r=11.5, $fn=50); - } - translate(v=[0,12,12]) rotate(a=[90,0,0]) translate(v=[0,0,0]) cylinder(h = 24, r=9, $fn=50); - } - } - -} - -module horizontal_bearing_holes_nozip(bearings=1){ - cutter_lenght = 10+bearings*25; - one_holder_lenght = 8+25; - holder_lenght = 8+bearings*25; - - // Main bearing cut - difference(){ - translate(v=[0,0,12]) rotate(a=[90,0,0]) translate(v=[0,0,-cutter_lenght/2]) cylinder(h = cutter_lenght, r=(bearing_diameter/2)+0.2, $fn=50); - // Bearing retainers - translate(v=[0,1-holder_lenght/2,3]) cube(size = [24,6,8], center = true); - translate(v=[0,-1+holder_lenght/2,3]) cube(size = [24,6,8], center = true); - } - +module horizontal_bearing_holes(bearings = 1) +{ + cutter_lenght = 10 + bearings * 25; + one_holder_lenght = 8 + 25; + holder_lenght = 8 + bearings * 25; + + // Main bearing cut + difference() + { + translate(v = [0, 0, 12]) rotate(a = [90, 0, 0]) translate(v = [0, 0, -cutter_lenght / 2]) cylinder(h = cutter_lenght, r = (bearing_diameter / 2) + 0.2, $fn = 50); + // Bearing retainers + translate(v = [0, 1 - holder_lenght / 2, 3]) cube(size = [24, 6, 8], center = true); + translate(v = [0, -1 + holder_lenght / 2, 3]) cube(size = [24, 6, 8], center = true); + } + + // Ziptie cutouts + ziptie_cut_ofset = 0; + for (i = [0 : bearings - 1]) + { + // For easier positioning I move them by half of one + // bearing holder then add each bearign lenght and then center again + translate(v = [0, -holder_lenght / 2, 0]) translate(v = [0, one_holder_lenght / 2 + i * 25, 0]) difference() + { + union() + { + translate(v = [0, 2 - 8.5, 12]) rotate(a = [90, 0, 0]) translate(v = [0, 0, 0]) cylinder(h = 4, r = 11.5, $fn = 50); + translate(v = [0, 2 + 8.5, 12]) rotate(a = [90, 0, 0]) translate(v = [0, 0, 0]) cylinder(h = 4, r = 11.5, $fn = 50); + } + translate(v = [0, 12, 12]) rotate(a = [90, 0, 0]) translate(v = [0, 0, 0]) cylinder(h = 24, r = 9, $fn = 50); + } + } } +module horizontal_bearing_holes_nozip(bearings = 1) +{ + cutter_lenght = 10 + bearings * 25; + one_holder_lenght = 8 + 25; + holder_lenght = 8 + bearings * 25; + + // Main bearing cut + difference() + { + translate(v = [0, 0, 12]) rotate(a = [90, 0, 0]) translate(v = [0, 0, -cutter_lenght / 2]) cylinder(h = cutter_lenght, r = (bearing_diameter / 2) + 0.2, $fn = 50); + // Bearing retainers + translate(v = [0, 1 - holder_lenght / 2, 3]) cube(size = [24, 6, 8], center = true); + translate(v = [0, -1 + holder_lenght / 2, 3]) cube(size = [24, 6, 8], center = true); + } +} thinwall = 3; bearing_size = bearing_diameter + 2 * thinwall; -module vertical_bearing_base(){ - translate(v=[-2-bearing_size/4,0,29]) cube(size = [4+bearing_size/2,bearing_size,58], center = true); - cylinder(h = 58, r=bearing_size/2, $fn = 90); +module vertical_bearing_base() +{ + translate(v = [-2 - bearing_size / 4, 0, 29]) cube(size = [4 + bearing_size / 2, bearing_size, 58], center = true); + cylinder(h = 58, r = bearing_size / 2, $fn = 90); } -module vertical_bearing_holes(){ - translate(v=[0,0,-1]) poly_cylinder(h = 62, r=(14.80/2)); - translate(v=[0,0,-0.1]) cylinder(r1=(bearing_diameter/2)+0.7,r2=(bearing_diameter/2), h=0.5); - rotate(a=[0,0,-40]) translate(v=[bearing_diameter/2-2.9,-0.5,0.5]) cube(size = [thinwall*2,1,62]); - +module vertical_bearing_holes() +{ + translate(v = [0, 0, -1]) poly_cylinder(h = 62, r = (14.80 / 2)); + translate(v = [0, 0, -0.1]) cylinder(r1 = (bearing_diameter / 2) + 0.7, r2 = (bearing_diameter / 2), h = 0.5); + rotate(a = [0, 0, -40]) translate(v = [bearing_diameter / 2 - 2.9, -0.5, 0.5]) cube(size = [thinwall * 2, 1, 62]); } //difference(){ @@ -80,4 +86,4 @@ vertical_bearing_holes(); //horizontal_bearing_test(); //horizontal_bearing_base(1); //horizontal_bearing_holes(1); -//horizontal_bearing_holes_nozip(1); \ No newline at end of file +//horizontal_bearing_holes_nozip(1); diff --git a/Printed-Parts/scad/cable-holder.scad b/Printed-Parts/scad/cable-holder.scad index 60406001..15feb1a7 100644 --- a/Printed-Parts/scad/cable-holder.scad +++ b/Printed-Parts/scad/cable-holder.scad @@ -9,77 +9,74 @@ module zip_main() { // ziptie cut for upper cables - - translate([-10,-30.5,24]) cube([20,2,3]); - translate([-6,-30.5,24]) cube([2,20,3]); - translate([5,-30.5,24]) cube([2,20,3]); - + + translate([-10, -30.5, 24]) cube([20, 2, 3]); + translate([-6, -30.5, 24]) cube([2, 20, 3]); + translate([5, -30.5, 24]) cube([2, 20, 3]); + difference() { - translate([0.5,-26,24]) rotate([0,0,90]) cylinder( h=3, r=6, $fn=30 ); - translate([0.5,-26,23]) rotate([0,0,90]) cylinder( h=5, r=4.6, $fn=30 ); - translate([-10,-35.5,23]) cube([20,5,5]); - translate([-10,-27,23]) cube([20,10,5]); + translate([0.5, -26, 24]) rotate([0, 0, 90]) cylinder(h = 3, r = 6, $fn = 30); + translate([0.5, -26, 23]) rotate([0, 0, 90]) cylinder(h = 5, r = 4.6, $fn = 30); + translate([-10, -35.5, 23]) cube([20, 5, 5]); + translate([-10, -27, 23]) cube([20, 10, 5]); } } - - -module zip_ext_cables() + + +module zip_ext_cables() { // ziptie cut for lower cables - - translate([-10,-25.5,24]) cube([20,2,3]); - translate([-4.5,-45.5,24]) cube([2,20,3]); - translate([3.5,-45.5,24]) cube([2,20,3]); + translate([-10, -25.5, 24]) cube([20, 2, 3]); + translate([-4.5, -45.5, 24]) cube([2, 20, 3]); + translate([3.5, -45.5, 24]) cube([2, 20, 3]); } module cable_holder() -{ +{ difference() { union() { // base block - translate([0.5,-26,24]) rotate([0,0,90]) cylinder( h=39.5, r=5, $fn=30 ); - translate([-4.5,-26,24]) cube([10,9,39.5]); - translate([-3,-35,24]) cube([7,10,39.5]); + translate([0.5, -26, 24]) rotate([0, 0, 90]) cylinder(h = 39.5, r = 5, $fn = 30); + translate([-4.5, -26, 24]) cube([10, 9, 39.5]); + translate([-3, -35, 24]) cube([7, 10, 39.5]); } - - // screw - translate([0.5,-27,19.5]) rotate([0,0,90]) cylinder( h=42, r=1.75, $fn=30 ); - translate([0.5,-27,19.5+41]) rotate([0,0,90]) cylinder( h=5, r=3.15, $fn=30 ); + + // screw + translate([0.5, -27, 19.5]) rotate([0, 0, 90]) cylinder(h = 42, r = 1.75, $fn = 30); + translate([0.5, -27, 19.5 + 41]) rotate([0, 0, 90]) cylinder(h = 5, r = 3.15, $fn = 30); // upper cables cut - translate([0.5,-18,23]) rotate([0,5,90]) cylinder( h=41, r=5, $fn=30 ); - translate([-10,-20,23]) rotate([-5,0,0]) cube([20,9,45]); - + translate([0.5, -18, 23]) rotate([0, 5, 90]) cylinder(h = 41, r = 5, $fn = 30); + translate([-10, -20, 23]) rotate([-5, 0, 0]) cube([20, 9, 45]); + // lower angled cut - translate([-10,-44,23]) rotate([-4,0,0]) cube([20,9,45]); - - // wires - translate([-0.8,-35,23]) rotate([0,4,90]) cylinder( h=41, r=1.25, $fn=30 ); - translate([1.8,-35,23]) rotate([0,4,90]) cylinder( h=41, r=1.25, $fn=30 ); + translate([-10, -44, 23]) rotate([-4, 0, 0]) cube([20, 9, 45]); + // wires + translate([-0.8, -35, 23]) rotate([0, 4, 90]) cylinder(h = 41, r = 1.25, $fn = 30); + translate([1.8, -35, 23]) rotate([0, 4, 90]) cylinder(h = 41, r = 1.25, $fn = 30); // ziptie openings - translate([0,0,5]) zip_main(); - translate([0,0,18]) zip_main(); - translate([0,0,32]) zip_main(); - translate([0,0,11]) zip_ext_cables(); - translate([0,0,25]) zip_ext_cables(); + translate([0, 0, 5]) zip_main(); + translate([0, 0, 18]) zip_main(); + translate([0, 0, 32]) zip_main(); + translate([0, 0, 11]) zip_ext_cables(); + translate([0, 0, 25]) zip_ext_cables(); // round edge cut - translate([0,1.8,-1.5]) + translate([0, 1.8, -1.5]) difference() { - translate([-10,-32,63]) rotate([0,90,0]) cylinder( h=41, r=4, $fn=30 ); - translate([-10,-32,63]) rotate([0,90,0]) cylinder( h=41, r=2, $fn=30 ); - translate([-10,-36,53]) rotate([0,0,0]) cube([20,9,10]); - translate([-10,-32,58]) rotate([0,0,0]) cube([20,9,10]); + translate([-10, -32, 63]) rotate([0, 90, 0]) cylinder(h = 41, r = 4, $fn = 30); + translate([-10, -32, 63]) rotate([0, 90, 0]) cylinder(h = 41, r = 2, $fn = 30); + translate([-10, -36, 53]) rotate([0, 0, 0]) cube([20, 9, 10]); + translate([-10, -32, 58]) rotate([0, 0, 0]) cube([20, 9, 10]); } - } } -cable_holder(); \ No newline at end of file +cable_holder(); diff --git a/Printed-Parts/scad/extruder-body.scad b/Printed-Parts/scad/extruder-body.scad index 366ed9e4..c4bc6cc3 100644 --- a/Printed-Parts/scad/extruder-body.scad +++ b/Printed-Parts/scad/extruder-body.scad @@ -5,102 +5,96 @@ // http://www.reprap.org/wiki/Prusa_Mendel // http://prusamendel.org - module m3head() { -intersection() + intersection() { - translate([30,5,9])cylinder(r=3.1,h = 25, $fn=30); // head cut - translate([30,5,17-3.5]) cube([6.2,3.4,1], center=true); + translate([30, 5, 9]) cylinder(r = 3.1, h = 25, $fn = 30); // head cut + translate([30, 5, 17 - 3.5]) cube([6.2, 3.4, 1], center = true); } - translate([30,5,17-4]) cube([3.4,3.4,1], center=true); - translate([30,5,17-3.5])cylinder(r=3.1,h = 20, $fn=30); // head cut + translate([30, 5, 17 - 4]) cube([3.4, 3.4, 1], center = true); + translate([30, 5, 17 - 3.5]) cylinder(r = 3.1, h = 20, $fn = 30); // head cut } - module m3nuthead() { intersection() { - translate([30,5,9])cylinder(r=3.1,h = 25, $fn=6); // head cut - translate([30,5,17-3.5]) cube([6.2,3.4,1], center=true); + translate([30, 5, 9]) cylinder(r = 3.1, h = 25, $fn = 6); // head cut + translate([30, 5, 17 - 3.5]) cube([6.2, 3.4, 1], center = true); } - translate([30,5,17-4]) cube([3.4,3.4,1], center=true); - translate([30,5,17-3.5])cylinder(r=3.1,h = 20, $fn=6); // head cut + translate([30, 5, 17 - 4]) cube([3.4, 3.4, 1], center = true); + translate([30, 5, 17 - 3.5]) cylinder(r = 3.1, h = 20, $fn = 6); // head cut } - module grill() { difference() - { - translate([24,-5,-17]) cylinder( h=17, r=20.4, $fn=50 ); - translate([24,-5,-21]) cylinder( h=23, r=19, $fn=50 ); - translate([23,-30,-30]) cube([30,60,32]); - translate([-11,-30,-30]) cube([30,60,32]); - translate([-19,-20,-30]) cube([60,60,32]); - } - translate([23,-24.65,-17]) cylinder( h=17, r=0.72, $fn=50 ); - translate([19,-24.01,-17]) cylinder( h=17, r=0.72, $fn=50 ); + { + translate([24, -5, -17]) cylinder(h = 17, r = 20.4, $fn = 50); + translate([24, -5, -21]) cylinder(h = 23, r = 19, $fn = 50); + translate([23, -30, -30]) cube([30, 60, 32]); + translate([-11, -30, -30]) cube([30, 60, 32]); + translate([-19, -20, -30]) cube([60, 60, 32]); + } + translate([23, -24.65, -17]) cylinder(h = 17, r = 0.72, $fn = 50); + translate([19, -24.01, -17]) cylinder(h = 17, r = 0.72, $fn = 50); } module pinda_holder() { - difference() + difference() + { + union() { - union() - { - translate([-32,-45,-20]) cube([18,15,20]); - translate([-26,-18,-3]) cube([9,11,3]); - translate([-23,-38,-3]) cube([6,15,3]); - } - translate([-23,-5,-12]) rotate([90,0,0]) cylinder( h=50, r=4.05, $fn=30 ); - translate([-35,-38.5,-5]) rotate([0,90,0]) cylinder( h=25, r=1.6, $fn=30 ); - - translate([-33,-38.5,-5]) rotate([0,90,0]) cylinder( h=6, r=3.1, $fn=30 ); - - translate([-35,-52.5,-24]) rotate([0,0,45]) cube([10,10,30]); - translate([-36.5,-39,-25]) rotate([0,0,45]) cube([20,10,30]); - translate([-11,-36,-26]) rotate([0,0,50]) cube([10,10,23]); - translate([-22.5,-30,-20]) rotate([0,0,45]) cube([10,8,23]); - translate([-35,-29,-30]) rotate([45,0,0]) cube([30,10,10]); - translate([-35,-46,-30]) rotate([45,0,0]) cube([30,10,10]); - translate([-41,-52,-19.5]) rotate([0,45,0]) cube([12,30,10]); - translate([-12.5,-53,-21]) rotate([0,0,45]) cube([10,10,30]); - translate([-10,-54,-25]) rotate([0,0,65]) cube([14.5,10,30]); - - translate([-19.6,-41.5,-8.1]) cube([2.4,6,10]); - translate([-24,-48,-10]) cube([1.4,20,12]); - translate([-23.7,-48,-10]) rotate([0,-5,0]) cube([1.4,20,12]); - translate([-25.5,-48,-0]) rotate([0,45,0]) cube([3,30,3]); - - translate([-17.5,-37,-22]) cube([5,7,5]); - - // hook cut - translate([-23,-20,-3.5]) cube([6,8,4.5]); - translate([-26,-10,-3.5]) rotate([0,0,45]) cube([5,5,5]); - translate([-26,-23,-3.5]) rotate([0,0,45]) cube([5,5,5]); - - translate([-29,-34,-16]) cube([1,1,15]); - translate([-29,-43,-16]) cube([1,1,15]); - translate([-17,-33,-16]) cube([1,1,15]); - + translate([-32, -45, -20]) cube([18, 15, 20]); + translate([-26, -18, -3]) cube([9, 11, 3]); + translate([-23, -38, -3]) cube([6, 15, 3]); } -} + translate([-23, -5, -12]) rotate([90, 0, 0]) cylinder(h = 50, r = 4.05, $fn = 30); + translate([-35, -38.5, -5]) rotate([0, 90, 0]) cylinder(h = 25, r = 1.6, $fn = 30); + + translate([-33, -38.5, -5]) rotate([0, 90, 0]) cylinder(h = 6, r = 3.1, $fn = 30); + translate([-35, -52.5, -24]) rotate([0, 0, 45]) cube([10, 10, 30]); + translate([-36.5, -39, -25]) rotate([0, 0, 45]) cube([20, 10, 30]); + translate([-11, -36, -26]) rotate([0, 0, 50]) cube([10, 10, 23]); + translate([-22.5, -30, -20]) rotate([0, 0, 45]) cube([10, 8, 23]); + translate([-35, -29, -30]) rotate([45, 0, 0]) cube([30, 10, 10]); + translate([-35, -46, -30]) rotate([45, 0, 0]) cube([30, 10, 10]); + translate([-41, -52, -19.5]) rotate([0, 45, 0]) cube([12, 30, 10]); + translate([-12.5, -53, -21]) rotate([0, 0, 45]) cube([10, 10, 30]); + translate([-10, -54, -25]) rotate([0, 0, 65]) cube([14.5, 10, 30]); + + translate([-19.6, -41.5, -8.1]) cube([2.4, 6, 10]); + translate([-24, -48, -10]) cube([1.4, 20, 12]); + translate([-23.7, -48, -10]) rotate([0, -5, 0]) cube([1.4, 20, 12]); + translate([-25.5, -48, -0]) rotate([0, 45, 0]) cube([3, 30, 3]); + + translate([-17.5, -37, -22]) cube([5, 7, 5]); + + // hook cut + translate([-23, -20, -3.5]) cube([6, 8, 4.5]); + translate([-26, -10, -3.5]) rotate([0, 0, 45]) cube([5, 5, 5]); + translate([-26, -23, -3.5]) rotate([0, 0, 45]) cube([5, 5, 5]); + + translate([-29, -34, -16]) cube([1, 1, 15]); + translate([-29, -43, -16]) cube([1, 1, 15]); + translate([-17, -33, -16]) cube([1, 1, 15]); + } +} module extruder_body() { -difference() -{ - + difference() + { union() { // cables hook above fan difference() { - translate([22.5,-3,-17]) cube([9,8.75,17]); - translate([33,-0.0,-21]) rotate([0,0,45]) cube([12,12,22]); + translate([22.5, -3, -17]) cube([9, 8.75, 17]); + translate([33, -0.0, -21]) rotate([0, 0, 45]) cube([12, 12, 22]); } difference() @@ -108,284 +102,257 @@ difference() // base body shape union() { - translate([-17,-36.5,-30.5]) cube([42,86.5,30.5]); - translate([16,-38.5,-20]) rotate([0,0,45]) cube([3,3,20]); + translate([-17, -36.5, -30.5]) cube([42, 86.5, 30.5]); + translate([16, -38.5, -20]) rotate([0, 0, 45]) cube([3, 3, 20]); } - translate([22.5,-3,-20]) cube([9,8.75,20]); + translate([22.5, -3, -20]) cube([9, 8.75, 20]); //opening to pulleys from motor side - translate([4,27,-33]) rotate([0,0,0]) cylinder( h=40, r=12, $fn=30 ); - + translate([4, 27, -33]) rotate([0, 0, 0]) cylinder(h = 40, r = 12, $fn = 30); + // idler cut difference() { - translate([-39,15,-33.5]) cube([44,24,32]); + translate([-39, 15, -33.5]) cube([44, 24, 32]); difference() { - translate([-12,5.5,-4.5]) rotate([0,0,30]) cube([12,10,3]); - translate([-39,15,-36]) cube([44,24,32]); + translate([-12, 5.5, -4.5]) rotate([0, 0, 30]) cube([12, 10, 3]); + translate([-39, 15, -36]) cube([44, 24, 32]); } } - translate([-20,9.5,-36.5]) rotate([0,0,30])cube([20,20,32]); - translate([-26,29,-36.5]) cube([20,22,32]); - translate([-18,24,-36.5]) rotate([0,0,45]) cube([20,20,32]); - translate([-26,22,-33.5]) rotate([0,0,45]) cube([20,20,32]); - translate([-26,9,-33.5]) rotate([0,0,30]) cube([20,20,32]); + translate([-20, 9.5, -36.5]) rotate([0, 0, 30]) cube([20, 20, 32]); + translate([-26, 29, -36.5]) cube([20, 22, 32]); + translate([-18, 24, -36.5]) rotate([0, 0, 45]) cube([20, 20, 32]); + translate([-26, 22, -33.5]) rotate([0, 0, 45]) cube([20, 20, 32]); + translate([-26, 9, -33.5]) rotate([0, 0, 30]) cube([20, 20, 32]); } - // bottom pulley space + // bottom pulley space difference() { - translate([-4,15,-30.5]) cube([26,6.5,30.5]); - translate([-8,16.5,-36]) rotate([0,0,45]) cube([10,10,32]); + translate([-4, 15, -30.5]) cube([26, 6.5, 30.5]); + translate([-8, 16.5, -36]) rotate([0, 0, 45]) cube([10, 10, 32]); } - translate([-8,15,-4]) cube([30,6.5,4]); - translate([15.5,-44,-17]) cube([5,8,17]); + translate([-8, 15, -4]) cube([30, 6.5, 4]); + translate([15.5, -44, -17]) cube([5, 8, 17]); // idler tension screw heads - translate([3,18.5,-25]) rotate([0,90,0]) cylinder( h=22, r=3,r2=5, $fn=30 ); - translate([3,18.5,-10]) rotate([0,90,0]) cylinder( h=22, r=3,r2=5, $fn=30 ); + translate([3, 18.5, -25]) rotate([0, 90, 0]) cylinder(h = 22, r = 3, r2 = 5, $fn = 30); + translate([3, 18.5, -10]) rotate([0, 90, 0]) cylinder(h = 22, r = 3, r2 = 5, $fn = 30); // filament entry to hotend difference() { - translate([0,10.5,-26]) rotate([0,0,45]) cube([9,9,15]); - translate([-5,25,-17]) rotate([30,0,0]) cube([10,10,10]); - translate([-5,18,-30]) rotate([-45,0,0]) cube([10,10,10]); - translate([-13,14,-26]) cube([10,12,20]); + translate([0, 10.5, -26]) rotate([0, 0, 45]) cube([9, 9, 15]); + translate([-5, 25, -17]) rotate([30, 0, 0]) cube([10, 10, 10]); + translate([-5, 18, -30]) rotate([-45, 0, 0]) cube([10, 10, 10]); + translate([-13, 14, -26]) cube([10, 12, 20]); } - - // filament entry + // filament entry difference() { - translate([0,30.5,-26]) rotate([0,0,45]) cube([12,12,21]); - translate([-10,19,-13]) rotate([-40,0,0]) cube([20,10,25]); - translate([-5,23,-27]) rotate([-45,0,0]) cube([10,10,10]); - translate([-14,30,-29]) cube([10,12,25]); - translate([3,30,-29]) cube([10,12,30]); - translate([-5,45,-29]) cube([10,12,25]); + translate([0, 30.5, -26]) rotate([0, 0, 45]) cube([12, 12, 21]); + translate([-10, 19, -13]) rotate([-40, 0, 0]) cube([20, 10, 25]); + translate([-5, 23, -27]) rotate([-45, 0, 0]) cube([10, 10, 10]); + translate([-14, 30, -29]) cube([10, 12, 25]); + translate([3, 30, -29]) cube([10, 12, 30]); + translate([-5, 45, -29]) cube([10, 12, 25]); } + } + + translate([4, 27, -33]) rotate([0, 0, 0]) cylinder(h = 4, r = 15, $fn = 30); + translate([4, 27, -32]) rotate([0, 0, 0]) cylinder(h = 4, r = 13, $fn = 30); + + // side entry to pulleys + translate([5, 32, -18]) rotate([0, 90, 0]) cylinder(h = 40, r = 8, $fn = 6); + translate([18, 32, -18]) rotate([0, 90, 0]) cylinder(h = 10, r1 = 8, r2 = 11, $fn = 6); + + // cover cutout + translate([-18, -39, -49]) cube([44, 45, 32]); + + // hotend cooling tube input + translate([12, -21.5, -20]) rotate([0, 90, 0]) cylinder(h = 10, r2 = 20.5, r1 = 12, $fn = 80); + translate([1, -20.5, -20.5]) rotate([0, 84, 0]) cylinder(h = 25, r2 = 17.5, r1 = 12, $fn = 80); + translate([-10, -35, -40.55]) cube([30, 26, 32]); + translate([0, -35, -38.8]) cube([20, 14, 32]); - + // hotend cooling tube OUTPUT + difference() + { + translate([-28, -35, -34]) rotate([0, 15, 0]) cube([44, 26, 32]); + translate([-18, -53.5, -30]) rotate([0, 0, 65]) cube([20, 20, 32]); + } + translate([-10, -35, -17.5]) rotate([0, 0, 0]) cube([10, 26, 12]); + + // e3d nozzle cut + translate([0, -9, -17]) rotate([90, 0, 0]) cylinder(h = 60, r = 11.1, $fn = 50); + translate([0, -9, -17]) rotate([90, 0, 0]) cylinder(h = 26, r = 11.5, $fn = 50); + translate([0, -3.4, -17]) rotate([90, 0, 0]) cylinder(h = 10, r = 8.05, $fn = 50); + translate([0, 8, -17]) rotate([90, 0, 0]) cylinder(h = 5.6, r = 8.05, $fn = 50); + translate([0, 8.9, -17]) rotate([90, 0, 0]) cylinder(h = 3, r = 9, $fn = 50); + translate([0, 4, -17]) rotate([90, 0, 0]) cylinder(h = 8, r = 6.05, $fn = 50); + translate([0, 2.5, -17]) rotate([90, 0, 0]) cylinder(h = 2, r1 = 8.05, r2 = 7, $fn = 50); + + // filament PTFE and entry from hotend + translate([0, 10, -17]) rotate([90, 0, 0]) cylinder(h = 10, r = 3.5, $fn = 50); + translate([0, 30, -17]) rotate([90, 0, 0]) cylinder(h = 80, r = 2.1, $fn = 50); + translate([0, 18, -17]) rotate([90, 0, 0]) cylinder(h = 12, r1 = 2, r2 = 4.3, $fn = 50); + translate([0, 16, -17]) rotate([110, 0, 0]) cylinder(h = 13, r1 = 2, r2 = 4, $fn = 50); + translate([0, 16, -17]) rotate([100, 0, 0]) cylinder(h = 13, r1 = 2, r2 = 4, $fn = 50); + translate([0, 80, -17]) rotate([90, 0, 0]) cylinder(h = 80, r = 1.0, $fn = 50); + + // upper PTFE housing + translate([0, 50.8, -17]) rotate([90, 0, 0]) cylinder(h = 4, r = 2.1, $fn = 50); + translate([0, 49, -17]) rotate([90, 0, 0]) cylinder(h = 4.5, r = 1.5, $fn = 50); + translate([0, 51, -17]) rotate([90, 0, 0]) cylinder(h = 22, r = 1.1, $fn = 50); + translate([0, 41, -17]) rotate([90, 0, 0]) cylinder(h = 5, r1 = 2, r2 = 1, $fn = 50); + translate([1, 46.5, -17.5]) cube([2, 4, 1]); + translate([1, 48, -17.5]) rotate([-30, 0, 0]) cube([2, 4, 1]); + translate([0, 10, -17]) rotate([90, 0, 0]) cylinder(h = 3, r = 7, $fn = 50); + + // motor screws + translate([-11.5, 11.5, -40]) rotate([0, 0, 0]) cylinder(h = 60, r = 1.65, $fn = 50); + translate([19.5, 11.5, -40]) rotate([0, 0, 0]) cylinder(h = 60, r = 1.65, $fn = 50); + translate([-11.5, 42.5, -40]) rotate([0, 0, 0]) cylinder(h = 60, r = 1.65, $fn = 50); + translate([19.5, 42.5, -40]) rotate([0, 0, 0]) cylinder(h = 60, r = 1.65, $fn = 50); + + translate([-11.5, 11.5, -3.75]) rotate([0, 0, 0]) cylinder(h = 5, r = 3.1, $fn = 50); + translate([19.5, 11.5, -3.75]) rotate([0, 0, 0]) cylinder(h = 5, r = 3.1, $fn = 50); + translate([-11.5, 42.5, -3]) rotate([0, 0, 0]) cylinder(h = 4, r = 3.1, $fn = 50); + translate([19.5, 42.5, -4.5]) rotate([0, 0, 0]) cylinder(h = 5, r1 = 1.6, r2 = 2.4, $fn = 50); + + // better printing + translate([-10.5, 6.5, -17]) m3head(); + translate([-41.5, 6.5, -17]) m3head(); + translate([-41.5, 37.5, -16.2]) m3head(); + translate([-13, -2, -26]) m3nuthead(); + + translate([-8, 16.5, -33.5]) rotate([0, 0, 45]) cube([10, 10, 32]); + translate([-18, 16.5, -33.5]) cube([10, 10, 32]); + + // hold together screws + translate([-20.5, -3.2, -14]) cube([12, 5.6, 2.1]); + translate([-20.5, -3.2, -5]) cube([12, 5.6, 2.1]); + translate([-13.2, -3.2, -14.3]) cube([3.4, 5.6, 2]); + translate([-13.2, -2.2, -14.6]) cube([3.4, 3.4, 2]); + + translate([-13.2, -3.2, -5.3]) cube([3.4, 5.6, 2.3]); + translate([-13.2, -2.2, -5.6]) cube([3.4, 3.4, 2.3]); + + translate([-11.5, -0.5, -35]) cylinder(h = 65, r = 1.65, $fn = 50); + translate([-11.5, -0.5, -2]) cylinder(h = 5, r1 = 1.65, r2 = 2.2, $fn = 50); + translate([11.5, -0.5, -30]) cylinder(h = 60, r = 1.65, $fn = 50); + translate([11.5, -0.5, -3]) cylinder(h = 5, r1 = 1.65, r2 = 2.2, $fn = 50); + + translate([11.5, -0.5, -16]) cylinder(h = 5, r1 = 3.5, r2 = 3.1, $fn = 6); + translate([11.5, -0.5, -21]) cylinder(h = 7, r = 3.5, $fn = 6); + + // idler tension screws + translate([9, 18.5, -25]) rotate([0, 90, 0]) cylinder(h = 21, r = 2.7, $fn = 30); + translate([-18, 18.5, -25]) rotate([0, 90, 0]) cylinder(h = 45, r = 1.7, $fn = 30); + translate([19, 18.5, -25]) rotate([0, 90, 0]) cylinder(h = 10, r = 4, $fn = 30); + translate([9, 18.5, -10]) rotate([0, 90, 0]) cylinder(h = 21, r = 2.7, $fn = 30); + translate([-18, 18.5, -10]) rotate([0, 90, 0]) cylinder(h = 45, r = 1.7, $fn = 30); + translate([19, 18.5, -10]) rotate([0, 90, 0]) cylinder(h = 10, r = 4, $fn = 30); + + // fan cut and screws + translate([20.5, -41.5, -30]) cube([15, 40, 40]); + translate([6, -5.5, -4]) rotate([0, 90, 0]) cylinder(h = 15, r = 1.4, $fn = 30); + translate([12, -37.5, -4]) rotate([0, 90, 0]) cylinder(h = 10, r = 1.4, $fn = 30); + translate([12, -37.5, -4]) rotate([0, 90, 0]) cylinder(h = 3, r = 1.6, $fn = 30); + translate([19, -5.5, -4]) rotate([0, 90, 0]) cylinder(h = 2, r1 = 1.4, r2 = 2, $fn = 30); + translate([19, -37.5, -4]) rotate([0, 90, 0]) cylinder(h = 2, r1 = 1.4, r2 = 2, $fn = 30); + + // extruder cover nut + translate([17, 3, -25]) rotate([0, 0, 0]) cylinder(h = 19, r = 1.7, $fn = 30); + translate([17, 3, -5]) rotate([0, 0, 0]) cylinder(h = 6, r = 3.5, $fn = 6); + translate([17, 3, -10]) rotate([0, 0, 0]) cylinder(h = 6, r1 = 3.1, r2 = 3.6, $fn = 6); + + // cable guide above fan + difference() + { + translate([20.5, -2.5, -25]) cube([4, 5, 30]); + translate([19, -1.5, -25]) rotate([0, 0, 60]) cube([5, 5, 30]); } - - - translate([4,27,-33]) rotate([0,0,0]) cylinder( h=4, r=15, $fn=30 ); - translate([4,27,-32]) rotate([0,0,0]) cylinder( h=4, r=13, $fn=30 ); - - // side entry to pulleys - translate([5,32,-18]) rotate([0,90,0]) cylinder( h=40, r=8, $fn=6 ); - translate([18,32,-18]) rotate([0,90,0]) cylinder( h=10, r1=8, r2=11, $fn=6 ); - - // cover cutout - translate([-18,-39,-49]) cube([44,45,32]); - - - // hotend cooling tube input - translate([12,-21.5,-20]) rotate([0,90,0]) cylinder( h=10, r2=20.5, r1=12, $fn=80 ); - translate([1,-20.5,-20.5]) rotate([0,84,0]) cylinder( h=25, r2=17.5, r1=12, $fn=80 ); - translate([-10,-35,-40.55]) cube([30,26,32]); - translate([0,-35,-38.8]) cube([20,14,32]); - - // hotend cooling tube OUTPUT - difference() - { - translate([-28,-35,-34]) rotate([0,15,0]) cube([44,26,32]); - translate([-18,-53.5,-30]) rotate([0,0,65]) cube([20,20,32]); - } - translate([-10,-35,-17.5]) rotate([0,0,0]) cube([10,26,12]); - - // e3d nozzle cut - translate([0,-9,-17]) rotate([90,0,0]) cylinder( h=60, r=11.1, $fn=50 ); - translate([0,-9,-17]) rotate([90,0,0]) cylinder( h=26, r=11.5, $fn=50 ); - translate([0,-3.4,-17]) rotate([90,0,0]) cylinder( h=10, r=8.05, $fn=50 ); - translate([0,8,-17]) rotate([90,0,0]) cylinder( h=5.6, r=8.05, $fn=50 ); - translate([0,8.9,-17]) rotate([90,0,0]) cylinder( h=3, r=9, $fn=50 ); - translate([0,4,-17]) rotate([90,0,0]) cylinder( h=8, r=6.05, $fn=50 ); - translate([0,2.5,-17]) rotate([90,0,0]) cylinder( h=2, r1=8.05, r2=7, $fn=50 ); - - // filament PTFE and entry from hotend - translate([0,10,-17]) rotate([90,0,0]) cylinder( h=10, r=3.5, $fn=50 ); - translate([0,30,-17]) rotate([90,0,0]) cylinder( h=80, r=2.1, $fn=50 ); - translate([0,18,-17]) rotate([90,0,0]) cylinder( h=12, r1=2, r2=4.3, $fn=50 ); - translate([0,16,-17]) rotate([110,0,0]) cylinder( h=13, r1=2, r2=4, $fn=50 ); - translate([0,16,-17]) rotate([100,0,0]) cylinder( h=13, r1=2, r2=4, $fn=50 ); - translate([0,80,-17]) rotate([90,0,0]) cylinder( h=80, r=1.0, $fn=50 ); - - // upper PTFE housing - translate([0,50.8,-17]) rotate([90,0,0]) cylinder( h=4, r=2.1, $fn=50 ); - translate([0,49,-17]) rotate([90,0,0]) cylinder( h=4.5, r=1.5, $fn=50 ); - translate([0,51,-17]) rotate([90,0,0]) cylinder( h=22, r=1.1, $fn=50 ); - translate([0,41,-17]) rotate([90,0,0]) cylinder( h=5, r1=2, r2=1, $fn=50 ); - translate([1,46.5,-17.5]) cube([2,4,1]); - translate([1,48,-17.5]) rotate([-30,0,0]) cube([2,4,1]); - translate([0,10,-17]) rotate([90,0,0]) cylinder( h=3, r=7, $fn=50 ); - - // motor screws - translate([-11.5,11.5,-40]) rotate([0,0,0]) cylinder( h=60, r=1.65, $fn=50 ); - translate([19.5,11.5,-40]) rotate([0,0,0]) cylinder( h=60, r=1.65, $fn=50 ); - translate([-11.5,42.5,-40]) rotate([0,0,0]) cylinder( h=60, r=1.65, $fn=50 ); - translate([19.5,42.5,-40]) rotate([0,0,0]) cylinder( h=60, r=1.65, $fn=50 ); - - translate([-11.5,11.5,-3.75]) rotate([0,0,0]) cylinder( h=5, r=3.1, $fn=50 ); - translate([19.5,11.5,-3.75]) rotate([0,0,0]) cylinder( h=5, r=3.1, $fn=50 ); - translate([-11.5,42.5,-3]) rotate([0,0,0]) cylinder( h=4, r=3.1, $fn=50 ); - translate([19.5,42.5,-4.5]) rotate([0,0,0]) cylinder( h=5, r1=1.6,r2=2.4, $fn=50 ); - - - // better printing - translate([-10.5,6.5,-17]) m3head(); - translate([-41.5,6.5,-17]) m3head(); - translate([-41.5,37.5,-16.2]) m3head(); - translate([-13,-2,-26]) m3nuthead(); - - translate([-8,16.5,-33.5]) rotate([0,0,45]) cube([10,10,32]); - translate([-18,16.5,-33.5]) cube([10,10,32]); - - // hold together screws - translate([-20.5,-3.2,-14]) cube([12,5.6,2.1]); - translate([-20.5,-3.2,-5]) cube([12,5.6,2.1]); - translate([-13.2,-3.2,-14.3]) cube([3.4,5.6,2]); - translate([-13.2,-2.2,-14.6]) cube([3.4,3.4,2]); - - translate([-13.2,-3.2,-5.3]) cube([3.4,5.6,2.3]); - translate([-13.2,-2.2,-5.6]) cube([3.4,3.4,2.3]); - - - translate([-11.5,-0.5,-35]) cylinder( h=65, r=1.65, $fn=50 ); - translate([-11.5,-0.5,-2]) cylinder( h=5, r1=1.65, r2=2.2,$fn=50 ); - translate([11.5,-0.5,-30]) cylinder( h=60, r=1.65, $fn=50 ); - translate([11.5,-0.5,-3]) cylinder( h=5, r1=1.65, r2=2.2,$fn=50 ); - - translate([11.5,-0.5,-16]) cylinder( h=5, r1=3.5, r2=3.1, $fn=6 ); - translate([11.5,-0.5,-21]) cylinder( h=7, r=3.5, $fn=6 ); - - - // idler tension screws - translate([9,18.5,-25]) rotate([0,90,0]) cylinder( h=21, r=2.7, $fn=30 ); - translate([-18,18.5,-25]) rotate([0,90,0]) cylinder( h=45, r=1.7, $fn=30 ); - translate([19,18.5,-25]) rotate([0,90,0]) cylinder( h=10, r=4, $fn=30 ); - translate([9,18.5,-10]) rotate([0,90,0]) cylinder( h=21, r=2.7, $fn=30 ); - translate([-18,18.5,-10]) rotate([0,90,0]) cylinder( h=45, r=1.7, $fn=30 ); - translate([19,18.5,-10]) rotate([0,90,0]) cylinder( h=10, r=4, $fn=30 ); - - // fan cut and screws - translate([20.5,-41.5,-30]) cube([15,40,40]); - translate([6,-5.5,-4]) rotate([0,90,0]) cylinder( h=15, r=1.4, $fn=30 ); - translate([12,-37.5,-4]) rotate([0,90,0]) cylinder( h=10, r=1.4, $fn=30 ); - translate([12,-37.5,-4]) rotate([0,90,0]) cylinder( h=3, r=1.6, $fn=30 ); - translate([19,-5.5,-4]) rotate([0,90,0]) cylinder( h=2, r1=1.4,r2=2, $fn=30 ); - translate([19,-37.5,-4]) rotate([0,90,0]) cylinder( h=2, r1=1.4,r2=2, $fn=30 ); - - // extruder cover nut - translate([17,3,-25]) rotate([0,0,0]) cylinder( h=19, r=1.7, $fn=30 ); - translate([17,3,-5]) rotate([0,0,0]) cylinder( h=6, r=3.5, $fn=6 ); - translate([17,3,-10]) rotate([0,0,0]) cylinder( h=6, r1=3.1, r2=3.6, $fn=6 ); - - // cable guide above fan - difference() - { - translate([20.5,-2.5,-25]) cube([4,5,30]); - translate([19,-1.5,-25]) rotate([0,0,60]) cube([5,5,30]); - } - - // corners - translate([25,43,-40]) rotate([0,0,45]) cube([10,10,50]); - translate([-18,43,-40]) rotate([0,0,45]) cube([10,10,50]); - - - // filament senzor - translate([2.5,40,-25.2]) cube([3,11,22.4]); - - - translate([6.5,51,-3.9]) rotate([90,0,0]) cylinder( h=11, r=3.1, $fn=30 ); - - difference() - { - translate([3.5,40,-7]) cube([6,11,12]); - translate([6,40,-7]) rotate([0,45,0]) cube([5,12,12]); - } - - translate([3.5,40,-10.5]) rotate([0,-45,0]) cube([2,12,5]); - - translate([0,40,-7]) cube([4,11,5]); - translate([1.5,40,-25.2]) cube([4,11,5]); - translate([1.8,40,-21]) cube([4,11,8]); - - translate([0,52.3,-21]) rotate([50,0,0]) cube([4,2,5]); - - // filament senzor mounting screw - translate([3,45,-9]) rotate([0,90,0]) cylinder( h=12, r=1.4, $fn=30 ); - translate([5,45,-9]) rotate([0,90,0]) cylinder( h=4, r=1.6, r2=1.5, $fn=30 ); - translate([8.5,45,-9]) rotate([0,90,0]) cylinder( h=1, r=1.6, r2=1.4, $fn=30 ); - - translate([-7,45,-9]) rotate([0,90,0]) cylinder( h=13, r=1.4, $fn=30 ); - translate([-10,45,-9]) rotate([0,90,0]) cylinder( h=13, r=3.3, $fn=30 ); - - // filament sensor cover screws - translate([12,51,-12]) rotate([90,0,0]) cylinder( h=10, r=1.4, $fn=30 ); - translate([12,51,-12]) rotate([90,0,0]) cylinder( h=4, r1=1.9, r2=1.4,$fn=30 ); - - translate([-1,51,-24.5]) rotate([90,0,0]) cylinder( h=10, r=1.4, $fn=30 ); - translate([-1,51,-24.5]) rotate([90,0,0]) cylinder( h=4, r1=1.9, r2=1.4,$fn=30 ); - - // filament sensor window - translate([-9.5,43,-17]) rotate([0,90,0]) cylinder( h=13, r=3, $fn=30 ); - translate([0,40,-17.5]) cube([5,11,2]); - translate([0,40,-18.5]) rotate([0,40,0]) cube([5,11,2]); - - translate([3.5,38,-1]) cube([5,11,2]); - -} - - pinda_holder(); - translate([5.5,40,-14]) cube([4,10,1]); - translate([5.5,40,-13]) rotate([0,45,0]) cube([2,10,2]); -} - + // corners + translate([25, 43, -40]) rotate([0, 0, 45]) cube([10, 10, 50]); + translate([-18, 43, -40]) rotate([0, 0, 45]) cube([10, 10, 50]); + // filament senzor + translate([2.5, 40, -25.2]) cube([3, 11, 22.4]); -module final_part() -{ - difference() - { - extruder_body(); - translate([-35,-29,-30]) rotate([45,0,0]) cube([30,10,10]); + translate([6.5, 51, -3.9]) rotate([90, 0, 0]) cylinder(h = 11, r = 3.1, $fn = 30); - //version - translate([-4,-34,-0.4]) rotate([0,0,0]) linear_extrude(height = 0.6) - { text("R2",font = "helvetica:style=Bold", size=4, center=true); } - - // selective infill - translate([-15,-7,-16]) cube([5,0.4,15]); - } + difference() + { + translate([3.5, 40, -7]) cube([6, 11, 12]); + translate([6, 40, -7]) rotate([0, 45, 0]) cube([5, 12, 12]); + } - // print supports - translate([-28,-35,-0.3]) cube([8,4,0.3]); - translate([-28,-44,-0.3]) cube([8,4,0.3]); + translate([3.5, 40, -10.5]) rotate([0, -45, 0]) cube([2, 12, 5]); - // grill - translate([-35.25,10,0]) grill(); - translate([-35.25,0,0]) grill(); - translate([-16.5,-34,-12]) cube([4,30,1]); - translate([-16.5,-6,-11.5]) rotate([90,0,0]) cylinder( h=30, r=0.5, $fn=50 ); - translate([-12.5,-6,-11.5]) rotate([90,0,0]) cylinder( h=30, r=0.5, $fn=50 ); -} + translate([0, 40, -7]) cube([4, 11, 5]); + translate([1.5, 40, -25.2]) cube([4, 11, 5]); + translate([1.8, 40, -21]) cube([4, 11, 8]); + translate([0, 52.3, -21]) rotate([50, 0, 0]) cube([4, 2, 5]); -rotate([0,180,0]) final_part(); + // filament senzor mounting screw + translate([3, 45, -9]) rotate([0, 90, 0]) cylinder(h = 12, r = 1.4, $fn = 30); + translate([5, 45, -9]) rotate([0, 90, 0]) cylinder(h = 4, r = 1.6, r2 = 1.5, $fn = 30); + translate([8.5, 45, -9]) rotate([0, 90, 0]) cylinder(h = 1, r = 1.6, r2 = 1.4, $fn = 30); + translate([-7, 45, -9]) rotate([0, 90, 0]) cylinder(h = 13, r = 1.4, $fn = 30); + translate([-10, 45, -9]) rotate([0, 90, 0]) cylinder(h = 13, r = 3.3, $fn = 30); + // filament sensor cover screws + translate([12, 51, -12]) rotate([90, 0, 0]) cylinder(h = 10, r = 1.4, $fn = 30); + translate([12, 51, -12]) rotate([90, 0, 0]) cylinder(h = 4, r1 = 1.9, r2 = 1.4, $fn = 30); + translate([-1, 51, -24.5]) rotate([90, 0, 0]) cylinder(h = 10, r = 1.4, $fn = 30); + translate([-1, 51, -24.5]) rotate([90, 0, 0]) cylinder(h = 4, r1 = 1.9, r2 = 1.4, $fn = 30); + // filament sensor window + translate([-9.5, 43, -17]) rotate([0, 90, 0]) cylinder(h = 13, r = 3, $fn = 30); + translate([0, 40, -17.5]) cube([5, 11, 2]); + translate([0, 40, -18.5]) rotate([0, 40, 0]) cube([5, 11, 2]); + translate([3.5, 38, -1]) cube([5, 11, 2]); + } + pinda_holder(); + translate([5.5, 40, -14]) cube([4, 10, 1]); + translate([5.5, 40, -13]) rotate([0, 45, 0]) cube([2, 10, 2]); +} +module final_part() +{ + difference() + { + extruder_body(); + translate([-35, -29, -30]) rotate([45, 0, 0]) cube([30, 10, 10]); + //version + translate([-4, -34, -0.4]) rotate([0, 0, 0]) linear_extrude(height = 0.6) + { text("R2", font = "helvetica:style = Bold", size = 4, center = true); } + // selective infill + translate([-15, -7, -16]) cube([5, 0.4, 15]); + } + // print supports + translate([-28, -35, -0.3]) cube([8, 4, 0.3]); + translate([-28, -44, -0.3]) cube([8, 4, 0.3]); + // grill + translate([-35.25, 10, 0]) grill(); + translate([-35.25, 0, 0]) grill(); + translate([-16.5, -34, -12]) cube([4, 30, 1]); + translate([-16.5, -6, -11.5]) rotate([90, 0, 0]) cylinder(h = 30, r = 0.5, $fn = 50); + translate([-12.5, -6, -11.5]) rotate([90, 0, 0]) cylinder(h = 30, r = 0.5, $fn = 50); +} +rotate([0, 180, 0]) final_part(); diff --git a/Printed-Parts/scad/extruder-cover.scad b/Printed-Parts/scad/extruder-cover.scad index addb1685..58085a45 100644 --- a/Printed-Parts/scad/extruder-cover.scad +++ b/Printed-Parts/scad/extruder-cover.scad @@ -6,150 +6,142 @@ // http://prusamendel.org //import("extruder_body.stl"); -//translate([11.5,-0.5,-37.5]) cylinder( h=30, r=3.0, $fn=50 ); +//translate([11.5, -0.5, -37.5]) cylinder(h = 30, r = 3.0, $fn = 50); module m3head() { intersection() { - translate([30,5,9])cylinder(r=3.1,h = 25, $fn=30); // head cut - translate([30,5,17-3.5]) cube([6.2,3.4,1], center=true); + translate([30, 5, 9]) cylinder(r = 3.1, h = 25, $fn = 30); // head cut + translate([30, 5, 17 - 3.5]) cube([6.2, 3.4, 1], center = true); } - translate([30,5,17-4]) cube([3.4,3.4,1], center=true); - translate([30,5,17-3.5])cylinder(r=3.1,h = 20, $fn=30); // head cut + translate([30, 5, 17 - 4]) cube([3.4, 3.4, 1], center = true); + translate([30, 5, 17 - 3.5]) cylinder(r = 3.1, h = 20, $fn = 30); // head cut } module grill() { -difference() - { - translate([24,-5,-20]) cylinder( h=23, r=20.4, $fn=50 ); - translate([24,-5,-21]) cylinder( h=26, r=19, $fn=50 ); - translate([23,-30,-30]) cube([30,60,35]); - translate([-11,-30,-30]) cube([30,60,35]); - translate([-19,-20,-30]) cube([60,60,35]); - } - translate([23,-24.65,-20]) cylinder( h=23, r=0.72, $fn=50 ); - translate([19,-24.01,-20]) cylinder( h=23, r=0.72, $fn=50 ); + difference() + { + translate([24, -5, -20]) cylinder(h = 23, r = 20.4, $fn = 50); + translate([24, -5, -21]) cylinder(h = 26, r = 19, $fn = 50); + translate([23, -30, -30]) cube([30, 60, 35]); + translate([-11, -30, -30]) cube([30, 60, 35]); + translate([-19, -20, -30]) cube([60, 60, 35]); + } + translate([23, -24.65, -20]) cylinder(h = 23, r = 0.72, $fn = 50); + translate([19, -24.01, -20]) cylinder(h = 23, r = 0.72, $fn = 50); } +translate([-35.25, 10, -20]) grill(); +translate([-35.25, 0, -20]) grill(); -translate([-35.25,10,-20]) grill(); -translate([-35.25,0,-20]) grill(); // horizontal fins -translate([-16.5,-35,-25]) cube([4,31,1]); -translate([-16.5,-6,-24.5]) rotate([90,0,0]) cylinder( h=30, r=0.5, $fn=50 ); -translate([-12.5,-6,-24.5]) rotate([90,0,0]) cylinder( h=30, r=0.5, $fn=50 ); - +translate([-16.5, -35, -25]) cube([4, 31, 1]); +translate([-16.5, -6, -24.5]) rotate([90, 0, 0]) cylinder(h = 30, r = 0.5, $fn = 50); +translate([-12.5, -6, -24.5]) rotate([90, 0, 0]) cylinder(h = 30, r = 0.5, $fn = 50); module extruder_cover() { difference() { - union() { // base block - translate([-17,-36.5,-40.0]) cube([41.5,42.25,23.0]); - translate([-37.75,-38.5,-40]) rotate([0,0,0]) cylinder( h=5, r=5.9, $fn=6 ); - translate([-34,-41.5,-40]) rotate([0,0,20]) cube([30,8,4]); - translate([16,-38.5,-40]) rotate([0,0,45]) cube([3,3,23]); - + translate([-17, -36.5, -40.0]) cube([41.5, 42.25, 23.0]); + translate([-37.75, -38.5, -40]) rotate([0, 0, 0]) cylinder(h = 5, r = 5.9, $fn = 6); + translate([-34, -41.5, -40]) rotate([0, 0, 20]) cube([30, 8, 4]); + translate([16, -38.5, -40]) rotate([0, 0, 45]) cube([3, 3, 23]); + // fan nozzle mount - translate([11.5,-44,-40]) cube([7,9,7]); - translate([15.5,-44,-40]) cube([5,9,23]); - translate([-15,-44,-40]) cube([6.2,17,6]); - translate([-11,-44,-40]) cube([28,20,1]); - + translate([11.5, -44, -40]) cube([7, 9, 7]); + translate([15.5, -44, -40]) cube([5, 9, 23]); + translate([-15, -44, -40]) cube([6.2, 17, 6]); + translate([-11, -44, -40]) cube([28, 20, 1]); + // cable guide above fan - translate([23.5,-1.5,-40]) cube([8,7.25,23]); + translate([23.5, -1.5, -40]) cube([8, 7.25, 23]); } // side fan cut - translate([20.5,-37.5,-41]) cube([20,36,30]); - + translate([20.5, -37.5, -41]) cube([20, 36, 30]); + // cables hook - translate([34,-1.0,-41]) rotate([0,0,45]) cube([10,10,25]); + translate([34, -1.0, -41]) rotate([0, 0, 45]) cube([10, 10, 25]); difference() { - translate([20.5,-2.5,-41]) cube([4,5,25]); - translate([20.0,-0.5,-41]) rotate([0,0,60]) cube([5,5,25]); + translate([20.5, -2.5, -41]) cube([4, 5, 25]); + translate([20.0, -0.5, -41]) rotate([0, 0, 60]) cube([5, 5, 25]); } - + // e3d nozzle cut - translate([0,-9,-17]) rotate([90,0,0]) cylinder( h=30, r=11.1, $fn=50 ); - translate([0,-9,-17]) rotate([90,0,0]) cylinder( h=26, r=11.5, $fn=50 ); - translate([0,-3.4,-17]) rotate([90,0,0]) cylinder( h=10, r=8.05, $fn=50 ); - translate([0,8,-17]) rotate([90,0,0]) cylinder( h=5.6, r=8.05, $fn=50 ); - translate([0,4,-17]) rotate([90,0,0]) cylinder( h=8, r=6.05, $fn=50 ); - - - // hotend cooling tube - // input - translate([12,-21.5,-20]) rotate([0,90,0]) cylinder( h=10, r2=20.5, r1=12, $fn=80 ); - translate([1,-20.5,-15.5]) rotate([0,99,0]) cylinder( h=25, r2=17.5, r1=12, $fn=80 ); - translate([-10,-35,-28.3]) cube([30,26,32]); - - // output - difference() - { - translate([-17.2,-35,-36]) rotate([0,-23,0]) cube([44,26,32]); - translate([-18,-53.5,-40]) rotate([0,0,65]) cube([20,20,32]); - } - - // fan screws - translate([7,-37.5,-36]) rotate([0,90,0]) cylinder( h=14, r=1.4, $fn=30 ); - translate([7,-5.5,-36]) rotate([0,90,0]) cylinder( h=14, r=1.4, $fn=30 ); - translate([19,-37.5,-36]) rotate([0,90,0]) cylinder( h=2, r1=1.4, r2=2, $fn=30 ); - translate([19,-5.5,-36]) rotate([0,90,0]) cylinder( h=2, r1=1.4, r2=2, $fn=30 ); - - // left hold together screw - translate([17,3,-44]) rotate([0,0,0]) cylinder( h=40, r=1.6, $fn=60 ); - translate([17,3,-41]) rotate([0,0,0]) cylinder( h=8, r=3.1, $fn=30 ); - translate([13.9,3.1,-41]) cube([6.2,10,9]); - - // right hold together screw - translate([-11.5,-0.5,-43]) cylinder( h=60, r=1.65, $fn=50 ); - translate([-11.5,-0.5,-41]) cylinder( h=5, r=3.1, $fn=30 ); - - // upper cooling fan screw - translate([5.5,-0.5,-40]) cylinder( h=15, r=1.65, $fn=50 ); - translate([5.5,-0.5,-42]) cylinder( h=3, r1=3, r2=1.65, $fn=50 ); - - // nuts - translate([2.8,-4,-39]) cube([5.6,15,2.1]); - translate([2.8,-2.2,-39]) cube([5.6,3.4,2.5]); - translate([3.8,-2.2,-39]) cube([3.4,3.4,2.9]); - translate([2.8,5.4,-38.4]) rotate([45,0,0]) cube([5.6,10,2]); - - // lower cooling fan screw - translate([-37.75,-38.5,-42]) cylinder( h=20, r=1.6, $fn=30 ); - translate([-37.75,-38.5,-39.4]) cylinder( h=4, r=3.1, $fn=6 ); - translate([-37.75,-38.5,-37.5]) cylinder( h=3, r1=3.1, r2=4.0, $fn=6 ); - - // nozzle screw - translate([14.5,-40.5,-42]) cylinder( h=10, r=1.4, $fn=30 ); - translate([14.5,-40.5,-41]) cylinder( h=3, r1=2.1, r2=1.4, $fn=30 ); - - // fan and motor cables - translate([21.5,-5.9,-41]) cube([3,5,25]); - translate([20.5,-5.9,-41]) cube([4,5,25]); - translate([13.2,-49.5,-33]) rotate([0,0,20]) cube([6,10,25]); - - translate([18.5,-5.5,-22]) rotate([0,180,0]) m3head(); - translate([47,-2,-19]) rotate([0,180,0]) m3head(); - - - //version - translate([-3,-36,-38]) rotate([90,0,0]) linear_extrude(height = 0.6) - { text("R2",font = "helvetica:style=Bold", size=4, center=true); } - - - - translate([11.5,-0.5,-21]) cylinder( h=5, r=2.0, $fn=50 ); + translate([0, -9, -17]) rotate([90, 0, 0]) cylinder(h = 30, r = 11.1, $fn = 50); + translate([0, -9, -17]) rotate([90, 0, 0]) cylinder(h = 26, r = 11.5, $fn = 50); + translate([0, -3.4, -17]) rotate([90, 0, 0]) cylinder(h = 10, r = 8.05, $fn = 50); + translate([0, 8, -17]) rotate([90, 0, 0]) cylinder(h = 5.6, r = 8.05, $fn = 50); + translate([0, 4, -17]) rotate([90, 0, 0]) cylinder(h = 8, r = 6.05, $fn = 50); + + // hotend cooling tube + // input + translate([12, -21.5, -20]) rotate([0, 90, 0]) cylinder(h = 10, r2 = 20.5, r1 = 12, $fn = 80); + translate([1, -20.5, -15.5]) rotate([0, 99, 0]) cylinder(h = 25, r2 = 17.5, r1 = 12, $fn = 80); + translate([-10, -35, -28.3]) cube([30, 26, 32]); + + // output + difference() + { + translate([-17.2, -35, -36]) rotate([0, -23, 0]) cube([44, 26, 32]); + translate([-18, -53.5, -40]) rotate([0, 0, 65]) cube([20, 20, 32]); + } + + // fan screws + translate([7, -37.5, -36]) rotate([0, 90, 0]) cylinder(h = 14, r = 1.4, $fn = 30); + translate([7, -5.5, -36]) rotate([0, 90, 0]) cylinder(h = 14, r = 1.4, $fn = 30); + translate([19, -37.5, -36]) rotate([0, 90, 0]) cylinder(h = 2, r1 = 1.4, r2 = 2, $fn = 30); + translate([19, -5.5, -36]) rotate([0, 90, 0]) cylinder(h = 2, r1 = 1.4, r2 = 2, $fn = 30); + + // left hold together screw + translate([17, 3, -44]) rotate([0, 0, 0]) cylinder(h = 40, r = 1.6, $fn = 60); + translate([17, 3, -41]) rotate([0, 0, 0]) cylinder(h = 8, r = 3.1, $fn = 30); + translate([13.9, 3.1, -41]) cube([6.2, 10, 9]); + + // right hold together screw + translate([-11.5, -0.5, -43]) cylinder(h = 60, r = 1.65, $fn = 50); + translate([-11.5, -0.5, -41]) cylinder(h = 5, r = 3.1, $fn = 30); + + // upper cooling fan screw + translate([5.5, -0.5, -40]) cylinder(h = 15, r = 1.65, $fn = 50); + translate([5.5, -0.5, -42]) cylinder(h = 3, r1 = 3, r2 = 1.65, $fn = 50); + + // nuts + translate([2.8, -4, -39]) cube([5.6, 15, 2.1]); + translate([2.8, -2.2, -39]) cube([5.6, 3.4, 2.5]); + translate([3.8, -2.2, -39]) cube([3.4, 3.4, 2.9]); + translate([2.8, 5.4, -38.4]) rotate([45, 0, 0]) cube([5.6, 10, 2]); + + // lower cooling fan screw + translate([-37.75, -38.5, -42]) cylinder(h = 20, r = 1.6, $fn = 30); + translate([-37.75, -38.5, -39.4]) cylinder(h = 4, r = 3.1, $fn = 6); + translate([-37.75, -38.5, -37.5]) cylinder(h = 3, r1 = 3.1, r2 = 4.0, $fn = 6); + + // nozzle screw + translate([14.5, -40.5, -42]) cylinder(h = 10, r = 1.4, $fn = 30); + translate([14.5, -40.5, -41]) cylinder(h = 3, r1 = 2.1, r2 = 1.4, $fn = 30); + + // fan and motor cables + translate([21.5, -5.9, -41]) cube([3, 5, 25]); + translate([20.5, -5.9, -41]) cube([4, 5, 25]); + translate([13.2, -49.5, -33]) rotate([0, 0, 20]) cube([6, 10, 25]); + + translate([18.5, -5.5, -22]) rotate([0, 180, 0]) m3head(); + translate([47, -2, -19]) rotate([0, 180, 0]) m3head(); + + //version + translate([-3, -36, -38]) rotate([90, 0, 0]) linear_extrude(height = 0.6) + { text("R2", font = "helvetica:style = Bold", size = 4, center = true); } + + translate([11.5, -0.5, -21]) cylinder(h = 5, r = 2.0, $fn = 50); } - -} +} extruder_cover(); - diff --git a/Printed-Parts/scad/extruder-idler-plug.scad b/Printed-Parts/scad/extruder-idler-plug.scad index 94e91a21..23d3371c 100644 --- a/Printed-Parts/scad/extruder-idler-plug.scad +++ b/Printed-Parts/scad/extruder-idler-plug.scad @@ -8,25 +8,25 @@ module plug() { difference() + { + union() { - union() - { - // Base shape - translate([-17,43,-18.5]) rotate([90,0,90]) cylinder( h=10, r=2.8, $fn=30 ); - translate([-17,43,-21.3]) cube([10,4+3.5,5.6]); - translate([-17,43+3,-21.3]) cube([10.6,4.5,5.6]); - } - - // Motor screw slot - translate([-11.5,42.5,-32]) cylinder( h=30, r=1.5, $fn=30 ); - translate([-11.5-1.5,42.5-5,-25]) cube([3,5,10]); - - // Pretty corner - translate([-18,47,-32]) rotate([0,0,30]) cube([15,10,30]); + // Base shape + translate([-17, 43, -18.5]) rotate([90, 0, 90]) cylinder(h = 10, r = 2.8, $fn = 30); + translate([-17, 43, -21.3]) cube([10, 4 + 3.5, 5.6]); + translate([-17, 43 + 3, -21.3]) cube([10.6, 4.5, 5.6]); } + + // Motor screw slot + translate([-11.5, 42.5, -32]) cylinder(h = 30, r = 1.5, $fn = 30); + translate([-11.5 - 1.5, 42.5 - 5, -25]) cube([3, 5, 10]); + + // Pretty corner + translate([-18, 47, -32]) rotate([0, 0, 30]) cube([15, 10, 30]); + } } -rotate([0,0,0]) -{ +rotate([0, 0, 0]) +{ plug(); -} \ No newline at end of file +} diff --git a/Printed-Parts/scad/extruder-idler.scad b/Printed-Parts/scad/extruder-idler.scad index 97250c3e..1c2c800b 100644 --- a/Printed-Parts/scad/extruder-idler.scad +++ b/Printed-Parts/scad/extruder-idler.scad @@ -4,108 +4,88 @@ // Josef Průša and contributors // http://www.reprap.org/wiki/Prusa_Mendel // http://prusamendel.org - module part() { - difference() { union() { // base shape - translate([-11.5,42.5,-31.5]) cylinder( h=25, r=5, $fn=50 ); - translate([-17,12,-31.5]) cube([8,34,25.0]); - + translate([-11.5, 42.5, -31.5]) cylinder(h = 25, r = 5, $fn = 50); + translate([-17, 12, -31.5]) cube([8, 34, 25.0]); + // pulley holders - translate([-4,27,-22.75]) cylinder(h=1, r1=4, r2=3, $fn=50); - translate([-4,27,-27]) cylinder(h=4.25, r=4, $fn=50); - translate([-14,22,-26.75]) cube([10.5,10,4]); - translate([-16.5,22,-6.5]) cube([13,10,3]); - translate([-4,27,-6.5]) cylinder(h=3, r=4, $fn=50); - translate([-4,27,-7.25]) cylinder(h=0.75, r1=3, r2=4, $fn=50); + translate([-4, 27, -22.75]) cylinder(h = 1, r1 = 4, r2 = 3, $fn = 50); + translate([-4, 27, -27]) cylinder(h = 4.25, r = 4, $fn = 50); + translate([-14, 22, -26.75]) cube([10.5, 10, 4]); + translate([-16.5, 22, -6.5]) cube([13, 10, 3]); + translate([-4, 27, -6.5]) cylinder(h = 3, r = 4, $fn = 50); + translate([-4, 27, -7.25]) cylinder(h = 0.75, r1 = 3, r2 = 4, $fn = 50); } // motor rim cut - translate([7,27,-32.75]) cylinder( h=6, r=18, $fn=80 ); - - // axis - translate([-4,27,-32]) cylinder( h=40, r=1.45, $fn=50 ); - - translate([-11.5,42.5,-32]) cylinder( h=30, r=1.65, $fn=50 ); - translate([-18,44,-32]) rotate([0,0,30]) cube([15,10,30]); - translate([-18,47,-32]) cube([15,10,30]); - translate([-16,0.5,-32]) rotate([0,0,30]) cube([15,10,30]); - translate([-18,3,-33]) cube([15,10,30]); - - // idler nuts - translate([-15,15.7,-39.4]) cube([2.1,5.6,16]); - translate([-15,15.7,-14.6]) cube([2.1,5.6,16]); - // better printing - translate([-14.7,15.6,-28.2]) cube([2.1,5.8,3.4]); - translate([-14.4,16.8,-28.2]) cube([2.1,3.4,3.4]); - translate([-14.7,15.6,-13.2]) cube([2.1,5.8,3.4]); - translate([-14.4,16.8,-13.2]) cube([2.1,3.4,3.4]); - - // idler screws - translate([-18,18.5,-26.5]) rotate([0,90,0]) cylinder( h=45, r=1.7, $fn=50 ); - translate([-18,18.5,-11.5]) rotate([0,90,0]) cylinder( h=45, r=1.7, $fn=50 ); - translate([-18,18.5,-26.5]) rotate([0,90,0]) cylinder( h=2.5, r1=3, r2=1.7, $fn=50 ); - translate([-18,18.5,-11.5]) rotate([0,90,0]) cylinder( h=2.5, r1=3, r2=1.7, $fn=50 ); - - translate([-12,18.5,-26.5]) rotate([0,90,0]) cylinder( h=4, r1=1.7, r2=2.2, $fn=50 ); - translate([-12,18.5,-11.5]) rotate([0,90,0]) cylinder( h=4, r1=1.7, r2=2.2, $fn=50 ); - - translate([-5.3,16.2,-33]) rotate([0,0,30]) cube([5,5,40]); - translate([-7.8,33.5,-33]) rotate([0,0,-30]) cube([5,5,40]); - - translate([-18,29,-17.6]) rotate([90,0,0]) rotate([0,90,0]) cylinder( h=10, r1=9, r2=6, $fn=6 ); - - // nice edges - translate([-26,10,-2]) rotate([0,45,0]) cube([10,40,10]); - translate([-26,10,-35.5]) rotate([0,45,0]) cube([10,40,10]); - translate([-10,2,-35]) cube([20,20,50]); - - //selective infill - translate([-11,24,-5]) cube([5,6,0.2]); - translate([-11,24,-26]) cube([5,6,0.2]); - - // filament sensor cleaning window - translate([-20,43,-18.5]) rotate([90,0,90]) cylinder( h=15, r=3, $fn=30 ); - translate([-20,43,-21.5]) cube([21,10,6]); - } - - difference() - { - // side cut - translate([-17,22,-8]) cube([4,17,4.5]); - translate([-9.5,33,-9]) rotate([0,0,45]) cube([10,10,6]); - - // side cut edges - translate([-26,10,1]) rotate([0,45,0]) cube([10,40,10]); - translate([-22.5,14,-10]) rotate([0,0,45]) cube([10,10,10]); - translate([-22.5,33,-10]) rotate([0,0,45]) cube([10,10,10]); - } - - translate([-11.5,28,-8]) rotate([0,0,45]) cube([3,6,4.5]); - -} - -rotate([0,-90,0]) part(); - - - + translate([7, 27, -32.75]) cylinder(h = 6, r = 18, $fn = 80); + // axis + translate([-4, 27, -32]) cylinder(h = 40, r = 1.45, $fn = 50); + translate([-11.5, 42.5, -32]) cylinder(h = 30, r = 1.65, $fn = 50); + translate([-18, 44, -32]) rotate([0, 0, 30]) cube([15, 10, 30]); + translate([-18, 47, -32]) cube([15, 10, 30]); + translate([-16, 0.5, -32]) rotate([0, 0, 30]) cube([15, 10, 30]); + translate([-18, 3, -33]) cube([15, 10, 30]); + // idler nuts + translate([-15, 15.7, -39.4]) cube([2.1, 5.6, 16]); + translate([-15, 15.7, -14.6]) cube([2.1, 5.6, 16]); + // better printing + translate([-14.7, 15.6, -28.2]) cube([2.1, 5.8, 3.4]); + translate([-14.4, 16.8, -28.2]) cube([2.1, 3.4, 3.4]); + translate([-14.7, 15.6, -13.2]) cube([2.1, 5.8, 3.4]); + translate([-14.4, 16.8, -13.2]) cube([2.1, 3.4, 3.4]); + // idler screws + translate([-18, 18.5, -26.5]) rotate([0, 90, 0]) cylinder(h = 45, r = 1.7, $fn = 50); + translate([-18, 18.5, -11.5]) rotate([0, 90, 0]) cylinder(h = 45, r = 1.7, $fn = 50); + translate([-18, 18.5, -26.5]) rotate([0, 90, 0]) cylinder(h = 2.5, r1 = 3, r2 = 1.7, $fn = 50); + translate([-18, 18.5, -11.5]) rotate([0, 90, 0]) cylinder(h = 2.5, r1 = 3, r2 = 1.7, $fn = 50); + translate([-12, 18.5, -26.5]) rotate([0, 90, 0]) cylinder(h = 4, r1 = 1.7, r2 = 2.2, $fn = 50); + translate([-12, 18.5, -11.5]) rotate([0, 90, 0]) cylinder(h = 4, r1 = 1.7, r2 = 2.2, $fn = 50); + translate([-5.3, 16.2, -33]) rotate([0, 0, 30]) cube([5, 5, 40]); + translate([-7.8, 33.5, -33]) rotate([0, 0, -30]) cube([5, 5, 40]); + translate([-18, 29, -17.6]) rotate([90, 0, 0]) rotate([0, 90, 0]) cylinder(h = 10, r1 = 9, r2 = 6, $fn = 6); + // nice edges + translate([-26, 10, -2]) rotate([0, 45, 0]) cube([10, 40, 10]); + translate([-26, 10, -35.5]) rotate([0, 45, 0]) cube([10, 40, 10]); + translate([-10, 2, -35]) cube([20, 20, 50]); + //selective infill + translate([-11, 24, -5]) cube([5, 6, 0.2]); + translate([-11, 24, -26]) cube([5, 6, 0.2]); + // filament sensor cleaning window + translate([-20, 43, -18.5]) rotate([90, 0, 90]) cylinder(h = 15, r = 3, $fn = 30); + translate([-20, 43, -21.5]) cube([21, 10, 6]); + } + difference() + { + // side cut + translate([-17, 22, -8]) cube([4, 17, 4.5]); + translate([-9.5, 33, -9]) rotate([0, 0, 45]) cube([10, 10, 6]); + // side cut edges + translate([-26, 10, 1]) rotate([0, 45, 0]) cube([10, 40, 10]); + translate([-22.5, 14, -10]) rotate([0, 0, 45]) cube([10, 10, 10]); + translate([-22.5, 33, -10]) rotate([0, 0, 45]) cube([10, 10, 10]); + } + translate([-11.5, 28, -8]) rotate([0, 0, 45]) cube([3, 6, 4.5]); +} +rotate([0, -90, 0]) part(); diff --git a/Printed-Parts/scad/filament-sensor-cover.scad b/Printed-Parts/scad/filament-sensor-cover.scad index 455195d5..d83c646d 100644 --- a/Printed-Parts/scad/filament-sensor-cover.scad +++ b/Printed-Parts/scad/filament-sensor-cover.scad @@ -10,40 +10,34 @@ module part() difference() { union() - { - // base shape - translate([-6,50,-30.5]) cube([24,3,36]); - translate([0,60,-17]) rotate([90,0,0]) cylinder(r=4.2,h = 10, $fn=30); - translate([0,61.5,-17]) rotate([90,0,0]) cylinder(r1=3, r2=4.2, h=1.5, $fn=30); - } - - // mounting screws - translate([12,60,-12]) rotate([90,0,0]) cylinder(r=1.6,h = 20, $fn=30); - translate([-1,60,-24.5]) rotate([90,0,0]) cylinder(r=1.6,h = 20, $fn=30); - - translate([12,54.5,-12]) rotate([90,0,0]) cylinder(r=3.1,h = 3, $fn=30); - translate([-1,54.5,-24.5]) rotate([90,0,0]) cylinder(r=3.1,h = 3, $fn=30); - - // filament guide - translate([0,59.8,-17]) rotate([90,0,0]) cylinder(r=2.2,h = 9.8, $fn=30); - translate([0,61,-17]) rotate([90,0,0]) cylinder(r=1,h = 20, $fn=30); - translate([0,62.5,-17]) rotate([90,0,0]) cylinder(r2=1.2, r1=3,h = 3, $fn=30); - translate([0,53.9,-17]) rotate([90,0,0]) cylinder(r1=2.2, r2=3,h = 4, $fn=30); - - - // nice edges - translate([19,50,-40]) rotate([0,0,45]) cube([10,10,50]); - translate([-9,49,-38]) rotate([0,0,45]) cube([6,5,50]); - translate([-8,56.5,-39]) rotate([45,0,0]) cube([50,10,10]); - translate([-8,56.5,-1]) rotate([45,0,0]) cube([50,10,10]); - - - translate([7,50.4,0]) rotate([90,180,0]) linear_extrude(height = 0.6) - { text("R1",font = "helvetica:style=Bold", size=5, center=true); } + { + // base shape + translate([-6, 50, -30.5]) cube([24, 3, 36]); + translate([0, 60, -17]) rotate([90, 0, 0]) cylinder(r = 4.2, h = 10, $fn = 30); + translate([0, 61.5, -17]) rotate([90, 0, 0]) cylinder(r1 = 3, r2 = 4.2, h = 1.5, $fn = 30); + } + + // mounting screws + translate([12, 60, -12]) rotate([90, 0, 0]) cylinder(r = 1.6, h = 20, $fn = 30); + translate([-1, 60, -24.5]) rotate([90, 0, 0]) cylinder(r = 1.6, h = 20, $fn = 30); + translate([12, 54.5, -12]) rotate([90, 0, 0]) cylinder(r = 3.1, h = 3, $fn = 30); + translate([-1, 54.5, -24.5]) rotate([90, 0, 0]) cylinder(r = 3.1, h = 3, $fn = 30); + + // filament guide + translate([0, 59.8, -17]) rotate([90, 0, 0]) cylinder(r = 2.2, h = 9.8, $fn = 30); + translate([0, 61, -17]) rotate([90, 0, 0]) cylinder(r = 1, h = 20, $fn = 30); + translate([0, 62.5, -17]) rotate([90, 0, 0]) cylinder(r2 = 1.2, r1 = 3, h = 3, $fn = 30); + translate([0, 53.9, -17]) rotate([90, 0, 0]) cylinder(r1 = 2.2, r2 = 3, h = 4, $fn = 30); + + // nice edges + translate([19, 50, -40]) rotate([0, 0, 45]) cube([10, 10, 50]); + translate([-9, 49, -38]) rotate([0, 0, 45]) cube([6, 5, 50]); + translate([-8, 56.5, -39]) rotate([45, 0, 0]) cube([50, 10, 10]); + translate([-8, 56.5, -1]) rotate([45, 0, 0]) cube([50, 10, 10]); + + translate([7, 50.4, 0]) rotate([90, 180, 0]) linear_extrude(height = 0.6) + { text("R1", font = "helvetica:style = Bold", size = 5, center = true); } } } - -rotate([90,0,0]) part(); - - +rotate([90, 0, 0]) part(); diff --git a/Printed-Parts/scad/heatbed-cable-cover-no-screw.scad b/Printed-Parts/scad/heatbed-cable-cover-no-screw.scad index 4d8897a9..8e8563d6 100644 --- a/Printed-Parts/scad/heatbed-cable-cover-no-screw.scad +++ b/Printed-Parts/scad/heatbed-cable-cover-no-screw.scad @@ -5,202 +5,171 @@ // http://www.reprap.org/wiki/Prusa_Mendel // http://prusamendel.org - - module cover() { difference() { // base block - translate([-18,0,0]) cube([36,32,8.6]); - + 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]); + 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]); - + 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]); + 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); - + 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); + 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() + 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([-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]); - + 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 + + // pcb nut difference() { - union() - { - - translate( [ 0 , 7.5 , 5.5 ] ){ - cylinder( h = 4, r = 3.15, $fn=6); - - } - - + 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]); + 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 + 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); + 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]); - + 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); - + 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]) 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() { - 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); + 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]); } - 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 + + // 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]); + 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([-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([-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, 0, 8.6]) rotate([0, 180, 0]) { -translate([0,20,5.6]) rotate([0,180,0]) clip(); -cover(); + 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 index 810421f7..936a4f8d 100644 --- a/Printed-Parts/scad/heatbed-cable-cover-no-screw_8mm_sleeve.scad +++ b/Printed-Parts/scad/heatbed-cable-cover-no-screw_8mm_sleeve.scad @@ -5,202 +5,171 @@ // http://www.reprap.org/wiki/Prusa_Mendel // http://prusamendel.org - - module cover() { difference() { // base block - translate([-18,0,0]) cube([36,32,8.6]); - + 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]); + 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]); - + 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]); + 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); - + 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); + 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() + 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([-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]); - + 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 + + // pcb nut difference() { - union() - { - - translate( [ 0 , 7.5 , 5.5 ] ){ - cylinder( h = 4, r = 3.15, $fn=6); - - } - - + 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]); + 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 + 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); + 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]); - + 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); - + 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]) 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() { - 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); + 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]); } - 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 + + // 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]); + 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([-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([-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, 0, 8.6]) rotate([0, 180, 0]) { -translate([0,20,5.6]) rotate([0,180,0]) clip(); -cover(); + 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 index e94b6fa7..031d66d1 100644 --- a/Printed-Parts/scad/heatbed-cable-cover.scad +++ b/Printed-Parts/scad/heatbed-cable-cover.scad @@ -7,238 +7,193 @@ module cover() { - - difference() { - - - // base block - translate([-18,0,0]) cube([36,36,9]); - + 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]); + 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]); - + 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]); + 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); + 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); - + 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); + 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() + 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([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]); - + 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() + union() { - - - translate( [ 0 , 7.5 , 5.4 ] ){ - cylinder( h = 4, r = 3.15, $fn=6); - - } - - + 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]); + 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 + // heatbed screw nut entry + translate([0, 7.5, 8.2]) rotate([0, 0, 0]) cylinder(h = 4, r1 = 3.15, r2 = 6, $fn = 6); - 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]); - // 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]); - -} + // 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]); - + 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); + 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]); - + 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]); - + 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); - + 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]) 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() { - 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); + 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]); } - 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]); - - - - + + // 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([-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([-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]) +translate([0, 40, 3]) clip(); -translate([0,40,9]) rotate([180,0,0]) +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 index 0f7c5f01..5814c7ec 100644 --- a/Printed-Parts/scad/heatbed-cable-cover_8mm_sleeve.scad +++ b/Printed-Parts/scad/heatbed-cable-cover_8mm_sleeve.scad @@ -7,238 +7,192 @@ module cover() { - - difference() { - - - // base block - translate([-18,0,0]) cube([36,36,9]); - + 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]); + 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]); - + 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]); + 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); - + 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); + 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() + 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([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]); - + 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() + union() { - - - translate( [ 0 , 7.5 , 5.4 ] ){ - cylinder( h = 4, r = 3.15, $fn=6); - - } - - + 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]); + 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 + // heatbed screw nut entry + translate([0, 7.5, 8.2]) rotate([0, 0, 0]) cylinder(h = 4, r1 = 3.15, r2 = 6, $fn = 6); - 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]); - // 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]); - // 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]); - + 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); + 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]); - + 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]); - + 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); - + 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]) 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() { - 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); + 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]); } - 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]); - - - - + + // 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([-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([-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]) +translate([0, 40, 3]) clip(); -translate([0,40,9]) rotate([180,0,0]) +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 index b9f21d4d..53e39ae0 100644 --- a/Printed-Parts/scad/lcd-supports.scad +++ b/Printed-Parts/scad/lcd-supports.scad @@ -11,109 +11,88 @@ module body() { - difference() + difference() + { + // base block + translate([-55, -2, 0]) cube([69, 81, 10]); + + union() { - // 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]); + // 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() + difference() { - union() { - rotate([0,0,45]) body(); + rotate([0, 0, 45]) body(); // screw block - translate([-72,22,0]) cube([30,16,10]); + 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]); - + 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]); + 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); - + 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]); - + 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); } + 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() + + 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([-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(); +translate([-60, -2, 0]) rotate([0, 0, 180]) support(); left_lcd_support(); - - - - - - - - - - - - - - - - - diff --git a/Printed-Parts/scad/nozzle-fan-holder.scad b/Printed-Parts/scad/nozzle-fan-holder.scad index ae7f57b2..959f8228 100644 --- a/Printed-Parts/scad/nozzle-fan-holder.scad +++ b/Printed-Parts/scad/nozzle-fan-holder.scad @@ -1,36 +1,32 @@ //#import("nozzle-fan.stl"); -//#translate([0,-4.5,0]) rotate([90,0,180]) import("extruder-body.stl"); -//translate([0,-4.5,0]) rotate([90,0,0]) import("extruder-cover.stl"); -//translate([0,0,0]) rotate([0,0,0]) import("hot21_45_2.stl"); +//#translate([0, -4.5, 0]) rotate([90, 0, 180]) import("extruder-body.stl"); +//translate([0, -4.5, 0]) rotate([90, 0, 0]) import("extruder-cover.stl"); +//translate([0, 0, 0]) rotate([0, 0, 0]) import("hot21_45_2.stl"); //use; -//%rotate([90,0,0]) fan_nozzle_old(); - +//%rotate([90, 0, 0]) fan_nozzle_old(); difference() { -union() -{ - translate([-4,35.5,-25]) cube([6,45,30]); - translate([-4,35.5,-25]) cube([15,10,30]); - translate([-4,68,-12]) rotate([51,0,0]) cube([10,15,11.1]); - translate([5.5,66.3,-5.8]) rotate([50,0,0]) cylinder(r=6.1,h = 6, $fn=6); + union() + { + translate([-4, 35.5, -25]) cube([6, 45, 30]); + translate([-4, 35.5, -25]) cube([15, 10, 30]); + translate([-4, 68, -12]) rotate([51, 0, 0]) cube([10, 15, 11.1]); + translate([5.5, 66.3, -5.8]) rotate([50, 0, 0]) cylinder(r = 6.1, h = 6, $fn = 6); + } + + translate([5.5, 42, 1]) rotate([90, 0, 0]) cylinder(r = 1.6, h = 10, $fn = 30); + translate([5.5, 46.9, 1]) rotate([90, 0, 0]) cylinder(r = 3.1, h = 5, $fn = 30); + + //#translate([5.5, 70, -7]) rotate([50, 0, 0]) cylinder(r = 1.6, h = 15, $fn = 60); + translate([5.5, 70, -9]) rotate([50, 0, 0]) cylinder(r = 1.6, h = 15, $fn = 60); + translate([5.5, 65, -4.8]) rotate([50, 0, 0]) cylinder(r = 3.1, h = 17, $fn = 6); + + translate([-25, 46.5, -55]) rotate([52, 0, 0]) cube([50, 150, 15]); + translate([-25, 46.5, -66]) rotate([50, 0, 0]) cube([50, 150, 15]); + translate([-25, 86, 4]) rotate([50 + 90, 0, 0]) cube([50, 150, 15]); + translate([-25, 86, 13.5]) rotate([170, 0, 0]) cube([50, 150, 15]); + translate([-25, 86, -12]) rotate([175, 0, 0]) cube([50, 150, 15]); + + translate([-5, 35, -25]) cube([20, 45, 16]); } - - -translate([5.5,42,1]) rotate([90,0,0]) cylinder(r=1.6,h = 10, $fn=30); -translate([5.5,46.9,1]) rotate([90,0,0]) cylinder(r=3.1,h = 5, $fn=30); - -//#translate([5.5,70,-7]) rotate([50,0,0]) cylinder(r=1.6,h = 15, $fn=60); - translate([5.5,70,-9]) rotate([50,0,0]) cylinder(r=1.6,h = 15, $fn=60); - translate([5.5,65,-4.8]) rotate([50,0,0]) cylinder(r=3.1,h = 17, $fn=6); - - -translate([-25,46.5,-55]) rotate([52,0,0]) cube([50,150,15]); -translate([-25,46.5,-66]) rotate([50,0,0]) cube([50,150,15]); -translate([-25,86,4]) rotate([50+90,0,0]) cube([50,150,15]); -translate([-25,86,13.5]) rotate([170,0,0]) cube([50,150,15]); -translate([-25,86,-12]) rotate([175,0,0]) cube([50,150,15]); - -translate([-5,35,-25]) cube([20,45,16]); - -} \ No newline at end of file diff --git a/Printed-Parts/scad/nozzle-fan.scad b/Printed-Parts/scad/nozzle-fan.scad index 28e6af2d..5ed49a95 100644 --- a/Printed-Parts/scad/nozzle-fan.scad +++ b/Printed-Parts/scad/nozzle-fan.scad @@ -5,67 +5,66 @@ // http://www.reprap.org/wiki/Prusa_Mendel // http://prusamendel.org - module fan() - { - cube([19.5,15,50]); - translate([0,9.5,0]) cube([19.5,5.5,50]); - translate([0,0,0]) cube([19.5,6,50]); - translate([-1.50,6,0]) cube([1.5,3,50]); - translate([9,-5,40]) cube([1,5.5,10]); - } - +{ + cube([19.5, 15, 50]); + translate([0, 9.5, 0]) cube([19.5, 5.5, 50]); + translate([0, 0, 0]) cube([19.5, 6, 50]); + translate([-1.50, 6, 0]) cube([1.5, 3, 50]); + translate([9, -5, 40]) cube([1, 5.5, 10]); +} + module inner_half() { difference() { - union() - { - // outlets - difference() + union() { - union() + // outlets + difference() { - translate([-8,12,-63]) rotate([25,0,0]) cube([18,30,6]); - translate([-6,10.2,-60]) rotate([25,0,60]) cube([9,20,4]); + union() + { + translate([-8, 12, -63]) rotate([25, 0, 0]) cube([18, 30, 6]); + translate([-6, 10.2, -60]) rotate([25, 0, 60]) cube([9, 20, 4]); + } + translate([-28, 0, -55]) rotate([0, 0, 70]) cube([65, 20, 15]); } - translate([-28,0,-55]) rotate([0,0,70]) cube([65,20,15]); - } - - // inner body - difference() - { - // base shape - translate([-25,14,-52]) rotate([0,0,0]) cube([25,37,7]); - translate([-14,2,-55]) rotate([0,0,60]) cube([10,20,15]); - - translate([-28,0,-55]) rotate([0,0,70]) cube([65,20,15]); + + // inner body difference() { - // heatblock cut - translate([-13,10,-55]) rotate([0,0,0]) cube([20,20,15]); - translate([-16,21.7,-55]) rotate([0,0,45]) cube([20,20,15]); + // base shape + translate([-25, 14, -52]) rotate([0, 0, 0]) cube([25, 37, 7]); + translate([-14, 2, -55]) rotate([0, 0, 60]) cube([10, 20, 15]); + + translate([-28, 0, -55]) rotate([0, 0, 70]) cube([65, 20, 15]); + difference() + { + // heatblock cut + translate([-13, 10, -55]) rotate([0, 0, 0]) cube([20, 20, 15]); + translate([-16, 21.7, -55]) rotate([0, 0, 45]) cube([20, 20, 15]); + } + + // front shape + translate([-8, 15, -55]) rotate([25, 0, 0]) cube([16, 30, 6]); + translate([-25, 0, -55]) rotate([25, 0, 0]) cube([16, 30, 6]); + translate([-15, 51, -58]) rotate([45, 0, 0]) cube([16, 30, 6]); } - - // front shape - translate([-8,15,-55]) rotate([25,0,0]) cube([16,30,6]); - translate([-25,0,-55]) rotate([25,0,0]) cube([16,30,6]); - translate([-15,51,-58]) rotate([45,0,0]) cube([16,30,6]); } - } difference() { - translate([-16.8,19.5,-55])cylinder(r=6,h = 12, $fn=30); - translate([-16.8,19.5,-55])cylinder(r=4,h = 30, $fn=30); - translate([-25,21,-58]) cube([20,20,16]); - translate([-18,11,-58]) cube([20,220,16]); - } - - translate([-6,9,-56]) rotate([25,-15,60]) cube([20,25,5]); - translate([-20,50,-54]) rotate([50,0,0]) cube([21,10,20]); - translate([-14,2,-48]) rotate([0,50,60]) cube([10,25,18]); - translate([-12,3.4,-60]) rotate([25,0,60]) cube([9,20,7]); + translate([-16.8, 19.5, -55]) cylinder(r = 6, h = 12, $fn = 30); + translate([-16.8, 19.5, -55]) cylinder(r = 4, h = 30, $fn = 30); + translate([-25, 21, -58]) cube([20, 20, 16]); + translate([-18, 11, -58]) cube([20, 220, 16]); + } + + translate([-6, 9, -56]) rotate([25, -15, 60]) cube([20, 25, 5]); + translate([-20, 50, -54]) rotate([50, 0, 0]) cube([21, 10, 20]); + translate([-14, 2, -48]) rotate([0, 50, 60]) cube([10, 25, 18]); + translate([-12, 3.4, -60]) rotate([25, 0, 60]) cube([9, 20, 7]); } } @@ -74,21 +73,21 @@ module inner() { difference() { - union() - { - inner_half(); - mirror([1,0,0]) inner_half(); + union() + { + inner_half(); + mirror([1, 0, 0]) inner_half(); - // fan cut - translate([9.8,48,-53]) rotate([40,0,180]) fan(); - difference() + // fan cut + translate([9.8, 48, -53]) rotate([40, 0, 180]) fan(); + difference() { - translate([-9.7,41.65,-60.7]) rotate([50,0,0]) cube([9.75*2,20,15]); - translate([-10,32,-67]) rotate([0,0,0]) cube([20,20,15]); + translate([-9.7, 41.65, -60.7]) rotate([50, 0, 0]) cube([9.75 * 2, 20, 15]); + translate([-10, 32, -67]) rotate([0, 0, 0]) cube([20, 20, 15]); } + } + translate([-20, 44, -57]) cube([40, 10, 5]); } - translate([-20,44,-57]) cube([40,10,5]); -} } module outer_half() @@ -97,98 +96,87 @@ module outer_half() { union() { - translate([-25,13,-53]) rotate([0,0,0]) cube([25,39,9]); - translate([-18,45,-55]) rotate([50,0,0]) cube([18,10,15]); + translate([-25, 13, -53]) rotate([0, 0, 0]) cube([25, 39, 9]); + translate([-18, 45, -55]) rotate([50, 0, 0]) cube([18, 10, 15]); } - + // front shape - translate([-14,0,-55]) rotate([0,0,60]) cube([10,20,15]); - + translate([-14, 0, -55]) rotate([0, 0, 60]) cube([10, 20, 15]); + // sides - translate([-30,0,-55]) rotate([0,0,70]) cube([65,20,15]); + translate([-30, 0, -55]) rotate([0, 0, 70]) cube([65, 20, 15]); difference() { - translate([-12,9,-55]) rotate([0,0,0]) cube([20,20,15]); - translate([-16,20.7,-55]) rotate([0,0,45]) cube([20,20,15]); + translate([-12, 9, -55]) rotate([0, 0, 0]) cube([20, 20, 15]); + translate([-16, 20.7, -55]) rotate([0, 0, 45]) cube([20, 20, 15]); } - - translate([-25,-2,-55]) rotate([25,0,0]) cube([16,30,6]); - translate([-15,54,-58]) rotate([60,0,0]) cube([16,30,6]); - translate([-6,8,-54]) rotate([25,-15,60]) cube([20,25,5]); - - translate([-20,51,-52]) rotate([50,0,0]) cube([21,10,20]); - translate([-20,40,-63]) cube([21,10,10]); + + translate([-25, -2, -55]) rotate([25, 0, 0]) cube([16, 30, 6]); + translate([-15, 54, -58]) rotate([60, 0, 0]) cube([16, 30, 6]); + translate([-6, 8, -54]) rotate([25, -15, 60]) cube([20, 25, 5]); + + translate([-20, 51, -52]) rotate([50, 0, 0]) cube([21, 10, 20]); + translate([-20, 40, -63]) cube([21, 10, 10]); } - } - module outer() { outer_half(); - mirror([1,0,0]) outer_half(); - translate([-11.2,50.5,-52]) rotate([50,0,0]) cube([22.5,2,1.3]); - translate([9.5,50.5,-52]) rotate([50,0,0]) cube([1.8,2,17.3]); - translate([-11.5,37.7,-42]) rotate([50,0,0]) cube([23,2.6,1.05]); + mirror([1, 0, 0]) outer_half(); + translate([-11.2, 50.5, -52]) rotate([50, 0, 0]) cube([22.5, 2, 1.3]); + translate([9.5, 50.5, -52]) rotate([50, 0, 0]) cube([1.8, 2, 17.3]); + translate([-11.5, 37.7, -42]) rotate([50, 0, 0]) cube([23, 2.6, 1.05]); } - - module nozzle_fan() { -difference() + difference() { union() { outer(); - translate([10.5,35,-53]) cube([8,5,17]); + translate([10.5, 35, -53]) cube([8, 5, 17]); } inner(); - translate([14.5,46,-40.5]) rotate([90,0,0]) cylinder(r=3,h=8,$fn=30); - translate([14.5,45,-40.5]) rotate([90,0,0]) cylinder(r=1.6,h=30,$fn=30); - - translate([-25,30,-44]) cube([50,5,17]); + translate([14.5, 46, -40.5]) rotate([90, 0, 0]) cylinder(r = 3, h = 8, $fn = 30); + translate([14.5, 45, -40.5]) rotate([90, 0, 0]) cylinder(r = 1.6, h = 30, $fn = 30); + + translate([-25, 30, -44]) cube([50, 5, 17]); } // center fin difference() { - translate([-0.3,29,-53]) cube([0.6,20,11]); - translate([-2.5,35.5,-41]) rotate([-45,0,0]) cube([5,20,9]); - translate([-2.5,26,-44]) cube([5,10,9]); - translate([-2.5,26.5,-43]) cube([5,10,9]); + translate([-0.3, 29, -53]) cube([0.6, 20, 11]); + translate([-2.5, 35.5, -41]) rotate([-45, 0, 0]) cube([5, 20, 9]); + translate([-2.5, 26, -44]) cube([5, 10, 9]); + translate([-2.5, 26.5, -43]) cube([5, 10, 9]); } // right fin difference() { - translate([-8,29,-53]) cube([0.6,20,11]); - translate([-9,31,-42]) rotate([-45,0,0]) cube([5,20,14]); - translate([-9,26,-44]) cube([5,10,9]); - translate([-9,26.5,-43]) cube([5,10,9]); + translate([-8, 29, -53]) cube([0.6, 20, 11]); + translate([-9, 31, -42]) rotate([-45, 0, 0]) cube([5, 20, 14]); + translate([-9, 26, -44]) cube([5, 10, 9]); + translate([-9, 26.5, -43]) cube([5, 10, 9]); } // left fin difference() { - translate([7.4,29,-53]) cube([0.6,20,11]); - translate([7,31,-42]) rotate([-45,0,0]) cube([5,20,14]); - translate([7,26,-44]) cube([5,10,9]); - translate([7,26.5,-43]) cube([5,10,9]); + translate([7.4, 29, -53]) cube([0.6, 20, 11]); + translate([7, 31, -42]) rotate([-45, 0, 0]) cube([5, 20, 14]); + translate([7, 26, -44]) cube([5, 10, 9]); + translate([7, 26.5, -43]) cube([5, 10, 9]); } - - // front sides - translate([-13,13,-53]) cube([1,12,3]); - translate([12,13,-53]) cube([1,12,2]); - translate([-13,17,-52]) cube([1,8,3]); - translate([12,17,-52]) cube([1,8,3]); -} - + // front sides + translate([-13, 13, -53]) cube([1, 12, 3]); + translate([12, 13, -53]) cube([1, 12, 2]); + translate([-13, 17, -52]) cube([1, 8, 3]); + translate([12, 17, -52]) cube([1, 8, 3]); +} nozzle_fan(); - - - - - diff --git a/Printed-Parts/scad/polyholes.scad b/Printed-Parts/scad/polyholes.scad index c58aedb4..38c4e47e 100644 --- a/Printed-Parts/scad/polyholes.scad +++ b/Printed-Parts/scad/polyholes.scad @@ -7,36 +7,42 @@ // // See http://hydraraptor.blogspot.com/2011/02/polyholes.html // -function sides(r) = max(round(4 *r),3); + +function sides(r) = max(round(4 * r),3); function correctedRadius(r,n) = 0.1 + r / cos(180 / n); function correctedDiameter(d) = 0.2 + d / cos(180 / sides(d / 2)); -module polyCircle(r, center = false) { +module polyCircle(r, center = false) +{ n = sides(r); - circle(r = correctedRadius(r,n), $fn = n, center = center); + circle(r = correctedRadius(r, n), $fn = n, center = center); } -module poly_circle(r, center = false) { - polyCircle(r, center); +module poly_circle(r, center = false) +{ + polyCircle(r, center); } -module polyCylinder(r, h, center = false) { +module polyCylinder(r, h, center = false) +{ n = sides(r); - cylinder(h = h, r = correctedRadius(r,n), $fn = n, center = center); + cylinder(h = h, r = correctedRadius(r, n), $fn = n, center = center); } -module poly_cylinder(r, h, center = false) { - polyCylinder(r,h,center); +module poly_cylinder(r, h, center = false) +{ + polyCylinder(r, h, center); } -module polydCylinder(r, center = false) { +module polydCylinder(r, center = false) +{ n = sides(r); - r = correctedRadius(r,n); + r = correctedRadius(r, n); cylinder(h = h, r = r, $fn = n, center = center); - translate([0, -r, 0]) - cube([r, 2 * r, h]); + translate([0, -r, 0]) cube([r, 2 * r, h]); } -module poly_d_cylinder(r, center = false) { - polydCylinder(r,center); +module poly_d_cylinder(r, center = false) +{ + polydCylinder(r, center); } diff --git a/Printed-Parts/scad/x-carriage-back.scad b/Printed-Parts/scad/x-carriage-back.scad index 4220f25a..6c26ebd0 100644 --- a/Printed-Parts/scad/x-carriage-back.scad +++ b/Printed-Parts/scad/x-carriage-back.scad @@ -9,14 +9,14 @@ module m3head() { intersection() { - translate([30,5,9])cylinder(r=3.1,h = 25, $fn=30); // head cut - translate([30,5,17-3.5]) cube([6.2,3.4,1], center=true); + translate([30, 5, 9]) cylinder(r = 3.1, h = 25, $fn = 30); // head cut + translate([30, 5, 17 - 3.5]) cube([6.2, 3.4, 1], center = true); } - translate([30,5,17-4]) cube([3.4,3.4,1], center=true); - translate([30,5,17-3.5])cylinder(r=3.1,h = 20, $fn=30); // head cut + translate([30, 5, 17 - 4]) cube([3.4, 3.4, 1], center = true); + translate([30, 5, 17 - 3.5]) cylinder(r = 3.1, h = 20, $fn = 30); // head cut } - - + + module x_carriage_back() { difference() @@ -24,124 +24,123 @@ module x_carriage_back() union() { // base block - translate([-16,-39.0,15.1]) cube([33,72,8]); - translate([-25.5,-5,15.1]) cube([52,39.5,8]); + translate([-16, -39.0, 15.1]) cube([33, 72, 8]); + translate([-25.5, -5, 15.1]) cube([52, 39.5, 8]); } - + // lower bearing cut - translate([-17,-22,7.5]) cube([35,4,10]); - + translate([-17, -22, 7.5]) cube([35, 4, 10]); + // cables opening - translate([-4.5,-18,15]) cube([10,4,10]); - translate([0.5,-18,10]) rotate([0,0,90]) cylinder( h=32, r=5, $fn=30 ); - translate([0.5,-14,10]) rotate([0,0,90]) cylinder( h=32, r=5, $fn=30 ); - translate([-20,-19.5,9]) cube([50,7.5,10]); - + translate([-4.5, -18, 15]) cube([10, 4, 10]); + translate([0.5, -18, 10]) rotate([0, 0, 90]) cylinder(h = 32, r = 5, $fn = 30); + translate([0.5, -14, 10]) rotate([0, 0, 90]) cylinder(h = 32, r = 5, $fn = 30); + translate([-20, -19.5, 9]) cube([50, 7.5, 10]); + // bearings - translate([-15,-25,11.75]) rotate([0,90,0]) cylinder( h=31, r=7.6, $fn=30 ); - translate([-30,20,11.75]) rotate([0,90,0]) cylinder( h=60, r=7.6, $fn=30 ); - translate([-17,-25,11.75]) rotate([0,90,0]) cylinder( h=60, r=7, $fn=30 ); - translate([-32,20,11.75]) rotate([0,90,0]) cylinder( h=80, r=7, $fn=30 ); - + translate([-15, -25, 11.75]) rotate([0, 90, 0]) cylinder(h = 31, r = 7.6, $fn = 30); + translate([-30, 20, 11.75]) rotate([0, 90, 0]) cylinder(h = 60, r = 7.6, $fn = 30); + translate([-17, -25, 11.75]) rotate([0, 90, 0]) cylinder(h = 60, r = 7, $fn = 30); + translate([-32, 20, 11.75]) rotate([0, 90, 0]) cylinder(h = 80, r = 7, $fn = 30); + // hold together screws - translate([-9.5,-36,10]) rotate([0,0,0]) cylinder( h=50, r=1.65, $fn=50 ); - translate([10.5,-36,10]) rotate([0,0,0]) cylinder( h=50, r=1.65, $fn=50 ); - translate([1,4,10]) rotate([0,0,0]) cylinder( h=50, r=1.65, $fn=50 ); - translate([13,31,10]) rotate([0,0,0]) cylinder( h=50, r=1.65, $fn=50 ); - translate([-10.5,31,10]) rotate([0,0,0]) cylinder( h=50, r=1.65, $fn=50 ); - translate([13,31,19]) cylinder( h=50, r=3.1, $fn=30 ); - translate([-10.5,31,19]) cylinder( h=50, r=3.1, $fn=30 ); - + translate([-9.5, -36, 10]) rotate([0, 0, 0]) cylinder(h = 50, r = 1.65, $fn = 50); + translate([10.5, -36, 10]) rotate([0, 0, 0]) cylinder(h = 50, r = 1.65, $fn = 50); + translate([1, 4, 10]) rotate([0, 0, 0]) cylinder(h = 50, r = 1.65, $fn = 50); + translate([13, 31, 10]) rotate([0, 0, 0]) cylinder(h = 50, r = 1.65, $fn = 50); + translate([-10.5, 31, 10]) rotate([0, 0, 0]) cylinder(h = 50, r = 1.65, $fn = 50); + translate([13, 31, 19]) cylinder(h = 50, r = 3.1, $fn = 30); + translate([-10.5, 31, 19]) cylinder(h = 50, r = 3.1, $fn = 30); + // lower screw heads - translate([-9.5,-36,19]) cylinder( h=6, r=3.1, $fn=30 ); - translate([10.5,-36,19]) cylinder( h=50, r=3.1, $fn=30 ); - translate([-12.6,-46,18]) cube([6.2,10,10]); - translate([7.4,-46,18]) cube([6.2,10,10]); - + translate([-9.5, -36, 19]) cylinder(h = 6, r = 3.1, $fn = 30); + translate([10.5, -36, 19]) cylinder(h = 50, r = 3.1, $fn = 30); + translate([-12.6, -46, 18]) cube([6.2, 10, 10]); + translate([7.4, -46, 18]) cube([6.2, 10, 10]); + // center screw head - translate([1,4,18]) cylinder( h=7, r=3.1, $fn=30 ); - + translate([1, 4, 18]) cylinder(h = 7, r = 3.1, $fn = 30); + // heat cables cut - translate([0.5,-42.5,0]) rotate([-5,0,0]) cylinder( h=50, r=6, $fn=30 ); - + translate([0.5, -42.5, 0]) rotate([-5, 0, 0]) cylinder(h = 50, r = 6, $fn = 30); + // cable holder screw - translate([0.5,-27,11]) rotate([0,0,90]) cylinder( h=40, r=1.6, $fn=30 ); - translate([0.5,-27,16.5]) rotate([0,0,0]) cylinder( h=5, r=3.1, $fn=6 ); - + translate([0.5, -27, 11]) rotate([0, 0, 90]) cylinder(h = 40, r = 1.6, $fn = 30); + translate([0.5, -27, 16.5]) rotate([0, 0, 0]) cylinder(h = 5, r = 3.1, $fn = 6); + // x-carriage screws in belt holders - translate([11.5,-0.5,10]) rotate([0,0,90]) cylinder( h=40, r=3, $fn=30 ); - translate([-11.5,-0.5,10]) rotate([0,0,90]) cylinder( h=40, r=3, $fn=30 ); + translate([11.5, -0.5, 10]) rotate([0, 0, 90]) cylinder(h = 40, r = 3, $fn = 30); + translate([-11.5, -0.5, 10]) rotate([0, 0, 90]) cylinder(h = 40, r = 3, $fn = 30); // nice edges - translate([-20.8,-46.1,10]) rotate([0,0,45]) cube([10,10,15]); - translate([21.8,-46.1,10]) rotate([0,0,45]) cube([10,10,15]); - translate([-24.4,15.2,10]) rotate([0,0,45]) cube([14,10,15]); - translate([26.9,15.2,10]) rotate([0,0,45]) cube([10,14,15]); - translate([-19.55,28,10]) rotate([0,0,45]) cube([10,10,15]); - translate([22.05,28,10]) rotate([0,0,45]) cube([10,10,15]); - translate([-22,35,21]) rotate([30,0,0]) cube([44,10,10]); - translate([-22,35,17]) rotate([30,0,0]) cube([14.5,10,10]); - translate([10,35,17]) rotate([30,0,0]) cube([14.5,10,10]); - + translate([-20.8, -46.1, 10]) rotate([0, 0, 45]) cube([10, 10, 15]); + translate([21.8, -46.1, 10]) rotate([0, 0, 45]) cube([10, 10, 15]); + translate([-24.4, 15.2, 10]) rotate([0, 0, 45]) cube([14, 10, 15]); + translate([26.9, 15.2, 10]) rotate([0, 0, 45]) cube([10, 14, 15]); + translate([-19.55, 28, 10]) rotate([0, 0, 45]) cube([10, 10, 15]); + translate([22.05, 28, 10]) rotate([0, 0, 45]) cube([10, 10, 15]); + translate([-22, 35, 21]) rotate([30, 0, 0]) cube([44, 10, 10]); + translate([-22, 35, 17]) rotate([30, 0, 0]) cube([14.5, 10, 10]); + translate([10, 35, 17]) rotate([30, 0, 0]) cube([14.5, 10, 10]); + // upper side cuts - translate([17,25,10]) rotate([0,0,0]) cube([10,10,15]); - translate([-29.5,25,10]) rotate([0,0,0]) cube([15,15,15]); - translate([17,22,13]) rotate([0,0,0]) cube([10,10,5]); - translate([-24.5,22,13]) rotate([0,0,0]) cube([10,10,5]); + translate([17, 25, 10]) rotate([0, 0, 0]) cube([10, 10, 15]); + translate([-29.5, 25, 10]) rotate([0, 0, 0]) cube([15, 15, 15]); + translate([17, 22, 13]) rotate([0, 0, 0]) cube([10, 10, 5]); + translate([-24.5, 22, 13]) rotate([0, 0, 0]) cube([10, 10, 5]); // side edges - translate([27,-20,16]) rotate([0,-30,0]) cube([10,50,10]); - translate([-34.2,-20,21]) rotate([0,30,0]) cube([10,50,10]); - translate([19.5,-55,16]) rotate([0,-30,0]) cube([10,50,10]); - translate([-27.1,-55,21]) rotate([0,30,0]) cube([10,50,10]); - + translate([27, -20, 16]) rotate([0, -30, 0]) cube([10, 50, 10]); + translate([-34.2, -20, 21]) rotate([0, 30, 0]) cube([10, 50, 10]); + translate([19.5, -55, 16]) rotate([0, -30, 0]) cube([10, 50, 10]); + translate([-27.1, -55, 21]) rotate([0, 30, 0]) cube([10, 50, 10]); + // inner cable cleanup - translate([-1,-19.5,14]) rotate([0,30,0]) cube([10,7.5,10]); - translate([-5,-19.5,10]) rotate([0,-30,0]) cube([10,7.5,10]); - - + translate([-1, -19.5, 14]) rotate([0, 30, 0]) cube([10, 7.5, 10]); + translate([-5, -19.5, 10]) rotate([0, -30, 0]) cube([10, 7.5, 10]); + + // filament sensor cable - translate([4.5,28.5,12]) rotate([0,0,0]) cube([3.5,4,20]); - translate([0.5,28.5,12]) rotate([0,0,0]) cube([4.5,7,20]); - translate([4.5,-5,19.5]) rotate([0,0,0]) cube([3.5,35,4.3]); - translate([4.5,17.5,16.5]) rotate([0,0,0]) cube([3.5,5,4.3]); - translate([-1.55,-9.60,19.5]) rotate([0,0,-45]) cube([3.5,10,4]); - translate([-1.9,-9.95,15]) rotate([45,0,-45]) cube([3.5,10,4]); - translate([4.5,29,16]) rotate([45,0,0]) cube([3.5,5,5]); - translate([3.5,-4.60,19.5]) rotate([0,0,-15]) cube([3,4,4]); - + translate([4.5, 28.5, 12]) rotate([0, 0, 0]) cube([3.5, 4, 20]); + translate([0.5, 28.5, 12]) rotate([0, 0, 0]) cube([4.5, 7, 20]); + translate([4.5, -5, 19.5]) rotate([0, 0, 0]) cube([3.5, 35, 4.3]); + translate([4.5, 17.5, 16.5]) rotate([0, 0, 0]) cube([3.5, 5, 4.3]); + translate([-1.55, -9.60, 19.5]) rotate([0, 0, -45]) cube([3.5, 10, 4]); + translate([-1.9, -9.95, 15]) rotate([45, 0, -45]) cube([3.5, 10, 4]); + translate([4.5, 29, 16]) rotate([45, 0, 0]) cube([3.5, 5, 5]); + translate([3.5, -4.60, 19.5]) rotate([0, 0, -15]) cube([3, 4, 4]); + // version - translate([-14.5,13,22.8]) rotate([0,0,0]) linear_extrude(height = 0.4) - { text("MK3",font = "helvetica:style=Bold", size=6, center=true); } - translate([-15,3,15.8]) rotate([0,180,0]) linear_extrude(height = 0.8) - { text("R2",font = "helvetica:style=Bold", size=4, center=true); } - translate([-23,2.3,14.3]) cube([9,5.0,1]); + translate([-14.5, 13, 22.8]) rotate([0, 0, 0]) linear_extrude(height = 0.4) + { text("MK3", font = "helvetica:style = Bold", size = 6, center = true); } + translate([-15, 3, 15.8]) rotate([0, 180, 0]) linear_extrude(height = 0.8) + { text("R2", font = "helvetica:style = Bold", size = 4, center = true); } + translate([-23, 2.3, 14.3]) cube([9, 5.0, 1]); // upper ziptie left - translate([-21.5,-25,0])difference() + translate([-21.5, -25, 0]) difference() { - translate([1,45,12]) rotate([0,90,0]) cylinder(r=8.5, h=4, $fn=25); - translate([0,45,12]) rotate([0,90,0]) cylinder(r=7, h=6, $fn=25); + translate([1, 45, 12]) rotate([0, 90, 0]) cylinder(r = 8.5, h = 4, $fn = 25); + translate([0, 45, 12]) rotate([0, 90, 0]) cylinder(r = 7, h = 6, $fn = 25); } - translate([19.5,8,14.5]) rotate([-60,0,0]) cube([4,3,10]); - translate([-20.5,8,14.5]) rotate([-60,0,0]) cube([4,3,10]); - + translate([19.5, 8, 14.5]) rotate([-60, 0, 0]) cube([4, 3, 10]); + translate([-20.5, 8, 14.5]) rotate([-60, 0, 0]) cube([4, 3, 10]); + // upper ziptie right - translate([19,-25,0])difference() + translate([19, -25, 0]) difference() { - translate([0.5,45,12]) rotate([0,90,0]) cylinder(r=8.5, h=4, $fn=25); - translate([0,45,12]) rotate([0,90,0]) cylinder(r=7, h=6, $fn=25); + translate([0.5, 45, 12]) rotate([0, 90, 0]) cylinder(r = 8.5, h = 4, $fn = 25); + translate([0, 45, 12]) rotate([0, 90, 0]) cylinder(r = 7, h = 6, $fn = 25); } - + // supports - translate([-17,26,5]) m3head(); - translate([-40.5,26,5]) m3head(); - translate([-29,-1,4]) m3head(); - translate([-19.5,-41,5]) m3head(); - translate([-39.5,-41,5]) m3head(); - + translate([-17, 26, 5]) m3head(); + translate([-40.5, 26, 5]) m3head(); + translate([-29, -1, 4]) m3head(); + translate([-19.5, -41, 5]) m3head(); + translate([-39.5, -41, 5]) m3head(); + } } -rotate([0,180,0]) x_carriage_back(); - +rotate([0, 180, 0]) x_carriage_back(); diff --git a/Printed-Parts/scad/x-carriage.scad b/Printed-Parts/scad/x-carriage.scad index 5b63234d..89119dfc 100644 --- a/Printed-Parts/scad/x-carriage.scad +++ b/Printed-Parts/scad/x-carriage.scad @@ -9,18 +9,18 @@ use module belt_cut() { - rotate([0,0,180]) + rotate([0, 0, 180]) { - translate([-20,0,0]) cube([39,0.75,15]); - translate([-20,0,5]) rotate([-7,0,0]) cube([39,0.75,10]); - translate([-20,0,5]) rotate([10,0,0]) cube([39,0.75,10]); - for (_step =[-20:2:18]) + translate([-20, 0, 0]) cube([39, 0.75, 15]); + translate([-20, 0, 5]) rotate([-7, 0, 0]) cube([39, 0.75, 10]); + translate([-20, 0, 5]) rotate([10, 0, 0]) cube([39, 0.75, 10]); + for (_step = [-20 : 2 : 18]) { - translate([_step,0.5,0]) cube([1,1.0,10]); + translate([_step, 0.5, 0]) cube([1, 1.0, 10]); } - for (_step =[-20:2:18]) + for (_step = [-20 : 2 : 18]) { - translate([_step,0.5,5]) rotate([-7,0,0]) cube([1,1,10]); + translate([_step, 0.5, 5]) rotate([-7, 0, 0]) cube([1, 1, 10]); } } } @@ -28,354 +28,331 @@ module belt_cut() module x_carriage_base() { - + // Small bearing holder - translate([-33/2,0,0]) rotate([0,0,90]) horizontal_bearing_base(1); - + translate([-33 / 2, 0, 0]) rotate([0, 0, 90]) horizontal_bearing_base(1); + // Long bearing holder - translate([-33/2,45,0]) rotate([0,0,90]) horizontal_bearing_base(2); - + translate([-33 / 2, 45, 0]) rotate([0, 0, 90]) horizontal_bearing_base(2); + // Base plate - translate([-34,-14,0]) cube([34.5,70.5,7]); - translate([-33,-15,0]) cube([33,7,15]); - translate([-42.5,53.0,0]) cube([52,6.5,15]); - + translate([-34, -14, 0]) cube([34.5, 70.5, 7]); + translate([-33, -15, 0]) cube([33, 7, 15]); + translate([-42.5, 53.0, 0]) cube([52, 6.5, 15]); + difference() { union() { - translate([-12,30,1]) rotate([0,0,45]) cube([6,6,14]); - translate([-20,30,1]) rotate([0,0,45]) cube([6,6,14]); + translate([-12, 30, 1]) rotate([0, 0, 45]) cube([6, 6, 14]); + translate([-20, 30, 1]) rotate([0, 0, 45]) cube([6, 6, 14]); } - translate([-25,38,11]) rotate([43,0,0]) cube([20,8,8]); + translate([-25, 38, 11]) rotate([43, 0, 0]) cube([20, 8, 8]); } - + // upper motor screw block - translate([-23,56.8,0]) rotate([0,0,0]) cube([32.5,18.2,8]); - + translate([-23, 56.8, 0]) rotate([0, 0, 0]) cube([32.5, 18.2, 8]); + // Belt holder base - translate([-42.5,20,0]) cube([52,16,7]); - + translate([-42.5, 20, 0]) cube([52, 16, 7]); + // new belt holder base block - translate([-42.5,18,7]) cube([52,16.3,8]); - + translate([-42.5, 18, 7]) cube([52, 16.3, 8]); } - - module x_carriage_holes() { // Small bearing holder holes cutter - translate([-33/2,0,0]) rotate([0,0,90]) horizontal_bearing_holes_nozip(1); - + translate([-33 / 2, 0, 0]) rotate([0, 0, 90]) horizontal_bearing_holes_nozip(1); + // Long bearing holder holes cutter - translate([-33/2,45,0]) rotate([0,0,90]) horizontal_bearing_holes_nozip(2); - + translate([-33 / 2, 45, 0]) rotate([0, 0, 90]) horizontal_bearing_holes_nozip(2); + // upper ziptie right - translate([2,0,0]) + translate([2, 0, 0]) difference() - { - translate([0.75,45,12]) rotate([0,90,0]) cylinder(r=10.8, h=3.5, $fn=25); - translate([0,45,12]) rotate([0,90,0]) cylinder(r=9, h=6, $fn=25); - } - + { + translate([0.75, 45, 12]) rotate([0, 90, 0]) cylinder(r = 10.8, h = 3.5, $fn = 25); + translate([0, 45, 12]) rotate([0, 90, 0]) cylinder(r = 9, h = 6, $fn = 25); + } + // upper ziptie left - translate([-38,0,0]) + translate([-38, 0, 0]) difference() - { - translate([0.75,45,12]) rotate([0,90,0]) cylinder(r=10.8,h=3.5,$fn=25); - translate([0,45,12]) rotate([0,90,0]) cylinder(r=9, h=6, $fn=25); - } - + { + translate([0.75, 45, 12]) rotate([0, 90, 0]) cylinder(r = 10.8, h = 3.5, $fn = 25); + translate([0, 45, 12]) rotate([0, 90, 0]) cylinder(r = 9, h = 6, $fn = 25); + } + // upper ziptie head - translate([0,52.5,12]) cube([10,10,5]); - translate([-45,52.5,12]) cube([13.5,10,5]); - + translate([0, 52.5, 12]) cube([10, 10, 5]); + translate([-45, 52.5, 12]) cube([13.5, 10, 5]); + // Extruder mounting holes - translate([-17.5+12,24.5,-1])cylinder(r=1.65, h=20, $fn=25); - translate([-17.5+12,24.5,-0.1])cylinder(r1=2.1,r2=1.65, h=0.5, $fn=25); - translate([-17.5+12,24.5,12])cylinder(r=5.8/2, h=20, $fn=25); - - translate([-16.5-12,24.5,-1])cylinder(r=1.65, h=20, $fn=25); - translate([-16.5-12,24.5,-0.1])cylinder(r1=2.1,r2=1.65, h=0.5, $fn=25); - translate([-16.5-12,24.5,12])cylinder(r=5.8/2, h=20, $fn=25); - + translate([-17.5 + 12, 24.5, -1]) cylinder(r = 1.65, h = 20, $fn = 25); + translate([-17.5 + 12, 24.5, -0.1]) cylinder(r1 = 2.1, r2 = 1.65, h = 0.5, $fn = 25); + translate([-17.5 + 12, 24.5, 12]) cylinder(r = 5.8 / 2, h = 20, $fn = 25); + + translate([-16.5 - 12, 24.5, -1]) cylinder(r = 1.65, h = 20, $fn = 25); + translate([-16.5 - 12, 24.5, -0.1]) cylinder(r1 = 2.1, r2 = 1.65, h = 0.5, $fn = 25); + translate([-16.5 - 12, 24.5, 12]) cylinder(r = 5.8 / 2, h = 20, $fn = 25); + // Carriage slimer - translate([-55.5+3,19,-1])cube([10,40,30]); - translate([+12.5-3,19,-1])cube([10,40,30]); - translate([+12.5-3.5-2,30.8,-1])rotate([0,90-65,0])cube([10,55,30]); - translate([-55.5+6.7+2,19,-10])rotate([0,-90+65,0])cube([10,40,30]); - + translate([-55.5 + 3, 19, -1]) cube([10, 40, 30]); + translate([12.5 - 3, 19, -1]) cube([10, 40, 30]); + translate([12.5 - 3.5 - 2, 30.8, -1]) rotate([0, 90 - 65, 0]) cube([10, 55, 30]); + translate([-55.5 + 6.7 + 2, 19, -10]) rotate([0, -90 + 65, 0]) cube([10, 40, 30]); } module x_carriage_fancy() { // Top right corner - translate([11.5,8,0]) translate([0,45+11.5,-1]) rotate([0,0,45]) translate([0,-15,0]) cube([30,30,20]); - + translate([11.5, 8, 0]) translate([0, 45 + 11.5, -1]) rotate([0, 0, 45]) translate([0, -15, 0]) cube([30, 30, 20]); + // Top left corner - translate([-33-13.5,-5,0]) translate([0,45+11.5,-1]) rotate([0,0,135]) translate([0,-15,0]) cube([30,30,20]); - - translate([-27,74.5,9]) rotate([0,45,0]) translate([0,-15,0]) cube([5,25,5]); - translate([-23,86,16]) rotate([45,0,0]) translate([0,-15,0]) cube([45,5,5]); - + translate([-33 - 13.5, -5, 0]) translate([0, 45 + 11.5, -1]) rotate([0, 0, 135]) translate([0, -15, 0]) cube([30, 30, 20]); + + translate([-27, 74.5, 9]) rotate([0, 45, 0]) translate([0, -15, 0]) cube([5, 25, 5]); + translate([-23, 86, 16]) rotate([45, 0, 0]) translate([0, -15, 0]) cube([45, 5, 5]); + // bottom side edges - translate([-40,-15,-5]) rotate([30,0,0]) cube([45,6,15]); - translate([-35,-19.2,0]) rotate([0,0,45]) cube([6,6,16]); - translate([2,-19.2,0]) rotate([0,0,45]) cube([6,6,16]); - translate([2,55.9,12]) rotate([0,0,45]) cube([6,6,16]); - translate([-33.5,55.9,12]) rotate([0,0,45]) cube([6,6,16]); - + translate([-40, -15, -5]) rotate([30, 0, 0]) cube([45, 6, 15]); + translate([-35, -19.2, 0]) rotate([0, 0, 45]) cube([6, 6, 16]); + translate([2, -19.2, 0]) rotate([0, 0, 45]) cube([6, 6, 16]); + translate([2, 55.9, 12]) rotate([0, 0, 45]) cube([6, 6, 16]); + translate([-33.5, 55.9, 12]) rotate([0, 0, 45]) cube([6, 6, 16]); } module cable_tray() { - // center screw block - translate([-21,23,0]) cube([9,12,15]); - + translate([-21, 23, 0]) cube([9, 12, 15]); + difference() - { + { union() { - translate([-20.8,24.8,0]) rotate([0,0,20]) cube([3,10,15]); - translate([-15.5,25.8,0]) rotate([0,0,-20]) cube([3,10,15]); + translate([-20.8, 24.8, 0]) rotate([0, 0, 20]) cube([3, 10, 15]); + translate([-15.5, 25.8, 0]) rotate([0, 0, -20]) cube([3, 10, 15]); } - translate([-25,34.2,0]) cube([20,10,15]); + translate([-25, 34.2, 0]) cube([20, 10, 15]); } - - translate([6.5,32,10]) cube([3,5,5]); - translate([-42.5,32,10]) cube([4,5,5]); - + + translate([6.5, 32, 10]) cube([3, 5, 5]); + translate([-42.5, 32, 10]) cube([4, 5, 5]); + //Left cable tray - translate([-39.9,11,0]) cube([9,2,15]); - translate([-39.9,5.5,0]) cube([9,2,15]); - + translate([-39.9, 11, 0]) cube([9, 2, 15]); + translate([-39.9, 5.5, 0]) cube([9, 2, 15]); + //Right cable tray - translate([-2,5.5,0]) cube([11.45,2,15]); - translate([-2,11,7]) cube([11.45,2,8]); - - translate([-31,11.5,7]) cube([30,1.5,8]); - - difference(){ - translate([0,11,0]) cube([9.50,12,7]); - translate([0,6,1])rotate([-30,0,0]) cube([7.5,12,7]); - translate([0,3.5,6])rotate([-60,0,0]) cube([7.5,12,7]); - translate([0,10+3,-1])cube([7.5,11,6]); + translate([-2, 5.5, 0]) cube([11.45, 2, 15]); + translate([-2, 11, 7]) cube([11.45, 2, 8]); + + translate([-31, 11.5, 7]) cube([30, 1.5, 8]); + + difference() + { + translate([0, 11, 0]) cube([9.50, 12, 7]); + translate([0, 6, 1]) rotate([-30, 0, 0]) cube([7.5, 12, 7]); + translate([0, 3.5, 6]) rotate([-60, 0, 0]) cube([7.5, 12, 7]); + translate([0, 10 + 3, -1]) cube([7.5, 11, 6]); } - - } - module final_cutout() { // cable guide edges - translate([-44,0,16]) rotate([0,45,0]) cube([5,15,5]); - translate([6,0,16]) rotate([0,45,0]) cube([5,15,5]); - + translate([-44, 0, 16]) rotate([0, 45, 0]) cube([5, 15, 5]); + translate([6, 0, 16]) rotate([0, 45, 0]) cube([5, 15, 5]); + // motor cable opening - translate([0.5,10+3,-1])cube([7,9.2,6]); - + translate([0.5, 10 + 3, -1]) cube([7, 9.2, 6]); + // filament hole - - - difference () { - - union() { - translate([-14.199,9.05,0]) rotate([-5,0,22.5]) cylinder(r=1.62, h=40, $fn=8); - translate([-14.5,9.7,8]) rotate([-5,0,22.5]) cylinder(r=1.62,r2=3, h=8, $fn=8); + difference() + { + union() + { + translate([-14.199, 9.05, 0]) rotate([-5, 0, 22.5]) cylinder(r = 1.62, h = 40, $fn = 8); + translate([-14.5, 9.7, 8]) rotate([-5, 0, 22.5]) cylinder(r = 1.62, r2 = 3, h = 8, $fn = 8); } - //translate([-18,6.7,12]) cube([7,7,5]); - + //translate([-18, 6.7, 12]) cube([7, 7, 5]); } - + // bottom back mounting screws - translate([-6.5,-11,4]) cylinder(r=1.65, h=20, $fn=50); - translate([-26.5,-11,4]) cylinder(r=1.65, h=20, $fn=50); - - difference() { - union(){ - translate([-29.3,-14,10]) cube([5.6,7,2.1]); - translate([-09.3,-14,10]) cube([5.6,7,2.1]); + translate([-6.5, -11, 4]) cylinder(r = 1.65, h = 20, $fn = 50); + translate([-26.5, -11, 4]) cylinder(r = 1.65, h = 20, $fn = 50); + + difference() + { + union() + { + translate([-29.3, -14, 10]) cube([5.6, 7, 2.1]); + translate([-09.3, -14, 10]) cube([5.6, 7, 2.1]); + } + translate([-36, -8.1, 10]) cube([40, 1, 0.5]); } - translate([-36,-8.1,10]) cube([40,1,0.5]); - } + // better printing bridges - translate([-29.3,-12.65,10.35]) cube([5.6,3.3,2.1]); - translate([-09.3,-12.65,10.35]) cube([5.6,3.3,2.1]); - translate([-28.15,-12.65,10.7]) cube([3.3,3.3,2.1]); - translate([-8.15,-12.65,10.7]) cube([3.3,3.3,2.1]); - - - + translate([-29.3, -12.65, 10.35]) cube([5.6, 3.3, 2.1]); + translate([-09.3, -12.65, 10.35]) cube([5.6, 3.3, 2.1]); + translate([-28.15, -12.65, 10.7]) cube([3.3, 3.3, 2.1]); + translate([-8.15, -12.65, 10.7]) cube([3.3, 3.3, 2.1]); + // x-carriage-back mounting screws - translate([-4,56,0]) cylinder(r=1.7, h=40, $fn=50); - translate([-27.5,56,0]) cylinder(r=1.7, h=40, $fn=50); - translate([-30.3,53,8]) cube([5.6,8,2]); - translate([-6.8,53,8]) cube([5.6,8,2]); - + translate([-4, 56, 0]) cylinder(r = 1.7, h = 40, $fn = 50); + translate([-27.5, 56, 0]) cylinder(r = 1.7, h = 40, $fn = 50); + translate([-30.3, 53, 8]) cube([5.6, 8, 2]); + translate([-6.8, 53, 8]) cube([5.6, 8, 2]); + // better printing bridges - translate([-6.8,54.35,8.35]) cube([5.6,3.3,2]); - translate([-5.65,54.35,8.7]) cube([3.3,3.3,2]); - translate([-30.3,54.35,8.35]) cube([5.6,3.3,2]); - translate([-29.15,54.35,8.7]) cube([3.3,3.3,2]); - - - + translate([-6.8, 54.35, 8.35]) cube([5.6, 3.3, 2]); + translate([-5.65, 54.35, 8.7]) cube([3.3, 3.3, 2]); + translate([-30.3, 54.35, 8.35]) cube([5.6, 3.3, 2]); + translate([-29.15, 54.35, 8.7]) cube([3.3, 3.3, 2]); + // center mounting screw - translate([-16,29,0]) cylinder(r=1.65, h=40, $fn=50); - translate([-18.8,26,10.5]) cube([5.6,12,2.1]); - translate([-21,33,11]) cube([10,8,6]); - + translate([-16, 29, 0]) cylinder(r = 1.65, h = 40, $fn = 50); + translate([-18.8, 26, 10.5]) cube([5.6, 12, 2.1]); + translate([-21, 33, 11]) cube([10, 8, 6]); + // better printing bridges - translate([-18.8,27.35,10.9]) cube([5.6,3.3,2.1]); - translate([-17.65,27.35,11.25]) cube([3.3,3.3,2.1]); - + translate([-18.8, 27.35, 10.9]) cube([5.6, 3.3, 2.1]); + translate([-17.65, 27.35, 11.25]) cube([3.3, 3.3, 2.1]); + // opening for power cables to hotend & termistor cable - translate([-16.5,-18,-5]) rotate([-5,0,0]) cylinder(r=6, h=40, $fn=30); - + translate([-16.5, -18, -5]) rotate([-5, 0, 0]) cylinder(r = 6, h = 40, $fn = 30); } - module x_carriage_block() { difference() + { + union() { - union() + difference() { - difference() - { - x_carriage_base(); - x_carriage_holes(); - x_carriage_fancy(); - } - cable_tray(); + x_carriage_base(); + x_carriage_holes(); + x_carriage_fancy(); } - final_cutout(); + cable_tray(); } + final_cutout(); + } } module x_carriage() { difference() { - x_carriage_block(); - - // upper motor screw - translate([2.5,67.5,-50]) cylinder(r=1.8, h=100, $fn=30); - translate([2.5,67.5,-0.1]) cylinder(r1=2.1,r2=1.8, h=0.5, $fn=25); - translate([2.5,67.5,5]) cylinder(r=3.2, h=8, $fn=30); - translate([0.5,22.5,0]) rotate([0,90,0]) cylinder(r=5.2, h=7.0, $fn=25); - - // cable management cleanup - difference() - { - translate([2.5,21.5,0]) rotate([0,90,0]) cylinder(r=5.2, h=5.0, $fn=25); - translate([2,16,-10]) cube([10,6,20]); - } + x_carriage_block(); + + // upper motor screw + translate([2.5, 67.5, -50]) cylinder(r = 1.8, h = 100, $fn = 30); + translate([2.5, 67.5, -0.1]) cylinder(r1 = 2.1, r2 = 1.8, h = 0.5, $fn = 25); + translate([2.5, 67.5, 5]) cylinder(r = 3.2, h = 8, $fn = 30); + translate([0.5, 22.5, 0]) rotate([0, 90, 0]) cylinder(r = 5.2, h = 7.0, $fn = 25); + + // cable management cleanup + difference() + { + translate([2.5, 21.5, 0]) rotate([0, 90, 0]) cylinder(r = 5.2, h = 5.0, $fn = 25); + translate([2, 16, -10]) cube([10, 6, 20]); + } - // selective infill - - translate([5,-15.4,-1]) rotate([0,45,0]) cube([0.3,4.6,8]); - translate([8.45,11.5,1]) cube([0.5,1.8,4]); - - translate([5,-16.4,-1]) rotate([0,45,0]) cube([0.3,0.5,8]); - translate([5,-10.3,-1]) rotate([0,45,0]) cube([0.3,0.5,8]); - translate([6,-16.5,-1]) cube([1,0.5,5]); - translate([3,-16.5,-1]) cube([2,0.5,5]); - translate([6,-10.2,-1]) cube([1,0.5,5]); - translate([3,-10.2,-1]) cube([2,0.5,5]); - translate([6,7.5,-1]) cube([1,0.5,5]); - translate([6,10.5,-1]) cube([1,0.5,5]); - - translate([-19,24,1.5]) cube([6,0.5,12.0]); - - //cable openings in guides - translate([-40.8,7.5,0]) rotate([0,20,0]) cube([5,3.5,20]); - translate([-2.9,7.5,18]) rotate([0,80,0]) cube([20,3.55,5]); - - // filament sensor connector - translate([-12.5,64,-3]) cube([4,11.2,14]); - translate([-12.5,65.75,-3]) cube([5,2.5,14]); - translate([-12.5,71.75,-3]) cube([5,2.5,14]); - translate([-14.5,67,-3]) cube([4,6,14]); - translate([-14.5,65,4.7]) cube([4,10.2,5]); - translate([-12.5,54.5,8]) cube([3.5,10.2,14]); - translate([-12.5,57.5,9.5]) rotate([35,0,0]) cube([3.5,10.2,14]); - translate([-12.5,58,8]) rotate([0,0,45]) cube([3,3,14]); - translate([-10,58,8]) rotate([0,0,45]) cube([3,3,14]); - - translate([0,-0.5,0]) left_belt_cut(); - translate([0,0.5,0]) right_belt_cut(); - - //version - translate([-2,-8,0.5]) rotate([0,180,0]) linear_extrude(height = 0.6) - { text("R3",font = "helvetica:style=Bold", size=5, center=true); } + // selective infill + translate([5, -15.4, -1]) rotate([0, 45, 0]) cube([0.3, 4.6, 8]); + translate([8.45, 11.5, 1]) cube([0.5, 1.8, 4]); + translate([5, -16.4, -1]) rotate([0, 45, 0]) cube([0.3, 0.5, 8]); + translate([5, -10.3, -1]) rotate([0, 45, 0]) cube([0.3, 0.5, 8]); + translate([6, -16.5, -1]) cube([1, 0.5, 5]); + translate([3, -16.5, -1]) cube([2, 0.5, 5]); + translate([6, -10.2, -1]) cube([1, 0.5, 5]); + translate([3, -10.2, -1]) cube([2, 0.5, 5]); + translate([6, 7.5, -1]) cube([1, 0.5, 5]); + translate([6, 10.5, -1]) cube([1, 0.5, 5]); + + translate([-19, 24, 1.5]) cube([6, 0.5, 12.0]); + + //cable openings in guides + translate([-40.8, 7.5, 0]) rotate([0, 20, 0]) cube([5, 3.5, 20]); + translate([-2.9, 7.5, 18]) rotate([0, 80, 0]) cube([20, 3.55, 5]); + + // filament sensor connector + translate([-12.5, 64, -3]) cube([4, 11.2, 14]); + translate([-12.5, 65.75, -3]) cube([5, 2.5, 14]); + translate([-12.5, 71.75, -3]) cube([5, 2.5, 14]); + translate([-14.5, 67, -3]) cube([4, 6, 14]); + translate([-14.5, 65, 4.7]) cube([4, 10.2, 5]); + translate([-12.5, 54.5, 8]) cube([3.5, 10.2, 14]); + translate([-12.5, 57.5, 9.5]) rotate([35, 0, 0]) cube([3.5, 10.2, 14]); + translate([-12.5, 58, 8]) rotate([0, 0, 45]) cube([3, 3, 14]); + translate([-10, 58, 8]) rotate([0, 0, 45]) cube([3, 3, 14]); + + translate([0, -0.5, 0]) left_belt_cut(); + translate([0, 0.5, 0]) right_belt_cut(); + + //version + translate([-2, -8, 0.5]) rotate([0, 180, 0]) linear_extrude(height = 0.6) + { text("R3", font = "helvetica:style = Bold", size = 5, center = true); } } } - module left_belt_cut() { - - translate([-22.5,30.2,7]) cylinder(r=1.5, h=100, $fn=30); - translate([-23.0,20,7]) cube([2,10,30]); - translate([-56.5,28.5,7]) belt_cut(); - translate([13.5,20.5,0]) rotate([0,0,25]) + translate([-22.5, 30.2, 7]) cylinder(r = 1.5, h = 100, $fn = 30); + translate([-23.0, 20, 7]) cube([2, 10, 30]); + translate([-56.5, 28.5, 7]) belt_cut(); + translate([13.5, 20.5, 0]) rotate([0, 0, 25]) + { + difference() { - difference() - { - translate([-56.5,28.5,7]) belt_cut(); - translate([-80,25,7]) cube([37.5,10,30]); - } + translate([-56.5, 28.5, 7]) belt_cut(); + translate([-80, 25, 7]) cube([37.5, 10, 30]); } - translate([13.2,2.38,0]) rotate([0,0,0]) + } + translate([13.2, 2.38, 0]) rotate([0, 0, 0]) + { + difference() { - difference() - { - translate([-56.5,28.5,7]) belt_cut(); - translate([-82.42,25,7]) cube([37.5,10,30]); - } + translate([-56.5, 28.5, 7]) belt_cut(); + translate([-82.42, 25, 7]) cube([37.5, 10, 30]); } - translate([-45,17.6,4]) rotate([0,0,-15]) cube([10,3,30]); - translate([-31.5,30.4,10]) rotate([-10,0,15]) cylinder(r=0.2, h=100, $fn=30); - translate([-31.6,30.75,7]) rotate([0,0,0]) cylinder(r=0.2, h=100, $fn=30); } - + translate([-45, 17.6, 4]) rotate([0, 0, -15]) cube([10, 3, 30]); + translate([-31.5, 30.4, 10]) rotate([-10, 0, 15]) cylinder(r = 0.2, h = 100, $fn = 30); + translate([-31.6, 30.75, 7]) rotate([0, 0, 0]) cylinder(r = 0.2, h = 100, $fn = 30); +} module right_belt_cut() { // right belt cut - translate([-9.6,29.7,7]) cylinder(r=1.5, h=100, $fn=30); - translate([-11.1,19.8,7]) cube([2,10,30]); - translate([22.5,25.5,7]) belt_cut(); - translate([66.65,1.95,0]) rotate([0,0,0]) + translate([-9.6, 29.7, 7]) cylinder(r = 1.5, h = 100, $fn = 30); + translate([-11.1, 19.8, 7]) cube([2, 10, 30]); + translate([22.5, 25.5, 7]) belt_cut(); + translate([66.65, 1.95, 0]) rotate([0, 0, 0]) { difference() { - translate([-56.5,28.5,7]) belt_cut(); - translate([-71.55,25,7]) cube([37.5,10,30]); + translate([-56.5, 28.5, 7]) belt_cut(); + translate([-71.55, 25, 7]) cube([37.5, 10, 30]); } } - translate([43.2,-30.25,0]) rotate([0,0,-30]) + translate([43.2, -30.25, 0]) rotate([0, 0, -30]) { - difference() + difference() { - translate([-56.5,28.5,7]) belt_cut(); - translate([-82.1,25,7]) cube([10,10,30]); - translate([-61.5,25,7]) cube([20.5,10,30]); + translate([-56.5, 28.5, 7]) belt_cut(); + translate([-82.1, 25, 7]) cube([10, 10, 30]); + translate([-61.5, 25, 7]) cube([20.5, 10, 30]); } } - translate([2,14.6,7]) rotate([0,0,15]) cube([10,3,30]); - translate([-5.1,30,10]) rotate([-10,0,-15]) cylinder(r=0.2, h=100, $fn=30); - translate([-5,30.3,7]) rotate([0,0,0]) cylinder(r=0.2, h=100, $fn=30); + translate([2, 14.6, 7]) rotate([0, 0, 15]) cube([10, 3, 30]); + translate([-5.1, 30, 10]) rotate([-10, 0, -15]) cylinder(r = 0.2, h = 100, $fn = 30); + translate([-5, 30.3, 7]) rotate([0, 0, 0]) cylinder(r = 0.2, h = 100, $fn = 30); } x_carriage(); - - - - - diff --git a/Printed-Parts/scad/x-end-idler.scad b/Printed-Parts/scad/x-end-idler.scad index 960effbb..b0762664 100644 --- a/Printed-Parts/scad/x-end-idler.scad +++ b/Printed-Parts/scad/x-end-idler.scad @@ -10,49 +10,45 @@ use module x_end_idler_holes() { x_end_holes(); - translate([0,3.5,0]) + 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); - - - - + 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]); - } - + 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); + 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]); + translate([-17, -1, 51]) rotate([90, 0, 0]) cube([4, 15, 4]); + translate([-17, -1, -1]) rotate([90, 0, 0]) cube([4, 15, 4]); } @@ -65,141 +61,110 @@ module x_end_idler_base() 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]); - - - - - - - - + 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]); - - - - - } - - + 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); - + 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); + 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); - - + // 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() +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); + 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); - } + 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); - } + 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([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]); + 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]) + 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]); + 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); } + 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]); + 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]); - } - + 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() @@ -207,12 +172,11 @@ difference() union() { x_end_idler(); - translate([-8,15,13.0]) rotate([0,0,-45.4]) cube([10,1.5,1]); + 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]); + 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 index ed0a15f7..3145ebfe 100644 --- a/Printed-Parts/scad/x-end-motor.scad +++ b/Printed-Parts/scad/x-end-motor.scad @@ -10,55 +10,55 @@ use module x_end_motor_base() { x_end_base(); - translate(v=[-15,31,26.5]) cube(size = [17,44,53], center = true); + 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]) + translate(v = [-1, 32, 30.25]) { // Belt hole - translate(v=[-19,-21,-12]) cube(size = [10,25,22]); - + 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]); + 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]); - + 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]); + } } @@ -69,83 +69,71 @@ module x_end_motor_shaft_cutout() { 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 = [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); + 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); } - } + { + 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); - 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]); - } - + { + 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() + 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]); + 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); - + 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() @@ -153,22 +141,11 @@ difference() union() { x_end_motor(); - translate([-8,-17,13.0]) rotate([0,0,44.7]) cube([10,1.5,1]); + 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]); -} - - - - - - - - - - - + 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 index 26607dbc..6d48dbd7 100644 --- a/Printed-Parts/scad/x-end.scad +++ b/Printed-Parts/scad/x-end.scad @@ -11,140 +11,107 @@ 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]); - + 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(); - + vertical_bearing_base(); + //Nut trap // Cylinder - translate(v=[0,-17,0]) cylinder(h = 13.5, r=12.5, $fn=100); + 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); + 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]] ); + 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]) + translate(v = [-1, 0, 0]) { // Stress relief - translate(v=[-5.5-10+1.5,-10-1,30]) cube(size = [18,1,28], center = true); + 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); + 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]); - - - - - + // 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() + union() { - x_end_base(); - x_end_holes(); - } - - } + difference() + { + x_end_base(); + x_end_holes(); + } + } } - - - - } - - -module pushfit_rod(diameter,length) +module pushfit_rod(diameter, length) { - poly_cylinder(h = length, r=diameter/2); + 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); + 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]); +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-belt-holder.scad b/Printed-Parts/scad/y-belt-holder.scad index fdbf43da..75d8d757 100644 --- a/Printed-Parts/scad/y-belt-holder.scad +++ b/Printed-Parts/scad/y-belt-holder.scad @@ -7,72 +7,66 @@ module y_belt_holder() { - difference() { // base block union() { - translate([-7,-24,44.5]) cube([14,48,8]); - translate([-5,-15,29]) cube([12,30,17]); + translate([-7, -24, 44.5]) cube([14, 48, 8]); + translate([-5, -15, 29]) cube([12, 30, 17]); } - // belt entry - translate([-7.5,-16,39.9]) rotate([0,45,0]) cube([3,32,3]); - translate([-7.5,-16,34.9]) rotate([0,45,0]) cube([3,32,3]); - + // belt entry + translate([-7.5, -16, 39.9]) rotate([0, 45, 0]) cube([3, 32, 3]); + translate([-7.5, -16, 34.9]) rotate([0, 45, 0]) cube([3, 32, 3]); + // lower belt slot - translate([-8.5,-16,34.2]) cube([11.5,32,0.75]); - translate([-8.5,-16,35.4]) rotate([0,5,0]) cube([11.5,32,0.2]); - translate([-8.5,-16,33.6]) rotate([0,-5,0]) cube([11.5,32,0.2]); - for (_step =[-16:2:16]) + translate([-8.5, -16, 34.2]) cube([11.5, 32, 0.75]); + translate([-8.5, -16, 35.4]) rotate([0, 5, 0]) cube([11.5, 32, 0.2]); + translate([-8.5, -16, 33.6]) rotate([0, -5, 0]) cube([11.5, 32, 0.2]); + for (_step = [-16 : 2 : 16]) { - translate([-8.5,_step,33]) cube([11.5,1,1.5]); + translate([-8.5, _step, 33]) cube([11.5, 1, 1.5]); } - + // upper belt slot - translate([-8.5,-16,39.2]) cube([11.5,32,0.75]); - translate([-8.5,-16,40.4]) rotate([0,5,0]) cube([11.5,32,0.2]); - translate([-8.5,-16,38.6]) rotate([0,-5,0]) cube([11.5,32,0.2]); - for (_step =[-17:2:16]) + translate([-8.5, -16, 39.2]) cube([11.5, 32, 0.75]); + translate([-8.5, -16, 40.4]) rotate([0, 5, 0]) cube([11.5, 32, 0.2]); + translate([-8.5, -16, 38.6]) rotate([0, -5, 0]) cube([11.5, 32, 0.2]); + for (_step = [-17 : 2 : 16]) { - translate([-8.5,_step,38.2]) cube([11.5,1,1.5]); + translate([-8.5, _step, 38.2]) cube([11.5, 1, 1.5]); } - + // nice edges - translate([-8,-20,21.8]) rotate([45,0,0]) cube([16,10,10]); - translate([-8,20,21.8]) rotate([45,0,0]) cube([16,10,10]); + translate([-8, -20, 21.8]) rotate([45, 0, 0]) cube([16, 10, 10]); + translate([-8, 20, 21.8]) rotate([45, 0, 0]) cube([16, 10, 10]); + + translate([-8, -30, 37]) rotate([45, 0, 0]) cube([16, 10, 10]); + translate([-8, 30, 37]) rotate([45, 0, 0]) cube([16, 10, 10]); + translate([-12.2, -30, 44.4]) rotate([0, 45, 0]) cube([5, 60, 5]); - translate([-8,-30,37]) rotate([45,0,0]) cube([16,10,10]); - translate([-8,30,37]) rotate([45,0,0]) cube([16,10,10]); - translate([-12.2,-30,44.4]) rotate([0,45,0]) cube([5,60,5]); - // mounting screw holes - translate([0,-19.50,40]) cylinder( h=30, r=1.65, $fn=50 ); - translate([0,19.50,40]) cylinder( h=30, r=1.65, $fn=50 ); - translate([0,-19.25,40]) cylinder( h=30, r=1.65, $fn=50 ); - translate([0,19.25,40]) cylinder( h=30, r=1.65, $fn=50 ); - translate([0,-19.0,40]) cylinder( h=30, r=1.65, $fn=50 ); - translate([0,19.0,40]) cylinder( h=30, r=1.65, $fn=50 ); - - translate([0,-19.5,43.5]) cylinder( h=7, r=3.1, $fn=50 ); - translate([0,19.5,43.5]) cylinder( h=7, r=3.1, $fn=50 ); - translate([0,-19.25,43.5]) cylinder( h=7, r=3.1, $fn=50 ); - translate([0,19.25,43.5]) cylinder( h=7, r=3.1, $fn=50 ); - translate([0,-19.0,43.5]) cylinder( h=7, r=3.1, $fn=50 ); - translate([0,19.0,43.5]) cylinder( h=7, r=3.1, $fn=50 ); - - - } - + translate([0, -19.50, 40]) cylinder(h=30, r=1.65, $fn=50); + translate([0, 19.50, 40]) cylinder(h=30, r=1.65, $fn=50); + translate([0, -19.25, 40]) cylinder(h=30, r=1.65, $fn=50); + translate([0, 19.25, 40]) cylinder(h=30, r=1.65, $fn=50); + translate([0, -19.0, 40]) cylinder(h=30, r=1.65, $fn=50); + translate([0, 19.0, 40]) cylinder(h=30, r=1.65, $fn=50); + translate([0, -19.5, 43.5]) cylinder(h=7, r=3.1, $fn=50); + translate([0, 19.5, 43.5]) cylinder(h=7, r=3.1, $fn=50); + translate([0, -19.25, 43.5]) cylinder(h=7, r=3.1, $fn=50); + translate([0, 19.25, 43.5]) cylinder(h=7, r=3.1, $fn=50); + translate([0, -19.0, 43.5]) cylinder(h=7, r=3.1, $fn=50); + translate([0, 19.0, 43.5]) cylinder(h=7, r=3.1, $fn=50); + } } difference() { - translate([-40,0,7]) rotate([0,90,0]) y_belt_holder(); - //version - translate([8.5,3.5,0.5]) rotate([0,180,90]) linear_extrude(height = 0.6) - { text("R2",font = "helvetica:style=Bold", size=4, center=true); } + translate([-40, 0, 7]) rotate([0, 90, 0]) y_belt_holder(); + //version + translate([8.5, 3.5, 0.5]) rotate([0, 180, 90]) linear_extrude(height = 0.6) + { text("R2", font = "helvetica:style=Bold", size=4, center=true); } } - diff --git a/Printed-Parts/scad/y-belt-idler.scad b/Printed-Parts/scad/y-belt-idler.scad index bf1a12cc..a2d5177c 100644 --- a/Printed-Parts/scad/y-belt-idler.scad +++ b/Printed-Parts/scad/y-belt-idler.scad @@ -8,56 +8,55 @@ module Y_belt_idler() { difference() - { + { // base block - translate([-12.5,-20,5]) cube([25,20,35]); - translate([-4.75,-27,-1]) cube([9.5,20,50]); - - // angled front side - translate([-15,-19.5,-15]) rotate([37,0,0]) cube([30,20,40]); - translate([-15,-12,-15]) rotate([60,0,0]) cube([30,20,40]); - translate([-15,-20,29.5]) rotate([38,0,0]) cube([30,20,20]); + translate([-12.5, -20, 5]) cube([25, 20, 35]); + translate([-4.75, -27, -1]) cube([9.5, 20, 50]); + + // angled front side + translate([-15, -19.5, -15]) rotate([37, 0, 0]) cube([30, 20, 40]); + translate([-15, -12, -15]) rotate([60, 0, 0]) cube([30, 20, 40]); + translate([-15, -20, 29.5]) rotate([38, 0, 0]) cube([30, 20, 20]); // screws - translate([0,1,36]) rotate([90,0,0]) cylinder( h=25, r=1.65, $fn=50 ); - translate([0,-2,36]) rotate([90,0,0]) cylinder( h=6, r=3.1 , $fn=6 ); - translate([0,1,10]) rotate([90,0,0]) cylinder( h=25, r=1.65, $fn=50 ); - translate([0,-2,10]) rotate([90,0,0]) cylinder( h=6, r=3.1 , $fn=6 ); - translate([0,-5,36]) rotate([90,0,0]) cylinder( h=6, r=3.1 , r2=3.9, $fn=6 ); - translate([0,-5,10]) rotate([90,0,0]) cylinder( h=6, r=3.1 , r2=3.9, $fn=6 ); - translate([0,1,36]) rotate([90,0,0]) cylinder( h=2, r=2.5, r2=1.65,$fn=50 ); - translate([0,1,10]) rotate([90,0,0]) cylinder( h=2, r=2.5, r2=1.65,$fn=50 ); - + translate([0, 1, 36]) rotate([90, 0, 0]) cylinder(h = 25, r = 1.65, $fn = 50); + translate([0, -2, 36]) rotate([90, 0, 0]) cylinder(h = 6, r = 3.1, $fn = 6); + translate([0, 1, 10]) rotate([90, 0, 0]) cylinder(h = 25, r = 1.65, $fn = 50); + translate([0, -2, 10]) rotate([90, 0, 0]) cylinder(h = 6, r = 3.1, $fn = 6); + translate([0, -5, 36]) rotate([90, 0, 0]) cylinder(h = 6, r = 3.1, r2 = 3.9, $fn = 6); + translate([0, -5, 10]) rotate([90, 0, 0]) cylinder(h = 6, r = 3.1, r2 = 3.9, $fn = 6); + translate([0, 1, 36]) rotate([90, 0, 0]) cylinder(h = 2, r = 2.5, r2 = 1.65, $fn = 50); + translate([0, 1, 10]) rotate([90, 0, 0]) cylinder(h = 2, r = 2.5, r2 = 1.65, $fn = 50); + // pulley cut - translate([-5,-14,22.5]) rotate([0,90,0]) cylinder( h=10, r=10, $fn=30 ); - - // pulley screw axis - translate([-13.5,-14,22.5]) rotate([0,90,0]) cylinder( h=30, r=1.6, $fn=50 ); - translate([-14,-14,22.5]) rotate([0,90,0]) cylinder( h=7, r=3.1, $fn=6 ); - translate([-14,-14,22.5]) rotate([0,90,0]) cylinder( h=4, r2=3.1, r1=4, $fn=6 ); - translate([8,-14,22.5]) rotate([0,90,0]) cylinder( h=6, r=3.1, $fn=50 ); - + translate([-5, -14, 22.5]) rotate([0, 90, 0]) cylinder(h = 10, r = 10, $fn = 30); + + // pulley screw axis + translate([-13.5, -14, 22.5]) rotate([0, 90, 0]) cylinder(h = 30, r = 1.6, $fn = 50); + translate([-14, -14, 22.5]) rotate([0, 90, 0]) cylinder(h = 7, r = 3.1, $fn = 6); + translate([-14, -14, 22.5]) rotate([0, 90, 0]) cylinder(h = 4, r2 = 3.1, r1 = 4, $fn = 6); + translate([8, -14, 22.5]) rotate([0, 90, 0]) cylinder(h = 6, r = 3.1, $fn = 50); + // selective infill - translate([-10,-18,18]) cube([3,17,0.5]); - translate([8,-18,18]) cube([3,17,0.5]); - translate([-10,-18,27]) cube([3,17,0.5]); - translate([8,-18,27]) cube([3,17,0.5]); - translate([-10,-17,16]) cube([3,15,0.5]); - translate([8,-17,16]) cube([3,15,0.5]); - translate([-10,-16,29]) cube([3,15,0.5]); - translate([8,-16,29]) cube([3,15,0.5]); - translate([-8,-2,30]) cube([16,1,0.5]); - translate([-8,-2,13]) cube([16,1,0.5]); - + translate([-10, -18, 18]) cube([3, 17, 0.5]); + translate([8, -18, 18]) cube([3, 17, 0.5]); + translate([-10, -18, 27]) cube([3, 17, 0.5]); + translate([8, -18, 27]) cube([3, 17, 0.5]); + translate([-10, -17, 16]) cube([3, 15, 0.5]); + translate([8, -17, 16]) cube([3, 15, 0.5]); + translate([-10, -16, 29]) cube([3, 15, 0.5]); + translate([8, -16, 29]) cube([3, 15, 0.5]); + translate([-8, -2, 30]) cube([16, 1, 0.5]); + translate([-8, -2, 13]) cube([16, 1, 0.5]); + // upper side mark - translate([8.5,-3.5,39]) rotate([0,0,0]) cylinder( h=2, r=1.5, $fn=30 ); - - //version - translate([3.5,-0.5,20]) rotate([90,0,180]) linear_extrude(height = 0.6) - { text("R2",font = "helvetica:style=Bold", size=4, center=true); } + translate([8.5, -3.5, 39]) rotate([0, 0, 0]) cylinder(h = 2, r = 1.5, $fn = 30); + + //version + translate([3.5, -0.5, 20]) rotate([90, 0, 180]) linear_extrude(height = 0.6) + { text("R2", font = "helvetica:style = Bold", size = 4, center = true); } } - -} - -rotate([-90,0,0]) Y_belt_idler(); +} + +rotate([-90, 0, 0]) Y_belt_idler(); diff --git a/Printed-Parts/scad/y-motor-holder.scad b/Printed-Parts/scad/y-motor-holder.scad index cabee2c4..d7aa842d 100644 --- a/Printed-Parts/scad/y-motor-holder.scad +++ b/Printed-Parts/scad/y-motor-holder.scad @@ -10,90 +10,86 @@ module holder() difference() { // base body - translate([-6,-1.5,0]) cube([19,42,47]); + translate([-6, -1.5, 0]) cube([19, 42, 47]); // shape cuts - translate([-20,19.5,26]) rotate([0,90,0]) cylinder( h=35, r=11.5, $fn=50 ); - translate([-11,20,15]) cube([26,23,64]); - translate([-20,5.5,-1]) cube([26,41,64]); - translate([-20,-5,37]) cube([26,21,20]); - translate([-20,-1,37]) cube([26,30,20]); - + translate([-20, 19.5, 26]) rotate([0, 90, 0]) cylinder(h = 35, r = 11.5, $fn = 50); + translate([-11, 20, 15]) cube([26, 23, 64]); + translate([-20, 5.5, -1]) cube([26, 41, 64]); + translate([-20, -5, 37]) cube([26, 21, 20]); + translate([-20, -1, 37]) cube([26, 30, 20]); + // lower motor screw - translate([-20,35 ,10.5]) rotate([0,90,0]) cylinder( h=40, r=1.65, $fn=50 ); - translate([-7,35,10.5]) rotate([0,90,0]) cylinder( h=15, r=3.1, $fn=50 ); - - // upper motor screw - translate([-20,4,41.5]) rotate([0,90,0]) cylinder( h=40, r=1.65, $fn=50 ); - translate([4,4,41.5]) rotate([0,90,0]) cylinder( h=4, r=3.1, $fn=50 ); - - // lower frame screw - translate([0,12,7]) rotate([90,0,0]) cylinder( h=40, r=1.6, $fn=50 ); - translate([0,7,7]) rotate([90,0,0]) cylinder( h=5, r=3.1, $fn=6 ); - translate([0,6.6,7]) rotate([90,0,0]) cylinder( h=2, r2=3.1, r1=4, $fn=6 ); - - // upper frame screw - translate([0,12,29]) rotate([90,0,0]) cylinder( h=40, r=1.6, $fn=50 ); - translate([0,7,29]) rotate([90,0,0]) cylinder( h=5, r=3.1, $fn=6 ); - translate([0,6.6,29]) rotate([90,0,0]) cylinder( h=2, r2=3.1, r1=4, $fn=6 ); + translate([-20, 35, 10.5]) rotate([0, 90, 0]) cylinder(h = 40, r = 1.65, $fn = 50); + translate([-7, 35, 10.5]) rotate([0, 90, 0]) cylinder(h = 15, r = 3.1, $fn = 50); + + // upper motor screw + translate([-20, 4, 41.5]) rotate([0, 90, 0]) cylinder(h = 40, r = 1.65, $fn = 50); + translate([4, 4, 41.5]) rotate([0, 90, 0]) cylinder(h = 4, r = 3.1, $fn = 50); + + // lower frame screw + translate([0, 12, 7]) rotate([90, 0, 0]) cylinder(h = 40, r = 1.6, $fn = 50); + translate([0, 7, 7]) rotate([90, 0, 0]) cylinder(h = 5, r = 3.1, $fn = 6); + translate([0, 6.6, 7]) rotate([90, 0, 0]) cylinder(h = 2, r2 = 3.1, r1 = 4, $fn = 6); + + // upper frame screw + translate([0, 12, 29]) rotate([90, 0, 0]) cylinder(h = 40, r = 1.6, $fn = 50); + translate([0, 7, 29]) rotate([90, 0, 0]) cylinder(h = 5, r = 3.1, $fn = 6); + translate([0, 6.6, 29]) rotate([90, 0, 0]) cylinder(h = 2, r2 = 3.1, r1 = 4, $fn = 6); // corners - translate([-10,20,42]) rotate([45,0,0]) cube([60,10,10]); - translate([-10,-5,42]) rotate([45,0,0]) cube([60,10,10]); - translate([-10,38,-7]) rotate([45,0,0]) cube([60,20,10]); - translate([-10,43,10]) rotate([45,0,0]) cube([60,20,20]); - translate([-14,-10,-2]) rotate([0,45,0]) cube([10,50,10]); - translate([-14,-10,37]) rotate([0,45,0]) cube([10,50,10]); - translate([18,-10,-5]) rotate([0,0,45]) cube([10,10,60]); + translate([-10, 20, 42]) rotate([45, 0, 0]) cube([60, 10, 10]); + translate([-10, -5, 42]) rotate([45, 0, 0]) cube([60, 10, 10]); + translate([-10, 38, -7]) rotate([45, 0, 0]) cube([60, 20, 10]); + translate([-10, 43, 10]) rotate([45, 0, 0]) cube([60, 20, 20]); + translate([-14, -10, -2]) rotate([0, 45, 0]) cube([10, 50, 10]); + translate([-14, -10, 37]) rotate([0, 45, 0]) cube([10, 50, 10]); + translate([18, -10, -5]) rotate([0, 0, 45]) cube([10, 10, 60]); } - + // reinforcement - translate([7.8,1.9,0]) rotate([0,0,55]) cube([5,5,18]); + translate([7.8, 1.9, 0]) rotate([0, 0, 55]) cube([5, 5, 18]); difference() - { - translate([7.8,1.9,13.6]) rotate([0,0,55]) cube([5,5,23.4]); - translate([-20,19.5,26]) rotate([0,90,0]) cylinder( h=35, r=12, $fn=30 ); - } - + { + translate([7.8, 1.9, 13.6]) rotate([0, 0, 55]) cube([5, 5, 23.4]); + translate([-20, 19.5, 26]) rotate([0, 90, 0]) cylinder(h = 35, r = 12, $fn = 30); + } + } - + module y_motor_holder() { - rotate([0,90,0]) + rotate([0, 90, 0]) difference() - { + { holder(); - + // selective infill - translate([-0,3.4,33.3]) cube([12,0.5,2]); - translate([-0,1.6,33.3]) cube([12,0.5,2]); - translate([-0,-0.2,32.8]) cube([12,0.5,2.5]); - - translate([-1.75,-0.2,1.4]) cube([13.75,0.5,2.2]); - translate([-1.75,1.6,1.4]) cube([13.75,0.5,1.6]); - translate([-1.75,3.4,1.4]) cube([13.75,0.5,1.6]); - - translate([-5,-0.1,14.1]) cube([17,0.5,6.4]); - translate([-5,1.9,14.1]) cube([17,0.5,6.4]); - - translate([-5,3.7,14.1]) cube([17,0.5,6.4]); - - translate([-5,4.2,13]) rotate([90,0,0]) cube([17,0.5,4.3]); - - translate([-5,4.2,11.5]) rotate([90,0,0]) cube([17,0.5,4.3]); - - translate([-5,4.2,21]) rotate([90,0,0]) cube([17,0.5,4.3]); - translate([-5,4.2,22.5]) rotate([90,0,0]) cube([17,0.5,4.3]); - translate([-5,4.2,24]) rotate([90,0,0]) cube([17,0.5,4.3]); + translate([-0, 3.4, 33.3]) cube([12, 0.5, 2]); + translate([-0, 1.6, 33.3]) cube([12, 0.5, 2]); + translate([-0, -0.2, 32.8]) cube([12, 0.5, 2.5]); + + translate([-1.75, -0.2, 1.4]) cube([13.75, 0.5, 2.2]); + translate([-1.75, 1.6, 1.4]) cube([13.75, 0.5, 1.6]); + translate([-1.75, 3.4, 1.4]) cube([13.75, 0.5, 1.6]); + + translate([-5, -0.1, 14.1]) cube([17, 0.5, 6.4]); + translate([-5, 1.9, 14.1]) cube([17, 0.5, 6.4]); + + translate([-5, 3.7, 14.1]) cube([17, 0.5, 6.4]); + + translate([-5, 4.2, 13]) rotate([90, 0, 0]) cube([17, 0.5, 4.3]); + + translate([-5, 4.2, 11.5]) rotate([90, 0, 0]) cube([17, 0.5, 4.3]); + + translate([-5, 4.2, 21]) rotate([90, 0, 0]) cube([17, 0.5, 4.3]); + translate([-5, 4.2, 22.5]) rotate([90, 0, 0]) cube([17, 0.5, 4.3]); + translate([-5, 4.2, 24]) rotate([90, 0, 0]) cube([17, 0.5, 4.3]); //version - translate([-1,-1,15]) rotate([90,0,0]) linear_extrude(height = 0.6) - { text("R3",font = "helvetica:style=Bold", size=5, center=true); } - - - } -} - -y_motor_holder(); - - - \ No newline at end of file + translate([-1, -1, 15]) rotate([90, 0, 0]) linear_extrude(height = 0.6) + { text("R3", font = "helvetica:style = Bold", size = 5, center = true); } + + } +} + +y_motor_holder(); diff --git a/Printed-Parts/scad/y-rod-holder.scad b/Printed-Parts/scad/y-rod-holder.scad index 26b7c33d..8a706124 100644 --- a/Printed-Parts/scad/y-rod-holder.scad +++ b/Printed-Parts/scad/y-rod-holder.scad @@ -9,86 +9,85 @@ 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]); + 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() +module part() { - difference() { union() { // body block - difference() { - translate([-13,-3,0]) cube([26,10,12]); - + 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]); + 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]); + 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 ); + 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 ); + 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]); + 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]); - + 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]); + // 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(); - - +rotate([90, 0, 0]) part(); diff --git a/Printed-Parts/scad/z-axis-bottom.scad b/Printed-Parts/scad/z-axis-bottom.scad index 235ec812..e64ced5d 100644 --- a/Printed-Parts/scad/z-axis-bottom.scad +++ b/Printed-Parts/scad/z-axis-bottom.scad @@ -7,115 +7,102 @@ 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 + 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]); + 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]); + 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); + 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]); + 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 + 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() + translate([25 + 4.3, 20, -1]) { - 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]); - - } - - } -} + 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() { @@ -127,8 +114,8 @@ module z_bottom_right() 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); } + translate([7.3, 25, 14]) rotate([90, 180, 90]) linear_extrude(height = 0.6) + { text("R3", font = "helvetica:style = Bold", size = 5, center = true); } } } @@ -136,33 +123,17 @@ module z_bottom_left() { difference() { - translate([0,-13,0]) mirror([0,1,0]) + 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); } + 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 index be34014d..d46a1989 100644 --- a/Printed-Parts/scad/z-axis-top.scad +++ b/Printed-Parts/scad/z-axis-top.scad @@ -7,101 +7,101 @@ 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); + 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]); + 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]); + 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]); + 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]); - + 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]); + 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]); - + 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]); + 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); + 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]); + 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); - + 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); + 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 - + 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]); - + 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(){ +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); } + //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]) +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); } + 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 index 345f5f70..eac737e9 100644 --- a/Printed-Parts/scad/z-screw-cover.scad +++ b/Printed-Parts/scad/z-screw-cover.scad @@ -5,29 +5,28 @@ // 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, 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, 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); +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 + { + 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); +} diff --git a/README.md b/README.md index c6730a5b..28cd42fa 100644 --- a/README.md +++ b/README.md @@ -15,4 +15,3 @@ This repository contains SCAD files and STLs of the printed parts. * MK52 heatbed : https://github.com/prusa3d/Heatbed_MK52_magnetic * Laser filament sensor : https://github.com/prusa3d/PRUSA_Laser_filament_sensor * MK3 Power panic : https://github.com/prusa3d/MK3_Power_Panic -