chiark / gitweb /
sewing-table: FitTest_PairLink: add bar_z_slop
[reprap-play.git] / sewing-table.scad.m4
index 7c95db9682b16029b972a150ad1a2e3e69b6f219..c10695834b46eafe2772844501c4ee6be7fb3d51 100644 (file)
@@ -832,42 +832,69 @@ module FitTest_PairLink(cut=false){ ////toplevel
   cy0=-55; cy1=85; cx=127;
   bar = [10,10];
   legrad = 12;
-  footrad_min = 4; footrad_max = 6; footrad_depth = 3;
+  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 - bar[0]/2, cy0, 0])
-    cube([bar[0], cy1-cy0, bar[1]]);
   for (endy=[cy0,cy1]) {
     $fn=32;
-    translate([cx,endy,0]){
-      for (rot=[45,135]) {
-       rotate(rot){
+    translate([cx,endy,dz]){
+      // feet
+      for (rot=[45:90:315]) rotate(rot) {
+       translate([legrad,0,0]){
          hull(){
-           for (s=[-1,+1]){
-             translate([s*legrad,0,0])
-               cylinder(r= footrad_max, h=bar[1]);
-           }
+           cylinder(r= footrad_max, h=1);
+           translate([0,0,-footrad_depth])
+             cylinder(r= footrad_min, h=1);
          }
        }
       }
-      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_PairLink();
-  %FitTest_FrontCurve();
-  %FitTest_RearCurve();
+  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){