cylinder(r=screwcsinkdia/2 / (sqrt(3)/2), h=100, $fn=6);
}
+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 AtSides(){
+ translate([minx,0,0]) child(0);
+ translate([maxx,0,0]) mirror([1,0,0]) child(1);
+}
+
module Block(){
sidemidx = minsideout + screwcsinkdia/2;
[minx, covershortlen]]);
}
-module CoverSide(xpos, len){
- translate([xpos, 0 ,0]) {
+module CoverSide(len){
+ translate([0, 0 ,0]) {
rotate([90,0,90])
linear_extrude(height=coverside)
polygon([[0, 0],
}
}
-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));
}
}
+module CoverPegSlot(coverlen){
+ translate([recessblockwidth/2, 0, -1]){
+ linear_extrude(height= 1 + pegrecess + 0.5*peglen){
+ PegTemplate();
+ }
+ }
+}
+
module Cover(){
- CoverTemplate();
- CoverSide(minx, covershortlen);
- mirror([1,0,0]) CoverSide(-maxx, coverlonglen);
+ difference(){
+ union(){
+ CoverTemplate();
+ AtSides() { CoverSide(covershortlen); CoverSide(coverlonglen); }
+ }
+ AtSides() { CoverPegSlot(); CoverPegSlot(); }
+ }
}
module CoverAligned(){
Demo();
//Cover();
+//Peg();