chiark / gitweb /
sewing-table: Leg: commitid
[reprap-play.git] / sewing-table.scad.m4
index 172e875359c7414ca0084ca3c6ecc7390b322293..7e4ec968c955402a927032576ee649aa69d1571f 100644 (file)
@@ -14,7 +14,7 @@ post_dia = 8;
 
 post_shorter = 1;
 
-screw_dia = 2.64;
+$screw_dia = 3.2;
 screw_big_dia = 3.6;
 screw_big_len = 4.0;
 
@@ -151,7 +151,7 @@ module Post(){
        cylinder(r= post_dia/2, h= tile_th + ply_th - post_shorter);
        translate([0,0, tile_th]) {
          cylinder(r= screw_big_dia/2, h= screw_big_len);
-         cylinder(r= screw_dia/2, h= ply_th, $fn=20);
+         cylinder(r= $screw_dia/2, h= ply_th, $fn=20);
        }
       }
     }
@@ -484,17 +484,31 @@ module TestDemo(){ ////toplevel
 }
 
 module PostTestPiece(){ ////toplevel
-  holes = [ [   0, 0] ];
-  holes_forcnrs = concat(holes, [ [1, 0] ]);
-  corners = TestPiece_holes2corners(holes_forcnrs);
+  hole_sizes = [2.8, 3.0, 3.1, 3.134, 3.168, 3.2, 3.3, 3.5];
+  nholes = len(hole_sizes)*2;
+  nrows = 4;
+  stride = post_dia*1.5;
+  rect_sz = stride * [ nrows,
+                      ceil(nholes/nrows) ];
+  corners = Rectangle_corners(-stride * 0.5 * [1,1], rect_sz);
   difference(){
     union(){
       TileBase(corners[0], corners[2]);
-      Posts(holes);
       RoundEdge(corners[0], corners[1]);
-      InterlockEdge(corners[3], corners[0], 0, nlobes=1);
+      for (i= [ 0: nholes-1 ]) {
+       $screw_dia = hole_sizes[ floor(i/2) ];
+       translate(stride * [ (nrows-1) - (i % nrows),
+                            floor(i / nrows),
+                            0
+                            ]) {
+         Posts([[0,0]]);
+         color("blue")
+           mirror([0,0,1])
+           translate([post_dia/2, -post_dia/2, 1])
+           cube([1, post_dia * (i / nholes), tile_th]);
+       }
+      }
     }
-    PostHoles(holes);
   }
 }
 
@@ -749,6 +763,16 @@ module Leg(){ ////toplevel
                      + (!TEST ? 0.2 : -leg_midspc_dia/2),
                   $fn=30);
       }
+    cid_shear = (leg_fin_bot_w - leg_fin_top_w)/2 /
+                 (leg_height -leg_fin_bot_flat_z);
+    multmatrix([[ 1, 0, 0, leg_midspc_dia/2 ],
+                 [ 0, cid_shear,
+                         1, -leg_fin_bot_w/2 ],
+                 [ 0, 1, 0, -leg_height + leg_fin_bot_flat_z ],
+                 [ 0, 0, 0, 1 ]])
+      Commitid_BestCount([ leg_big_dia/2 - leg_midspc_dia/2,
+                            leg_height - leg_fin_bot_flat_z
+                             - leg_top_thick ]);
     if (!TEST)
       for (rot=[45: 360/leg_n_tubules : 359]) rotate(rot) {
          mirror([0,0,1]) translate([ leg_tubule_pos_rad, 0, -1])