chiark / gitweb /
osstest-arm-net-bracket: Make number of slots in tongue configurable (nfc)
[reprap-play.git] / osstest-arm-net-bracket.scad
index 19bfcbef2549b4eb2a45937687cde93d8f71854d..4eccb829d140e57cffab36e493888fbf76ac5fdc 100644 (file)
@@ -2,28 +2,49 @@
 
 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();