// build_volume(); build_plate(); support = 0; // land(); // water(); cutaway(); module cutaway() { difference() { union() { land(); water(); } rotate([0, 0, 0]) translate([-220/2, -140/2, 150/2]) cube([220, 140, 150], center=true); } } module land() { union() { difference() { scale(2.4) translate([0, 25, 0]) { color([0,1,0]) import_stl("land.stl", convexity=30); } difference() { translate([0, 0, 78]) sphere(64); if (support == 1) { // flatten top translate([0, 0, 130]) translate([0, 0, 150/2]) cube([220, 140, 150], center=true); } } translate([0, 0, 5]) cylinder(r=32, h=20); } if (support == 1) { translate([0, 0, 130/2]) difference() { cylinder(h = 130, r = 15, center=true); cylinder(h = 132, r = 14, center=true); } } } } module water() { difference() { scale(2.4) translate([0, 25, 0]) { color([0,0,1]) import_stl("water.stl", convexity=30); } union() { difference() { translate([0, 0, 78]) sphere(64); if (support == 1) { // flatten top translate([0, 0, 130]) translate([0, 0, 150/2]) cube([220, 140, 150], center=true); } } if (support == 0) { translate([0, 0, 78]) sphere(64); } else { translate([0, 0, 5]) cylinder(r=32, h=20); translate([0, 0, 130/2]) difference() { cylinder(h = 130, r = 15, center=true); cylinder(h = 132, r = 14, center=true); } } } } } module build_volume() { %translate([0, 0, 150/2]) cube([220, 140, 150], center=true); } module build_plate() { %translate([0, 0, -0.1]) cube([220, 140, 0.1], center=true); }