chiark / gitweb /
cable-splice-clamp: wip
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Tue, 9 Feb 2016 02:02:03 +0000 (02:02 +0000)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Tue, 9 Feb 2016 02:02:03 +0000 (02:02 +0000)
cable-splice-clamp.scad

index cd310bf..851b5f6 100644 (file)
@@ -2,15 +2,21 @@
 
 cable_maxdia = 12;
 cable_mindia = 6;
+strap_width = 4 + 0.5;
+total_len = 70;
 
-wallmin = 1;
-wall = 2;
+wallmin = 1.5;
+
+strap_count = 2;
+
+strap_wall_h = 1.5;
+strap_wall_l = 2.0;
 
 delta_ellipse = 0.45;
 
 // calculated
 
-outerdia = cable_maxdia / cos(30) + wall*2;
+outerdia = cable_maxdia / cos(30) + wallmin*2;
 delta_shift = 1 - delta_ellipse;
 
 delta_shift_gap = (cable_maxdia-cable_mindia) * delta_shift;
@@ -21,9 +27,14 @@ module CrossSection(plus=0) {
       translate([dx, 0])
       circle(r= outerdia/2, $fn=6);
 
-    scale([cable_maxdia,
-          cable_maxdia * delta_shift + cable_mindia * delta_ellipse])
-      circle(r= sqrt(0.5) * delta_shift + 0.5 * delta_ellipse, $fn=4);
+    intersection(){
+      scale([cable_maxdia,
+            cable_maxdia * delta_shift + cable_mindia * delta_ellipse])
+       circle(r= sqrt(0.5) * delta_shift + 0.5 * delta_ellipse, $fn=4);
+      circle(r= cable_maxdia/2 * sqrt(delta_shift)
+             + cable_mindia/2 * (1-sqrt(delta_shift)),
+            $fn=20);
+    }
 
     square(center=true, [40, delta_shift_gap]);
   }
@@ -47,4 +58,23 @@ module CrossSectionDemo(){ ////toplevel
     CrossSection(2);
 }
 
+module CompleteClamp(){ ////toplevel
+  linear_extrude(height=total_len)
+    CrossSection();
+
+  for (i=[0 : strap_count]){
+    if (i*2 != strap_count) {
+      translate([0, 0,
+                total_len * (i + 0.5) / (strap_count + 1)])
+       for (m=[0,1]){
+         mirror([0,0,m])
+           translate([0,0, strap_width/2])
+           linear_extrude(height=strap_wall_l)
+           CrossSection(strap_wall_h);
+       }
+    }
+  }
+}
+
 CrossSectionDemo();
+//CompleteClamp();