10 mainframeendthick = 2.5;
16 boltholedia = 6.5 + 0.5;
17 boltholeslotshorter = 6;
18 mainframeholedia = 5 + 1.0;
20 // "slot" refers to the things in the base of the drill press stand
21 backslotedgespace = 59;
22 slotwidth = 11.5 - 0.5;
23 backslotmid2screwhole = 17;
25 slotplugshorterlen =10;
26 slotpluglongerlen = 20;
28 //slotslope = 11.0 / 18.5;
29 slotslope = 1 / tan(51);
31 // "keepslot" refers to the screws in the wooden jig block
34 keepslotx = backslotedgespace / 2;
37 mainframeextraside = 12;
38 mainframeextrafront = 15;
40 rearwallstrengthwidth = 10;
45 slotslopediag = sqrt(1 + slotslope*slotslope);
46 slotwidthx = slotwidth * slotslopediag;
48 slotxperlen = slotslope / slotslopediag;
49 slotyperlen = 1 / slotslopediag;
51 mainframeholex = backslotedgespace/2 + slotpluglongerlen * slotxperlen
52 + 0.5 * slotwidth * slotyperlen;
54 mainframeholey = -slotpluglongerlen * slotyperlen
55 + 0.5 * slotwidth * slotxperlen;
57 mainframemaxx = mainframeholex + mainframeextraside;
58 mainframeminy = mainframeholey - mainframeextrafront;
59 mainframemaxz = keepslotstartz + keepslotlen;
64 translate([-1, mainframeminy, 0])
65 cube([mainframemaxx+1, -mainframeminy, basethick]);
66 translate([-1, -rearwallthick, 0])
67 cube([mainframemaxx+1, rearwallthick, mainframemaxz]);
69 for (x=[keepslotx - keepslotclear, mainframemaxx - 0.5]) {
72 linear_extrude(height=mainframeendthick)
73 polygon([[-mainframeminy, 0],
78 translate([backslotedgespace/2, 0, 1])
80 linear_extrude(height=slotplugheight+1)
83 [slotwidthx + slotplugshorterlen * slotxperlen,
84 -slotplugshorterlen * slotyperlen],
85 [slotpluglongerlen * slotxperlen,
86 -slotpluglongerlen * slotyperlen]]);
88 -rearwallthick - boltholeslotshorter + 0.2,
89 tubedia + tubetubetopslop + tubetubethick + 4])
90 cube([keepslotx - keepslotclear + 1,
91 boltholeslotshorter + 0.5,
92 rearwallstrengthwidth]);
97 module TubeThing(extralen, dia, extraheight, underheight){
98 effheight = tubetubetopslop + extraheight + underheight;
99 len = -mainframeminy + extralen * 2;
100 translate([0, mainframeminy - extralen, -underheight]) {
101 translate([0,0, dia/2 + effheight])
102 rotate([-90,0,0]) cylinder(h=len, r=dia/2);
103 translate([-dia/2, 0, 0])
104 cube([dia, len, effheight + dia/2]);
112 TubeThing(0, tubedia+tubetubethick*2, -tubetubethick, 0);
115 translate([0,0,-0.1])
116 TubeThing(10, tubedia, 0, 5);
117 translate([-boltholedia/2, mainframeminy - 1, -5])
119 -mainframeminy + 1 - rearwallthick - boltholeslotshorter,
120 mainframemaxz + 10]);
123 translate([mainframeholex, mainframeholey, -30])
124 cylinder(h=basethick+40, r=mainframeholedia/2);
125 translate([keepslotx - keepslotwidth/2,
126 -10, keepslotstartz])
127 cube([keepslotwidth, 20, keepslotlen + 10]);
135 //TubeThing(0, tubedia);