chiark / gitweb /
fairphone-case: make catch catchier
[reprap-play.git] / tower-base.scad
index 378c84e..0e097e9 100644 (file)
@@ -1,19 +1,25 @@
 /* -*- C -*- */
 
-motorwidth=35.2;
-motorheight=36.5;
-totalheight=65;
+motorwidth=35.7;
+motorheight=34.5;
+totalheight=58;
 
 pillarthick=8;
 sidethick=2.5;
 archthick=6.5;
 frameextra=3.5;
-framesplayx=1;
+framesplayx=5;
 framesplayy=5;
 botleftgap=4.5;
 botleftstand=0.75;
 archoutwards=(pillarthick-archthick)/sqrt(8);
 
+topgluecubex=18;
+topgluecubez=5;
+clippairy=16;
+clippairdz=-2.5;
+topgluecubedy=1;
+
 dovebasecutcylz=4;
 dovebasecutcylr=10;
 
@@ -29,7 +35,7 @@ module corner() {
   slopeheight= totalheight - frameheight;
   slopex = (mw2 + archoutwards - framesplayx)/slopeheight;
   slopey = (mw2 + archoutwards - framesplayy)/slopeheight;
-  //echo(sqrt(2)*slope);
+  echo(sqrt(slopex*slopex + slopey*slopey));
 
   translate([-mw2,-mw2,0]) union(){
     difference(){
@@ -82,7 +88,7 @@ module halfside() {
               [0, 0, panelbasez + sidethick/sqrt(2)]]) {
        translate(xz)
          translate([0,-sidethick,0])
-         rotate([0,45,0])
+         rotate([0,55,0])
          translate([0,0,-sidethick])
          cube([100, sidethick, sidethick]);
       }
@@ -103,19 +109,44 @@ module towerbase() {
        rotate([0,0,angle]) mirror([1,0,0]) halfside();
       }
     }
-    multmatrix([[      -1,     0,      0, -mw2 - botleftstand ],
-               [       0,      1,      0,      -100    ],
-               [       1,      0,      1, -100 + botleftgap ],
-               [       0,      0,      0,      1       ] ])
-      cube([100,200,100]);
+//    multmatrix([[    -1,     0,      0, -mw2 - botleftstand ],
+//             [       0,      1,      0,      -100    ],
+//             [       1,      0,      1, -100 + botleftgap ],
+//             [       0,      0,      0,      1       ] ])
+//      cube([100,200,100]);
   }
-  translate([0,-5.0,totalheight]) {
-    rotate([-90,0,0])
-      DoveClipPair(h=10.1);
+  translate([clippairy/2,0,totalheight]) {
+    difference(){
+      translate([-clippairy+topgluecubedy/2,-topgluecubex/2,0])
+       cube([clippairy-topgluecubedy,topgluecubex,topgluecubez]);
+    }
+    translate([0,0,topgluecubez+clippairdz+DoveClip_depth()]) rotate([0,-90,0])
+//      DoveClipPair(h=clippairy);
+      DoveClipPairSane(h=clippairy, count=3);
   }
 }
 
-//intersection(){
-towerbase();
-//     translate([-100,-100,0]) cube([200,200,32]);
-//}
+if (towerbase_demo) {
+  intersection(){
+    translate([0,0,-50]) towerbase();
+    translate([-100,-100,0]) cube([200,200,32]);
+  }
+
+  intersection(){
+    translate([40,0,-60]) towerbase();
+    translate([-100,-100,0]) cube([200,200,32]);
+  }
+
+  translate([60,-90,0]) {
+    DoveClipPairSane(h=clippairy, count=3);
+    mirror([1,0,0]) translate([DoveClip_depth()-0.1,0,0]) cube([20,8,6]);
+  }
+
+  for (x=[0,20,40]) {
+    translate([x,-50,0]) DoveClipPin(h=clippairy);
+    translate([x+10,-50,0]) DoveClipPin(h=clippairy/2);
+    translate([x+10,-30,0]) DoveClipPin(h=clippairy/2);
+  }
+} else {
+  towerbase();
+}