edge = 10;
height = 40;
mink=.9;
eps=1e-3;
module strahl(edge=10, height = 50, drill=5, mink=.9)
{
outer_r = edge/(2*sin(36));
intersection()
{
difference()
{
minkowski()
{
cylinder(r1=outer_r, r2=0, h=height, $fn=5);
sphere(r=mink/2, $fn=16);
}
cylinder(r1=outer_r, r2=0, h=height, $fn=5);
}
translate([0,0,eps])
cylinder(r=1.2*outer_r, h=1.2*height, $fn=5);
}
difference()
{
cylinder(r=outer_r, h=mink, $fn=5);
translate([0,0,-eps])
cylinder(r=drill/2,h=2*mink,$fn=60);
}
}
module stern(edge=10, height=50)
{
inner_sphere_r = 0.5*edge*sqrt(5/2 + 11/10*sqrt(5));
union()
{
for (a=[0,120,240])
{
rotate([0,0,a])
rotate([0,52.5,0])
translate([inner_sphere_r, 0, 0])
rotate([0,90,0])
strahl(edge=edge, height=height);
rotate([0,0,a])
rotate([0,-11.2,0])
translate([inner_sphere_r, 0, 0])
rotate([0,90,0])
rotate([0,0,36])
strahl(edge=edge, height=height);
}
for (a=[0,120,240])
{
rotate([0,0,a+60])
rotate([0,-52.5,0])
translate([inner_sphere_r, 0, 0])
rotate([0,90,0])
rotate([0,0,36])
strahl(edge=edge, height=height);
rotate([0,0,a+60])
rotate([0,11.2,0])
translate([inner_sphere_r, 0, 0])
rotate([0,90,0])
strahl(edge=edge, height=height);
}
}
}
module face(edge=10, thickness=1, width=3)
{
inner_sphere_r = 0.5*edge*sqrt(5/2 + 11/10*sqrt(5));
outer_r = edge/(2*sin(36));
difference()
{
cylinder(r1=0, r2=outer_r, h=inner_sphere_r, $fn=5);
union()
{
cylinder(r=2*outer_r, h=inner_sphere_r-thickness,$fn=5);
translate([0,0,eps])
cylinder(r=outer_r-width, h=2*inner_sphere_r,$fn=5);
}
}
}
module base(edge=10, thickness=1, width=2)
{
inner_sphere_r = 0.5*edge*sqrt(5/2 + 11/10*sqrt(5));
outer_r = edge/(2*sin(36));
face(edge=edge+0.1, thickness=thickness, width=width);
for (a=[0,1,2,3,4])
{
rotate([0,0,72*a])
rotate([0,-63.5,0])
rotate([0,0,180])
face(edge=edge+0.1, thickness=thickness, width=width);
rotate([0,0,72*a])
rotate([0,180-63.5,0])
rotate([0,0,180])
face(edge=edge+0.1, thickness=thickness, width=width);
}
rotate([180,0,0])
rotate([0,0,36])
face(edge=edge+0.1, thickness=thickness, width=width);
}
strahl(edge=15, height = 70, drill=10);
//base(edge=17, thickness=1, width=5);
Comments