motorwidth=35.2;
motorheight=36.5;
+totalheight=65;
pillarthick=8;
-sidethick=3;
+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;
+ frameheight= motorheight + frameextra;
+ slopeheight= totalheight - frameheight;
+ slope = (mw2 + archoutwards - framesplay)/slopeheight;
+ echo(sqrt(2)*slope);
+
translate([-mw2,-mw2,0]) union(){
- cylinder(r=pillarthick/2, h=motorheight);
- translate([0,0,motorheight]) sphere(r=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]);
+ }
+ intersection(){
+ multmatrix
+ ([ [ 1, 0, slope, -archoutwards ],
+ [ 0, 1, slope, -archoutwards ],
+ [ 0, 0, 1, frameheight ],
+ [ 0, 0, 0, 1 ]])
+ 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]);
+ }
+ }
}
}
spacesz * sqrt(2)]);
}
intersection(){
- union(){
- translate([-mw2+pillarthick/3,
- -sidethick, panelbasez])
- rotate([0,45,0])
- translate([0,0,-sidethick])
- cube([100, sidethick, sidethick]);
- translate([0,
- -sidethick,
- panelbasez + sidethick/sqrt(2)])
+ for (xz=[[-mw2+pillarthick/3-sidethick, 0,
+ panelbasez+sidethick],
+ [0, 0, panelbasez + sidethick/sqrt(2)]]) {
+ translate(xz)
+ translate([0,-sidethick,0])
rotate([0,45,0])
translate([0,0,-sidethick])
cube([100, sidethick, sidethick]);
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])
+ 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]);
+//}