diff --git a/holder/holder.scad b/holder/holder.scad index 95e0eea..a6ace51 100644 --- a/holder/holder.scad +++ b/holder/holder.scad @@ -3,53 +3,73 @@ include <../tray/common.scad> u2 = 89; rw = 482.6; -holder_size = [tray_size[0]+5, u2, tray_size[2]+3*2+36]; +holder_size = [tray_size[0]+5, u2, tray_size[2]+3*2+20]; holder_margin = 7.5; top_size = 5; bottom_size = 11; +holder_pillar_spacing = 3; +holder_pillar_size = (holder_size[1]-tray_size[1])/2-holder_pillar_spacing; + +stud_size = [5, 2.5]; + module holder() { color("#a0a0a0") difference() { translate([-5.01, 0, -3]) union() { // base - translate([0, 2.5-(holder_size[1]-tray_size[1])/2, 0]) cube([holder_size[0], (holder_size[1]-tray_size[1])/2, bottom_size]); - mirror([0,1,0]) translate([0, 2.5-(holder_size[1]-tray_size[1])/2 - tray_size[1], 0]) cube([holder_size[0], (holder_size[1]-tray_size[1])/2, bottom_size]); - cube([5, tray_size[1], bottom_size]); - translate([holder_size[0]-holder_margin, 0, 0]) cube([holder_margin, tray_size[1], 3]); - - // top - translate([0, 0, holder_size[2]-top_size]) { - translate([0, 2.5-(holder_size[1]-tray_size[1])/2, 0]) cube([holder_size[0], (holder_size[1]-tray_size[1])/2, top_size]); - mirror([0,1,0]) translate([0, 2.5-(holder_size[1]-tray_size[1])/2 - tray_size[1], 0]) cube([holder_size[0], (holder_size[1]-tray_size[1])/2, top_size]); - cube([5, tray_size[1], top_size]); - translate([holder_size[0]-holder_margin, 0, 0]) cube([holder_margin, tray_size[1], top_size]); - } + translate([0, -(holder_size[1]-tray_size[1])/2, 0]) cube([holder_size[0], (holder_size[1]-tray_size[1])/2+2.5, bottom_size]); + mirror([0,1,0]) translate([0, -(holder_size[1]-tray_size[1])/2 - tray_size[1], 0]) cube([holder_size[0], (holder_size[1]-tray_size[1])/2+2.5, bottom_size]); + cube([5, tray_size[1], bottom_size]); + translate([holder_size[0]-holder_margin, 0, 0]) cube([holder_margin, tray_size[1], 3]); // pillars - translate([0, 2.5-(holder_size[1]-tray_size[1])/2, 0]) { - cube([5, (holder_size[1]-tray_size[1])/2-3, holder_size[2]]); - translate([0, holder_size[1]-2-(holder_size[1]-tray_size[1])/2, 0]) cube([5, (holder_size[1]-tray_size[1])/2-3, holder_size[2]]); - translate([holder_size[0]-5, holder_size[1]-2-(holder_size[1]-tray_size[1])/2, 0]) cube([5, (holder_size[1]-tray_size[1])/2-3, holder_size[2]]); - translate([holder_size[0]-5, 0, 0]) cube([5, (holder_size[1]-tray_size[1])/2-3, holder_size[2]]); + translate([0, -(holder_size[1]-tray_size[1])/2, 0]) { + + cube([holder_pillar_size, holder_pillar_size, holder_size[2]]); + + translate([0, holder_size[1]-2-(holder_size[1]-tray_size[1])/2+5, 0]) + cube([holder_pillar_size, holder_pillar_size, holder_size[2]]); + + translate([holder_size[0]-(holder_pillar_size), holder_size[1]-2-(holder_size[1]-tray_size[1])/2+5, 0]) + cube([holder_pillar_size, holder_pillar_size, holder_size[2]]); + + translate([holder_size[0]-(holder_pillar_size), 0, 0]) + cube([holder_pillar_size, holder_pillar_size, holder_size[2]]); } // studs - translate([(holder_size[1]-tray_size[1])/4, -(holder_size[1]-tray_size[1])/4, holder_size[2]+2.5]) { - cylinder(h=5, r=2.5, center=true); - translate([holder_size[0]-(holder_size[1]-tray_size[1])/2, 0, 0]) cylinder(h=5, r=2.5, center=true); - translate([0, holder_size[1]-(holder_size[1]-tray_size[1])/2, 0]) cylinder(h=5, r=2.5, center=true); - translate([holder_size[0]-(holder_size[1]-tray_size[1])/2, holder_size[1]-(holder_size[1]-tray_size[1])/2, 0]) cylinder(h=5, r=2.5, center=true); + translate([(holder_pillar_size)/2, -holder_pillar_spacing-(holder_pillar_size)/2, holder_size[2]+stud_size[0]/2]) { + + cylinder(h=stud_size[0], r=stud_size[1], center=true); + + translate([holder_size[0]-(holder_pillar_size)/2-2*stud_size[1], 0, 0]) + cylinder(h=stud_size[0], r=stud_size[1], center=true); + + translate([0, holder_size[1]-(holder_pillar_size), 0]) + cylinder(h=stud_size[0], r=stud_size[1], center=true); + + translate([holder_size[0]-(holder_pillar_size)/2-2*stud_size[1], holder_size[1]-(holder_pillar_size), 0]) + cylinder(h=stud_size[0], r=stud_size[1], center=true); } } union() { tray(); - translate([(holder_size[1]-tray_size[1])/4-5.01, -(holder_size[1]-tray_size[1])/4, -0.501]) { - cylinder(h=5, r=2.5, center=true); - translate([holder_size[0]-(holder_size[1]-tray_size[1])/2, 0, 0]) cylinder(h=5, r=2.5, center=true); - translate([0, holder_size[1]-(holder_size[1]-tray_size[1])/2, 0]) cylinder(h=5, r=2.5, center=true); - translate([holder_size[0]-(holder_size[1]-tray_size[1])/2, holder_size[1]-(holder_size[1]-tray_size[1])/2, 0]) cylinder(h=5, r=2.5, center=true); + + // stud holes + translate([(holder_pillar_size)/2-5.01, -holder_pillar_spacing-(holder_pillar_size)/2, -0.51]) { + + cylinder(h=stud_size[0], r=stud_size[1], center=true); + + translate([holder_size[0]-(holder_pillar_size)/2-2*stud_size[1], 0, 0]) + cylinder(h=stud_size[0], r=stud_size[1], center=true); + + translate([0, holder_size[1]-(holder_pillar_size), 0]) + cylinder(h=stud_size[0], r=stud_size[1], center=true); + + translate([holder_size[0]-(holder_pillar_size)/2-2*stud_size[1], holder_size[1]-(holder_pillar_size), 0]) + cylinder(h=stud_size[0], r=stud_size[1], center=true); } }