Revert "reduced size to make holes line up with the single plate y-axis"
[clinton/prusa3.git] / old_single_plate / src / compact-extruder.scad
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
8 include <../configuration.scad>
9
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
22 module extruder_base(){
23 // Main body
24 translate([-1,-2,0]) cube([22,56,24]);
25 // Extruder plate mount
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
32 // Carriage mount cylinders
33 translate([11,25,0]){
34 //translate([-12,24,0]) cylinder(r=5, h=24);
35 //translate([12,24,0]) cylinder(r=5, h=24);
36 }
37
38 // Smoother join
39 translate([1,38,0]) rotate([0,0,45]) cube([10,10,24]);
40 }
41
42 module extruder_holes(){
43 translate([11,25,0]){ // Translate to center of the main block
44 // Main shaft opening
45 translate([0,-2,-1]) cylinder(r=6.5, h=26);
46
47 // Lower motor mount hole
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);
50 // Upper motor mount hole
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
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
66 translate([11,0-2,-4.5+10]) cylinder(r=11, h=20);
67 }
68 // Filament path
69 translate([1.5+11+3.5,65,11]) rotate([90,0,0]) cylinder(r=2, h=70);
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 }
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);
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
79 // Left extruder plate mounting hole
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);
82 // Right extruder plate mounting hole
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
86 // Idler mounting holse
87 translate([11,25,10]){
88 // Nut traps
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);
93 // Screws
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);
96 }
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]);
104 }
105
106 module extruder_idler_base(){
107 translate([0.25,0,0]) cube([19.5,45.5,8+3]);
108
109 }
110
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
118 translate([5,-20,-1])cylinder(r=2.2, h=24);
119 translate([-5,-20,-1])cylinder(r=2.2, h=24);
120 }
121 }
122
123
124 // Idler final part
125 module idler(){
126 difference(){
127 extruder_idler_base();
128 extruder_idler_holes();
129 }
130 }
131
132 //translate([10,0,1]) rotate([0,-90,0]) idler();
133 //translate([-47,-2,0]) idler();
134 // Extruder final part
135 module extruder(){
136 translate([-23,2,0])difference(){
137 extruder_base();
138 extruder_holes();
139 }
140 }
141
142 extruder();
143 translate([-2.5,25,0]) motor_dummy();