module rounded_cube(d,r) { hull() for(p=[[r,r,r], [r,r,d[2]-r], [r,d[1]-r,r], [r,d[1]-r,d[2]-r], [d[0]-r,r,r], [d[0]-r,r,d[2]-r], [d[0]-r,d[1]-r,r], [d[0]-r,d[1]-r,d[2]-r]]) translate(p) sphere(r); } difference(){ translate([-5,-5,-5]) rounded_cube([150,70,50], 5); rounded_cube([140,60,40], 5); translate([30,0,0]) cube([80,60,60]); }