chiark / gitweb /
toolbox-inserts: wip
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Sun, 20 Apr 2025 17:47:13 +0000 (18:47 +0100)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Sun, 20 Apr 2025 17:47:13 +0000 (18:47 +0100)
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
toolbox-inserts.scad

index 59413775e155423074507f37706b3f8fb3ae0baa..ca21b81d7d4275493ac2f348f2c6605a3be59a4b 100644 (file)
@@ -12,6 +12,10 @@ driver_handle_handle_d = 21.6 + 0.75;
 $fs = 1;
 $fa = 3;
 
+// calculated
+
+wall_top_inner_bevel_ratio = 0.25;
+
 module DriverHandlePositive() { ////toplevel
   linextr_x_yz(0, driver_handle_total_l)
     circle(r = driver_handle_shaft_d/2);
@@ -19,6 +23,10 @@ module DriverHandlePositive() { ////toplevel
     circle(r = driver_handle_handle_d/2);
 }
 
+module WallMinkowskiSphere(wall=well_surround_wall) { ////toplevel
+  sphere($fn=8, r=wall/2);
+}
+
 module WellSurround(half_height, wall=well_surround_wall) {
   // WellSurround(half_height) {
   //     SomethingPositive();
@@ -29,15 +37,29 @@ module WellSurround(half_height, wall=well_surround_wall) {
   // IOW its z==0 must be where the top of the wall is,
   // and half_height is the depth of the well below that.
 
-  difference(){
+  render() difference(){
     union(){
-      linextr(0, half_height)
-       projection(cut=false) children(0);
+      minkowski(){
 
+       linextr(0, half_height - wall/2)
+         projection(cut=false) children(0);
+
+       WallMinkowskiSphere(wall);
+
+      }
     }
 
-    translate([0, 0, half_height])
+    translate([0, 0, half_height]) {
       children(0);
+
+      /*      hull(){
+       for (zi=[-1,0]) {
+         linextr(zi * wall * 0.25, 2)
+           offset($fn=4, r = (zi+1) * wall * 0.25)
+           projection(cut=true) children(0);
+       }
+       }*/
+    }
   }
 }