CCCPaste

cornerfillet.scad by church

module cornerfillet(cfx = 15, cfy = 25, cfz = 10) {
  smidge = .001;
  cfr = max(cfx, cfy, cfz);
  rnd = cfr - sqrt(2) / 2 * cfr + smidge;
  resize([cfx, cfy, cfz])
    difference() {
      cube(cfr);
      hull() {
        echo(cfx, cfy, cfz);
        for (r = [[0, 0, 0], [-90, 180, 180], [180, -90, 180]])
          rotate(r) translate([cfr + smidge, cfr + smidge, 0]) rotate([0, 0, 180])
                linear_extrude(height=smidge, center=true) intersection() { square(cfr + smidge); circle(cfr + smidge); }
        translate([rnd, rnd, rnd]) sphere(r=rnd);
        translate([cfr + smidge, cfr + smidge, cfr + smidge]) sphere(smidge * 2, $fn=1);
      }
    }
}
cornerfillet(10, 10, 10);