covertopwingbase = 20;
coveredge = 3;
+pegstem = 3.5;
+peghead = 10;
+pegstemheight = 2;
+pegheight = 9;
+peglen = 12;
+
+recessblockwidth = peghead + pegstem*3;
+recessblockheight = peglen + pegstem*1.5;
+
+pegsloph = 0.5;
+pegslopv = 0.5;
+pegslopl = 0.5;
+
+pegdepthproportion = 0.67;
+
// computed
side = minsidein + screwcsinkdia + minsideout;
totaldepth = front + maxhandledepth + back;
minx = minkx - side;
maxx = maxkx + side;
+pegrecess = pegdepthproportion*totaldepth - 0.5*peglen;
+
module ImportTemplate(w,k,t) {
fn = str("knifeblock-knives-t",k,t,".dxf");
echo(fn);
[minx, covershortlen]]);
}
-module CoverSide(xpos, len){
- translate([xpos, 0 ,0])
- rotate([90,0,90])
- linear_extrude(height=coverside)
+module CoverSide(len){
+ translate([0, 0 ,0]) {
+ rotate([90,0,90])
+ linear_extrude(height=coverside)
polygon([[0, 0],
[0, totaldepth],
[covertopwing, totaldepth],
[len - covertopwing, totaldepth],
[len, totaldepth],
[len, 0]]);
-// }
+ cube([recessblockwidth, recessblockheight, totaldepth]);
+ }
+}
+
+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));
+ dx = pegsloph;
+ dy = pegslopv;
+ rotate([90,0,0]) {
+ linear_extrude(height=peglen-pegslopl) {
+ intersection(){
+ translate([-dx,-dy,0]) PegTemplate();
+ translate([-dx,+dy,0]) PegTemplate();
+ translate([+dx,+dy,0]) PegTemplate();
+ translate([+dx,-dy,0]) PegTemplate();
+ }
+ }
+ }
+}
+
+module AtSides(){
+ translate([minx,0,0]) child(0);
+ translate([maxx,0,0]) mirror([1,0,0]) child(1);
}
module Cover(){
CoverTemplate();
- CoverSide(minx, covershortlen);
- CoverSide(maxx-coverside, coverlonglen);
+ AtSides() { CoverSide(covershortlen); CoverSide(coverlonglen); }
}
module CoverAligned(){