Commit | Line | Data |
---|---|---|
2159eed1 VAH |
1 | // PRUSA iteration3 |
2 | // Y drivetrain (idler and stepper holders) | |
7e896b17 | 3 | // GNU GPL v3 |
2159eed1 VAH |
4 | // Josef Průša <josefprusa@me.com> |
5 | // Václav 'ax' Hůla <axtheb@gmail.com> | |
7e896b17 | 6 | // http://www.reprap.org/wiki/Prusa_Mendel |
8e93419f | 7 | // http://github.com/josefprusa/Prusa3 |
7e896b17 | 8 | |
65a72cd5 T |
9 | // ThingDoc entry |
10 | /** | |
11 | * @id yMotorHolder | |
12 | * @name Y Axis Motor Holder | |
13 | * @category Printed | |
14 | */ | |
15 | ||
16 | /** | |
17 | * @yIdler | |
18 | * @name Y Axis Belt Idler | |
19 | * @category Printed | |
20 | */ | |
21 | ||
7e896b17 | 22 | include <configuration.scad> |
eff6608e | 23 | use <inc/bearing-guide.scad> |
7e896b17 VAH |
24 | |
25 | module motorholder(thickness=10){ | |
26 | difference(){ | |
27 | union(){ | |
28 | // Motor holding part | |
f705c26c | 29 | translate([29, -21 + 50, 0]) |
7e896b17 | 30 | { |
f705c26c | 31 | //#cube([42, 42, 2], center=true); |
7e896b17 VAH |
32 | difference(){ |
33 | union(){ | |
f705c26c VAH |
34 | translate([-21 + 4.5, 0, 5]) cube([9, 31, thickness], center=true); |
35 | nema17([0, 1, 1, 0], thickness=thickness, shadow=false); | |
36 | mirror([0, 0, 1]) translate([0, 0, -10]) nema17([0, 1, 1, 0], thickness=thickness, shadow=7); | |
7e896b17 | 37 | // Parts joining part |
f705c26c | 38 | translate([-29, -21, 0]) cube([14, 30, thickness]); |
7e896b17 VAH |
39 | } |
40 | // Motor mounting holes | |
f705c26c | 41 | translate([0, 0, thickness]) mirror([0, 0, 1]) nema17([0, 1, 1, 0], thickness=thickness, holes=true); |
7e896b17 VAH |
42 | } |
43 | } | |
44 | ||
45 | // Front holding part | |
f705c26c VAH |
46 | translate([0, 10, 0]) cylinder(h = thickness, r=8); |
47 | translate([0, 20, 5]) cube([16, 20, thickness], center=true); | |
48 | translate([0, 30, 0]) cylinder(h = thickness, r=8); | |
7e896b17 | 49 | } |
8dd48710 JG |
50 | translate([0, 10, -1]) cylinder(h = 12, r=4.5, $fn=32); |
51 | translate([0, 30, -1]) cylinder(h = 12, r=4.5, $fn=32); | |
7e896b17 VAH |
52 | } |
53 | } | |
54 | ||
67f4a88f | 55 | module oval(r=4, l=14, h=2){ |
0d8b4afe VAH |
56 | intersection() { |
57 | union() { | |
58 | translate([l / 2, 0, 0]) cylinder(r=r, h=h, $fn=4); | |
67f4a88f | 59 | //translate([-l / 2, 0, 0]) cylinder(r=r, h=h, $fn=4); |
0d8b4afe VAH |
60 | translate([0, 0, h / 2]) cube([l, r * 2, h], center=true); |
61 | } | |
62 | translate([0, 0, h / 2]) cube([l + r * 1.2, r * 2, h], center=true); | |
63 | } | |
b325d8c2 KY |
64 | } |
65 | ||
4e1cf096 | 66 | module idlermount(len=43, narrow_len=0, narrow_width=0, rod=threaded_rod_diameter_horizontal / 2, idler_height=16){ |
7e896b17 VAH |
67 | difference(){ |
68 | union(){ | |
f705c26c | 69 | //wide part holding bearing |
6229a141 | 70 | translate([- (10 + idler_width) / 2, -25 + narrow_len, 0] ) cube_fillet([10 + idler_width, len + idler_bearing[2] * 1.1 - narrow_len, idler_height]); |
0d8b4afe | 71 | //For X there is narrow part inside the x-idler |
f705c26c VAH |
72 | if (narrow_len > 0){ |
73 | translate([-narrow_width / 2, -25, 0] ) cube_fillet([narrow_width, len + idler_bearing[2], idler_height], vertical=[0, 0, 2, 2]); | |
6229a141 VAH |
74 | mirror([1, 0, 0]) translate([-narrow_width / 2, narrow_len -25, idler_height / 2 ]) fillet(1.5, idler_height - 0.04, $fn=8); |
75 | translate([-narrow_width / 2, narrow_len -25, idler_height / 2]) fillet(1.5, idler_height - 0.04, $fn=8); | |
f705c26c | 76 | } |
7e896b17 | 77 | } |
4e1cf096 VAH |
78 | translate([-12, -8, idler_height / 2]) rotate([90, 0, 90]) oval(r=rod + 0.01, l=12, h=25); |
79 | translate([0, -13 - single_wall_width*2, idler_height / 2]) { | |
80 | // nut for tensioning screw | |
a67d858f | 81 | translate([0,0,0]) rotate([90, 0, 0]) cylinder(r=m4_nut_diameter_horizontal / 2, h=3.8, $fn=6); |
4e1cf096 | 82 | // nut insert |
a67d858f | 83 | translate([-2, -3.8, -m4_diameter * 1.5 / 2]) cube([20, 3.8, m4_diameter * 1.5+0.3]); |
67f4a88f VAH |
84 | } |
85 | ||
4e1cf096 | 86 | // tensioning screw goes here |
8dd48710 | 87 | translate([0, -19, idler_height / 2]) rotate([90, 90, 0]) cylinder(r=m4_diameter / 2, h=15, $fn=small_hole_segments, center=true); |
4e1cf096 VAH |
88 | // bearing goes there |
89 | translate([0, len + idler_bearing[2] - 33, idler_height / 2]) { | |
90 | rotate([0, 90, 0]) idler_assy(idler_bearing); | |
91 | translate([0, 10, 0]) cube([idler_width + 1, 20, idler_height + 2], center=true); | |
92 | } | |
c4e4d509 | 93 | |
7e896b17 | 94 | } |
7e896b17 VAH |
95 | } |
96 | ||
b325d8c2 | 97 | |
42e0b559 | 98 | motorholder(); |
4e1cf096 | 99 | translate([32, 25, 0]) idlermount(); |
7337be14 | 100 | |
eff6608e VAH |
101 | if (idler_bearing[3] == 1) { |
102 | translate([0, -12 - idler_bearing[0] / 2, 0]) { | |
4e1cf096 | 103 | render() bearing_assy(); |
eff6608e VAH |
104 | } |
105 | } |