diff --git a/full_assembly.scad b/full_assembly.scad index e21fb09..e9cffa8 100644 --- a/full_assembly.scad +++ b/full_assembly.scad @@ -165,6 +165,7 @@ module full_assembly() xrot(-90) yrot(180) { z_sled(); z_sled_rollers(); + z_sled_nuts(); } translate([0, 0, platform_length/2]) { diff --git a/lifter_nut_part.scad b/lifter_nut_part.scad index e664827..76dc595 100644 --- a/lifter_nut_part.scad +++ b/lifter_nut_part.scad @@ -38,6 +38,7 @@ module lifter_nut() } } } +//!lifter_nut(); diff --git a/roller_cap_parts.scad b/roller_cap_parts.scad index 36cf5ae..c8840bc 100644 --- a/roller_cap_parts.scad +++ b/roller_cap_parts.scad @@ -3,21 +3,24 @@ use -module roller_cap(r=roller_axle/2-3, h=10, wall=3, cap=2, lip=1.5) +module roller_cap(r=5.0, h=10, wall=3, cap=2, lip=1.5, shelf=2.4, slop=0.25) { + $fn = 16; color("Pink") difference() { union() { translate([0,0,-cap/2]) - cylinder(r=r+lip+wall, h=cap, center=true, $fn=32); + cylinder(r=r+lip+wall, h=cap, center=true); + translate([0,0,0.3/2]) + cylinder(r=r+shelf, h=0.3, center=true); translate([0,0,h*3/8]) - cylinder(r1=r-0.5, r2=r, h=h*3/4, center=true, $fn=32); + cylinder(r1=r-slop, r2=r-slop, h=h*3/4, center=true); translate([0,0,h*7/8]) - cylinder(r1=r, r2=r-wall/2, h=h*1/4, center=true, $fn=32); + cylinder(r1=r-slop+0.6, r2=r-wall/2, h=h*1/4, center=true); } translate([0,0,h/2+1]) - cylinder(r=r-wall, h=h+1, center=true, $fn=12); + cylinder(r=r-wall, h=h+1, center=true, $fn=8); zrot_copies([0,90]) translate([0,0,h*5/8]) - cube(size=[1,r*2,h],center=true); + cube(size=[1,r*3,h],center=true); } } //roller_cap(); @@ -32,7 +35,7 @@ module roller_cap_parts() { // make me xa=[-spacing*(num_x-1)/2:spacing:spacing*(num_x-1)/2], ya=[-spacing*(num_y-1)/2:spacing:spacing*(num_y-1)/2], za=[2] - ) roller_cap(r=roller_axle/2-3, h=10, lip=2, wall=3); + ) roller_cap(r=roller_axle/2-2.5-0.2, h=10, wall=3, lip=1.5, shelf=2.5); } diff --git a/slider_sled.scad b/slider_sled.scad index 6f3d805..726af20 100644 --- a/slider_sled.scad +++ b/slider_sled.scad @@ -10,6 +10,8 @@ module slider_sled(show_rollers=false) { axle_rad = (roller_axle/2) - 0.2; axle_len = roller_thick; + pedestal_lip = 1.5; + cap_snap_len = 10*3/4; union() { difference() { @@ -49,12 +51,17 @@ module slider_sled(show_rollers=false) grid_of(ya=[-(platform_length/2)/2, (platform_length/2)/2]) { // Roller pedestals translate([0,0,roller_base/2]) { - cylinder(h=roller_base, r=axle_rad+1.5, center=true, $fn=32); + cylinder(h=roller_base, r=axle_rad+pedestal_lip, center=true, $fn=32); } // Roller axles translate([0,0,axle_len/2+roller_base]) { - tube(h=axle_len+0.05, r=axle_rad, wall=2.5, center=true, $fn=32); + difference() { + cylinder(h=axle_len, r=axle_rad, center=true, $fn=32); + cylinder(h=axle_len+0.05, r=axle_rad-2.5, center=true, $fn=16); + translate([0, 0, -axle_len/2+(axle_len-cap_snap_len)/2]) + cylinder(h=axle_len-cap_snap_len+0.05, r=axle_rad-2.0, center=true, $fn=16); + } } } } diff --git a/z_sled_part.scad b/z_sled_part.scad index 72952f5..91fb933 100644 --- a/z_sled_part.scad +++ b/z_sled_part.scad @@ -2,6 +2,7 @@ include use use use +use @@ -39,6 +40,22 @@ module z_sled_rollers() +module z_sled_nuts() +{ + // Quantize nut housing spacing to the thread lift size. + nut_spacing = floor((platform_length-20)/lifter_thread_size) * lifter_thread_size; + + // Drive nut capture + grid_of( + ya=[-nut_spacing/2, nut_spacing/2], + za=[(roller_base+roller_thick/2)] + ) { + zrot(90) yrot(-90) lifter_nut(); + } +} + + + module z_sled_part() { // make me zrot(90) z_sled(); }