15 archoutwards=(pillarthick-archthick)/sqrt(8);
24 include <doveclip.scad>
28 frameheight= motorheight + frameextra;
29 slopeheight= totalheight - frameheight;
30 slopex = (mw2 + archoutwards - framesplayx)/slopeheight;
31 slopey = (mw2 + archoutwards - framesplayy)/slopeheight;
32 echo(sqrt(slopex*slopex + slopey*slopey));
34 translate([-mw2,-mw2,0]) union(){
37 cylinder(r=pillarthick/2, h=frameheight);
38 translate([0,0,frameheight])
39 sphere(r=pillarthick/2);
42 cube([mw2-1,mw2-1,frameheight+pillarthick+2]);
46 ([ [ 1, 0, slopey, -archoutwards ],
47 [ 0, 1, slopex, -archoutwards ],
48 [ 0, 0, 1, frameheight ],
50 translate([0,0,-frameextra])
51 cylinder(r=archthick/2,
52 h=slopeheight+frameextra);
54 cylinder(r=pillarthick/2, h=frameheight);
55 translate([-100,-100,frameheight])
63 spacesz = (motorwidth - pillarthick/2*2) / 4;
64 panelheight = spacesz + sidethick;
65 panelbasez = motorheight+pillarthick/4-panelheight;
66 translate([0,-mw2,0]) {
67 translate([-mw2,-sidethick,0])
68 cube([motorwidth,sidethick,sidethick]);
70 translate([-mw2,-sidethick, panelbasez])
71 cube([mw2,sidethick,panelheight]);
72 translate([-mw2+pillarthick/3, -sidethick, panelbasez])
75 cube([spacesz * sqrt(2),
80 for (xz=[[-mw2+pillarthick/3-sidethick, 0,
81 panelbasez+sidethick],
82 [0, 0, panelbasez + sidethick/sqrt(2)]]) {
84 translate([0,-sidethick,0])
86 translate([0,0,-sidethick])
87 cube([100, sidethick, sidethick]);
89 translate([-mw2,-sidethick,0])
90 cube([motorwidth,sidethick,
91 motorheight+pillarthick]);
105 for (mirx=[0,1]) for (miry=[0,1])
106 mirror([mirx,0,0]) mirror([0,miry,0]) corner();
107 for (angle=[0,90,180]) {
108 rotate([0,0,angle]) halfside();
109 rotate([0,0,angle]) mirror([1,0,0]) halfside();
112 // multmatrix([[ -1, 0, 0, -mw2 - botleftstand ],
113 // [ 0, 1, 0, -100 ],
114 // [ 1, 0, 1, -100 + botleftgap ],
116 // cube([100,200,100]);
118 translate([clippairy/2,0,totalheight]) {
120 translate([-clippairy+topgluecubedy/2,-topgluecubex/2,0])
121 cube([clippairy-topgluecubedy,topgluecubex,topgluecubez]);
123 translate([0,0,topgluecubez+clippairdz]) rotate([-90,0,90])
124 DoveClipPair(h=clippairy);
130 // translate([-100,-100,0]) cube([200,200,32]);