From c77b10b1ea268f8a90c76abf9f7d43147d4c082f Mon Sep 17 00:00:00 2001 From: Josef Prusa Date: Tue, 20 Jan 2015 16:33:26 +0100 Subject: [PATCH] New slim extruder scad files --- src/extruder-big-gear-slim.scad | 32 ++++ src/extruder-block-slim-tight.scad | 269 +++++++++++++++++++++++++++++ src/extruder-block-slim.scad | 162 +++++++++++++++++ src/extruder-idler.scad | 15 +- src/extruder-small-gear.scad | 9 +- src/groovemount.scad | 17 ++ 6 files changed, 499 insertions(+), 5 deletions(-) create mode 100755 src/extruder-big-gear-slim.scad create mode 100755 src/extruder-block-slim-tight.scad create mode 100755 src/extruder-block-slim.scad mode change 100644 => 100755 src/extruder-idler.scad mode change 100644 => 100755 src/extruder-small-gear.scad create mode 100755 src/groovemount.scad diff --git a/src/extruder-big-gear-slim.scad b/src/extruder-big-gear-slim.scad new file mode 100755 index 0000000..31c6fbd --- /dev/null +++ b/src/extruder-big-gear-slim.scad @@ -0,0 +1,32 @@ +// PRUSA iteration3 +// NEMA 17 extruder big gear +// GNU GPL v3 +// Josef Průša and contributors +// http://www.reprap.org/wiki/Prusa_Mendel +// http://prusamendel.org + + +include ; + +module big_gear() +{ + translate ([0,0,0]) + difference(){ + union(){ + gear ( + number_of_teeth=36, + circular_pitch=335, + rim_thickness=5, + bore_diameter=4.8); + translate ([0,0,4]) cylinder(r1=24/2, r2=18/2, h=6, $fn=6);} + translate ([0,0,4]) cylinder(r=9/2, h=7, $fn=6); + for (f = [0 : 5]) // two iterations, z = -1, z = 1 + { + rotate([0,0,f*60+30]) translate ([20,0,-0.1]) rotate([0,0,30]) cylinder(r=8, h=7, $fn=6); + } + + translate ([0,0,-1]) cylinder(r=5/2, h=7, $fn=30); + } + +} +big_gear(); \ No newline at end of file diff --git a/src/extruder-block-slim-tight.scad b/src/extruder-block-slim-tight.scad new file mode 100755 index 0000000..ee786b6 --- /dev/null +++ b/src/extruder-block-slim-tight.scad @@ -0,0 +1,269 @@ +// PRUSA iteration3 +// NEMA 17 extruder body +// GNU GPL v3 +// Michal Prusa tight edition +// Josef Průša , Kliment Yanev and contributors +// http://www.reprap.org/wiki/Prusa_Mendel +// http://prusamendel.org + + + + + + +module nozzlemount(){ + // Filament hole + rotate([0,90,0]) cylinder(r=2, h=70, $fn=30); + + // Tapered filament intake after the drive gear + translate([17,0,0]) rotate([0,90,0]) cylinder(r2=3,r1=2, h=10, $fn=30); + + translate([-1,0,0]) rotate([0,90,0]) cylinder(r=8, h=4); + + // Front nozzle mount hole + translate([-2,15,0]) rotate([0,90,0]) cylinder(r=2, h=70); + + // Front nozzle mount hole NUT TRAP + translate([10-5,15,0]) rotate([0,90,0]) rotate([0,0,30]) cylinder(r=3.3, h=70,$fn=6); + + // Back nozzle mount hole + translate([-2,-25,0]) rotate([0,90,0]) cylinder(r=2, h=70); + + // Back nozzle mount hole NUT TRAP + translate([10-5,-25,0]) rotate([0,90,0]) rotate([0,0,30])cylinder(r=3.3, h=70,$fn=6); +} + +motor_lenght = 30; + + +// Calculated values + + // Total height of the part is motor lenght plus front plate + total_height = motor_lenght + 4; + +difference(){ +union(){ + // Base where drive gear is placed + translate([0,-1,0])cube([42,19,total_height]); + + // Front plate (where motor mount is cutout) + translate([0-5,-42,0]) cube([75,42,4]); + + // Base plate (nozzle is secured to it) + translate([-8.99-2,-25.5,0]) cube([9+2,63,total_height]); + + // IDLER retainer + translate([-1,30,0]) cube([6, 7, total_height]); + + // motor mount reinfocement + difference(){ + union(){ + translate([0,-15,0]) cube([25,10,15]); + //translate([0,-35,0]) cube([25,10,15]); + } + translate([50,-40,-3]) rotate([0,-70,0]) cube([12,42,90]); + } + + // Body reinforcement + translate([0,2,0])difference(){ + union(){ + translate([14.45,-5,0]) cube([13,2,total_height]); + + } + translate([39.7,-20,-3]) rotate([0,0,45]) cube([12,20,90]); + translate([13.5,-20,-3]) rotate([0,0,45]) cube([12,20,90]); + } + + + + + // Top bridge holding idler retainer form springing + translate([-1,15,total_height-1]) cube([6, 20, 1]); + + // Bottom bridge holding idler retainer form springing + translate([-1,15,total_height-30]) cube([6, 20, 2]); +} + +//Pretty corners + + // Cutaway corner base plate (motor side) + + translate([-15,-28.3,-0+(total_height-54)]) rotate([23,0,0]) cube([20,12,50]); + translate([-15,-75,-1])rotate([0,0,45])cube([40,40,60]); + translate([0,-79,-1])rotate([0,0,45])cube([40,40,60]); + translate([0,-75.01,-1])cube([25,40,60]); + + translate([10,-34,-10])rotate([0,0,20])cylinder(r=15, h=30); + translate([9.5,-34,-10])rotate([0,0,20])cylinder(r=15, h=30); + + translate([34,-82,-1])rotate([0,0,45])cube([25,40,60]); + + // Cutaway corner base plate (idler side) + translate([-32,12,-1])rotate([0,0,45])cube([40,40,60]); + + // Cutaway corner base block (idler side) + translate([46.5,12,-1])rotate([0,0,45])cube([40,40,60]); + + // Cutaway corner base block (motor side) + translate([55,-43,4.01])rotate([0,0,45])cube([40,40,60]); + + // Cutaway corner idler retainer + translate([6,31,-1])rotate([0,0,45])cube([40,40,60]); + +// Pretty cutouts + // Idler retainer pretty cuts + translate([-10,27,-0+(total_height-54)]) rotate([-23,0,0]) cube([20,12,50]); + translate([0,27,7+(total_height-52)]) rotate([0,23,0]) cube([20,12,50]); + + // Base plate pretty cut + //translate([-11,-66+5,-2+14]) rotate([-23,0,0]) cube([12,20,90]); + + translate([75,-10,-10]) rotate([0,0,45]) cube([12,20,90]); + translate([60,-21,-10]) rotate([0,0,-45]) cube([12,20,90]); + translate([35,-45,-10]) rotate([0,0,-45]) cube([12,20,90]); + + + + // Motor mount + translate([27.5,-1,0.5]){ + + //#translate([0,-42,4.1])cube([42,41.999,total_height-4]); // MOTOR Clearance!! + + // Motor axis circle cut + translate([21,-21,-1]) cylinder(r=12, h=5, $fn=90); + + // Motor axis circle cut + translate([21,-21,-10]) cylinder(r=2, h=50, $fn=90); + + + // Material and warp saving cut + translate([15,-45,-1]) cube([30,30,5]); + + // Motor screw holes + translate([21+16,-21+15,-1]) cylinder(r=2, h=5); + translate([21-15,-21+15.5,-1]) cylinder(r=2, h=5); + translate([21-15,-21-15.9,-1]) cylinder(r=2, h=5); + + +} + + + + +// Shaft cutouts + + // Main shaft cylinder cut + translate([21,8.1,7.5]) cylinder(r=6, h=total_height-9, $fn=50); + // Main shaft box cut + translate([-6+21,8,7.5]) cube([12,12,total_height-12]); + + // Entry main shaft cylinder cut + translate([21,8.1,-1]) cylinder(r=6, h=3, $fn=50); + // Entry main shaft box cut + translate([-6+21,8,-50+7]) cube([12,12,50]); + + // Front axis bearing cylinder cut + translate([21,8.1,1]) cylinder(r=8.1, h=6, $fn=50); + // Front axis bearing box cut + translate([13,8,1]) cube([16.2,20,6]); + + // Back axis bearing cylinder cut + translate([21,8.1,-5+total_height-4]) cylinder(r=8.1, h=7.5, $fn=50); + // Back axis bearing box cut + translate([13,8,total_height-9]) cube([16.2,20,7.5]); + + + +// X-carriage mounting holes +translate([-5,5,0]){ + translate([0,0,-1])rotate([0,0,0])cylinder(r=3.3, h=total_height-10+1, $fn=15); + translate([0,0-24,-1])rotate([0,0,0])cylinder(r=3.3, h=total_height-10+1, $fn=15); + translate([0,0,total_height-22])rotate([0,0,0])cylinder(r=3.3/2, h=70, $fn=15); + translate([0,0-24,total_height-22])rotate([0,0,0])cylinder(r=3.3/2, h=70, $fn=15); +} + +// Idler nuts, filament channel and 608 idler bearing cut +translate([0,0,-(52-total_height)-2]){ + // Nozzle mounting holes + translate([-10,2+8+4,52-12]) nozzlemount(); + // Front idler screw nut trap + translate([32.5,7,52-12-7-3]) cube([15,3,5.7]); + // Back idler screw nut trap + translate([32.5,7,52-12-7-3+14]) cube([15,3,5.7]); + + // Back top idler screw hole + translate([5+32,-1,52-12+7]) rotate([0,90,90]) rotate([0,0,30]) cylinder(r=2, h=40, $fn=6); + // Back bottom idler screw hole + translate([5+32,-1,52-12-7]) rotate([0,90,90]) rotate([0,0,30]) cylinder(r=2, h=40, $fn=6); + // Front top idler screw hole + translate([5+31,-1,52-12+7]) rotate([0,90,90]) rotate([0,0,30]) cylinder(r=2, h=40, $fn=6); + // Front bottom idler screw hole + translate([5+31,-1,52-12-7]) rotate([0,90,90]) rotate([0,0,30]) cylinder(r=2, h=40, $fn=6); + + // Idler 608 bearing cutout + translate([21,24,35]) cylinder(r=12, h=17.5, $fn=90); + + +} + + +} + + + + + +include ; + + +module small_gear() +{ + translate([0,0,0]) + { + + rotate([0,180,0])translate ([-48.5,-22,-10]) + difference(){ + union(){ + rotate ([0,0,360*-1/20]) gear (number_of_teeth=8, + circular_pitch=335,rim_thickness=20,bore_diameter=0,hub_thickness=0); + cylinder(r=11, h=9); + + translate([-21,-21,-15]) cube([42,42,20]); + + } + + + translate ([0,0,-1]) cylinder(r=5/2, h=25, $fn=30); + translate ([0,0,4.5]) rotate([90,0,0]) cylinder(r=3/2, h=25, $fn=30); + translate ([-5.7/2,-7,-0.1]) cube([5.7,3,8]); + + } + } + +} + +//small_gear(); + +module big_gear() +{ + rotate([0,180,0])translate ([-21,8.1,2])rotate([0,0,17.2]) + difference(){ + union(){ + gear ( + number_of_teeth=36, + circular_pitch=335, + rim_thickness=5, + bore_diameter=4.8); + translate ([0,0,4]) cylinder(r1=24/2, r2=18/2, h=6, $fn=6);} + translate ([0,0,4]) cylinder(r=9/2, h=7, $fn=6); + for (f = [0 : 5]) // two iterations, z = -1, z = 1 + { + rotate([0,0,f*60+30]) translate ([20,0,-0.1]) rotate([0,0,30]) cylinder(r=8, h=7, $fn=6); + } + + translate ([0,0,-1]) cylinder(r=5/2, h=7, $fn=30); + } + +} +//big_gear(); + diff --git a/src/extruder-block-slim.scad b/src/extruder-block-slim.scad new file mode 100755 index 0000000..9568bbf --- /dev/null +++ b/src/extruder-block-slim.scad @@ -0,0 +1,162 @@ +// PRUSA iteration3 +// NEMA 17 extruder body +// GNU GPL v3 +// Josef Průša , Kliment Yanev and contributors +// http://www.reprap.org/wiki/Prusa_Mendel +// http://prusamendel.org + +module nozzlemount(){ + // Filament hole + rotate([0,90,0]) cylinder(r=2, h=70, $fn=30); + + // Tapered filament intake after the drive gear + translate([17,0,0]) rotate([0,90,0]) cylinder(r2=3,r1=2, h=10, $fn=30); + + translate([-1,0,0]) rotate([0,90,0]) cylinder(r=8, h=4); + + // Front nozzle mount hole + translate([-2,15,0]) rotate([0,90,0]) cylinder(r=2, h=70); + + // Front nozzle mount hole NUT TRAP + translate([10-5,15,0]) rotate([0,90,0]) rotate([0,0,30]) cylinder(r=3.3, h=70,$fn=6); + + // Back nozzle mount hole + translate([-2,-25,0]) rotate([0,90,0]) cylinder(r=2, h=70); + + // Back nozzle mount hole NUT TRAP + translate([10-5,-25,0]) rotate([0,90,0]) rotate([0,0,30])cylinder(r=3.3, h=70,$fn=6); +} + +motor_lenght = 30; + + +// Calculated values + + // Total height of the part is motor lenght plus front plate + total_height = motor_lenght + 4; + +difference(){ +union(){ + // Base where drive gear is placed + translate([0,-1,0])cube([42,19,total_height]); + + // Front plate (where motor mount is cutout) + translate([0-5,-42-11,0]) cube([42+5,42+3+11,4]); + + // Base plate (nozzle is secured to it) + translate([-8.99-2,-42,0]) cube([9+2,80,total_height]); + + // IDLER retainer + translate([-1,30,0]) cube([6, 7, total_height]); + + // Top bridge holding idler retainer form springing + translate([-1,15,total_height-1]) cube([6, 20, 1]); + + // Bottom bridge holding idler retainer form springing + translate([-1,15,total_height-30]) cube([6, 20, 2]); +} + +//Pretty corners + + // Cutaway corner base plate (motor side) + translate([-11,-91,-1])rotate([0,0,45])cube([40,40,60]); + // Cutaway corner base plate (idler side) + translate([-32,12,-1])rotate([0,0,45])cube([40,40,60]); + + // Cutaway corner base block (idler side) + translate([46,12,-1])rotate([0,0,45])cube([40,40,60]); + + // Cutaway corner idler retainer + translate([6,31,-1])rotate([0,0,45])cube([40,40,60]); + +// Pretty cutouts + // Idler retainer pretty cuts + translate([-10,27,-0+(total_height-54)]) rotate([-23,0,0]) cube([20,12,50]); + translate([0,27,7+(total_height-52)]) rotate([0,23,0]) cube([20,12,50]); + + // Base plate pretty cut + translate([-11,-66+5,-2+14]) rotate([-23,0,0]) cube([12,20,90]); + +// Motor mount +translate([0,-1-10,0.5]){ + + // Motor axis circle cut + translate([21,-21,-1]) cylinder(r=12, h=5, $fn=90); + + // Material and warp saving cut + translate([15,-45,-1]) cube([30,30,5]); + + // Motor screw holes + translate([21+16,-21+15,-1]) cylinder(r=2, h=5); + translate([21-15,-21+15.5,-1]) cylinder(r=2, h=5); + translate([21-15,-21-15.9,-1]) cylinder(r=2, h=5); + +//translate([21+15.5,-21+15.5,-1]) cylinder(r=2, h=5); +//translate([21+15.5,-21-15.5,-1]) cylinder(r=2, h=5); +//translate([21-15.5,-21+15.5,-1]) cylinder(r=2, h=5); +//translate([21-15.5,-21-15.5,-1]) cylinder(r=2, h=5); +} + +// Motor cables hole +translate([-5,-35,40.6]) cube([15,18,13]); + + + +// Shaft cutouts + + // Main shaft cylinder cut + translate([21,8.1,7.5]) cylinder(r=6, h=total_height-9, $fn=50); + // Main shaft box cut + translate([-6+21,8,7.5]) cube([12,12,total_height-12]); + + // Entry main shaft cylinder cut + translate([21,8.1,-1]) cylinder(r=6, h=3, $fn=50); + // Entry main shaft box cut + translate([-6+21,8,-50+7]) cube([12,12,50]); + + // Front axis bearing cylinder cut + translate([21,8.1,1]) cylinder(r=8.1, h=6, $fn=50); + // Front axis bearing box cut + translate([13,8,1]) cube([16.2,20,6]); + + // Back axis bearing cylinder cut + translate([21,8.1,-5+total_height-4]) cylinder(r=8.1, h=7.5, $fn=50); + // Back axis bearing box cut + translate([13,8,total_height-9]) cube([16.2,20,7.5]); + + + +// X-carriage mounting holes +translate([-5,5,0]){ + translate([0,0,-1])rotate([0,0,0])cylinder(r=3.3, h=total_height-10+1, $fn=15); + translate([0,0-24,-1])rotate([0,0,0])cylinder(r=3.3, h=total_height-10+1, $fn=15); + translate([0,0,total_height-22])rotate([0,0,0])cylinder(r=3.3/2, h=70, $fn=15); + translate([0,0-24,total_height-22])rotate([0,0,0])cylinder(r=3.3/2, h=70, $fn=15); +} + +// Idler nuts, filament channel and 608 idler bearing cut +translate([0,0,-(52-total_height)-2]){ + // Nozzle mounting holes + translate([-10,2+8+4,52-12]) nozzlemount(); + // Front idler screw nut trap + translate([32.5,7,52-12-7-3]) cube([15,3,5.7]); + // Back idler screw nut trap + translate([32.5,7,52-12-7-3+14]) cube([15,3,5.7]); + + // Back top idler screw hole + translate([5+32,-1,52-12+7]) rotate([0,90,90]) rotate([0,0,30]) cylinder(r=2, h=40, $fn=6); + // Back bottom idler screw hole + translate([5+32,-1,52-12-7]) rotate([0,90,90]) rotate([0,0,30]) cylinder(r=2, h=40, $fn=6); + // Front top idler screw hole + translate([5+31,-1,52-12+7]) rotate([0,90,90]) rotate([0,0,30]) cylinder(r=2, h=40, $fn=6); + // Front bottom idler screw hole + translate([5+31,-1,52-12-7]) rotate([0,90,90]) rotate([0,0,30]) cylinder(r=2, h=40, $fn=6); + + // Idler 608 bearing cutout + translate([21,24,35]) cylinder(r=12, h=17.5, $fn=90); + + +} + + +} \ No newline at end of file diff --git a/src/extruder-idler.scad b/src/extruder-idler.scad old mode 100644 new mode 100755 index bbe7e3b..fa54f6b --- a/src/extruder-idler.scad +++ b/src/extruder-idler.scad @@ -17,7 +17,7 @@ module extruder_idler_holes(){ // Main cutout cube([11,23,25], center= true); // Idler shaft - translate([-12,0,4.1+2])rotate([0,90,0])cylinder(r=4.1, h=24); + #translate([-13.25,0,4.1+2])rotate([0,90,0])cylinder(r=4.1, h=24); // Screw holes //translate([7,-16,-1])cylinder(r=2.2, h=24); //translate([-7,-16,-1])cylinder(r=2.2, h=24); @@ -38,4 +38,15 @@ module idler(){ } } -idler(); \ No newline at end of file +idler(); +difference(){ +translate([0.25,11,-1]) cube([6.25,20,2]); +translate([0.25,5,3.25])rotate([-45,0,0]) cube([6.25,20,2]); +translate([0.25,30.5,-3.25])rotate([45,0,0]) cube([6.25,20,2]); +} +translate([17.25,0,0]) +difference(){ +translate([0.25,11,-1]) cube([6.75,20,2]); +translate([0.25,5,3.25])rotate([-45,0,0]) cube([6.75,20,2]); +translate([0.25,30.5,-3.25])rotate([45,0,0]) cube([6.75,20,2]); +} diff --git a/src/extruder-small-gear.scad b/src/extruder-small-gear.scad old mode 100644 new mode 100755 index d1e3350..b52323b --- a/src/extruder-small-gear.scad +++ b/src/extruder-small-gear.scad @@ -15,14 +15,17 @@ module small_gear() translate ([30,0,0]) difference(){ + union(){ rotate ([0,0,360*-1/20]) gear (number_of_teeth=8, circular_pitch=335,rim_thickness=20,bore_diameter=0,hub_thickness=0); + cylinder(r=11, h=9); + } - difference(){ translate ([0,0,-1]) cylinder(r=5/2, h=25, $fn=30); - translate ([-5,1.5,0])cube([10,10,30]); - } + translate ([0,0,4.5]) rotate([90,0,0]) cylinder(r=3/2, h=25, $fn=30); + translate ([-5.7/2,-7,-0.1]) cube([5.7,3,8]); + } } } diff --git a/src/groovemount.scad b/src/groovemount.scad new file mode 100755 index 0000000..3c2ce5f --- /dev/null +++ b/src/groovemount.scad @@ -0,0 +1,17 @@ +difference(){ +cube([50,20,6]); + +translate([5,10,0])cylinder(r=3.5,h=3.2); +translate([45,10,0])cylinder(r=3.5,h=3.2); + +translate([5,10,3.5])cylinder(r=2,h=3.5); +translate([45,10,3.5])cylinder(r=2,h=3.5); + + +translate([20,10,0])cylinder(r=6.1,h=10); +translate([20,10,4.5])cylinder(r=8.5,h=10); + +translate([20-6.1,0,0]) cube([12.2,10,10]); + +translate([20-8.5,0,4.5]) cube([17,10,10]); +} \ No newline at end of file