chiark / gitweb /
10254 better thinner - no holes
[dl-things.git] / th-10254 / tower-base.scad
index ef751ef749093c4b41ca069bc9f426a07c76ce9a..a96143c39e7899485e4f94463aeab7880aa69b24 100644 (file)
@@ -4,31 +4,55 @@ motorheight=36.5;
 totalheight=65;
 
 pillarthick=8;
-sidethick=3;
-archthick=6;
+sidethick=2.5;
+archthick=6.5;
+frameextra=3.5;
+framesplay=1;
+botleftgap=4.5;
+botleftstand=0.75;
 archoutwards=(pillarthick-archthick)/sqrt(8);
 
+dovebasecutcylz=4;
+dovebasecutcylr=10;
+
+d=0.01;
+
 mw2=motorwidth/2;
 
 include <Libs.scad> //  Libs.scad is @ http://www.thingiverse.com/thing:6021
 
 module corner() {
        $fn=30;
-       slopeheight= totalheight - motorheight;
-       slope = (mw2 + archoutwards)/slopeheight;
+       frameheight= motorheight + frameextra;
+       slopeheight= totalheight - frameheight;
+       slope = (mw2 + archoutwards - framesplay)/slopeheight;
+       echo(sqrt(2)*slope);
+
        translate([-mw2,-mw2,0]) union(){
-               difference(){ union(){
-                       cylinder(r=pillarthick/2, h=motorheight);
-                       translate([0,0,motorheight]) sphere(r=pillarthick/2);
-               }
-                       translate([0,0,-1])
-                               cube([mw2,mw2,motorheight+pillarthick+2]);
+               difference(){
+                       union(){
+                               cylinder(r=pillarthick/2, h=frameheight);
+                               translate([0,0,frameheight])
+                                       sphere(r=pillarthick/2);
+                       }
+                       translate([d,d,-1])
+                               cube([mw2-1,mw2-1,frameheight+pillarthick+2]);
                }
-               multmatrix([    [       1,      0,      slope,  -archoutwards ],
+               intersection(){
+                       multmatrix
+                          ([   [       1,      0,      slope,  -archoutwards ],
                                [       0,      1,      slope,  -archoutwards ],
-                               [       0,      0,      1, motorheight  ],
+                               [       0,      0,      1, frameheight  ],
                                [       0,      0,      0,      1       ]])
-                       cylinder(r=archthick/2, h=slopeheight);
+                               translate([0,0,-frameextra])
+                               cylinder(r=archthick/2,
+                                        h=slopeheight+frameextra);
+                       union() {
+                               cylinder(r=pillarthick/2, h=frameheight);
+                               translate([-100,-100,frameheight])
+                                       cube([200,200,100]);
+                       }
+               }
        }
 }
 
@@ -50,7 +74,8 @@ module halfside() {
                                      spacesz * sqrt(2)]);
                }
                intersection(){
-                       for (xz=[[-mw2+pillarthick/3, 0, panelbasez],
+                       for (xz=[[-mw2+pillarthick/3-sidethick, 0,
+                                       panelbasez+sidethick],
                                 [0, 0, panelbasez + sidethick/sqrt(2)]]) {
                                translate(xz)
                                translate([0,-sidethick,0])
@@ -75,12 +100,22 @@ module towerbase() {
                                rotate([0,0,angle]) mirror([1,0,0]) halfside();
                        }
                }
-               //translate([-mw2,-mw2,-1])
-               //      cube([motorwidth,motorwidth,motorheight]);
+               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,0,totalheight])
                rotate([0,-90,0])
-               dovetail(height=10.1, male=true);
+               intersection(){
+                       dovetail(height=10.1, male=true);
+                       translate([dovebasecutcylz,0,-100])
+                               cylinder(r=dovebasecutcylr,h=200);
+               };
 }
 
-towerbase();
+//intersection(){
+       towerbase();
+//     translate([-100,-100,0]) cube([200,200,32]);
+//}