From: Clinton Ebadi Date: Sun, 28 Feb 2016 08:47:12 +0000 (-0500) Subject: z-axis: support position delta and improve rod support X-Git-Url: https://git.hcoop.net/clinton/prusa3.git/commitdiff_plain/846248f32560d455cf4d7af50a086f47270a0e49 z-axis: support position delta and improve rod support zaxis_delta_y and zaxis_delta_x shift the entire z-axis away from the frame. The Wilson TS frame moves the z-axis 5mm in x and y, and this allows generating compatible z-axis parts. The 2020 frame benefits from shifting the z-axis outward -- if it is not, the motor won't clear the side of the mounts for the Wilson TS rear frame braces. An additional support for the smooth rod hole is generated if the delta is set. The motor mount walls are also removed if needed. --- diff --git a/box_frame/configuration.scad.dist b/box_frame/configuration.scad.dist index 54ed572..53c4888 100644 --- a/box_frame/configuration.scad.dist +++ b/box_frame/configuration.scad.dist @@ -137,3 +137,7 @@ bed_y_size=225; x_smooth_rod_length=380+board_thickness*2; y_smooth_rod_length=400; z_smooth_rod_length=320; + +// shift smooth rod and leadscrew +zaxis_delta_x = 0; +zaxis_delta_y = 0; \ No newline at end of file diff --git a/box_frame/z-axis.scad b/box_frame/z-axis.scad index df400f8..2ab5f88 100644 --- a/box_frame/z-axis.scad +++ b/box_frame/z-axis.scad @@ -27,11 +27,15 @@ module zmotorholder(thickness=(frame_type == frame_single ? 38 : 23), bottom_thi // 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 @@ -40,7 +44,7 @@ module zmotorholder(thickness=(frame_type == frame_single ? 38 : 23), bottom_thi // 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); @@ -54,6 +58,7 @@ module zmotorholder(thickness=(frame_type == frame_single ? 38 : 23), bottom_thi 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(){ @@ -62,7 +67,7 @@ module zrodholder(thickness=(frame_type == frame_single ? 14 : 15), bottom_thick 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 @@ -77,7 +82,7 @@ module zrodholder(thickness=(frame_type == frame_single ? 14 : 15), bottom_thick } //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(){ @@ -100,22 +105,33 @@ module zrodholder(thickness=(frame_type == frame_single ? 14 : 15), bottom_thick 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);