Introduce chop_off(), generic flat chopping module

This commit is contained in:
Remi Rampin 2024-04-02 17:36:43 -04:00
parent 9583e8138e
commit a85a93a9a9
1 changed files with 20 additions and 6 deletions

View File

@ -27,6 +27,25 @@ module half_sphere(d) {
}
}
module chop_off(x, thickness) {
assert($children == 1);
difference() {
children(0);
translate([-500 - x, -500, -500])
cube([500, 1000, 1000]);
}
hull()
intersection() {
children(0);
translate([-x, -500, -500])
cube([thickness, 1000, 1000]);
}
}
// The body, a full cylinder with ridges
//
// Its diameter is calculated from `diameter` (for the hollow inside), `thickness`, and `cut_depth`.
@ -96,14 +115,9 @@ if(wall_mount_percent > 0) {
wall_depth = full_diameter * sqrt(1 - (1 - wall_mount_percent / 100)^2);
difference() {
chop_off(wall_x, thickness) {
planter();
translate([-wall_x - full_diameter, -wall_depth / 2, -full_diameter - 1])
cube([full_diameter, wall_depth, height + full_diameter + 2]);
}
translate([-wall_x, -wall_depth / 2, 0])
cube([thickness, wall_depth, height]);
} else {
planter();
}