chiark / gitweb /
earring-stand: good EclipPPlanCore
[reprap-play.git] / osstest-arm-net-bracket.scad
index a02f17dbd2abecf7a43affb5308583b8da23aa34..54e7d3b3653bed79fb681515225a3fc6b285e841 100644 (file)
@@ -2,40 +2,93 @@
 
 holedist = 64;
 tonguewidth = 10;
+tongue2width = 15;
 totaldepth = 26;
-thick = 3;
-tabover = 7;
+tongue2depth = 35;
+thick = 4;
+tabover = 7+6;
 tabunder = 15;
 
-tabside = 7;
+tabsidel = 7+1;
+tabsider = 7+10;
 
 tonguethick = 4;
+tongue2thick = 5;
 strapthick = 2;
-strapwidth = 5;
+strapwidth = 5 + 0.35;
 ridgewidth = 2;
 
+hstrengthick = 2.5;
+hstrengdepth = strapwidth;
+
+cutoutover = 7;
+rcutoutside = 7+2 - 0.5;
+lcutoutside = 7-6.5 - 0.5;
+
+t2strengwidth = 10;
+t2strengwidtht = 4;
+t2strenglen = tongue2depth + 5;
+t2strengthicker = 1;
+
+strapholethicker = 1.5;
+
 holedia = 3.5;
 
-module Tongue(tw,tt,ad){
+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 (y=[thick+0.1, ad-ridgewidth-strapwidth])
-      translate([-tw-1, y, tt])
-       cube([tw+2, strapwidth, strapthick+1]);
+    union(){
+      translate([-tw, 0, 0])
+       cube([tw, ad, tt+strapthick]);
+      child();
+    }
+    for (yi=[1:slots-1])
+      translate([-tw-1, y0 + (yn-y0)*yi/(slots-1), tt])
+       cube([tw+2, strapwidth, strapthick+strapholethicker]);
+  }
+}
+
+module Body(){
+  translate([-holedist-tabsider, 0, 0]) {
+    cube([tabsidel+tabsider+holedist, thick, tabunder+tabover]);
+    cube([tabsidel+tabsider+holedist, thick+hstrengdepth, hstrengthick]);
+  }
+  Tongue(tonguewidth,tonguethick,totaldepth,3);
+  translate([tongue2x,0,0])
+    Tongue(tongue2width,tongue2thick,tongue2depth+thick,5) {
+    mirror([1,0,0]) hull(){
+      translate([-(tongue2width-t2strengwidth)*0.05, 0,0]) 
+       cube([t2strengwidth,t2strenglen,
+             tongue2thick+strapthick+strapholethicker+t2strengthicker]);
+      cube([t2strengwidtht,thick+0.1,tabunder+tabover]);
+    }
   }
 }
 
 module Object(){
   difference(){
-    translate([-holedist-tabside, 0, 0])
-      cube([tabside*2+holedist, thick, tabunder+tabover]);
+    Body();
+    translate([0,-25,tabunder+cutoutover]) {
+      translate([-(holedist+rcutoutside), 0,0])
+       mirror([1,0,0])
+       cube([50,50,50]);
+      translate([lcutoutside, 0,0])
+       cube([50,50,50]);
+    }
     for (x=[-holedist,0])
-      translate([x, -1, tabunder])
-       rotate([-90,0,0])
-       cylinder(r= holedia/2+0.5, h=thick+2, $fn=20);
+      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);
 }
 
 Object();