14 archoutwards=(pillarthick-archthick)/sqrt(8);
23 include <doveclip.scad>
27 frameheight= motorheight + frameextra;
28 slopeheight= totalheight - frameheight;
29 slopex = (mw2 + archoutwards - framesplayx)/slopeheight;
30 slopey = (mw2 + archoutwards - framesplayy)/slopeheight;
31 //echo(sqrt(2)*slope);
33 translate([-mw2,-mw2,0]) union(){
36 cylinder(r=pillarthick/2, h=frameheight);
37 translate([0,0,frameheight])
38 sphere(r=pillarthick/2);
41 cube([mw2-1,mw2-1,frameheight+pillarthick+2]);
45 ([ [ 1, 0, slopey, -archoutwards ],
46 [ 0, 1, slopex, -archoutwards ],
47 [ 0, 0, 1, frameheight ],
49 translate([0,0,-frameextra])
50 cylinder(r=archthick/2,
51 h=slopeheight+frameextra);
53 cylinder(r=pillarthick/2, h=frameheight);
54 translate([-100,-100,frameheight])
62 spacesz = (motorwidth - pillarthick/2*2) / 4;
63 panelheight = spacesz + sidethick;
64 panelbasez = motorheight+pillarthick/4-panelheight;
65 translate([0,-mw2,0]) {
66 translate([-mw2,-sidethick,0])
67 cube([motorwidth,sidethick,sidethick]);
69 translate([-mw2,-sidethick, panelbasez])
70 cube([mw2,sidethick,panelheight]);
71 translate([-mw2+pillarthick/3, -sidethick, panelbasez])
74 cube([spacesz * sqrt(2),
79 for (xz=[[-mw2+pillarthick/3-sidethick, 0,
80 panelbasez+sidethick],
81 [0, 0, panelbasez + sidethick/sqrt(2)]]) {
83 translate([0,-sidethick,0])
85 translate([0,0,-sidethick])
86 cube([100, sidethick, sidethick]);
88 translate([-mw2,-sidethick,0])
89 cube([motorwidth,sidethick,
90 motorheight+pillarthick]);
98 for (mirx=[0,1]) for (miry=[0,1])
99 mirror([mirx,0,0]) mirror([0,miry,0]) corner();
100 for (angle=[0,90,180]) {
101 rotate([0,0,angle]) halfside();
102 rotate([0,0,angle]) mirror([1,0,0]) halfside();
105 multmatrix([[ -1, 0, 0, -mw2 - botleftstand ],
107 [ 1, 0, 1, -100 + botleftgap ],
111 translate([0,-5.0,totalheight]) {
113 DoveClipPair(h=10.1);
119 // translate([-100,-100,0]) cube([200,200,32]);