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

index dc7651b4c5bb77dee62330f7f54c95ae79cce62f..579aa6ad41fdaf12c591c746169825232eb047bb 100644 (file)
@@ -27,8 +27,11 @@ module WallMinkowskiSphere(wall=well_surround_wall) { ////toplevel
   sphere($fn=8, r=wall/2);
 }
 
-module WellSurround(half_height, wall=well_surround_wall) {
-  // WellSurround(half_height) {
+module WellSurround(half_height, gaps, wall=well_surround_wall) {
+  // WellSurround(half_height, gaps[
+  //    [ x_min, x_max ],
+  //    ...
+  // ]) {
   //     SomethingPositive();
   // }
   //
@@ -42,13 +45,10 @@ module WellSurround(half_height, wall=well_surround_wall) {
       WallMinkowskiSphere(wall);
 
       difference(){
-       union(){
-
-         linextr(-10, half_height - wall/2)
-           offset($fn=8, r = wall/2)
-           projection(cut=false)
-           children(0);
-       }
+       linextr(-10, half_height - wall/2)
+         offset($fn=8, r = wall/2)
+         projection(cut=false)
+         children(0);
 
        minkowski(){
          WallMinkowskiSphere(wall);
@@ -56,12 +56,19 @@ module WellSurround(half_height, wall=well_surround_wall) {
            children(0);
          }
        }
+
+       for (gap=gaps) {
+         linextr_x_yz(gap[0] + wall/2, gap[1] - wall/2)
+           rectfromto([ -100, -wall/2 ], [ 100,100 ]);
+       }
       }
     }
   }
 }
 
 module DriverHandleHolder() { ////toplevel
-  WellSurround(driver_handle_handle_d/2)
+  WellSurround(driver_handle_handle_d/2, [
+    [ driver_handle_shaft_l, driver_handle_shaft_l + 50 ],
+  ])
     DriverHandlePositive();
 }