chiark / gitweb /
sewing-table: Interlock: tongue/groove wip (nfc)
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Mon, 2 Jan 2017 15:30:56 +0000 (15:30 +0000)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Mon, 2 Jan 2017 15:31:03 +0000 (15:31 +0000)
sewing-table.scad.m4

index 7e6afbf7b3f378371e4d7b06ef7d1aefbf2ddd6e..630d48911b8a2f393c6bf5d848fdbc40d85ec53e 100644 (file)
@@ -21,6 +21,7 @@ round_edge_rad = 2.0;
 interlock_dia = 10;
 interlock_fine = 0.66;
 
 interlock_dia = 10;
 interlock_fine = 0.66;
 
+interlock_fine_slope = 1.0;
 interlock_fine_lenslop = 1.0;
 
 demo_slop = 0.1;
 interlock_fine_lenslop = 1.0;
 
 demo_slop = 0.1;
@@ -166,14 +167,21 @@ module InterlockEdgePlan(negative, nlobes, length) {
 
 module InterlockEdge(left_cnr, right_cnr, negative=0, nlobes=2) {
   plusth = negative * 1.0;
 
 module InterlockEdge(left_cnr, right_cnr, negative=0, nlobes=2) {
   plusth = negative * 1.0;
+  protr = interlock_fine + interlock_sq_adj;
+
+  z2 = -tile_th/2;
+  z1 = -tile_th/2 - protr / interlock_fine_slope;
+  z3 = -tile_th/2 + protr / interlock_fine_slope;
 
   INREFFRAME(left_cnr, right_cnr) {
 
   INREFFRAME(left_cnr, right_cnr) {
-    translate([0, 0, plusth]){
-      mirror([0,0,1]){
-       linear_extrude(height=tile_th+plusth*2, convexity=10){
-         InterlockEdgePlan(negative, nlobes, length);
-       }
-      }
+    for (vsect = [ // zstart         zend     ystart,      yend
+                 [ -tile_th-plusth, plusth,  0,              0],
+                 //[ z1,              z2,      0, protr],
+                 //[ z2,              z3,      protr, 0],
+                 ]) {
+      translate([0, 0, vsect[0]])
+       linear_extrude(height=vsect[1]-vsect[0], convexity=10)
+       InterlockEdgePlan(negative, nlobes, length);
     }
   }
 }
     }
   }
 }