frame_alu: Use M5 bolt holes
[clinton/prusa3.git] / box_frame / z-axis.scad
CommitLineData
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
22include <configuration.scad>
23
0f6ec51a 24module 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 48module 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
117translate([10, -50, 0]) zmotorholder();
118translate([0, 50, 0]) mirror([0, 1, 0]) zmotorholder();
119translate([67, 14, 0]) rotate([0,0,90]) zrodholder();
120translate([77, -14, 0]) rotate([0, 0, -90]) mirror([0, 1, 0]) zrodholder();