Commit | Line | Data |
---|---|---|
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 | 8 | include <../configuration.scad> |
c2b6a5ce | 9 | |
227457e4 | 10 | |
11 | ||
12 | module motor_dummy(){ | |
13 | translate([-22,-22,-5]) %cube([44,44,5]); | |
14 | translate([18,18,-5]) %cylinder(r=2, h=24); | |
15 | translate([18,-18,-5]) %cylinder(r=2, h=24); | |
16 | translate([-18,18,-5]) %cylinder(r=2, h=24); | |
17 | translate([-18,-18,-5]) %cylinder(r=2, h=24); | |
18 | translate([-22+2.5+10,0,-5]) %cylinder(r=2.5, h=7); | |
19 | ||
20 | } | |
21 | ||
e6b2166c | 22 | module extruder_base(){ |
23 | // Main body | |
24 | translate([-1,-2,0]) cube([22,56,24]); | |
25 | // Extruder plate mount | |
81aeaf15 AR |
26 | if (hotend_mount == 1) { // groove-mount |
27 | translate([-16,49,0]) cube([55,5 + hotend_groovemount_depth - 1.5,24]); | |
28 | } else { | |
29 | translate([-16,49,0]) cube([55,5,24]); | |
30 | } | |
31 | ||
e6b2166c | 32 | // Carriage mount cylinders |
c2b6a5ce | 33 | translate([11,25,0]){ |
227457e4 | 34 | //translate([-12,24,0]) cylinder(r=5, h=24); |
35 | //translate([12,24,0]) cylinder(r=5, h=24); | |
e6b2166c | 36 | } |
227457e4 | 37 | |
38 | // Smoother join | |
39 | translate([1,38,0]) rotate([0,0,45]) cube([10,10,24]); | |
e6b2166c | 40 | } |
41 | ||
42 | module extruder_holes(){ | |
43 | translate([11,25,0]){ // Translate to center of the main block | |
44 | // Main shaft opening | |
227457e4 | 45 | translate([0,-2,-1]) cylinder(r=6.5, h=26); |
46 | ||
e6b2166c | 47 | // Lower motor mount hole |
227457e4 | 48 | translate([-8.5,18-2,-1]) cylinder(r=2, h=35); |
49 | translate([-8.5,18-2,21]) cylinder(r=3.1, h=35); | |
e6b2166c | 50 | // Upper motor mount hole |
227457e4 | 51 | translate([-8.5,-18-2,-1]) cylinder(r=2, h=35); |
52 | translate([-8.5,-18-2,21]) cylinder(r=3.1, h=35); | |
53 | // Idler motor mount hole | |
54 | translate([-8.5+36,18-2,-1]) cylinder(r=2, h=35); | |
55 | translate([-8.5+36,18-2,21]) cylinder(r=3.1, h=35); | |
56 | ||
e6b2166c | 57 | // Carriage mount right screw head hole |
58 | translate([-12,24,-3]) cylinder(r=3.5, h=23); | |
59 | // Carriage mount left screw head hole | |
60 | translate([12,24,-3]) cylinder(r=3.5, h=23); | |
61 | // Carriage mount right screw hole | |
62 | translate([-12,24,20.5]) cylinder(r=2, h=23); | |
63 | // Carriage mount left screw head hole | |
64 | translate([12,24,20.5]) cylinder(r=2, h=23); | |
65 | // Idler bearing cutout | |
227457e4 | 66 | translate([11,0-2,-4.5+10]) cylinder(r=11, h=20); |
c2b6a5ce | 67 | } |
e6b2166c | 68 | // Filament path |
69 | translate([1.5+11+3.5,65,11]) rotate([90,0,0]) cylinder(r=2, h=70); | |
81aeaf15 AR |
70 | if (hotend_mount == 1) { |
71 | // Hole for hotend | |
72 | translate([1.5+11+3.5,65,11]) rotate([90,0,0]) cylinder(r=hotend_groovemount_diameter/2, h=12.5); | |
73 | } | |
e6b2166c | 74 | // Hole for drive gear check |
75 | translate([1.5+11+3.5-30,25,11]) rotate([90,0,90]) cylinder(r=4, h=70, $fn=20); | |
227457e4 | 76 | translate([1.5+11+3.5-30,23,11]) rotate([90,0,90]) cylinder(r=4, h=70, $fn=20); |
77 | translate([1.5+11+3.5-30,21,11]) rotate([90,0,90]) cylinder(r=4, h=70, $fn=20); | |
78 | ||
e6b2166c | 79 | // Left extruder plate mounting hole |
227457e4 | 80 | translate([1.5+11+3.5+15,65,11]) rotate([90,0,0]) cylinder(r=1.8, h=70); |
81 | translate([1.5+11+3.5+15,47,11]) rotate([90,0,0]) cylinder(r=3.1, h=70, $fn=6); | |
e6b2166c | 82 | // Right extruder plate mounting hole |
227457e4 | 83 | translate([1.5+11+3.5-25,65,11]) rotate([90,0,0]) cylinder(r=1.8, h=70); |
84 | translate([1.5+11+3.5-25,47,11]) rotate([90,0,0]) cylinder(r=3.1, h=70, $fn=6); | |
85 | ||
e6b2166c | 86 | // Idler mounting holse |
87 | translate([11,25,10]){ | |
88 | // Nut traps | |
ef0c7624 AR |
89 | translate([-30,15,-5]) rotate([0,90,0]) rotate([0,0,30]) cylinder(r=3.3, h=30, $fn=6); |
90 | translate([-30,-15,-5]) rotate([0,90,0]) rotate([0,0,30]) cylinder(r=3.3, h=30, $fn=6); | |
91 | translate([-30,15,5]) rotate([0,90,0]) rotate([0,0,30]) cylinder(r=3.3, h=30, $fn=6); | |
92 | translate([-30,-15,5]) rotate([0,90,0]) rotate([0,0,30]) cylinder(r=3.3, h=30, $fn=6); | |
e6b2166c | 93 | // Screws |
227457e4 | 94 | translate([-30,-22,-4]) rotate([0,90,0]) cylinder(r=2, h=70); |
95 | translate([-30,-22,6]) rotate([0,90,0]) cylinder(r=2, h=70); | |
c2b6a5ce | 96 | } |
227457e4 | 97 | |
98 | translate([46,46,-1]) rotate([0,0,45]) cube([20,20,26]); | |
99 | translate([46,13,-1]) rotate([0,0,45]) cube([20,20,26]); | |
100 | translate([-22,46,-1]) rotate([0,0,45]) cube([20,20,26]); | |
101 | translate([-22,24,-1]) rotate([0,0,45]) cube([20,20,26]); | |
102 | translate([-8,-20,-1]) rotate([0,0,45]) cube([20,20,26]); | |
103 | translate([30,-20,-1]) rotate([0,0,45]) cube([20,20,26]); | |
c2b6a5ce | 104 | } |
105 | ||
e6b2166c | 106 | module extruder_idler_base(){ |
227457e4 | 107 | translate([0.25,0,0]) cube([19.5,45.5,8+3]); |
108 | ||
c2b6a5ce | 109 | } |
110 | ||
e6b2166c | 111 | module extruder_idler_holes(){ |
112 | translate([10,25,0]){ | |
113 | // Main cutout | |
114 | cube([10,23,25], center= true); | |
115 | // Idler shaft | |
116 | translate([-12,0,4.1+2])rotate([0,90,0])cylinder(r=4.1, h=24); | |
117 | // Screw holes | |
227457e4 | 118 | translate([5,-20,-1])cylinder(r=2.2, h=24); |
119 | translate([-5,-20,-1])cylinder(r=2.2, h=24); | |
e6b2166c | 120 | } |
121 | } | |
c2b6a5ce | 122 | |
123 | ||
e6b2166c | 124 | // Idler final part |
125 | module idler(){ | |
126 | difference(){ | |
127 | extruder_idler_base(); | |
128 | extruder_idler_holes(); | |
129 | } | |
c2b6a5ce | 130 | } |
131 | ||
227457e4 | 132 | //translate([10,0,1]) rotate([0,-90,0]) idler(); |
133 | //translate([-47,-2,0]) idler(); | |
e6b2166c | 134 | // Extruder final part |
135 | module extruder(){ | |
136 | translate([-23,2,0])difference(){ | |
137 | extruder_base(); | |
138 | extruder_holes(); | |
139 | } | |
c2b6a5ce | 140 | } |
141 | ||
227457e4 | 142 | extruder(); |
143 | translate([-2.5,25,0]) motor_dummy(); |