X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=reprap-play.git;a=blobdiff_plain;f=screw-recess-test.scad;h=2e6a96e5b8f4d4ec3b39d77b1e040b974de794c5;hp=e3dab4e2340c969e979bd932d6503c58f054a646;hb=cac68316ea14c2ce0aa8413ea503a580356b3d2b;hpb=87ce6b1fa00684122a313255c2c4d50dab2bbada diff --git a/screw-recess-test.scad b/screw-recess-test.scad index e3dab4e..2e6a96e 100644 --- a/screw-recess-test.scad +++ b/screw-recess-test.scad @@ -4,33 +4,19 @@ cubez = 12; shaftz = cubez; -// shaftdia recessdia -tests = [[2 + 0.5, 6 + 1.0, 0, 0 ], - [3 + 0.5, 9 + 1.0, 0, 10 ], - [4 + 0.5, 10 + 1.0, 0, 25 ], - [5 + 0.5, 10 + 1.0, 15, 5 ], - [6 + 0.5, 12 + 1.0, 15, 20 ]]; - -last_test = tests[len(tests)-1]; - -blockminx = -5; -blockminy = -5; -blockmaxx = 25; -blockmaxy = 20; - -cubexy = 20; - module RecessScrewCutout_RecessCylinder(recessdia,zbelow, h){ translate([0,0,-zbelow]) cylinder(r=recessdia/2, h=h+1, $fn=40); } -RecessedScrewCutout_defaultrecessdepth_flat = -0.35; -RecessedScrewCutout_defaultrecessdepth_hex = -0.70; +RecessedScrewCutout_defaultrecessdepth_flat = -0.30; +RecessedScrewCutout_defaultrecessdepth_hex = -0.60; -function RecessedScrewCutout_recessdepth(recessdia, recessdepth_arg) = +function RecessedScrewCutout_recessdepth(recessdia, + recessdepth_arg=RecessedScrewCutout_defaultrecessdepth_flat) = recessdepth_arg >= 0 ? recessdepth_arg : -recessdepth_arg * recessdia; -function RecessedScrewCutout_totaldepth(recessdia, recessdepth_arg) = +function RecessedScrewCutout_totaldepth(recessdia, + recessdepth_arg=RecessedScrewCutout_defaultrecessdepth_flat) = RecessedScrewCutout_recessdepth(recessdia, recessdepth_arg) + + 0.5*recessdia + 0.1; @@ -52,36 +38,39 @@ module RecessedScrewCutout(shaftdia, recessdia, shaftlen, } } -module Block(){ - translate([blockminx, blockmaxx, 0]) - cube([blockmaxx-blockminx, blockmaxy-blockminy, cubez]); -} +// 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 ]]; -module Test(){ +last_test = tests[len(tests)-1]; + +blockminx = -5; +blockminy = -5; +blockmaxx = 25; +blockmaxy = 20; + +cubexy = 20; + +module OneTest(t){ + blocksz = t[1] + 7; + h = RecessedScrewCutout_totaldepth(t[1]) + 3; difference(){ - Block(); - union(){ - for (t = tests) { - RecessedScrewCutout(t[0],t[1], shaftz+1); - } - } + translate([-blocksz/2, -blocksz/2, 0]) + cube([blocksz, blocksz, h]); + RecessedScrewCutout(t[0],t[1], h+1); } } -module Holes(){ - for (t = tests) { +module Tests(){ + for (t = tests) translate([t[2], t[3], 0]) - RecessedScrewCutout(t[0],t[1], shaftz+1); - } + OneTest(t); } -module Demo(){ - Block(); - %Holes(); -} - -Demo(); - -//Test(); +//OneTest(tests[1]); +Tests(); //Hole(); //Holes();