4 // Josef Průša <iam@josefprusa.cz> and contributors
5 // http://www.reprap.org/wiki/Prusa_Mendel
6 // http://prusamendel.org
8 include <../configuration.scad>
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);
22 module extruder_base(){
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]);
29 translate([-16,49,0]) cube([55,5,24]);
32 // Carriage mount cylinders
34 //translate([-12,24,0]) cylinder(r=5, h=24);
35 //translate([12,24,0]) cylinder(r=5, h=24);
39 translate([1,38,0]) rotate([0,0,45]) cube([10,10,24]);
42 module extruder_holes(){
43 translate([11,25,0]){ // Translate to center of the main block
45 translate([0,-2,-1]) cylinder(r=6.5, h=26);
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);
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);
69 translate([1.5+11+3.5,65,11]) rotate([90,0,0]) cylinder(r=2, h=70);
70 if (hotend_mount == 1) {
72 translate([1.5+11+3.5,65,11]) rotate([90,0,0]) cylinder(r=hotend_groovemount_diameter/2, h=12.5);
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);
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);
86 // Idler mounting holse
87 translate([11,25,10]){
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);
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);
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]);
106 module extruder_idler_base(){
107 translate([0.25,0,0]) cube([19.5,45.5,8+3]);
111 module extruder_idler_holes(){
112 translate([10,25,0]){
114 cube([10,23,25], center= true);
116 translate([-12,0,4.1+2])rotate([0,90,0])cylinder(r=4.1, h=24);
118 translate([5,-20,-1])cylinder(r=2.2, h=24);
119 translate([-5,-20,-1])cylinder(r=2.2, h=24);
127 extruder_idler_base();
128 extruder_idler_holes();
132 //translate([10,0,1]) rotate([0,-90,0]) idler();
133 //translate([-47,-2,0]) idler();
134 // Extruder final part
136 translate([-23,2,0])difference(){
143 translate([-2.5,25,0]) motor_dummy();