From 70d8c6b36cba407b507dfa7ae395f4e0dae5b20f Mon Sep 17 00:00:00 2001 From: Clinton Ebadi Date: Fri, 8 Jan 2016 01:21:01 -0500 Subject: [PATCH] Make itty bitty mount more compact By recessing the bolt holes for mounting the shelf and brackets, the extruder can be raised to meet the bottom of the Prusa/Wilson x-carriage. This gives a nice 31mm of z back. The base plate and holes are now generated separately, and some of the hole placement code is better (not by much...). --- carriage adapter/itty-wilson.scad | 117 ++++++++++++++++++------------ 1 file changed, 69 insertions(+), 48 deletions(-) diff --git a/carriage adapter/itty-wilson.scad b/carriage adapter/itty-wilson.scad index f91b69e..1bb60a5 100644 --- a/carriage adapter/itty-wilson.scad +++ b/carriage adapter/itty-wilson.scad @@ -38,25 +38,28 @@ use $fn = 64; +hole_tolerance = 0.6; // widen holes a bit, may still need to drill out + +// Size of mounting bolt heads so they can be recessed +bolthead_depth = 1.6; +bolthead_diameter = 5.5 + hole_tolerance; + carriage_height = 64; carriage_width = 52; plate_width = 75; // wilson carriage is only 50mm wide! -plate_depth = 6; // wilson default depth = 8, makerfarm = 6 - -hole_tolerance = 0.25; // widen holes a bit, may still need to drill out +plate_depth = 6 + bolthead_depth; // wilson default depth = 8, makerfarm = 6 plate_cut_height = 6.5; plate_cut_width = 6; -plate_cut_distance = 13; -plate_cut_center = 25.1; +plate_cut_distance = 13.3; plate_cut_y_offset = 27; plate_cut_bolt = 3 + hole_tolerance; -plate_cut_x_bolt_offset = 10.5 + plate_cut_bolt / 2; +plate_cut_x_bolt_offset = plate_cut_distance + plate_cut_bolt / 2; plate_extra_height = 4; // make plate a bit taller so it is structurally sound -plate_height = plate_cut_height + plate_cut_y_offset + plate_extra_height; +plate_height = plate_cut_height + plate_cut_y_offset + plate_extra_height; lower_cut_y_offset = 5.33; // 5.325 in CAD lower_bolt_x_offset = 1.5 + plate_cut_bolt / 2; @@ -67,71 +70,89 @@ carriage_hole_spacing = 23; carriage_clearance = 20; // holes are 20mm from bottom of plate carriage_y_offset = plate_cut_y_offset + plate_cut_height + carriage_clearance; carriage_nut_depth = 3.2 + 3.2/2 + 0.1; // m4 nut depth + half of an m4 nut + tolerance +carriage_offset = [(plate_width - carriage_width) / 2, 0 , 0]; corner_radius = 3; // round off the corners to make it look nicer -shelf_mount (); -translate ([(plate_width - carriage_width) / 2, plate_height - plate_extra_height/2, 0]) carriage_mount (); -// mount to wilson x-carriage -module carriage_mount () { - difference () { - linear_extrude (height = plate_depth, convexity = 8) { - // outline of plate + bolt holes - difference () { - translate ([corner_radius, corner_radius, 0]) { - minkowski () { - square ([carriage_width - corner_radius*2, carriage_height - corner_radius]); - circle (r = corner_radius); - } - } +difference () { + union () { + translate (carriage_offset) carriage_mount_base (); + shelf_mount_base (); + } + translate (carriage_offset) carriage_mount_holes (); + shelf_mount_holes (); +} - #translate ([(carriage_width - carriage_hole_spacing) / 2, (carriage_height - carriage_hole_spacing) /2, 0]) - for (x = [0, carriage_hole_spacing], y = [0, carriage_hole_spacing]) { - translate ([x, y, 0]) circle (d = carriage_bolt); - } +// mount to wilson x-carriage +module carriage_mount_base () { + linear_extrude (height = plate_depth, convexity = 8) { + // outline of plate + bolt holes + translate ([corner_radius, corner_radius, 0]) { + minkowski () { + square ([carriage_width - corner_radius*2, carriage_height - corner_radius]); + circle (r = corner_radius); } } - // after extruding, cut out spaces for M4 hex nuts. - translate ([(carriage_width - carriage_hole_spacing) / 2, (carriage_height - carriage_hole_spacing) /2, plate_depth - carriage_nut_depth]) { - for (x = [0, carriage_hole_spacing], y = [0, carriage_hole_spacing]) { - translate ([x, y, 0]) linear_extrude (height = carriage_nut_depth + 0.01) nutHole (size = carriage_bolt, proj = 1); - } + } +} + +module carriage_mount_holes () { + #translate ([(carriage_width - carriage_hole_spacing) / 2, (carriage_height - carriage_hole_spacing) /2, 0]) + for (x = [0, carriage_hole_spacing], y = [0, carriage_hole_spacing]) { + translate ([x, y, -0.1]) cylinder (d = carriage_bolt, h = plate_depth+1); + } + + // after extruding, cut out spaces for M4 hex nuts. + translate ([(carriage_width - carriage_hole_spacing) / 2, (carriage_height - carriage_hole_spacing) /2, plate_depth - carriage_nut_depth]) { + for (x = [0, carriage_hole_spacing], y = [0, carriage_hole_spacing]) { + translate ([x, y, 0]) linear_extrude (height = carriage_nut_depth + 0.01) nutHole (size = carriage_bolt, proj = 1); } } } // mount for makerfarm extruder shelf -module shelf_mount () { - linear_extrude (height = plate_depth, convexity = 8) { - difference () { - translate ([corner_radius, corner_radius, 0]) { - minkowski () { - square ([plate_width - corner_radius*2, plate_height - corner_radius*2]); - circle (r = corner_radius); - } +module shelf_mount_base () { + linear_extrude (height = plate_depth, convexity = 8) { + translate ([corner_radius, corner_radius, 0]) { + minkowski () { + square ([plate_width - corner_radius*2, plate_height - corner_radius*2]); + circle (r = corner_radius); } + } + } +} +module shelf_mount_holes () { + depth = plate_depth+0.2; + translate ([0, 0, -0.1]) { // upper shelf mount - translate ([0, plate_cut_y_offset, 0]) { - for (x = [-0.01, plate_cut_width + plate_cut_distance, plate_cut_width*2 + plate_cut_distance + plate_cut_center, plate_cut_width*3 + plate_cut_distance*2 + plate_cut_center + 0.01]) - #translate ([x - hole_tolerance/2, 0, 0]) square ([plate_cut_width + hole_tolerance, plate_cut_height]); + translate ([plate_cut_width/2, plate_cut_y_offset, 0]) { + for (x = [-0.001, plate_cut_width + plate_cut_distance, + plate_width - plate_cut_width + 0.001, plate_width - plate_cut_width*2 - plate_cut_distance]) + #translate ([x, plate_cut_height/2, 0]) cube ([plate_cut_width + hole_tolerance, plate_cut_height, depth], center = true); + + // looks like the bolt is at the midpoint between the cut outs + for (x = [plate_cut_x_bolt_offset - plate_cut_width, plate_width - plate_cut_x_bolt_offset]) + translate ([x, plate_cut_height / 2, 0]) { + #cylinder (d = plate_cut_bolt, h = depth); + cylinder (d = bolthead_diameter, h = bolthead_depth+0.1); + } - // looks like the bolt is at the midpoint between the cut outs - for (x = [plate_cut_x_bolt_offset, plate_width - plate_cut_x_bolt_offset]) - translate ([x, plate_cut_height / 2, 0]) circle (d = plate_cut_bolt + hole_tolerance); } // lower shelf mount translate ([0, lower_cut_y_offset, 0]) { for (x = [plate_cut_width/2 - 0.01, plate_width - plate_cut_width/2 + 0.01]) { // lower cut out is closer to 6mm than 6.5mm in cad drawings - translate ([x, plate_cut_height/2, 0]) square ([plate_cut_width, plate_cut_height - 0.5], center=true); - } + translate ([x, plate_cut_height/2, 0]) cube ([plate_cut_width, plate_cut_height - 0.5, depth*2], center=true); + } // I think the intention is for the screw holes to be centered over the cut out for (x = [lower_bolt_x_offset, plate_width - lower_bolt_x_offset]) - translate ([x, plate_cut_height + lower_bolt_y_offset, 0]) circle (d = plate_cut_bolt + hole_tolerance); + translate ([x, plate_cut_height + lower_bolt_y_offset, 0]) { + cylinder (d = plate_cut_bolt, h = depth); + cylinder (d = bolthead_diameter, h = bolthead_depth+0.1); + } } } - } } -- 2.20.1