Sternsternstern

Aus Hackerspace Ffm
Version vom 16. Dezember 2016, 16:32 Uhr von Ubaer (Diskussion | Beiträge) (openSCAD Code und Module)

Wechseln zu: Navigation, Suche
Stern mit Fingerringen

ein parametisierter dekorativer 3D-Druck Stern zum aufhängen mit einem kleinen Ring oder als Netz mit vielen Fingerringen. Wird flach mit wenigen Layern gedruckt und kann dann auseinandergezogen werden (PET Druck).



STL Sternsternstern zum Aufhängen mit einem kleinen Ring(im zip container)

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);
            } 
       }
   }