Introduce chop_off(), generic flat chopping module

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

View File

@ -29,6 +29,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 // The body, a full cylinder with ridges
// //
// Its diameter is calculated from `diameter` (for the hollow inside), `thickness`, and `cut_depth`. // Its diameter is calculated from `diameter` (for the hollow inside), `thickness`, and `cut_depth`.
@ -99,14 +118,9 @@ if(wall_mount_percent > 0) {
wall_depth = full_diameter * sqrt(1 - (1 - wall_mount_percent / 100)^2); wall_depth = full_diameter * sqrt(1 - (1 - wall_mount_percent / 100)^2);
difference() { chop_off(wall_x, thickness) {
planter(); 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 { } else {
planter(); planter();
} }