back_gap = 7;
main_th = 2.5;
+midweb_d = 3;
// calculated
+front_th = main_th;
+
tube_or = tube_dia/2 + main_th;
back_ohw = back_gap/2 + main_th;
backflange_ymin = tube_or+backflange_d;
+pump_0y = tube_dia/2 + pump_d/2 + midweb_d;
+
+pump_or = [pump_w, pump_d]/2 + [front_th,front_th];
+
+module oval(sz){ // sz[0] > sz[1]
+ xr = sz[0];
+ yr = sz[1];
+ hull(){
+ for (sx=[-1,+1]) {
+ translate([sx * (xr-yr), 0])
+ circle(r=yr);
+ }
+ }
+}
+
module MainPlan(){
difference(){
union(){
translate([-back_gap/2,1]) mirror([0,1])
square([back_gap, backflange_ymin+2]);
}
+ translate([0, pump_0y]){
+ difference(){
+ union(){
+ oval(pump_or);
+ }
+ oval([pump_w/2, pump_d/2]);
+ }
+ }
}
MainPlan();