X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=reprap-play.git;a=blobdiff_plain;f=keyring-kay.scad;h=9ebb34ad7faa16df290b1ef44b88cb1f3f95b794;hp=c12b8914346c1ef98f714d7acbcb1acbfd42135e;hb=ff1f0529fe673119f08b754c44ab1772da27360c;hpb=e69943a75d807bc3e811add31396f57211afb5a0 diff --git a/keyring-kay.scad b/keyring-kay.scad index c12b891..9ebb34a 100644 --- a/keyring-kay.scad +++ b/keyring-kay.scad @@ -4,22 +4,56 @@ letterheight = 25; linewidth = 3.5; letterthick = 2.5; +basethick = 2.5; + +xborder = 5; +yborder = 5; + kdiag = 1; +kprop = 0.50; + +diaglinewidth = linewidth * sqrt(1 + kdiag*kdiag); + +ringholerad = 2.5; +ringedgewidth = 3; + +module kay_leg (transamount, llen, mir) { + translate([0,transamount,0]) + mirror([0,mir,0]) + translate([0,-0.1,0]) + multmatrix([[1,kdiag,0,0], + [0,1,0,0], + [0,0,1,0], + [0,0,0,1]]) + cube([diaglinewidth, llen + 0.1, letterthick]); +} module kay () { translate([0.1,0,0]) cube([linewidth, letterheight, letterthick]); - translate([0,letterheight/2,0]) - for (mir=[0,1]) { - mirror([0,mir,0]) - translate([0,-0.1,0]) - multmatrix([[1,kdiag,0,0], - [0,1,0,0], - [0,0,1,0], - [0,0,0,1]]) - cube([linewidth * sqrt(1 + kdiag*kdiag), - letterheight/2 + 0.1, letterthick]); - } + kay_leg(letterheight*kprop, letterheight*(1-kprop), 0); + kay_leg(letterheight*kprop, letterheight*kprop, 1); } -kay(); +totalw = letterheight*kprop + diaglinewidth + xborder*2; +totalh = letterheight + yborder*2; +basez = -(basethick-0.1); + +module main () { + kay(); + translate([-xborder, -yborder, basez]) + cube([totalw, totalh, basethick]); +} + +module ring (rad, extra) { + translate([totalw/2 - xborder, totalh - yborder, basez-extra]) + cylinder(r=rad, h=basethick + extra*2, $fn=30); +} + +difference(){ + union() { + main(); + ring(ringholerad + ringedgewidth/2, 0); + } + ring(ringholerad, 1); +}