X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;ds=sidebyside;f=knifeblock.scad;h=6d7e96a5a1a355607cccd6cfeda4465013407317;hb=65d1fbff98e91c996b7c27d8cbea3c7010952f5b;hp=fb8ff66d3ecd932e7bfa33124ccc10ff49cc3e86;hpb=ff667b2d30a8c7c2e6f896b6eb47c9bbd162c2be;p=reprap-play.git 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);