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();
// }
//
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);
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();
}