// Motor holding part
difference(){
union(){
- zrodholder(thickness=thickness, xlen=45, ylen=44, zdelta=((i_want_to_use_single_plate_dxf_and_make_my_z_weaker == 0) ? 0 : 5), am_top=0);
- translate([board_to_xz_distance, board_to_xz_distance, 0]) {
+ zrodholder(thickness=thickness, xlen=45, ylen=44, zdelta=((i_want_to_use_single_plate_dxf_and_make_my_z_weaker == 0) ? 0 : 5), bottom_x = 14 + zaxis_delta_x, am_top=0);
+ translate([board_to_xz_distance + zaxis_delta_y, board_to_xz_distance - zaxis_delta_x, 0]) {
nema17(places=[0, 1, 1, 1], h=bottom_thickness + layer_height, $fn=23, shadow=layer_height + 2);
}
}
+ // remove any interfering walls
+ translate([board_to_xz_distance + zaxis_delta_y, board_to_xz_distance - zaxis_delta_x, layer_height + 2 + 21 +3]) {
+ #cube([43,43,42], center = true);
+ }
// motor screw holes
// would the motor mount be moved in both directions
// instead of just away from the frame? X-axis does
// not use this to offset the leadscrew hole either.
- translate([board_to_xz_distance, board_to_xz_distance, thickness]) {
+ translate([board_to_xz_distance + zaxis_delta_y, board_to_xz_distance - zaxis_delta_x, thickness]) {
mirror([0, 0, 1]) translate([0, 0, thickness-8])
nema17(places=[0, 1, 1, 1], holes=true, h=bottom_thickness + 1, $fn=small_hole_segments);
//shadow=-6 + layer_height);
module zrodholder(thickness=(frame_type == frame_single ? 14 : 15), bottom_thickness=5, ylen=44, xlen=34, zdelta=0, bottom_y=14, bottom_x=14, am_top=1){
holder_inner_r = 9;
holder_inner_r2 = 2;
+ smooth_rod_insert_radius = bushing_z[0] + 5 * single_wall_width;
difference(){
union(){
difference(){
cube_fillet([bottom_x, ylen, bottom_thickness], vertical=[8, 3, 0, 0]);
if (frame_type == frame_alu) {
top_radius = am_top ? thickness : thickness / 3;
- cube_fillet([5, ylen, thickness], vertical=[3, 3, 0, 0], top = [top_radius, 0, 0, (frame_type == frame_alu ? 0 : 5)]);
+ cube_fillet([5, ylen, thickness], vertical=[3, 3, 0, 0], top = [top_radius, 0, 0, 5]);
if (am_top) {
// rear bracket
}
//hole for Z axis is thru this
- cube_fillet([xlen, bottom_y, bottom_thickness], vertical=[3, 0, 0, 3]);
+ cube_fillet([xlen + zaxis_delta_x, bottom_y, bottom_thickness], vertical=[3, 0, 0, 3]);
translate([bottom_x, bottom_y, 0]) {
//large fillet that makes it stiffer by lot. Thanks to Marcus Wolschon
difference(){
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], $fn=99);
} else if (frame_type == frame_alu) {
+ // split piece in front of and behind into separate pieces
translate([-board_thickness, 0, 0]) {
- cube_fillet([board_thickness + xlen, am_top ? 2.5 : 5.0, thickness], vertical = (frame_type == frame_alu ? [2, 0, 0, 2] : [2, 2, 2, 2]), top = [0, 0, 0, thickness]);
- // avoid interfering with the smooth rod hole
- translate ([0, 2.5, 0])
- cube_fillet([board_thickness + board_to_xz_distance - bushing_z[0], 2.5, thickness], vertical = (frame_type == frame_alu ? [2, 0, 0, 2] : [2, 2, 2, 2]), top = [0, 0, 0, thickness]);
+ cube_fillet([board_thickness, 5.0, thickness], vertical = [0, 0, 0, 0], top = [0, 0, 0, 0]);
+ }
+
+ cube_fillet([board_to_xz_distance + zaxis_delta_y - smooth_rod_insert_radius , 5.0, thickness], vertical = [2, 0, 0, 0], top = [0, 0, 0, thickness]);
+
+ // extra support along edge of smooth rod hole
+ radius_diff = smooth_rod_insert_radius - bushing_z[0];
+ hull () {
+ translate([-board_thickness/3, -zaxis_delta_x/3, 0]) {
+ cube_fillet([board_thickness/3 + board_to_xz_distance + zaxis_delta_y - bushing_z[0] , zaxis_delta_x/3 , thickness/2], vertical = [2, 0, 4, 0], top = [0, 0, 4, thickness/2]);
+ }
+ translate([board_to_xz_distance/2, -zaxis_delta_x + radius_diff/6, 0]) {
+ cube_fillet([board_to_xz_distance/2 + zaxis_delta_y + smooth_rod_insert_radius*0.75, radius_diff/3 , bottom_thickness*2], vertical = [2, 0, 4, bushing_z[0] * smooth_rod_insert_radius/bushing_z[0]], top = [0, 0, 2, thickness/4]);
+ }
}
} else {
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], $fn=99);
}
//smooth rod insert
- translate([board_to_xz_distance - z_delta, 9, 0])
- cylinder(h=bottom_thickness * (am_top ? 1.75 : 1.0), r=(bushing_z[0] + 5 * single_wall_width));
+ translate([board_to_xz_distance - z_delta + zaxis_delta_y, 9 - zaxis_delta_x, 0])
+ cylinder(h=bottom_thickness * (am_top ? 1.75 : 1.0), r=smooth_rod_insert_radius);
}
//smooth rod hole
- translate([board_to_xz_distance - z_delta, 9, -1]) cylinder(h=board_thickness+20, r=bushing_z[0] + single_wall_width / 4);
+ translate([board_to_xz_distance - z_delta + zaxis_delta_y, 9 - zaxis_delta_x, -1]) cylinder(h=board_thickness+20, r=bushing_z[0] + single_wall_width / 4);
//inside rouned corner
if (frame_type != frame_alu) {
translate([0, 5, -1]) cylinder(r=0.8, h=100, $fn=8);