141 lines
6.3 KiB
OpenSCAD
141 lines
6.3 KiB
OpenSCAD
module Tetrahedon(side=5) {
|
|
h = (side/4)*sqrt(6);
|
|
linear_extrude(height=h,scale=0)
|
|
translate([-side/2,-(sqrt(3)/6)*side,0])
|
|
polygon([
|
|
[0,0],
|
|
[side,0],
|
|
[side/2,sqrt(pow(side,2)-pow(side/2,2))],
|
|
[0,0]
|
|
]);
|
|
}
|
|
|
|
module Icosahedron_side(side=5){
|
|
translate([side/2,(sqrt(3)/6)*side,0])
|
|
difference(){
|
|
Tetrahedon(side);
|
|
translate([0,0,side/2])
|
|
cube([side+1,side+1,side-2],center=true);
|
|
}
|
|
}
|
|
|
|
module Icosahedron(side=5) {
|
|
translate([-2.75*side,-sqrt(pow(side,2)-pow(side/2,2))/2,0])
|
|
union(){
|
|
for(a=[0:4]){
|
|
translate([a*side,0,0])
|
|
Icosahedron_side(side);
|
|
|
|
translate([a*side+3/2*side,sqrt(pow(side,2)-pow(side/2,2)),0])
|
|
rotate([0,0,180])
|
|
Icosahedron_side(side);
|
|
|
|
translate([a*side+1/2*side,sqrt(pow(side,2)-pow(side/2,2)),0])
|
|
Icosahedron_side(side);
|
|
|
|
translate([(1+a)*side,0,0])
|
|
rotate([0,0,180])
|
|
Icosahedron_side(side);
|
|
}
|
|
}
|
|
}
|
|
|
|
module Icosahedron_map(side=10){
|
|
textsize=(sqrt(3)/6)*side;
|
|
textdepth=.3;
|
|
fontstring="Liberation Sans";
|
|
xoff=1/4*(sqrt(3)*side - side);
|
|
difference(){
|
|
Icosahedron(side);
|
|
translate([-2.25*side,-xoff,.3])
|
|
rotate([180,0,180])
|
|
linear_extrude(height=.3)
|
|
text(text="1",size=textsize,font=fontstring,halign="center",valign="center");
|
|
translate([.75*side,-xoff,textdepth])
|
|
rotate([180,0,180])
|
|
linear_extrude(height=textdepth)
|
|
text(text="2",size=textsize,font=fontstring,halign="center",valign="center");
|
|
translate([-1.75*side,2/3*side,textdepth])
|
|
rotate([180,0,180])
|
|
linear_extrude(height=textdepth)
|
|
text(text="3",size=textsize,font=fontstring,halign="center",valign="center");
|
|
translate([-.25*side,-2/3*side,textdepth])
|
|
rotate([180,0,0])
|
|
linear_extrude(height=textdepth)
|
|
text(text="4",size=textsize,font=fontstring,halign="center",valign="center");
|
|
translate([1.75*side,-2/3*side,textdepth])
|
|
rotate([180,0,0])
|
|
linear_extrude(height=textdepth)
|
|
text(text="5",size=textsize,font=fontstring,halign="center",valign="center");
|
|
translate([-.75*side,xoff,textdepth])
|
|
rotate([180,0,0])
|
|
linear_extrude(height=textdepth)
|
|
text(text="6",size=textsize,font=fontstring,halign="center",valign="center");
|
|
translate([-.75*side,1.75*xoff,textdepth])
|
|
rotate([180,0,0])
|
|
linear_extrude(height=textdepth)
|
|
text(text="_",size=textsize,font=fontstring,halign="center",valign="center");
|
|
translate([2.25*side,xoff,textdepth])
|
|
rotate([180,0,0])
|
|
linear_extrude(height=textdepth)
|
|
text(text="7",size=textsize,font=fontstring,halign="center",valign="center");
|
|
translate([.25*side,2/3*side,textdepth])
|
|
rotate([180,0,180])
|
|
linear_extrude(height=textdepth)
|
|
text(text="8",size=textsize,font=fontstring,halign="center",valign="center");
|
|
translate([-1.25*side,-xoff,textdepth])
|
|
rotate([180,0,180])
|
|
linear_extrude(height=textdepth)
|
|
text(text="9",size=textsize,font=fontstring,halign="center",valign="center");
|
|
translate([-1.25*side,-1.75*xoff,textdepth])
|
|
rotate([180,0,180])
|
|
linear_extrude(height=textdepth)
|
|
text(text="_",size=textsize,font=fontstring,halign="center",valign="center");
|
|
translate([1.25*side,2/3*side,textdepth])
|
|
rotate([180,0,180])
|
|
linear_extrude(height=textdepth)
|
|
text(text="10",size=textsize,font=fontstring,halign="center",valign="center");
|
|
translate([-1.25*side,-2/3*side,textdepth])
|
|
rotate([180,0,0])
|
|
linear_extrude(height=textdepth)
|
|
text(text="11",size=textsize,font=fontstring,halign="center",valign="center");
|
|
translate([1.25*side,xoff,textdepth])
|
|
rotate([180,0,0])
|
|
linear_extrude(height=textdepth)
|
|
text(text="12",size=textsize,font=fontstring,halign="center",valign="center");
|
|
translate([-2.25*side,-2/3*side,textdepth])
|
|
rotate([180,0,0])
|
|
linear_extrude(height=textdepth)
|
|
text(text="13",size=textsize,font=fontstring,halign="center",valign="center");
|
|
translate([-.25*side,-xoff,textdepth])
|
|
rotate([180,0,180])
|
|
linear_extrude(height=textdepth)
|
|
text(text="14",size=textsize,font=fontstring,halign="center",valign="center");
|
|
translate([1.75*side,-xoff,textdepth])
|
|
rotate([180,0,180])
|
|
linear_extrude(height=textdepth)
|
|
text(text="15",size=textsize,font=fontstring,halign="center",valign="center");
|
|
translate([-.75*side,2/3*side,textdepth])
|
|
rotate([180,0,180])
|
|
linear_extrude(height=textdepth)
|
|
text(text="16",size=textsize,font=fontstring,halign="center",valign="center");
|
|
translate([2.25*side,2/3*side,textdepth])
|
|
rotate([180,0,180])
|
|
linear_extrude(height=textdepth)
|
|
text(text="17",size=textsize,font=fontstring,halign="center",valign="center");
|
|
translate([.75*side,-2/3*side,textdepth])
|
|
rotate([180,0,0])
|
|
linear_extrude(height=textdepth)
|
|
text(text="18",size=textsize,font=fontstring,halign="center",valign="center");//*/
|
|
translate([-1.75*side,xoff,textdepth])
|
|
rotate([180,0,0])
|
|
linear_extrude(height=textdepth)
|
|
text(text="19",size=textsize,font=fontstring,halign="center",valign="center");
|
|
translate([.25*side,xoff,textdepth])
|
|
rotate([180,0,0])
|
|
linear_extrude(height=textdepth)
|
|
text(text="20",size=textsize,font=fontstring,halign="center",valign="center");//*/
|
|
}
|
|
}
|
|
|
|
Icosahedron_map(side=10); |