chiark / gitweb /
Merge branch 'master' of chiark:/u/ianmdlvl/reprap/play
[reprap-play.git] / tube-crossdrill-jig.scad
index 4293f5b002c7c82c7d0d96a227a01cfcf5de04a3..13b097cb488e3c4e9dc6907d57b2274a2ec80317 100644 (file)
@@ -1,14 +1,19 @@
 // -*- C -*-
 
+$fs=0.1;
+$fa=3;
+
 rearwallthick = 3;
 basethick = 3;
 mainframeendthick = 2.5;
 
-tubedia=16;
+tubedia = 16 + 0.8;
 tubetubethick=2;
 tubetubetopslop=1;
 
 boltholedia = 6.5 + 0.5;
+boltholeslotshorter = 6;
+mainframeholedia = 5 + 0.5;
 
 // "slot" refers to the things in the base of the drill press stand
 backslotedgespace = 71;
@@ -20,10 +25,15 @@ slotplugdepth = 10;
 // "keepslot" refers to the screws in the wooden jig block
 keepslotstartz = 20;
 keepslotlen = 25;
+keepslotx = backslotedgespace / 2;
+keepslotwidth = 4;
 
 mainframeextraside = 15;
 mainframeextrafront = 25;
 
+rearwallstrengthwidth = 10;
+keepslotclear = 10;
+
 // computed values
 
 mainframeholex = backslotedgespace/2 + slotwidth/sqrt(2) +
@@ -42,12 +52,15 @@ module MainFrame(){
        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]]);
+
+      for (x=[keepslotx - keepslotclear, mainframemaxx - 0.5]) {
+       translate([x,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])
@@ -57,6 +70,12 @@ module MainFrame(){
                 [slotplugdepth / sqrt(2) + slotwidth * sqrt(2),
                  -slotplugdepth],
                 [slotplugdepth / sqrt(2), -slotplugdepth]]);
+      translate([-1,
+                -rearwallthick - boltholeslotshorter + 0.2,
+                tubedia + tubetubetopslop + tubetubethick + 4])
+       cube([keepslotx - keepslotclear + 1,
+             boltholeslotshorter + 0.5,
+             rearwallstrengthwidth]);
     }
   }
 }
@@ -82,9 +101,17 @@ module Jig(){
       translate([0,0,-0.1])
        TubeThing(10, tubedia, 0, 5);
       translate([-boltholedia/2, mainframeminy - 1, -5])
-       cube([boltholedia, -mainframeminy + 1 - rearwallthick - 0.1,
+       cube([boltholedia,
+             -mainframeminy + 1 - rearwallthick - boltholeslotshorter,
              mainframemaxz + 10]);
       for (m=[0,1]) {
+       mirror([m,0,0]) {
+         translate([mainframeholex, mainframeholey, -30])
+           cylinder(h=basethick+40, r=mainframeholedia/2);
+         translate([keepslotx - keepslotwidth/2,
+                    -10, keepslotstartz])
+           cube([keepslotwidth, 20, keepslotlen + 10]);
+       }
       }
     }
   }
@@ -93,4 +120,5 @@ module Jig(){
 //MainFrame();
 //TubeThing(0, tubedia);
 
-Jig();
+rotate([-90,0,0])
+  Jig();