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