chiark / gitweb /
sewing-table: PostTestPiece: forest of posts
[reprap-play.git] / sewing-table.scad.m4
index 3cf230ccba8ea2c470141c683ffb88b8a42e1f06..9f701f2061c3f70e5f172dcfc18eddb19c26e505 100644 (file)
@@ -14,7 +14,7 @@ post_dia = 8;
 
 post_shorter = 1;
 
-screw_dia = 2.2;
+$screw_dia = 3.168;
 screw_big_dia = 3.6;
 screw_big_len = 4.0;
 
@@ -30,7 +30,7 @@ interlock_fine_lenslop = 1.0;
 
 demo_slop = 0.1;
 
-leg_height = 53.75;
+leg_height = 53.75 - 0.95;
 
 leg_hole_dia = 5 + 0.75;
 leg_big_dia = 37;
@@ -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);
        }
       }
     }
@@ -483,6 +483,28 @@ module TestDemo(){ ////toplevel
     TestPiece2();
 }
 
+module PostTestPiece(){ ////toplevel
+  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]);
+      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) ];
+       Posts([ stride * [ (i % nrows),
+                          floor(i / nrows) ] ]);
+      }
+    }
+  }
+}
+
 module Machine_NewRearProfile(){
   // figures copied out of xfig edit boxes
   // best not to edit the posbox size if poss - just move it