chiark / gitweb /
screw-recess-test: provide recessdepth_arg processing
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Wed, 11 Feb 2015 21:25:46 +0000 (21:25 +0000)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Wed, 11 Feb 2015 21:36:35 +0000 (21:36 +0000)
screw-recess-test.scad

index 5079008c20140580141d991f5b4f6f8bc4f97475..3b9931fb70d70c45dee09c03022d25e68d475351 100644 (file)
@@ -3,7 +3,6 @@
 cubez = 12;
 
 shaftz = cubez;
-recessz = 5;
 
 tests = [[4 + 0.5,  10 + 1.0]];
 
@@ -13,12 +12,20 @@ module RecessScrewCutout_RecessCylinder(recessdia, h){
   translate([0,0,-1]) cylinder(r=recessdia/2, h=h+1, $fn=40);
 }
 
-module RecessedScrewCutout(shaftdia, recessdia) {
-  recesstopz = recessz + 0.5*recessdia + 0.1;
+RecessedScrewCutout_defaultrecessdepth_flat = -0.35;
+RecessedScrewCutout_defaultrecessdepth_hex = -0.70;
+
+module RecessedScrewCutout(shaftdia, recessdia,
+        recessdepth_arg=RecessedScrewCutout_defaultrecessdepth_flat) {
+  // pass recessdepth_arg=-1 for the default for flat heads
+  // pass recessdepth_arg=-1 for the default for flat heads
+  recessdepth = recessdepth_arg >= 0 ? recessdepth_arg
+    : -recessdepth_arg * recessdia;
+  recesstopz = recessdepth + 0.5*recessdia + 0.1;
   xblocky = shaftdia + 0.1;
 
   translate([0,0,-1]) cylinder(r=shaftdia/2, h=shaftz+2, $fn=20);
-  RecessScrewCutout_RecessCylinder(recessdia, recessz);
+  RecessScrewCutout_RecessCylinder(recessdia, recessdepth);
   intersection(){
     translate([-recessdia*1.5, -xblocky/2, -1])
       cube([recessdia*3, xblocky, recesstopz+3]);
@@ -37,8 +44,7 @@ module Test(){
 
 module Hole(){
     RecessedScrewCutout(tests[0][0],
-                       tests[0][1],
-                       -1);
+                       tests[0][1]);
 }
 
 //Test();