module roundedcube(x,y,z,r) { mx=x-(r*2); my=y-(r*2); mz=z-(r*2); hull() { translate([-mx/2,-my/2,-mz/2]) sphere(r=r); translate([ mx/2,-my/2,-mz/2]) sphere(r=r); translate([-mx/2, my/2,-mz/2]) sphere(r=r); translate([ mx/2, my/2,-mz/2]) sphere(r=r); translate([-mx/2,-my/2, mz/2]) sphere(r=r); translate([ mx/2,-my/2, mz/2]) sphere(r=r); translate([-mx/2, my/2, mz/2]) sphere(r=r); translate([ mx/2, my/2, mz/2]) sphere(r=r); } } module roundedcube_flatz(x,y,z,r) { mx=x-(r*2); my=y-(r*2); mz=z; hull() { translate([-mx/2,-my/2,-mz/2]) cylinder(r=r,h=2); translate([ mx/2,-my/2,-mz/2]) cylinder(r=r,h=2); translate([-mx/2, my/2,-mz/2]) cylinder(r=r,h=2); translate([ mx/2, my/2,-mz/2]) cylinder(r=r,h=2); translate([-mx/2,-my/2, mz/2-2]) cylinder(r=r,h=2); translate([ mx/2,-my/2, mz/2-2]) cylinder(r=r,h=2); translate([-mx/2, my/2, mz/2-2]) cylinder(r=r,h=2); translate([ mx/2, my/2, mz/2-2]) cylinder(r=r,h=2); } }