X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=tube-crossdrill-jig.scad;h=5619e93eb649a86b1a4d34be12698bc6ec5a826e;hb=78701ddb56c37f9f319a1cd6af93d08e06c67c2c;hp=4293f5b002c7c82c7d0d96a227a01cfcf5de04a3;hpb=68db526e08029c68a07ad685459fb83c9bd52d62;p=reprap-play.git diff --git a/tube-crossdrill-jig.scad b/tube-crossdrill-jig.scad index 4293f5b..5619e93 100644 --- a/tube-crossdrill-jig.scad +++ b/tube-crossdrill-jig.scad @@ -1,29 +1,44 @@ // -*- C -*- +//$fs=0.1; +//$fa=3; +$fs=0.2; +$fa=6; + 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; slotwidth = 11.5; backslotmid2screwhole = 17; slotplugheight = 5.5; -slotplugdepth = 10; +slotplugshorterlen = 8; +slotpluglongerlen = 18; + +slotslope = 11.0 / 18.5; // "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) + @@ -35,6 +50,14 @@ mainframemaxx = mainframeholex + mainframeextraside; mainframeminy = mainframeholey - mainframeextrafront; mainframemaxz = keepslotstartz + keepslotlen; +slotslopediag = sqrt(1 + slotslope*slotslope); +slotwidthx = slotwidth * slotslopediag; + +slotxperlen = slotslope / slotslopediag; +slotyperlen = 1 / slotslopediag; + +echo(slotslope, slotslopediag, slotwidthx); + module MainFrame(){ for (m=[0,1]) { mirror([m,0,0]) { @@ -42,21 +65,31 @@ 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]) linear_extrude(height=slotplugheight+1) polygon([[0,0], - [slotwidth * sqrt(2), 0], - [slotplugdepth / sqrt(2) + slotwidth * sqrt(2), - -slotplugdepth], - [slotplugdepth / sqrt(2), -slotplugdepth]]); + [slotwidthx, 0], + [slotwidthx + slotplugshorterlen * slotxperlen, + -slotplugshorterlen * slotyperlen], + [slotpluglongerlen * slotxperlen, + -slotpluglongerlen * slotyperlen]]); + translate([-1, + -rearwallthick - boltholeslotshorter + 0.2, + tubedia + tubetubetopslop + tubetubethick + 4]) + cube([keepslotx - keepslotclear + 1, + boltholeslotshorter + 0.5, + rearwallstrengthwidth]); } } } @@ -82,9 +115,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 +134,5 @@ module Jig(){ //MainFrame(); //TubeThing(0, tubedia); -Jig(); +rotate([-90,0,0]) + Jig();