From a85a93a9a983ba9007651160cccdcace71be1db1 Mon Sep 17 00:00:00 2001 From: Remi Rampin Date: Tue, 2 Apr 2024 17:36:43 -0400 Subject: [PATCH] Introduce chop_off(), generic flat chopping module --- planter.scad | 26 ++++++++++++++++++++------ 1 file changed, 20 insertions(+), 6 deletions(-) diff --git a/planter.scad b/planter.scad index 772940c..609704d 100644 --- a/planter.scad +++ b/planter.scad @@ -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(); }