holedist = 64;
tonguewidth = 10;
+tongue2width = 15;
totaldepth = 26;
-thick = 3;
+tongue2depth = 35;
+thick = 4;
tabover = 7;
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(){
difference(){
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);
- }
- 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([x, 0, tabunder]) {
+ translate([0, -1, 0]) {
+ rotate([-90,0,0]) {
+ cylinder(r= holedia/2+0.5, h=thick+2, $fn=20);
+ }
+ }
+ translate([0, 19.95 + thick, 0])
+ cube(center=true,[10,40,10]);
+ }
}
+ Tongue(tonguewidth,tonguethick,totaldepth,3);
+ translate([tongue2x,0,0])
+ Tongue(tongue2width,tongue2thick,tongue2depth+thick,5);
}
Object();