chiark / gitweb /
screw-recess-test: recursion for test location
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Wed, 11 Feb 2015 22:51:05 +0000 (22:51 +0000)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Wed, 11 Feb 2015 22:51:05 +0000 (22:51 +0000)
screw-recess-test.scad

index 2e6a96e..3219a84 100644 (file)
@@ -1,9 +1,5 @@
 // -*- C -*-
 
-cubez = 12;
-
-shaftz = cubez;
-
 module RecessScrewCutout_RecessCylinder(recessdia,zbelow, h){
   translate([0,0,-zbelow]) cylinder(r=recessdia/2, h=h+1, $fn=40);
 }
@@ -39,20 +35,11 @@ module RecessedScrewCutout(shaftdia, recessdia, shaftlen,
 }
 
 //        shaftdia  recessdia
-tests = [[2 + 0.5,   4 + 1.0,   4, -4 ],
-        [3 + 0.5,   6 + 1.0,   0, 10 ],
-        [4 + 0.5,   8 + 1.0,   0, 25 ],
-        [5 + 0.5,  10 + 1.0,  17,  4 ],
-        [6 + 0.5,  12 + 1.0,  17, 20 ]];
-
-last_test = tests[len(tests)-1];
-
-blockminx = -5;
-blockminy = -5;
-blockmaxx = 25;
-blockmaxy = 20;
-
-cubexy = 20;
+tests = [[2 + 0.5,   4 + 1.0,   0 ],
+        [3 + 0.5,   6 + 1.0,  12 ],
+        [4 + 0.5,   8 + 1.0,  28 ],
+        [5 + 0.5,  10 + 1.0,  38 ],
+        [6 + 0.5,  12 + 1.0,  48 ]];
 
 module OneTest(t){
   blocksz = t[1] + 7;
@@ -64,10 +51,15 @@ module OneTest(t){
   }
 }
 
+function Test_x(i) = i<=0 ? 0 :
+  Test_x(i-1) + tests[i-1][1]*0.5 + tests[i][1]*0.5 + 4.5;
+
 module Tests(){
-  for (t = tests)
-    translate([t[2], t[3], 0])
-      OneTest(t);
+  for (i = [0:len(tests)-1]) {
+    echo(i, Test_x(i));
+    translate([Test_x(i), 0, 0])
+      OneTest(tests[i]);
+  }
 }
 
 //OneTest(tests[1]);