diff options
| author | Mirek Kratochvil <exa.exa@gmail.com> | 2026-10-29 21:59:11 +0100 |
|---|---|---|
| committer | Mirek Kratochvil <exa.exa@gmail.com> | 2026-10-29 21:59:11 +0100 |
| commit | a57b23e308bb5dd0846ad977dbf931aeef8ed42f (patch) | |
| tree | 27ce30db55bc94d87d6c83f0973407a7b8ec30f1 /ls47-arrows.scad | |
| parent | 74b7edfefcc51a7e199c2573dab4668a04642356 (diff) | |
| download | ls47-a57b23e308bb5dd0846ad977dbf931aeef8ed42f.tar.gz ls47-a57b23e308bb5dd0846ad977dbf931aeef8ed42f.tar.bz2 | |
a bit of a clean-up
Diffstat (limited to 'ls47-arrows.scad')
| -rw-r--r-- | ls47-arrows.scad | 91 |
1 files changed, 0 insertions, 91 deletions
diff --git a/ls47-arrows.scad b/ls47-arrows.scad deleted file mode 100644 index c77ad78..0000000 --- a/ls47-arrows.scad +++ /dev/null @@ -1,91 +0,0 @@ - -// No license, but send me a hello if you use this for some good purpose. -// -- Mirek Kratochvil <exa.exa@gmail.com> - -font = "FiraMono:style=Bold"; - -//inch-sized tiles look imperial. -tilesize=25.4; -//you might like them a bit larger if you want to use this outdoors - -//distance between tiles -off=tilesize*1.1; -tileheight=tilesize/10; -fontheight=tileheight*0.5; -corner=tileheight*2; - -module arrow(n) { - if (n>=1) - for(i=[0:n-1]) translate([i-(n-1)/2,0,0]) - polygon([[0.45,0],[0,0.7],[-0.45,0]]); -} - -//this produces one tile -module tilec(letter, x, y, c) { - xx = ((10-x)%7)-3; - yy = ((y+3)%7)-3; - dx = sign(xx); - dy = sign(yy); - translate([x*off,(6-y)*off,0]) { - difference() { - color(c) union() { - cube([tilesize,tilesize-corner,tileheight]); - translate([corner, tilesize-corner,0]) - cube([tilesize-2*corner, corner, tileheight]); - translate([corner, tilesize-corner, 0]) - cylinder(tileheight, corner, corner); - translate([tilesize-corner, tilesize-corner, 0]) - cylinder(tileheight, corner, corner); - }; - color("white") { - translate([tilesize*(0.5-dx*0.1),tilesize*(0.3-dy*0.1),tileheight*.5]) - linear_extrude (height=tileheight) - text(letter, font=font, size=tilesize*.48, - halign="center", valign="baseline"); - } - color("white") - translate([tilesize*(0.5+dx*0.3), tilesize*0.5, tileheight*.5]) - scale(4*[dx,1,1]) - rotate([0,0,-90]) - linear_extrude(height=tileheight/4) - arrow(abs(xx)); - color("white") - translate([tilesize*0.5, tilesize*(0.5+dy*0.3), tileheight*.5]) - scale(4*[1,dy,1]) - linear_extrude(height=tileheight/4) - arrow(abs(yy)); - } - } -} - -//tiles -module tile(letter,x,y) { - tilec(letter,x,y,"darkgray"); -} - -module tiles(letters) { - for(i=[0,1,2,3,4,5,6]) for (j=[0,1,2,3,4,5,6]) { - tile(letters[i+7*j], i, j); - } -} - -tiles( - ["_", "A", "B", "C", "D", "E", "F", - "G", "H", "I", "J", "K", "L", "M", - "N", "O", "P", "Q", "R", "S", "T", - "U", "V", "W", "X", "Y", "Z", ".", - ",", ":", "?", "!", "'", "(", ")", - "0", "1", "2", "3", "4", "5", "6", - "7", "8", "9", "+", "-", "*", "/"] -); - -//the token -translate([-off/2,off/2,0]) { - color("red") difference() { - cylinder(h=tileheight, d=tilesize); - translate([0,0,-.1]) - cylinder(h=tileheight*1.2, d=tilesize-2*tileheight); - } -} - - |
