4 // Josef Průša <josefprusa@me.com>
5 // Václav 'ax' Hůla <axtheb@gmail.com>
6 // http://www.reprap.org/wiki/Prusa_Mendel
7 // http://github.com/prusajr/PrusaMendel
9 include <configuration.scad>
11 module zmotorholder(thickness=23, bottom_thickness=5){
17 zrodholder(thickness=thickness, xlen=45, ylen=45, zdelta=((i_want_to_use_single_plate_dxf_and_make_my_z_weaker == 0) ? 0 : 5));
18 translate([board_to_xz_distance, board_to_xz_distance, 0]) {
19 nema17(places=[0, 1, 1, 1], h=bottom_thickness + layer_height);
24 translate([board_to_xz_distance, board_to_xz_distance, thickness]) {
25 mirror([0, 0, 1]) translate([0, 0, thickness-8])
26 nema17(places=[0, 1, 1, 1], holes=true, h=bottom_thickness + 1, shadow=5);
34 module zrodholder(thickness=15, bottom_thickness=5, ylen=42, xlen=34, zdelta=0){
40 //piece along the flat side of a board
41 cube_fillet([14, ylen, bottom_thickness], vertical=[8, 3, 0, 0]);
42 cube_fillet([5, ylen, thickness], vertical=[3, 3, 0, 0], top = [thickness/2, 0, 0, 5]);
43 //hole for Z axis is thru this
44 cube_fillet([xlen, 14, bottom_thickness], vertical=[3, 0, 0, 3]);
45 translate([14,14,0]) {
46 //large fillet that makes it stiffer by lot. Thanks to Marcus Wolschon
48 cube([holder_inner_r,holder_inner_r,bottom_thickness]);
49 translate([holder_inner_r, holder_inner_r, -0.5])
50 cylinder(r=holder_inner_r, h=bottom_thickness + 1);
53 //piece along cut side of the board
55 translate([-board_thickness, 0, 0])
56 cube_fillet([board_thickness + board_to_xz_distance + bushing_z[0], 5, thickness], radius=2, top = [0, 0, 0, thickness]);
58 translate([-board_thickness/2, 0, 0])
59 cube_fillet([board_thickness/2 + board_to_xz_distance + bushing_z[0], 5, thickness], radius=2, top = [0, 0, 0, thickness]);
62 translate([board_to_xz_distance - z_delta, 9, 0]) intersection() {
63 cylinder(h=bottom_thickness + layer_height, r=(bushing_z[0] + 5 * single_wall_width));
64 if (bushing_z[0] < 5) {
65 translate([0, -5 , bottom_thickness / 2]) cube([20, 20, bottom_thickness + 10], center=true);
67 translate([0, -bushing_z[0], bottom_thickness / 2]) cube([bushing_z[0] * 4, bushing_z[0] * 4, bottom_thickness + 10], center=true);
72 translate([board_to_xz_distance - z_delta, 9, -1]) cylinder_poly(h=board_thickness+20, r=bushing_z[0]);
74 translate([board_to_xz_distance-1, 5+(bushing_z[0]), 0.4]) cube([2, 10, 100]);
75 //inside rouned corner
76 translate([0, 5, -1]) cylinder(r=1.2, h=100, $fn=8);
78 //translate([-board_thickness/2, 0, thickness/2-1.5]) rotate([-90, 0, 0]) screw(h=30, r_head=4);
81 //single plate has both screws on front
82 translate([16, 35.5, bottom_thickness + 4.5 + zdelta]) rotate([0, -90, 0]) {
83 screw(head_drop=14, h=122, r_head=4.5);
85 translate([16, 15.5, bottom_thickness + 4.5 + zdelta]) rotate([0, -90, 0]) {
86 screw(head_drop=14, h=122, r_head=4.5);
89 translate([16, 30, bottom_thickness+4]) rotate([0, -90, 0]) {
90 screw(head_drop=12, h=122, r_head=4);
93 translate([-board_thickness/2, 0, thickness/2]) rotate([-90, 0, 0]) screw(h=30, r_head=4.5, head_drop=1);
99 translate([0, -2, 0]) mirror([0, 1, 0]) zmotorholder();
100 translate([0, 2, 0]) zmotorholder();
101 translate([21, -62, 0]) zrodholder();
102 translate([20, 62, 0]) mirror([0, 1, 0]) zrodholder();