From 65d1fbff98e91c996b7c27d8cbea3c7010952f5b Mon Sep 17 00:00:00 2001 From: Ian Jackson Date: Wed, 31 Dec 2014 14:23:54 +0000 Subject: [PATCH] knifeblock: peg --- knifeblock.scad | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/knifeblock.scad b/knifeblock.scad index fb8ff66..6d7e96a 100644 --- a/knifeblock.scad +++ b/knifeblock.scad @@ -36,6 +36,14 @@ covertopwing = 15; covertopwingbase = 20; coveredge = 3; +pegstem = 3.5; +peghead = 10; +pegstemheight = 2; +pegheight = 9; +peglen = 12; + +pegslop = 0.5; + // computed side = minsidein + screwcsinkdia + minsideout; totaldepth = front + maxhandledepth + back; @@ -135,6 +143,33 @@ module CoverSide(xpos, len){ } } +module PegTemplate(){ + for (mx=[0,1]) for (my=[0,1]) { + mirror([mx,0,0]) mirror([0,my,0]) + polygon([[-0.1, -0.1], + [pegstem/2, -0.1], + [pegstem/2, pegstemheight/2], + [peghead/2, pegheight /2], + [-0.1, pegheight /2]]); + } +} + +module Peg(){ + echo("peg angle slope (must be <1)", + (peghead-pegstem)/(pegheight-pegstemheight)); + d = pegslop; + rotate([90,0,0]) { + linear_extrude(height=peglen) { + intersection(){ + translate([-d,-d,0]) PegTemplate(); + translate([-d,+d,0]) PegTemplate(); + translate([+d,+d,0]) PegTemplate(); + translate([+d,-d,0]) PegTemplate(); + } + } + } +} + module Cover(){ CoverTemplate(); CoverSide(minx, covershortlen); -- 2.30.2