From: Ian Jackson Date: Wed, 31 Dec 2014 14:23:54 +0000 (+0000) Subject: knifeblock: peg X-Git-Tag: filamentspool-v2-release~262 X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=commitdiff_plain;h=65d1fbff98e91c996b7c27d8cbea3c7010952f5b;hp=ff667b2d30a8c7c2e6f896b6eb47c9bbd162c2be;p=reprap-play.git knifeblock: peg --- 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);