chiark / gitweb /
sewing-table: PostTestPiece: forest of posts
[reprap-play.git] / sewing-table.scad.m4
index eacbc3d5484ebfddb9a3c95d8d9d36d1f6bdf015..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,18 +30,19 @@ interlock_fine_lenslop = 1.0;
 
 demo_slop = 0.1;
 
-leg_height = 62;
+leg_height = 53.75 - 0.95;
 
 leg_hole_dia = 5 + 0.75;
 leg_big_dia = 37;
 leg_bot_dia = 15;
-leg_top_flat_z = 5;
-leg_top_thick = 10;
+leg_top_flat_z = 2;
+leg_top_thick = 8;
 
 leg_midspc_dia = 20;
-leg_bot_thick = 10;
+leg_bot_thick = 8;
+leg_bot_mid_dia = 12;
 
-leg_fin_top_w = 5;
+leg_fin_top_w = 3;
 leg_fin_bot_w = 5;
 leg_fin_bot_rad = 30;
 leg_fin_bot_flat_z = 5;
@@ -150,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);
        }
       }
     }
@@ -482,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
@@ -697,10 +720,13 @@ module Leg(){ ////toplevel
     union(){
       hull(){
        mirror([0,0,1])
-         cylinder(r= leg_big_dia/2, height=leg_top_flat_z, $fn=100);
+         cylinder(r= leg_big_dia/2, h=leg_top_flat_z, $fn=100);
        translate([0,0, -leg_top_thick])
          cylinder(r= leg_bot_dia/2, height=1, $fn=100);
       }
+      if (!TEST)
+       translate([0,0,-leg_height])
+         cylinder(r= leg_bot_mid_dia/2, h=leg_bot_thick);
       for (rot=[0: 360/leg_n_fins : 359]) rotate(rot) {
          hull(){
            mirror([0,0,1]) translate([0, -leg_fin_top_w/2, 0])
@@ -716,15 +742,25 @@ module Leg(){ ////toplevel
        }
     }
     mirror([0,0,1]) translate([0,0,-1])
-      cylinder(r= leg_hole_dia/2, h=leg_height+2, $fn=30);
-    mirror([0,0,1]) translate([0,0,leg_top_thick - 0.1])
-      cylinder(r= leg_midspc_dia/2,
-              h=leg_height - leg_top_thick - leg_bot_thick,
+      cylinder(r= leg_hole_dia/2,
+              h= (!TEST ? leg_height+2 : leg_height/2),
               $fn=30);
-    for (rot=[45: 360/leg_n_tubules : 359]) rotate(rot) {
-       mirror([0,0,1]) translate([ leg_tubule_pos_rad, 0, -1])
-         cylinder(r= leg_tubule_dia/2, h=leg_height+2, $fn=20);
+    mirror([0,0,1]) translate([0,0,leg_top_thick - 0.1])
+      hull(){
+        cylinder(r= (!TEST ? leg_midspc_dia/2 : 0.1),
+                h= leg_height - leg_top_thick - leg_bot_thick + 0.2,
+                $fn=30);
+       if (TEST)
+         cylinder(r= leg_midspc_dia/2,
+                  h= leg_height - leg_top_thick - leg_bot_thick
+                     + (!TEST ? 0.2 : -leg_midspc_dia/2),
+                  $fn=30);
       }
+    if (!TEST)
+      for (rot=[45: 360/leg_n_tubules : 359]) rotate(rot) {
+         mirror([0,0,1]) translate([ leg_tubule_pos_rad, 0, -1])
+           cylinder(r= leg_tubule_dia/2, h=leg_height+2, $fn=20);
+       }
   }
 }