holeoffx = 0.33;
holeoffy = 0.23;
+indentdepth = 1;
+indentoutersize = holesize + 2.15;
+indentinnersize = indentoutersize - indentdepth * 3.0;
+
pegstem = 3.5;
peghead = 10;
pegstemheight = 2;
}
module BlockPegSlot(){
- translate([recessblockwidth/2, pegrecess - 0.5*peglen, -height]){
+ translate([recessblockwidth/2, pegrecess - peglen, -height]){
rotate([-90,0,0]) linear_extrude(height=totaldepth){
PegTemplate(peghead/2 * 1.2);
}
}
}
+module DecorativeIndents(){
+ translate([0, -front, 0])
+ rotate([90,0,0])
+ HexGrid(-height, 0, minx,maxx) {
+ hull(){
+ translate([0, 0, -indentdepth])
+ cylinder(r=indentinnersize/2, h=indentdepth, $fn=40);
+ cylinder(r=indentoutersize/2, h=indentdepth, $fn=40);
+ }
+ }
+}
+
module Block(){
sidemidx = minsideout + screwcsinkdia/2;
translate([0, yshift * frontbackslop, 0])
DoKnives();
AtSides() { BlockPegSlot(); BlockPegSlot(); }
+ DecorativeIndents();
}
}
}
}
-module HoleRow(){
- imax = ceil(coverlonglen / holepitch);
- echo("Holes Y count ", imax);
- for (i=[0:imax]) {
- translate([0, (i+0.5)*holepitch, -20])
- cylinder(r=holesize/2, h=40, $fn=40);
- }
-}
-
module HolesScope(){
intersection_for (dx=[-1,+1]) {
intersection_for (dy=[-1,+1]) {
}
}
-module Holes(){
- imin = ceil((maxx-minx)/(sqrt(3)*holepitch));
- echo("Holes X count 2 x", imin);
- intersection(){
- translate([holeoffx * holepitch, holeoffy * holepitch, 0]) {
- for (i=[-imin:2]) {
- translate([i * sqrt(3) * holepitch, 0, 0]) {
- HoleRow();
- translate([sqrt(3)/2 * holepitch, -0.5 * holepitch, 0])
- HoleRow();
- }
+module HexGrid(xa,xb,ya,yb) {
+ imin = floor(xa / holepitch);
+ imax = ceil(xb / holepitch);
+ jmin = floor(ya / (sqrt(3)*holepitch));
+ jmax = ceil(yb / (sqrt(3)*holepitch));
+ echo("HexGrid ",imin,imax,jmin,jmax);
+ for (i=[imin:imax]) {
+ for (j=[jmin:jmax]) {
+ translate([(j * sqrt(3) + holeoffx) * holepitch,
+ (i + 0.5 + holeoffy) * holepitch,
+ 0]) {
+ child();
+ translate([sqrt(3)/2 * holepitch, -0.5 * holepitch, 0])
+ child();
}
}
+ }
+}
+
+module Hole(){
+ cylinder(r=holesize/2, h=40, $fn=40);
+}
+
+module Holes(){
+ intersection(){
+ translate([0, 0, -20])
+ HexGrid(0, coverlonglen, minx, maxx)
+ Hole();
HolesScope();
}
}
Pegs();
}
+module FrontDemo(){ ////toplevel
+ color([1,0,1]) Block();
+ color([1,0,1]) CoverAligned();
+ color([0,0,0]) DoKnives();
+}
+
+module BlockFrontTest(){ ////toplevel
+ intersection(){
+ Block();
+ translate([minx-10, -front-10, -height-10]) {
+ cube([75,14,35]);
+ cube([75,25,13]);
+ }
+ }
+}
+
//Block();
//Demo();
//Cover();