module rplate(w, d, h, r=1) { hull() { for (x = [0, w-2*r]) { for (y = [0, d-2*r]) { translate([x+r, y+r, 0]) cylinder(h, r, r); } } } } module mbolt(m=3, d=10, h=5.4) { cylinder(d, d=m, d=m); translate([0, 0, d]) cylinder(1.8, d=h, d=h); } module qround(h, w) { intersection() { cylinder(h, r=w); cube([w, w, h]); } } function avg(x, y) = (x+y)/2;