holedist = 64;
tonguewidth = 10;
+tongue2width = 15;
totaldepth = 26;
+tongue2depth = 35;
thick = 3;
tabover = 7;
-tabunder = 20;
+tabunder = 15;
tabside = 7;
tonguethick = 4;
+tongue2thick = 5;
strapthick = 2;
strapwidth = 5;
ridgewidth = 2;
+holedia = 3.5;
+
+tongue2x = tongue2width - holedist;
+
+module Tongue(tw,tt,ad,slots=2){
+ y0=thick+0.1;
+ yn=ad-ridgewidth-strapwidth;
+ difference(){
+ translate([-tw, 0, 0])
+ cube([tw, ad, tt+strapthick]);
+ for (yi=[0:slots-1])
+ translate([-tw-1, y0 + (yn-y0)*yi/(slots-1), tt])
+ cube([tw+2, strapwidth, strapthick+1]);
+ }
+}
+
module Object(){
- translate([-holedist-tabside, 0, 0])
- cube([tabside*2+holedist, thick, tabunder+tabover]);
difference(){
- translate([-tonguewidth, 0, 0])
- cube([tonguewidth, totaldepth, tonguethick+strapthick]);
- for (y=[thick+0.1, totaldepth-ridgewidth-strapwidth])
- translate([-tonguewidth-1, y, tonguethick])
- cube([tonguewidth+2, strapwidth, strapthick+1]);
+ translate([-holedist-tabside, 0, 0])
+ cube([tabside*2+holedist, thick, tabunder+tabover]);
+ for (x=[-holedist,0])
+ translate([x, -1, tabunder])
+ rotate([-90,0,0])
+ cylinder(r= holedia/2+0.5, h=thick+2, $fn=20);
}
+ Tongue(tonguewidth,tonguethick,totaldepth);
+ translate([tongue2x,0,0])
+ Tongue(tongue2width,tongue2thick,tongue2depth+thick);
}
Object();