chiark / gitweb /
sewing-table: jig: adjust
[reprap-play.git] / sewing-table.scad.m4
index 79e30383e1e032b0ec5c4de7fb5e2a083ccbd8b2..012a46a54476bad82d670814fefb87ac9f16fb51 100644 (file)
@@ -7,6 +7,8 @@ ply_th = 18;
 ply_hole_dia = 15;
 ply_edge_min = 10;
 
+ply_hole_dia_real = 12;
+
 tile_th = 3;
 post_dia = 8;
 
@@ -34,12 +36,10 @@ machine_rear_to_front = 84 + 0.25 - 1.4;
 
 cutout_l_end_y_front_slop = 0.5;
 cutout_l_end_y_rear_slop = 0.5;
-cutout_l_end_x_slop = 0.25;
 
 cutout_l_end_x = 22;
 cutout_l_end_y = machine_rear_to_front;
-cutout_l_end_curve = 1;
-cutout_l_end_new_x_slop = -1.4;
+cutout_l_end_new_x_slop = 1.4 - 1.95;
 cutout_l_end_y_total = cutout_l_end_y
   + cutout_l_end_y_front_slop + cutout_l_end_y_rear_slop;
 
@@ -47,12 +47,11 @@ tile02_tr = [-250, 0];
 tile01_tr = [  0, 0];
 
 cutout_tile01_y = 170 - 147 + cutout_l_end_y_front_slop;
-cutout_tile11_x = cutout_l_end_x + cutout_l_end_curve;
 cutout_tile11_y = cutout_l_end_y_total - cutout_tile01_y;
 
 // front and rear curves
 
-rearedge_len = 170;
+rearedge_len = 170 + 0.70;
 frontedge_len = 170;
 
 rearcurve_strt_len = 52;
@@ -83,9 +82,12 @@ teststrapslots_at = [ [ 110, 70 ], [ 110, -35 ],
 teststrap = [ 3, 5 ];
 teststrap_peg = [7.5, 3.5];
 
+ply_edge_hole_dist_real = 14;
+
 // calculated
 
 TEST = false;
+JIG = false;
 
 ply_edge_hole_dist = ply_edge_min + ply_hole_dia/2;
 
@@ -106,7 +108,7 @@ thehd_tl = [ -thehd_tr[0], thehd_tr[1] ];
 thehd_bl = -thehd_tr;
 thehd_br = -thehd_tl;
 
-tablet_z_slop = 0.25;
+tablet_z_slop = 1.00;
 
 interlock_rad = interlock_dia/2;
 interlock_negative_rad = interlock_rad + 0.125;
@@ -118,11 +120,13 @@ m4_define(`POST_TCROSSSZ',
 
 module Post(){
   mirror([0,0,1]) {
-    difference(){
-      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);
+    if (!JIG) {
+      difference(){
+       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);
+       }
       }
     }
     if (TEST) {
@@ -131,6 +135,24 @@ module Post(){
        cube([POST_TCROSSSZ, post_dia,      tile_th], center=true);
       }
     }
+    if (JIG) {
+      translate([0,0, tile_th/2]) {
+       cube([POST_TCROSSSZ, POST_TCROSSSZ, tile_th], center=true);
+      }
+    }
+  }
+}
+
+module PostHole(){
+  if (JIG) {
+    translate([0,0,-5])
+      cylinder(r= post_dia/2 + jig_post_hole_slop, h=10);
+    translate([0,0, -jig_min_th])
+      cylinder(r= ply_hole_dia_real/2, h = 5);
+    for (rot=[0:90:270]) rotate(rot) {
+       translate([ ply_edge_hole_dist_real, 0, 0 ])
+         cube([ jig_pencil_rad*2, jig_pencil_slotlen, 20 ], center=true);
+      }
   }
 }
 
@@ -140,6 +162,12 @@ module Posts(posts) {
       Post();
   }
 }
+module PostHoles(posts) {
+  for (p= posts)  {
+    translate(concat(p, [0]))
+      PostHole();
+  }
+}
 
 module TileBase(botleft, topright){
   size = topright - botleft;
@@ -149,7 +177,7 @@ module TileBase(botleft, topright){
     mirror([0,0,1])
       translate(concat(botleft, [0]))
       cube(concat(size, [tile_th]));
-    if (!TEST) {
+    if (!(TEST || JIG)) {
       cidsz = topright_post-botleft_post
        + [-post_dia,-post_dia]
        + [0, thehd[1]];
@@ -160,16 +188,17 @@ module TileBase(botleft, topright){
                 + 0.5 * concat( cidsz - cidszr, [ 0 ]) )
        Commitid_BestCount_M(cidszr);
     }
-    if (TEST) {
+    if ((TEST || JIG)) {
       crossoff = tile_hard_edge_hole_dist + POST_TCROSSSZ/2;
       cidsz = [ thehd[0], size[1] - 2*crossoff ];
       cidszr = [ cidsz[0], min(cidsz[1], 50) ];
-      translate( concat(botleft + [0, crossoff] + (cidsz-cidszr)/2, [0]) )
-       Commitid_BestCount(cidszr);
+      if (TEST)
+       translate( concat(botleft + [0, crossoff] + (cidsz-cidszr)/2, [0]) )
+         Commitid_BestCount(cidszr);
       difference(){
        mirror([0,0,1]) {
          translate(concat(botleft + [test_edge,test_edge], [test_tile_th]))
-           cube(concat(size - [test_edge,test_edge]*2, [tile_th]));
+           cube(concat(size - [test_edge,test_edge]*2, [tile_th*2]));
          translate(concat(botleft_post, [-1]))
            cube(concat(topright_post-botleft_post, [tile_th+2]));
        }
@@ -388,6 +417,7 @@ module TestPiece1(){ ////toplevel
     }
     InterlockEdge(corners[1], corners[2], 1, nlobes=1);
     RoundCornerCut(rcs);
+    PostHoles(holes);
   }
   RoundCornerAdd(rcs);
 }
@@ -397,10 +427,15 @@ module TestPiece2(){ ////toplevel
            [  50, 0]
            ];
   corners = TestPiece_holes2corners(holes);
-  TileBase(corners[0], corners[2]);
-  Posts(holes);
-  RoundEdge(corners[0], corners[1]);
-  InterlockEdge(corners[3], corners[0], 0, nlobes=1);
+  difference(){
+    union(){
+      TileBase(corners[0], corners[2]);
+      Posts(holes);
+      RoundEdge(corners[0], corners[1]);
+      InterlockEdge(corners[3], corners[0], 0, nlobes=1);
+    }
+    PostHoles(holes);
+  }
 }
 
 module TestDemo(){ ////toplevel
@@ -411,24 +446,6 @@ module TestDemo(){ ////toplevel
     TestPiece2();
 }
 
-module Machine_Arm(){
-  ysz = cutout_l_end_y_total;
-  // assume the round end is arc of a circle
-  chordlen = dist2d([0,0], [ cutout_l_end_y, cutout_l_end_curve ]);
-  endrad = cutout_l_end_y / cutout_l_end_curve * chordlen;
-  
-  translate([0,0,-30]) linear_extrude(height=60) {
-    translate(tile01_tr + [0, (-cutout_tile01_y + cutout_tile11_y)/2]) {
-      intersection(){
-       translate([-50, -ysz/2])
-         square([400, ysz]);
-       translate([ endrad - cutout_tile11_x - cutout_l_end_x_slop, 0 ])
-         circle(r=endrad, $fa=0.01,$fd=5);
-      }
-    }
-  }
-}
-
 module Machine_NewRearProfile(){
   // figures copied out of xfig edit boxes
   // best not to edit the posbox size if poss - just move it
@@ -518,7 +535,7 @@ module Machine_NewEndProfileDemo(){ ////toplevel
 
 module Machine_NewArm(){
   translate([0,0,-30]) linear_extrude(height=60) {
-    translate(tile01_tr + [ -cutout_l_end_x + cutout_l_end_new_x_slop,
+    translate(tile01_tr + [ -cutout_l_end_x - cutout_l_end_new_x_slop,
                            (-cutout_tile01_y + cutout_tile11_y)/2 ]){
       rotate(-90){
        hull(){
@@ -585,7 +602,10 @@ module Machine_Curves(){ ////toplevel
       mirror([1,0,0]) rotate([0,-90,0])rotate([0,0,-90])
       linear_extrude(height= 200)
       Machine_NewFrontProfile();
-
+  }
+  translate([ tile01_tr[0] - cutout_l_end_x + rearedge_len,
+             cutout_tile11_y,
+             frontcurve_z_slop ]){
     translate([ rearcurve_strt_len,
                0,
                rearcurve_z_slop ]){
@@ -670,6 +690,7 @@ module Tile02(){ ////toplevel
     }
     InterlockEdge(R_EDGE(c,1), 1);
     RoundCornerCut(rcs);
+    PostHoles(posts);
   }
   RoundCornerAdd(rcs);
 }
@@ -690,6 +711,7 @@ module Tile12(){ ////toplevel
     InterlockEdge(R_EDGE(c,0), 1);
     InterlockEdge(R_EDGE(c,1), 1);
     RoundCornerCut(rcs);
+    PostHoles(posts);
   }
   RoundCornerAdd(rcs);
 }
@@ -719,6 +741,7 @@ module Tile11(){ ////toplevel
     }
     InterlockEdge(c[0], tile_01_11_cnr, 1);
     InterlockEdge(tile_11_10_cnr, c[2], 1);
+    PostHoles(posts);
     Machine();
   }
 }    
@@ -742,6 +765,7 @@ module Tile01(){ ////toplevel
       InterlockEdge(tile_01_11_cnr, c[3]);
       InterlockEdge(R_EDGE(c,3));
     }
+    PostHoles(posts);
     InterlockEdge(c[1], tile_01_00_cnr, 1);
     Machine();
   }
@@ -768,6 +792,7 @@ module Tile10(){ ////toplevel
       RoundEdge(R_EDGE(c,2));
       InterlockEdge(c[3], tile_11_10_cnr);
     }
+    PostHoles(posts);
     RoundCornerCut(rcs);
     Machine();
   }
@@ -790,6 +815,7 @@ module Tile00(){ ////toplevel
   rcy = cty + frontcurve_avoid_y;
   posts = [ cnr_posts[0],
            cnr_posts[1],
+           0.5 * (cnr_posts[0] + cnr_posts[1]),
            cnr_posts[2] + [ 0,                             -rcy ],
            cnr_posts[2] + [ -sz[0] + frontedge_len - cutout_l_end_x, -cty ],
            cnr_posts[3] + [ 0,                             -cty ]
@@ -814,6 +840,7 @@ module Tile00(){ ////toplevel
       RoundEdge(c1bis, c2bis);
     }
     Machine();
+    PostHoles(posts);
     RoundCornerCut(rc2);
   }
   RoundCornerAdd(rcs);
@@ -946,9 +973,9 @@ module FitTest_EntireDemo(){ ////toplevel
 }
 
 module FitTest_EndEnd(){ ////toplevel
-  p0 = [-32,-32];
-  sz = [188,113];
-  sz2 = [168,100];
+  p0 = [-30,-32];
+  sz = [156,81] - p0;
+  sz2 = [136,68] - p0;
   difference(){
     FitTest_general(p0, sz);
     translate([ p0[0] -1, p0[1]+sz2[1], -10])