uwezi icon

20220611_neopixel_star_scad

uwezi | PRO | 06/12/22 09:19:00 AM UTC (Edited) | 0 ⭐ | 556 👁️ | Never ⏰ | []
text |

2.54 KB

|

None

|

0 👍

/

0 👎

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