Commit | Line | Data |
---|---|---|
2159eed1 VAH |
1 | // PRUSA iteration3 |
2 | // Z axis | |
3 | // GNU GPL v3 | |
4 | // Josef Průša <josefprusa@me.com> | |
5 | // Václav 'ax' Hůla <axtheb@gmail.com> | |
6 | // http://www.reprap.org/wiki/Prusa_Mendel | |
8e93419f | 7 | // http://github.com/josefprusa/Prusa3 |
2159eed1 | 8 | |
65a72cd5 T |
9 | // ThingDoc entries |
10 | /** | |
11 | * @id zMotorHolder | |
12 | * @name Z Axis Motor Holder | |
13 | * @category Printed | |
14 | */ | |
15 | ||
16 | /** | |
17 | * @id zRodHolder | |
18 | * @name Z Axis Rod Holder | |
19 | * @category Printed | |
20 | */ | |
21 | ||
3506b70b VAH |
22 | include <configuration.scad> |
23 | ||
0f6ec51a | 24 | module zmotorholder(thickness=(i_am_box == 0 ? 38 : 23), bottom_thickness=5){ |
3506b70b VAH |
25 | difference(){ |
26 | union(){ | |
27 | // Motor holding part | |
28 | difference(){ | |
29 | union(){ | |
0f6ec51a | 30 | zrodholder(thickness=thickness, xlen=45, ylen=44, zdelta=((i_want_to_use_single_plate_dxf_and_make_my_z_weaker == 0) ? 0 : 5)); |
3506b70b | 31 | translate([board_to_xz_distance, board_to_xz_distance, 0]) { |
854f95f0 | 32 | nema17(places=[0, 1, 1, 1], h=bottom_thickness + layer_height, $fn=23, shadow=layer_height + 2); |
3506b70b VAH |
33 | } |
34 | } | |
d3618a65 | 35 | |
3506b70b VAH |
36 | // motor screw holes |
37 | translate([board_to_xz_distance, board_to_xz_distance, thickness]) { | |
5e8013bd | 38 | mirror([0, 0, 1]) translate([0, 0, thickness-8]) |
f65db3cb | 39 | nema17(places=[0, 1, 1, 1], holes=true, h=bottom_thickness + 1, $fn=small_hole_segments); |
854f95f0 | 40 | //shadow=-6 + layer_height); |
3506b70b VAH |
41 | } |
42 | } | |
43 | } | |
44 | } | |
d3618a65 | 45 | } |
3506b70b VAH |
46 | |
47 | ||
0f6ec51a | 48 | module zrodholder(thickness=(i_am_box == 0 ? 14 : 15), bottom_thickness=5, ylen=44, xlen=34, zdelta=0){ |
5cae2970 | 49 | holder_inner_r = 9; |
0f6ec51a | 50 | holder_inner_r2 = 2; |
3506b70b VAH |
51 | difference(){ |
52 | union(){ | |
3506b70b VAH |
53 | difference(){ |
54 | union(){ | |
55 | //piece along the flat side of a board | |
5cae2970 | 56 | cube_fillet([14, ylen, bottom_thickness], vertical=[8, 3, 0, 0]); |
0f6ec51a | 57 | cube_fillet([5, ylen, thickness], vertical=[3, 3, 0, 0], top = [thickness / 1.7, 0, 0, 5]); |
3506b70b | 58 | //hole for Z axis is thru this |
5cae2970 | 59 | cube_fillet([xlen, 14, bottom_thickness], vertical=[3, 0, 0, 3]); |
0f6ec51a | 60 | translate([14, 14, 0]) { |
5cae2970 VAH |
61 | //large fillet that makes it stiffer by lot. Thanks to Marcus Wolschon |
62 | difference(){ | |
0f6ec51a | 63 | cube([holder_inner_r, holder_inner_r, bottom_thickness]); |
5cae2970 VAH |
64 | translate([holder_inner_r, holder_inner_r, -0.5]) |
65 | cylinder(r=holder_inner_r, h=bottom_thickness + 1); | |
66 | } | |
67 | } | |
0f6ec51a VAH |
68 | translate([5, 5, 0]) { |
69 | difference(){ | |
70 | cube([holder_inner_r2, holder_inner_r2, thickness - 5.5]); | |
71 | translate([holder_inner_r2, holder_inner_r2, -0.5]) | |
72 | cylinder(r=holder_inner_r2, h=thickness + 1, $fn=20); | |
73 | } | |
74 | } | |
3506b70b | 75 | //piece along cut side of the board |
5e8013bd | 76 | if (i_am_box == 1) { |
eb40b77a | 77 | translate([-board_thickness, 0, 0]) |
0f6ec51a | 78 | cube_fillet([board_thickness + board_to_xz_distance + bushing_z[0], 5, thickness], radius=2, top = [0, 0, 0, thickness], $fn=99); |
5e8013bd | 79 | } else { |
eb40b77a | 80 | translate([-board_thickness/2, 0, 0]) |
0f6ec51a | 81 | cube_fillet([board_thickness/2 + board_to_xz_distance + bushing_z[0], 5, thickness], radius=2, top = [0, 0, 0, thickness], $fn=99); |
5e8013bd VAH |
82 | } |
83 | //smooth rod insert | |
854f95f0 VAH |
84 | translate([board_to_xz_distance - z_delta, 9, 0]) |
85 | cylinder(h=bottom_thickness / 2, r=(bushing_z[0] + 5 * single_wall_width)); | |
3506b70b VAH |
86 | } |
87 | //smooth rod hole | |
fa3e3ae8 | 88 | translate([board_to_xz_distance - z_delta, 9, -1]) cylinder(h=board_thickness+20, r=bushing_z[0] + single_wall_width / 4); |
3506b70b | 89 | //inside rouned corner |
0f6ec51a | 90 | translate([0, 5, -1]) cylinder(r=0.8, h=100, $fn=8); |
3506b70b | 91 | //side screw |
5e8013bd VAH |
92 | //translate([-board_thickness/2, 0, thickness/2-1.5]) rotate([-90, 0, 0]) screw(h=30, r_head=4); |
93 | //front screws | |
94 | if (i_am_box != 1) { | |
95 | //single plate has both screws on front | |
eb40b77a | 96 | translate([16, 35, bottom_thickness + 4.5 + zdelta]) rotate([0, -90, 0]) { |
0f6ec51a | 97 | plate_screw(); |
5e8013bd | 98 | } |
eb40b77a | 99 | translate([16, 15, bottom_thickness + 4.5 + zdelta]) rotate([0, -90, 0]) { |
0f6ec51a VAH |
100 | plate_screw(); |
101 | } | |
102 | //motor mount has third screw | |
103 | translate([16, 25, bottom_thickness + 4.5 + zdelta + 20]) rotate([0, -90, 0]) { | |
104 | plate_screw(); | |
5e8013bd VAH |
105 | } |
106 | } else { | |
5cae2970 | 107 | translate([16, 30, bottom_thickness+4]) rotate([0, -90, 0]) { |
0f6ec51a | 108 | plate_screw(); |
5e8013bd VAH |
109 | } |
110 | //side screw | |
0f6ec51a | 111 | translate([-board_thickness/2, -11, thickness/2]) rotate([-90, 0, 0]) plate_screw(); |
b32bbd0f | 112 | } |
3506b70b VAH |
113 | } |
114 | } | |
115 | } | |
d3618a65 | 116 | } |
0f6ec51a VAH |
117 | translate([10, -50, 0]) zmotorholder(); |
118 | translate([0, 50, 0]) mirror([0, 1, 0]) zmotorholder(); | |
119 | translate([67, 14, 0]) rotate([0,0,90]) zrodholder(); | |
120 | translate([77, -14, 0]) rotate([0, 0, -90]) mirror([0, 1, 0]) zrodholder(); |