chiark / gitweb /
tube-crossdrill-jig wip
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Fri, 24 May 2013 22:49:08 +0000 (23:49 +0100)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Fri, 24 May 2013 22:49:08 +0000 (23:49 +0100)
tube-crossdrill-jig.scad [new file with mode: 0644]

diff --git a/tube-crossdrill-jig.scad b/tube-crossdrill-jig.scad
new file mode 100644 (file)
index 0000000..4293f5b
--- /dev/null
@@ -0,0 +1,96 @@
+// -*- C -*-
+
+rearwallthick = 3;
+basethick = 3;
+mainframeendthick = 2.5;
+
+tubedia=16;
+tubetubethick=2;
+tubetubetopslop=1;
+
+boltholedia = 6.5 + 0.5;
+
+// "slot" refers to the things in the base of the drill press stand
+backslotedgespace = 71;
+slotwidth = 11.5;
+backslotmid2screwhole = 17;
+slotplugheight = 5.5;
+slotplugdepth = 10;
+
+// "keepslot" refers to the screws in the wooden jig block
+keepslotstartz = 20;
+keepslotlen = 25;
+
+mainframeextraside = 15;
+mainframeextrafront = 25;
+
+// computed values
+
+mainframeholex = backslotedgespace/2 + slotwidth/sqrt(2) +
+  backslotmid2screwhole / sqrt(2);
+
+mainframeholey = -backslotmid2screwhole / sqrt(2);
+
+mainframemaxx = mainframeholex + mainframeextraside;
+mainframeminy = mainframeholey - mainframeextrafront;
+mainframemaxz = keepslotstartz + keepslotlen;
+
+module MainFrame(){
+  for (m=[0,1]) {
+    mirror([m,0,0]) {
+      translate([-1, mainframeminy, 0])
+       cube([mainframemaxx+1, -mainframeminy, basethick]);
+      translate([-1, -rearwallthick, 0])
+       cube([mainframemaxx+1, rearwallthick, mainframemaxz]);
+      translate([mainframemaxx,0,0])
+       rotate([90,0,-90])
+       linear_extrude(height=mainframeendthick)
+       polygon([[-mainframeminy, 0],
+                [0, mainframemaxz],
+                [0, 0]]);
+
+      translate([backslotedgespace/2, 0, 1])
+       mirror([0,0,1])
+       linear_extrude(height=slotplugheight+1)
+       polygon([[0,0],
+                [slotwidth * sqrt(2), 0],
+                [slotplugdepth / sqrt(2) + slotwidth * sqrt(2),
+                 -slotplugdepth],
+                [slotplugdepth / sqrt(2), -slotplugdepth]]);
+    }
+  }
+}
+
+module TubeThing(extralen, dia, extraheight, underheight){
+  effheight = tubetubetopslop + extraheight + underheight;
+  len = -mainframeminy + extralen * 2;
+  translate([0, mainframeminy - extralen, -underheight]) {
+    translate([0,0, dia/2 + effheight])
+      rotate([-90,0,0]) cylinder(h=len, r=dia/2);
+    translate([-dia/2, 0, 0])
+      cube([dia, len, effheight + dia/2]);
+  }
+}
+
+module Jig(){
+  difference(){
+    union(){
+      MainFrame();
+      TubeThing(0, tubedia+tubetubethick*2, -tubetubethick, 0);
+    }
+    union(){
+      translate([0,0,-0.1])
+       TubeThing(10, tubedia, 0, 5);
+      translate([-boltholedia/2, mainframeminy - 1, -5])
+       cube([boltholedia, -mainframeminy + 1 - rearwallthick - 0.1,
+             mainframemaxz + 10]);
+      for (m=[0,1]) {
+      }
+    }
+  }
+}
+
+//MainFrame();
+//TubeThing(0, tubedia);
+
+Jig();