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([-2.5,-2.5,-2.5]) rounded_cube([130,80,40], 5); rounded_cube([120,70,35], 5); translate([27,12.5,20]) cube([74,50,40]); translate([-15,7.5,10]) cube([60,60,14]); translate([2.5,2.5,-11]) cube([120,70,10]); translate([5,5,-2]) cube([115,65,20]); } translate([2.5,2.5,-100]) square([120,70]);