module chamferedCube(size = [1, 1, 1], chamfer = 1) { ep = 0.01; difference() { cube(size); // X-axis for (i = [0:3]) { translate([-ep, size[1] * floor(i/2), size[2] * (i%2) - chamfer]) rotate([45, 0, 0]) cube([size[0] + 2*ep, 1.414*chamfer, 1.414*chamfer]); } // Y-axis for (i = [0:3]) { translate([size[0] * floor(i/2) - chamfer, -ep, size[2] * (i%2)]) rotate([0, 45, 0]) cube([1.414*chamfer, size[1] + 2*ep, 1.414*chamfer]); } // Z-axis for (i = [0:3]) { translate([size[0] * floor(i/2), size[1] * (i%2) - chamfer, -ep]) rotate([0, 0, 45]) cube([1.414*chamfer, 1.414*chamfer, size[2] + 2*ep]); } } }