/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // z-axis_nut_holder.scad -- z-axis nut holder for makerslide plate ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // Created: 3/1/2013 // Last Update: 3/4/2016 /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // 3/4/2014 - found that using the spring to get rid of backlash isn't necessary due to the weight of the x-axis // 3/3/2016 - reduced clearance on znut // 3/4/2016 - added offset_znut to move znut closer/farther from z makerslide plate & adjustable countersinks //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// include // from https://github.com/josefprusa/PrusaMendel ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // variables ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////// autoZbump = 2.5; // a leveling bump for the contacts (a little less than what the contacts are) wrench_size = 13; // z-axis nut wrench size (8 for 5mm nut) znut_clearance = 0.25; // clearance for znut nut_tube_ht = 50; // height of the nut tube nut_thickness = 7; // thickness of the nut (5 for 5mm nut) rod_diameter = 6.35; // diameter of threaded rod (5 for 5mm threaded rod) rod_clearance = 1; // add clearance around rod bolt_diameter = 5.2; // diameter of mounting screw hole_spacing = 37.7; // hole spacing on plate (three holes) bolt_head_dia = 10; // diameter of mounting bolt head layer_thickness = 0.25; // layer thickness when printing tube_support_adj = 2.3; // amount to move the tube support out of the tube corner_rounderover = 5; // radius of corner rounding rod_offset = 18 + (rod_diameter/2); // affects the width of the base mount_offset = 5; // amount to shift base to nut holder & mounting holes counter_sink = (rod_offset)/2; // depth of mounting bolt countersinks (0 == none) screw2 = 2.7; // 3mm tap hole size offset_znut = -4; // move znut closer (+) or farther away (-) from z makerslide plate sink_offsetL = 2; // adjust left side countersinks sink_offsetR = -2; // adjust right side countersinks //////////////////////////////////////////////////////////////////////////// rotate([0,180,0]) make_it(0); // 0 == no spring&nut tube; 1 == spring&nut tube //////////////////////////////////////////////////////////////////////////// // make the whole thing //////////////////////////////////////////////////////////////////////////// module make_it(Spring) { mount(true); // left // if(Spring) nut_tube(); translate([10,40,0]) { mount(false); // right // if(Spring) nut_tube(); } } //////////////////////////////////////////////////////////////////////////// // make the part that holds the nuts & spring //////////////////////////////////////////////////////////////////////////// module nut_tube() { difference() { // main tube with nut shape inside cylinder(h = nut_tube_ht,r = (wrench_size+6)/2, $fn=100); nut(wrench_size+znut_clearance,nut_tube_ht+1,false); } difference() { translate([0, 0, nut_thickness]) cylinder(h = 4,r = (wrench_size+5)/2, $fn=100); translate([0, 0, nut_thickness]) cylinder(h = 4,r = (rod_diameter+rod_clearance)/2, $fn=100); } // something to eliminate the need for support in the rod hole translate([0,0,nut_thickness + (layer_thickness/2)]) cube(size = [rod_diameter+2,rod_diameter+2,layer_thickness], center = true); // need to make the following to change with the above to work better // some extra tube support if(wrench_size == 15) { difference() { translate([0,-(rod_offset - (wrench_size/2)),15]) cube(size = [10,12,20],center = true); translate([0,-(rod_offset-3.5),21]) { rotate([50,0,0]) cube(size = [20,20,10],center = true); } } } else { difference() { translate([0,-(rod_offset - (wrench_size/2)-tube_support_adj),15]) cube(size = [10,10,20],center = true); translate([0,-(rod_offset-3.5),21]) { rotate([50,0,0]) cube(size = [20,20,10],center = true); } } } } //////////////////////////////////////////////////////////////////////////// // make the part that mounts it on the makerslide plate //////////////////////////////////////////////////////////////////////////// module mount(left_side) { difference() { difference() { difference() { difference() { difference() { if(left_side) { translate([mount_offset,offset_znut,6]) { // base minkowski() { // round the corners cube(size = [40,wrench_size+rod_offset-(2*corner_rounderover),12], center = true); cylinder(h=1,r=corner_rounderover,$fn=50); } } } else { // right side translate([-mount_offset,offset_znut,6]) { // base minkowski() { // round the corners cube(size = [40,wrench_size+rod_offset-(2*corner_rounderover),12], center = true); cylinder(h=1,r=corner_rounderover,$fn=50); } } } nut(wrench_size+znut_clearance,nut_thickness,false); // make the nut hole in the base translate([0, 0, nut_thickness]) // rod hole cylinder(h = 15,r = (rod_diameter+rod_clearance)/2, $fn=100); } if(left_side) { rotate([90,90,0]) { // mounting bolt hole translate([-6,((hole_spacing/2)+mount_offset),-(rod_offset)]) cylinder(h = wrench_size+rod_offset+12,r = bolt_diameter/2, $fn=100); } } else { // right side rotate([90,90,0]) { // mounting bolt hole translate([-6,((hole_spacing/2)-mount_offset),-(rod_offset)]) cylinder(h = wrench_size+rod_offset+12,r = bolt_diameter/2, $fn=100); } } } if(left_side) { rotate([90,90,0]) { // mounting bolt hole translate([-6,-((hole_spacing/2)-mount_offset),-(rod_offset)]) cylinder(h = wrench_size+rod_offset+12,r = bolt_diameter/2, $fn=100); } } else { // right side rotate([90,90,0]) { // mounting bolt hole translate([-6,-((hole_spacing/2)+mount_offset),-(rod_offset)]) cylinder(h = wrench_size+rod_offset+12,r = bolt_diameter/2, $fn=100); } } } if(left_side) { rotate([90,90,0]) { // mounting bolt counter sink translate([-6,-((hole_spacing/2)-mount_offset),-rod_offset+sink_offsetL]) cylinder(h = counter_sink, r = (bolt_head_dia/2),$fn=100); } } else { // right side rotate([90,90,0]) { // mounting bolt counter sink translate([-6,-((hole_spacing/2)+mount_offset),-rod_offset-sink_offsetR]) cylinder(h = counter_sink, r = (bolt_head_dia/2),$fn=100); } } } if(left_side) { rotate([90,90,0]) { // mounting bolt counter sink translate([-6,((hole_spacing/2)+mount_offset),-rod_offset+sink_offsetL]) cylinder(h = counter_sink, r = (bolt_head_dia/2),$fn=100); } } else { // right side rotate([90,90,0]) { // mounting bolt counter sink translate([-6,((hole_spacing/2)-mount_offset),-rod_offset-sink_offsetR]) cylinder(h = counter_sink, r = (bolt_head_dia/2),$fn=100); } } } } //////////////////////////////////////////////////////////////////////////// /////////////// end of z-axis_nut_holder.scad //////////////////////////////