chiark / gitweb /
trackpump-mutlihead-clip: wip new hose side plan
[reprap-play.git] / trackpump-mutlihead-clip.scad
index a6d1bbd8352e31c206d32ba231a8b0a94fdb74e5..265f2ba54473acb22e2273cfe5caeb1aec6cf1a9 100644 (file)
@@ -7,9 +7,17 @@ pump_shaft_dia = 14;
 baseplate = 4;
 
 pump_protr_flat = 3;
-pump_protr_slope = 1.0;
+pump_protr_slope = 0.9;
+
+hose_inner_dia = 20;
+hose_aperture = 11;
+hose_side_width = 5;
+hose_base_offset = 30;
+
+hose_head_dia = 28;
+hose_side_thick = 5;
+hose_head_width = 22;
 
-// need reconfirm:
 pump_protr_protr = 3;
 pump_side_height = 20;
 
@@ -18,6 +26,8 @@ pump_protr_slheight = pump_protr_protr / pump_protr_slope;
 
 pump_side_outer_rad = pump_side_width + pump_main_dia/2;
 
+$fa=5;
+
 module PumpSidePlan() {
   xm = baseplate + pump_main_dia/2;
   or = pump_side_outer_rad;
@@ -29,8 +39,8 @@ module PumpSidePlan() {
       }
       translate([-xm, -or]) square([xm, or*2]);
     }
-    translate([-xm*2, 0])
-      square(center=true, [pump_side_width*3, pump_shaft_dia]);
+    translate([-xm-or, 0])
+      square(center=true, [pump_side_width*4, pump_shaft_dia]);
   }
 }
 
@@ -82,6 +92,76 @@ module PumpSide(){
   }
 }
 
+module HoseSideElevation(){
+  or = hose_head_dia/2 + hose_side_thick;
+
+  x3 = 0;
+  x4 = x3 + hose_base_offset;
+  x5 = x4 + hose_head_dia/2;
+  x6 = x4 + hose_head_dia;
+  x7 = x5 + or;
+
+  z0 = 0;
+  zm = -or;
+
+  difference(){
+    intersection(){
+      translate([-100,-100]) square([x7+210, 100]);
+      hull(){
+       translate([x5, 0]) circle(r=or);
+       translate([-1, zm]) square([1,z0-zm]);
+      }
+    }
+    translate([x5,0]) circle(r=hose_head_dia/2);
+  }
+}
+
+module HoseSidePlan(){
+  ro = hose_inner_dia/2 + hose_side_width;
+  ri = (hose_inner_dia/2);
+
+  apx = sqrt( ri*ri - (hose_aperture*hose_aperture)/4 );
+  apsq = hose_base_offset + apx - hose_aperture/sqrt(2);
+  echo(apsq);
+
+  difference(){
+    hull(){
+      translate([-1, -ro]) square([1, ro*2]);
+      translate([hose_base_offset, 0]) circle(r= ro);
+    }
+    translate([hose_base_offset, 0]) circle(r= hose_inner_dia/2);
+    translate([apsq, 0])
+      rotate(-45)
+      square([50,50]);
+  }
+
+  %square(center=true, [100, hose_aperture]);
+}
+
+module HoseSide(){
+  for (m=[0,1]) {
+    mirror([0,m,0])
+      translate([0, hose_head_width, 0])
+      rotate([90,0,0])
+      linear_extrude(height= hose_side_width)
+      HoseSideElevation();
+  }
+}
+
+module Clip(){
+  PumpSide();
+  HoseSide();
+}
+
+module ClipPrint(){
+  rotate([180,0,0])
+    Clip();
+}
+
 //PumpSidePlan();
 //PumpSideElevation();
-PumpSide();
+linear_extrude(height=1) HoseSidePlan();
+//PumpSide();
+//HoseSide();
+//Clip();
+//ClipPrint();