fix securing nut placement as well
[clinton/prusa3.git] / box_frame / extras / endstop-holder.scad
1 // PRUSA Mendel
2 // Endstop holder
3 // Used to attach endstops to 8mm rods
4 // GNU GPL v3
5 // Josef Průša
6 // josefprusa@me.com
7 // prusadjs.cz
8 // http://www.reprap.org/wiki/Prusa_Mendel
9 // http://github.com/prusajr/PrusaMendel
10
11 include <../configuration.scad>
12
13 /**
14 * This endstop holder has 3 holes for endstops with either 10mm or 20mm spacing
15 * @id endstop-holder
16 * @name Endstop holder
17 * @category Printed
18 * @using 1 m3x20xhex
19 * @using 1 m3nut
20 * @using 2 m3washer
21 */
22 module endstop(shaft_radius){
23 shaft_diameter=shaft_radius*2;
24 outer_diameter = shaft_diameter/2+3.3;
25 screw_hole_spacing = 20;
26 screw_hole_spacing2 = 10;
27 opening_size = shaft_radius*2-1.5; //openingsize
28
29 segments=64;
30
31 difference(){
32 union(){
33
34
35 translate([outer_diameter, outer_diameter, 0]) cylinder(h =10, r = outer_diameter, $fn = segments);
36 translate([outer_diameter, 0, 0]) cube([15.5,outer_diameter*2,10]);
37 translate([-30, 0, 0]) cube([40, 4, 10]);
38 translate([17, 10+opening_size, 5]) rotate([90, 0, 0]) cylinder(h =5, r = 5.77, $fn = 6);
39 }
40
41
42
43
44 translate([9, outer_diameter-opening_size/2, 0]) cube([18,opening_size,20]);
45 translate([outer_diameter, outer_diameter, 0]) cylinder(h =30, r = shaft_radius, $fn = segments);
46
47 //Securing hole
48 translate([17, 20, 5]) rotate([90, 0, 0]) cylinder(h =20, r = m3_diameter/2, $fn = segments);
49 translate([17, 12+opening_size, 5]) rotate([90, 0, 0]) cylinder(h =5, r = m3_nut_diameter_horizontal/2, $fn = 6);
50
51 translate([17, 17, 5]) rotate([90, 0, 0]) cylinder(h =20, r = m3_diameter/2, $fn = segments);
52 // Endstop holders
53 translate([-5, 17, 5]) rotate([90, 0, 0]) cylinder(h =20, r = m3_diameter/2, $fn = segments);
54 translate([-(5+screw_hole_spacing), 17, 5]) rotate([90, 0, 0]) cylinder(h =20, r = m3_diameter/2, $fn = segments);
55 translate([-(5+screw_hole_spacing2), 17, 5]) rotate([90, 0, 0]) cylinder(h =20, r = m3_diameter/2, $fn = segments);
56
57 }
58 }
59
60 endstop(bushing_xy[0]);
61 translate([0,22,0]) endstop(bushing_xy[0]);
62 translate([0,44,0]) endstop(bushing_z[0]);
63