scad/Cthulhu Keychain/Cthulhu Keychain.scad

73 lines
1.9 KiB
OpenSCAD
Raw Normal View History

2024-06-24 15:56:57 +02:00
/*
* 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);
}
}