chiark / gitweb /
sewing-table: FitTest_PairLink: add bar_z_slop
[reprap-play.git] / sewing-table.scad.m4
index fcc722a60aa0766537629d5ec11eb00d061f1252..c10695834b46eafe2772844501c4ee6be7fb3d51 100644 (file)
@@ -828,35 +828,73 @@ module FitTest_FrontCurve(){ ////toplevel
   }
 }
 
-module FitTest_PairLink(adjust=0){ ////toplevel
-  cy0=-55; cy1=85; cx=125;
+module FitTest_PairLink(cut=false){ ////toplevel
+  cy0=-55; cy1=85; cx=127;
   bar = [10,10];
-  legrad = 15;
-  footrad_min = 4; footrad_max = 6; footrad_depth = 3;
+  legrad = 12;
+  footrad_min = 1; footrad_max = 4; footrad_depth = 5;
+  strap = [3,5];
+  adj_neg_slop = 1.0;
+  bar_z_slop = 1.75;
+
+  // calculated
+  straphole_x_max = legrad/sqrt(2) + footrad_max;
+  dz = cut ? adj_neg_slop : 0;
+
+  translate([cx - bar[0]/2, cy0, dz + bar_z_slop])
+    cube([bar[0], cy1-cy0, bar[1] - bar_z_slop]);
 
-  translate([cx,cy0,0])
-    cube([bar[0], cy1-cy0, bar[1]]);
   for (endy=[cy0,cy1]) {
-    translate([cx,endy,0]){
-      for (rot=[0:90:270]) {
-       rotate(rot){
-         translate([legrad,0,0]){
-           hull(){
-             cylinder(r= footrad_max, height=1);
-             translate([0,0,-footrad_depth])
-               cylinder(r= footrad_min, height=1);
-           }
+    $fn=32;
+    translate([cx,endy,dz]){
+      // feet
+      for (rot=[45:90:315]) rotate(rot) {
+       translate([legrad,0,0]){
+         hull(){
+           cylinder(r= footrad_max, h=1);
+           translate([0,0,-footrad_depth])
+             cylinder(r= footrad_min, h=1);
          }
        }
       }
+      // legs
+      for (rot=[45,135]) rotate(rot) {
+       hull(){
+         for (s=[-1,+1]){
+           translate([s*legrad,0,0])
+             cylinder(r= footrad_max, h=bar[1]);
+         }
+       }
+      }
+      // strap holes
+      if (cut) {
+       for (rot=[0,180]) rotate(rot) {
+           translate([ straphole_x_max - strap[0]/2, 0,0 ])
+             cube(concat(strap,[20]), center=true);
+         }
+      }
     }
   }
 }
 
 module FitTest_PairDemo(){ ////toplevel
-  %FitTest_FrontCurve();
-  %FitTest_RearCurve();
-  FitTest_PairLink();
+  sh=[-100,-15,0];
+  translate(sh){
+    FitTest_PairLink();
+    %FitTest_FrontCurve();
+    %FitTest_RearCurve();
+  }
+  rotate([0,0,180]){
+    translate(sh){
+      difference(){
+       union(){
+         FitTest_FrontCurve();
+         FitTest_RearCurve();
+       }
+       #FitTest_PairLink(true);
+      }
+    }
+  }
 }
 
 module RoundCornerDemo_plat(cnr){