Groovemount option
[clinton/prusa3.git] / src / compact-extruder.scad
CommitLineData
e6b2166c 1// PRUSA iteration3
2// Compact extruder
3// GNU GPL v3
4// Josef Průša <iam@josefprusa.cz> and contributors
5// http://www.reprap.org/wiki/Prusa_Mendel
6// http://prusamendel.org
7
81aeaf15 8include <../configuration.scad>
c2b6a5ce 9
e6b2166c 10module extruder_base(){
11 // Main body
12 translate([-1,-2,0]) cube([22,56,24]);
13 // Extruder plate mount
81aeaf15
AR
14 if (hotend_mount == 1) { // groove-mount
15 translate([-16,49,0]) cube([55,5 + hotend_groovemount_depth - 1.5,24]);
16 } else {
17 translate([-16,49,0]) cube([55,5,24]);
18 }
19
e6b2166c 20 // Carriage mount cylinders
c2b6a5ce 21 translate([11,25,0]){
e6b2166c 22 translate([-12,24,0]) cylinder(r=5, h=24);
23 translate([12,24,0]) cylinder(r=5, h=24);
24 }
25}
26
27module extruder_holes(){
28 translate([11,25,0]){ // Translate to center of the main block
29 // Main shaft opening
30 translate([0,0,-1]) cylinder(r=8.5, h=26);
31 // Lower motor mount hole
c2b6a5ce 32 translate([0,21,-1]) cylinder(r=2, h=22);
e6b2166c 33 // Upper motor mount hole
c2b6a5ce 34 translate([0,-21,-1]) cylinder(r=2, h=22);
e6b2166c 35 // Lower motor mount hole screw head
c2b6a5ce 36 translate([0,21,3]) cylinder(r=3.5, h=22);
e6b2166c 37 // Upper motor mount hole screw head
c2b6a5ce 38 translate([0,-21,3]) cylinder(r=3.5, h=22);
e6b2166c 39 // Carriage mount right screw head hole
40 translate([-12,24,-3]) cylinder(r=3.5, h=23);
41 // Carriage mount left screw head hole
42 translate([12,24,-3]) cylinder(r=3.5, h=23);
43 // Carriage mount right screw hole
44 translate([-12,24,20.5]) cylinder(r=2, h=23);
45 // Carriage mount left screw head hole
46 translate([12,24,20.5]) cylinder(r=2, h=23);
47 // Idler bearing cutout
c2b6a5ce 48 translate([11,0,-4.5+10]) cylinder(r=11, h=20);
49 }
e6b2166c 50 // Filament path
51 translate([1.5+11+3.5,65,11]) rotate([90,0,0]) cylinder(r=2, h=70);
81aeaf15
AR
52 if (hotend_mount == 1) {
53 // Hole for hotend
54 translate([1.5+11+3.5,65,11]) rotate([90,0,0]) cylinder(r=hotend_groovemount_diameter/2, h=12.5);
55 }
e6b2166c 56 // Hole for drive gear check
57 translate([1.5+11+3.5-30,25,11]) rotate([90,0,90]) cylinder(r=4, h=70, $fn=20);
58 // Left extruder plate mounting hole
59 translate([1.5+11+3.5+15,65,11]) rotate([90,0,0]) cylinder(r=2, h=70);
60 // Right extruder plate mounting hole
61 translate([1.5+11+3.5-25,65,11]) rotate([90,0,0]) cylinder(r=2, h=70);
62 // Idler mounting holse
63 translate([11,25,10]){
64 // Nut traps
65 translate([-30,15,-5]) rotate([0,90,0]) rotate([0,0,30]) cylinder(r=3.1, h=30, $fn=6);
66 translate([-30,-15,-5]) rotate([0,90,0]) rotate([0,0,30]) cylinder(r=3.1, h=30, $fn=6);
67 translate([-30,15,5]) rotate([0,90,0]) rotate([0,0,30]) cylinder(r=3.1, h=30, $fn=6);
68 translate([-30,-15,5]) rotate([0,90,0]) rotate([0,0,30]) cylinder(r=3.1, h=30, $fn=6);
69 // Screws
70 translate([-30,15,-5]) rotate([0,90,0]) cylinder(r=2.2, h=70);
71 translate([-30,-15,-5]) rotate([0,90,0]) cylinder(r=2.2, h=70);
72 translate([-30,15,5]) rotate([0,90,0]) cylinder(r=2.2, h=70);
73 translate([-30,-15,5]) rotate([0,90,0]) cylinder(r=2.2, h=70);
c2b6a5ce 74 }
75}
76
e6b2166c 77module extruder_idler_base(){
78 translate([0.25,5,0]) cube([19.5,40,8+3]);
c2b6a5ce 79}
80
e6b2166c 81module extruder_idler_holes(){
82 translate([10,25,0]){
83 // Main cutout
84 cube([10,23,25], center= true);
85 // Idler shaft
86 translate([-12,0,4.1+2])rotate([0,90,0])cylinder(r=4.1, h=24);
87 // Screw holes
88 translate([5,15,-1])cylinder(r=2.2, h=24);
89 translate([5,-15,-1])cylinder(r=2.2, h=24);
90 translate([-5,15,-1])cylinder(r=2.2, h=24);
91 translate([-5,-15,-1])cylinder(r=2.2, h=24);
92 }
93}
c2b6a5ce 94
95
e6b2166c 96// Idler final part
97module idler(){
98 difference(){
99 extruder_idler_base();
100 extruder_idler_holes();
101 }
c2b6a5ce 102}
103
e6b2166c 104idler();
c2b6a5ce 105
e6b2166c 106// Extruder final part
107module extruder(){
108 translate([-23,2,0])difference(){
109 extruder_base();
110 extruder_holes();
111 }
c2b6a5ce 112}
113
e6b2166c 114extruder();