// -*- C -*- basel = 20; basew = 27; baset = 4.0; wallt = 4.0; wallh = 42; baseholesz = 4; // fixme check baseholeslot = 4; holeslop = 0.5; walll = basel; wallholeh = 6+14+2; wallholesz = 3.0; // fixme check wallholeslot = 3.0; module slothole(sz, slot, thick) { hull(){ for (y = [-slot/2,slot/2]) { translate([0,y,-0.05]) cylinder(r1=sz/2 + holeslop, r2=sz/2+thick + holeslop, h=thick+0.10); } } } difference(){ translate([0, -basew, 0]) cube([basel, basew, baset]); translate([basel/2, -(basew+wallt)/2, 0]) slothole(baseholesz, baseholeslot, baset); } difference(){ translate([0, -wallt, 0]) cube([walll, wallt, wallh]); translate([basel/2, 0, wallholeh]) rotate([90,0,0]) slothole(wallholesz, wallholeslot, wallt); }