module zrodholder(thickness=14, bottom_thickness=5, ylen=42, xlen=34){
+ holder_inner_r = 9;
difference(){
union(){
difference(){
union(){
//piece along the flat side of a board
- cube_fillet([14, ylen, bottom_thickness], vertical=[3, 3, 0, 0]);
+ cube_fillet([14, ylen, bottom_thickness], vertical=[8, 3, 0, 0]);
cube_fillet([5, ylen, thickness], vertical=[3, 3, 0, 0], top = [thickness/1.5, 0, 0, 5]);
//hole for Z axis is thru this
- cube_fillet([xlen, 14, bottom_thickness], vertical=[0, 0, 0, 3]);
+ cube_fillet([xlen, 14, bottom_thickness], vertical=[3, 0, 0, 3]);
+ translate([14,14,0]) {
+ //large fillet that makes it stiffer by lot. Thanks to Marcus Wolschon
+ difference(){
+ cube([holder_inner_r,holder_inner_r,bottom_thickness]);
+ translate([holder_inner_r, holder_inner_r, -0.5])
+ cylinder(r=holder_inner_r, h=bottom_thickness + 1);
+ }
+ }
//piece along cut side of the board
if (i_am_box == 1) {
- translate([-board_thickness, 0, 0]) cube_fillet([board_thickness + board_to_xz_distance, 5, thickness], radius=2, top = [0, 0, 0, thickness]);
+ translate([-board_thickness, 0, 0])
+ cube_fillet([board_thickness + board_to_xz_distance + bushing_z[0], 5, thickness], radius=2, top = [0, 0, 0, thickness]);
} else {
- translate([-board_thickness/2, 0, 0]) cube_fillet([board_thickness/2 + board_to_xz_distance+5, 5, thickness], radius=2, top = [0, 0, 0, thickness]);
+ translate([-board_thickness/2, 0, 0])
+ cube_fillet([board_thickness/2 + board_to_xz_distance + bushing_z[0], 5, thickness], radius=2, top = [0, 0, 0, thickness]);
}
//smooth rod insert
translate([board_to_xz_distance, 9, 0]) intersection() {
cylinder(h=bottom_thickness + layer_height, r=(bushing_z[0] + 5 * single_wall_width));
if (bushing_z[0] < 5) {
translate([0, -5 , bottom_thickness / 2]) cube([20, 20, bottom_thickness + 10], center=true);
+ echo(0);
} else {
translate([0, -bushing_z[0], bottom_thickness / 2]) cube([bushing_z[0] * 4, bushing_z[0] * 4, bottom_thickness + 10], center=true);
}
}
}
//smooth rod hole
- translate([board_to_xz_distance, 9, -1]) cylinder(h=board_thickness+2, r=(bushing_z[0]));
+ translate([board_to_xz_distance, 9, -1]) cylinder_poly(h=board_thickness+2, r=bushing_z[0]);
// cutout
translate([board_to_xz_distance-1, 5+(bushing_z[0]), 0.4]) cube([2, 10, 100]);
//inside rouned corner
//front screws
if (i_am_box != 1) {
//single plate has both screws on front
- translate([17, 35.5, bottom_thickness+4]) rotate([0, -90, 0]) {
- screw(head_drop=12, h=122, r_head=4);
+ translate([16, 35.5, bottom_thickness+4]) rotate([0, -90, 0]) {
+ screw(head_drop=12, h=122, r_head=4.5);
}
- translate([17, 15.5, bottom_thickness+4]) rotate([0, -90, 0]) {
- screw(head_drop=12, h=122, r_head=4);
+ translate([16, 15.5, bottom_thickness+4.5]) rotate([0, -90, 0]) {
+ screw(head_drop=12, h=122, r_head=4.5);
}
} else {
- translate([17, 30, bottom_thickness+4]) rotate([0, -90, 0]) {
+ translate([16, 30, bottom_thickness+4]) rotate([0, -90, 0]) {
screw(head_drop=12, h=122, r_head=4);
}
//side screw
- translate([-board_thickness/2, 0, thickness/2]) rotate([-90, 0, 0]) screw(h=30, r_head=4);
+ translate([-board_thickness/2, 0, thickness/2]) rotate([-90, 0, 0]) screw(h=30, r_head=4.5, head_drop=1);
}
}
}
}
}
-
translate([0, -2, 0]) mirror([0, 1, 0]) zmotorholder();
translate([0, 2, 0]) zmotorholder();
-
translate([21, -62, 0]) zrodholder();
translate([20, 62, 0]) mirror([0, 1, 0]) zrodholder();