Zuletzt geändert am 16. Dezember 2016 um 16:21

Sternsternstern

Stern mit Fingerringen

ein parametisierter dekorativer 3D-Druck Stern zum aufhängen mit einem kleinen Ring oder als Netz mit vielen Fingerringen.






openSCAD Code und Module

   *Star(2,90,.7);//Ein Stern Beispiel
   color([.5,.5,.5])rotate([0,0,0])for (i=[5:6:60])//Ineinanderliegende Sterne
   {
       Star(.45,i,0.7);//Höhe,Durchmesser,Randbreite
       
   }
   Fingerringe(0,31,5);//anzahl abstand größe
   Verbindung(.3);//höhe der Verbindungen


   module Verbindung(h)//Verbindungen für ineinanderliegende Sterne von 5-60mm
   {
       for (i=[0:60:120])
       {
           rotate([0,0,i])union()
           {
               for (i=[-27.7:6:-2])
               {
                       translate([i,0,h/2])color("green")cube ([3,1,h],true);
               }
               for (i=[3.6:6:+32])
               {
                       translate([i,0,h/2])color("red")cube ([3,1,h],true);
               }
           }
           
       }
       for (i=[30:60:150])
       {
           rotate([0,0,i])union()
           {
               for (i=[-14.7:3.46:-3])
               {
                       translate([i,0,h/2])color("blue")cube ([2.2,1,h],true);
               }
               for (i=[+4.2:3.45:+16])
               {
                       translate([i,0,h/2])color("yellow")cube ([2.2,1,h],true);
               }
           }
           
       }
   }
   module Star(h,d,r) //d= Durchmesser  r=breite Rand ecken gerundet h=höhe
   {
       linear_extrude(h)
       {
           difference()
           {
           offset(r=r/2,$fn=60)union()
            {
             rotate (60)circle(d=d,$fn=3);
             circle(d=d,$fn=3);
            }
            offset(r=-r/2,$fn=60)union()
            {
             rotate (60)circle(d=d,$fn=3);
             circle(d=d,$fn=3);
            }
           }
       }
   }
   module Fingerringe(anzahl,r,d)//radius(abstand) durchmesser
   {
       for (i=[0:60:anzahl*60])
       {
           rotate([0,0,i])translate([r,0,0]) difference()
            {
                cylinder(.3,d=d,$fn=60,center=false); 
                cylinder(4,d=d-2,$fn=60,center=true);
            } 
       }
   }