From 1d5ba2a44400c0b2ca21db7b9a109dcb2a0e05bc Mon Sep 17 00:00:00 2001 From: Ian Jackson Date: Wed, 31 Dec 2014 18:45:41 +0000 Subject: [PATCH] knifeblock: Holes --- knifeblock.scad | 50 ++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 49 insertions(+), 1 deletion(-) diff --git a/knifeblock.scad b/knifeblock.scad index d083156..e79fca3 100644 --- a/knifeblock.scad +++ b/knifeblock.scad @@ -36,6 +36,13 @@ covertopwing = 15; covertopwingbase = 20; coveredge = 3; +holesize = 12.5; +holestrut = 7; +holeedge = 4; + +holeoffx = 0.6; +holeoffy = 0.3; + pegstem = 3.5; peghead = 10; pegstemheight = 2; @@ -61,6 +68,8 @@ maxkx = locations[nknives-1] + widths[nknives-1]/2; minx = minkx - side; maxx = maxkx + side; +holepitch = holesize+holestrut; + pegrecess = pegdepthproportion*totaldepth - 0.5*peglen; module ImportTemplate(w,k,t) { @@ -203,10 +212,49 @@ module CoverPegSlot(coverlen){ } } +module HoleRow(){ + for (i=[0:10]) { + translate([0, (i+0.5)*holepitch, -1]) + cylinder(r=holesize/2, h=coverthick+2, $fn=20); + } +} + +module HolesScope(){ + intersection_for (dx=[-1,+1]) { + intersection_for (dy=[-1,+1]) { + translate([dx * holeedge, dy * holeedge, -1]) + scale([1,1,2]) + CoverTemplate(); + } + } +} + +module Holes(){ + intersection(){ + translate([holeoffx * holepitch, holeoffy * holepitch, 0]) { + for (i=[-10:10]) { + translate([i * sqrt(3) * holepitch, 0, 0]) { + HoleRow(); + translate([sqrt(3)/2 * holepitch, -0.5 * holepitch, 0]) + HoleRow(); + } + } + } + HolesScope(); + } +} + +module CoverCover(){ + difference(){ + CoverTemplate(); + Holes(); + } +} + module Cover(){ difference(){ union(){ - CoverTemplate(); + CoverCover(); AtSides() { CoverSide(covershortlen); CoverSide(coverlonglen); } } AtSides() { CoverPegSlot(); CoverPegSlot(); } -- 2.30.2