From: Ian Jackson Date: Thu, 1 Jan 2015 23:53:19 +0000 (+0000) Subject: knifeblock: Holes refactor: break out HexGrid (nfc) X-Git-Tag: filamentspool-v2-release~235 X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=reprap-play.git;a=commitdiff_plain;h=393433331138b38ee2e1826ba9d63f10a354e2d0 knifeblock: Holes refactor: break out HexGrid (nfc) --- diff --git a/knifeblock.scad b/knifeblock.scad index b1a4052..4742458 100644 --- a/knifeblock.scad +++ b/knifeblock.scad @@ -224,6 +224,20 @@ module HolesScope(){ } } +module HexGrid(imin,imax,jmin,jmax) { + for (i=[imin:imax]) { + for (j=[jmin:jmax]) { + translate([j * sqrt(3) * holepitch, + (i+0.5)*holepitch, + 0]) { + child(); + translate([sqrt(3)/2 * holepitch, -0.5 * holepitch, 0]) + child(); + } + } + } +} + module Hole(){ cylinder(r=holesize/2, h=40, $fn=40); } @@ -234,18 +248,9 @@ module Holes(){ jmin = ceil((maxx-minx)/(sqrt(3)*holepitch)); echo("Holes X count 2 x", jmin); intersection(){ - translate([holeoffx * holepitch, holeoffy * holepitch, 0]) { - for (i=[0:imax]) { - translate([0, (i+0.5)*holepitch, -20]) - for (j=[-jmin:2]) { - translate([j * sqrt(3) * holepitch, 0, 0]) { - Hole(); - translate([sqrt(3)/2 * holepitch, -0.5 * holepitch, 0]) - Hole(); - } - } - } - } + translate([holeoffx * holepitch, holeoffy * holepitch, -20]) + HexGrid(0,imax,-jmin,2) + Hole(); HolesScope(); } }