/* * This work is licensed under the Creative Commons * Attribution-ShareAlike 4.0 International License. To view a copy of * this license, visit http://creativecommons.org/licenses/by-sa/4.0/. */ /* * Font "Rock Salt" licensed under APL 2.0 * https://fonts.google.com/specimen/Rock+Salt */ $fn=50; module fhtagn() { linear_extrude(height=1) rotate([0,0,90]) translate([55/2,0,0]) resize([55,0,0],auto=true) union(){ translate([0,60,0]) text(text="Iä! Iä! Cthulhu", font="Rock Salt",halign="center"); translate([0,45,0]) text(text="fhtagn! Ph'nglui", font="Rock Salt",halign="center"); translate([0,30,0]) text(text="mglw'nafh Cthulhu", font="Rock Salt",halign="center"); translate([0,15,0]) text(text="R'lyeh wgah-nagl", font="Rock Salt",halign="center"); text(text="fhtagn—", font="Rock Salt",halign="center"); } } module box() { translate([1,1,1]) minkowski(){ cube([38,58,1]); sphere(1,center=true); } } union(){ difference(){ difference(){ box(); translate([20,30,1]) rotate([0,-180,-90]) scale([30/180,30/180,1/100]) surface(file="/home/pelu/Downloads/Elder-Rune2_verysmall.png", center=true); } translate([32.5,2.5,2]) fhtagn(); } translate([39,58,1]) difference(){ minkowski(){ translate([-19,2,0]) union() { resize([38,6,0]) intersection(){ cylinder(h=1,d=1); translate([-.5,0,0]) cube([1,1,1]); } translate([-19,-2,0]) cube([38,2,1]); } sphere(1,center=true); } translate([-19,4,-1.5]) cylinder(d=5,h=4); } }