Gesellschaftsspiel-Replikator/W6 V1.1

Aus Stratum 0
Wechseln zu:Navigation, Suche

// Kubator 1.12 // Würfel massiv drucken, um möglichst faire Würfel zu erhalten!

// Individuelle Einstellungen (die Zahlen können verändert werden, um den Würfel individuellen Wünschen anzupassen)

kante=20; // Kantenlänge des Würfels (in mm)

            // typisch sind 20 mm oder 25 mm

// mögliches Aussehen der Seiten // 0 glatte Seite // 1 1 kegliger Punkt // 2 2 keglige Punkte // 3 3 keglige Punkte // 4 4 keglige Punkte // 5 5 keglige Punkte // 6 6 keglige Punkte // 7 taktiler Strich // 8 taktiles Plus // 9 taktiler Schrägstrich // 10 Quadratischer Ausschnitt // 11 1 Auge // 12 2 Augen // 13 3 Augen // 14 4 Augen // 15 5 Augen // 16 6 Augen // 17 Ausgeschnittener Strich // 18 Ausgeschnittenes Plus-Zeichen // 19 Ausgeschnittener Schrägstrich // 20 Kreisförmiger Ausschnitt // 21 1 kugliger Punkt // 22 2 kuglige Punkte // 23 3 kuglige Punkte // 24 4 kuglige Punkte // 25 5 kuglige Punkte // 26 6 kuglige Punkte // 27 taktiles Quadrat // 28 Dreieckiger Ausschnitt // 29 Fünfeckiger Ausschnitt // 30 ausgeschnittenes X // 31 taktiles X // 32 taktiler Kreis // 33 ausgeschnittener Stern // 34 taktiler Stern // 35 Sechseckiger Ausschnitt // 36 Siebeneckiger Ausschnitt // 37 Achteckiger Ausschnitt // 38 Taktiles Dreieck // 39 Taktiler Fünfeck // 40 Taktiles Sechseck // 41 Taktiles Siebeneck // 42 Taktiles Achteck

// hier die Nummern der gewünschten Seiten eintragen seite_unten = 16; seite_oben = 17; seite_links = 31; seite_rechts = 6; seite_vorne = 0; seite_hinten = 26;

abgerundet = 1; // Aussehen des Würfelkörpers

               // Werte ganzahlig von 0 bis 4
               // 0 = keine Abrundung der Ecken und Kanten
               // 1 = Ecken und Kanten sind abgerundet
               // 2 = nur Ecken sind abgerundet
               // 3 = Ecken und Kanten fehlen
               // 4 = Ecken fehlen, Kanten sind abgerundet

abrundungsgroesse = 0.7; // je kleiner desto runder (0.55 <= abrundungsgroesse <= 1.0)

koerperfarbe = "white"; // Farbe des Würfelkörper kerbenfarbe = "white"; // Farbe der Ausschnitte augenfarbe = "black"; // Farbe der Augen punktfarbe = "black"; // Farbe der taktilen Punkte

ausschnittstyp = 1; // 1 = quadratischer Ausschnitt

                   // 2 = kreisförmiger Ausschnitt
                   // n (n > 2) = n-eckiger Ausschnitt

kerbe = 2; // Tiefe der ausgeschnittenen Bereiche (in mm) ausschnitt = 13; // Seitenlänge der ausgeschnittenen Bereiche bei quadratischem Ausschnitt(in mm) kreisdurchmesser = 7.5; // Durchmesser des Kreises bei kreisförmigem Ausschnitt (in mm)

abstand_kegelpunkte=4; // Abstand der erhabenen kegligen Punkte (in mm) basis_kegelpunkte=1.5; // Basisdurchmesser der erhabenen kegligen Punkte (in mm) kegelspitze=1; // Spitzheit der erhabenen kegligen Punkte (in mm)

                // 0 = Kegel, 
                // > 0 Kegelstumpf
                // Zylinder, wenn gleicher Wert wie basis_kegelpunkte

abstand_kugelpunkte=4; // Abstand der kugligen Punkte (in mm basis_kugelpunkte=1; // Basisdurchmesser der erhabenen kugligen Punkte (in mm) // wird auf kerbe gesetzt, wenn er kleiner als diese Tiefe

augenabstand=4.5; // Abstand der Augen von der Mitte der Seiten (in mm) bei Seiten 11 bis 16 d_auge=3.5; // Durchmesser der Augen (in mm) bei Seiten 11 bis 16

strichdicke = 2.5; // Dicke des Striches bei Seiten 7 - 9,17 - 19, 30, 31, 33, 34 strichlaenge = 11; // Länge des Striches bei Seiten 7 - 9,17 - 19, 30, 31, 33, 34 ringgroesse = 10; // Durchmesser des inneren Kreises bei Seite 32 (in mm) quadgroesse = 8; // Seitenlänge des inneren Quadrates bei Seite 27 (in mm)

//$fn = 70; // je größer desto genauer der Würfel

                  // 	je größer desto langsamer die Berechnung
                  // für Testzwecke auskommentieren 

// Kopierbereich (hier fertige Vorlagen hineinkopieren)


// Ende Kopierbereich

seite_unten = 39; seite_oben = 38; seite_links = 40; seite_rechts = 41; seite_vorne = 42; seite_hinten = 9;

// Ende der individuellen Einstellungen // ab hier nichts verändern

r=-kante/2; r2=(d_auge/2); tiefe = kerbe * 2; punktpos=kante/2-kerbe;


main();

module body_intersection (body_intersection_size) { difference () {

     intersection() {

color(koerperfarbe) cube(size=kante,center=true); color(koerperfarbe) sphere(r=kante*body_intersection_size, center=true);

     }
 		color(augenfarbe) CutDice();

} }

module body_union_ecken(kante_kl,eckradius) {

     halbe_kante = kante_kl /2;
     for(r = [0:90:270])
        rotate([0,r,0])
           for(y = [halbe_kante,-halbe_kante])
              translate([halbe_kante,y,halbe_kante])
                 sphere(eckradius,center=true);

}

module body_union_kanten(kante_kl, eckradius) {

     halbe_kante = kante_kl /2;
     for(r = [0:90:270])
        rotate([0,r,0])
           for(y = [halbe_kante,-halbe_kante])
              translate([halbe_kante,y,0])
                 cylinder(kante_kl,eckradius,eckradius,center=true); 
     for(r = [0:90:270])
        rotate([0,r,0])
           translate([halbe_kante,0,halbe_kante]) 
            rotate([90,0,0])
              cylinder(kante_kl,eckradius,eckradius,center=true); 

}

module body_union_seiten(kante_kl, eckradius) {

     for(r = [0:90:270])
        rotate([0,r,0])
           translate([eckradius,0,0])
              cube([kante_kl,kante_kl,kante_kl],center=true); 
     for(y = [eckradius,-eckradius])
        translate([0,y,0])
           cube([kante_kl,kante_kl,kante_kl],center=true); 

}


module body_union(body_union_size)

{

  kante_kl = kante * body_union_size;
  eckradius = (kante - kante_kl) / 2;
  difference () {
  union()
  {
     body_union_ecken(kante_kl,eckradius);
     body_union_kanten(kante_kl,eckradius);
     body_union_seiten(kante_kl,eckradius);
  }
 		color(augenfarbe) CutDice();

} }

module body_union_ohne_ecken(body_union_size)

{

  kante_kl = kante * body_union_size;
  eckradius = (kante - kante_kl) / 2;
  difference () {
  union()
  {
     body_union_kanten(kante_kl,eckradius);
     body_union_seiten(kante_kl,eckradius);
  }
 		color(augenfarbe) CutDice();

} }

module body_union_ohne_ecken_und_kanten(body_union_size)

{

  kante_kl = kante * body_union_size;
  eckradius = (kante - kante_kl) / 2;
  difference () {
  union()
  {
     body_union_seiten(kante_kl,eckradius);
  }
 		color(augenfarbe) CutDice();

} }

module main() {

   if (abgerundet == 0) body_intersection (1.0);
   if (abgerundet == 1) body_union (abrundungsgroesse);
   if (abgerundet == 2) body_intersection (abrundungsgroesse);
   if (abgerundet == 3) body_union_ohne_ecken_und_kanten (abrundungsgroesse);
   if (abgerundet == 4) body_union_ohne_ecken (abrundungsgroesse);
 color(punktfarbe) AddPoints();

}

module cut_quad () { translate ([0,0,-kante/2]) cube([ausschnitt, ausschnitt, tiefe],center=true); }

module cut_circle (n=0) { if (n == 0) { translate ([0,0,-kante/2]) cylinder(tiefe,kreisdurchmesser,kreisdurchmesser, center=true); } if (n > 0) { translate ([0,0,-kante/2]) cylinder(tiefe,kreisdurchmesser,kreisdurchmesser, center=true, $fn=n); }

}

module cut_strich () { translate ([0,0,-kante/2]) cube([strichlaenge, strichdicke, tiefe],center=true); }

module cut_slash () { translate ([0,0,-kante/2]) rotate([0,0,-45]) cube([strichlaenge, strichdicke, tiefe],center=true); }

module cut_star () { translate ([0,0,-kante/2]) cube([strichlaenge, strichdicke, tiefe],center=true); translate ([0,0,-kante/2]) cube([strichdicke, strichlaenge, tiefe],center=true); translate ([0,0,-kante/2]) rotate([0,0,-45]) cube([strichlaenge, strichdicke, tiefe],center=true); translate ([0,0,-kante/2]) rotate([0,0,45]) cube([strichlaenge, strichdicke, tiefe],center=true); }

module cut_x () { translate ([0,0,-kante/2]) rotate([0,0,-45]) cube([strichlaenge, strichdicke, tiefe],center=true); translate ([0,0,-kante/2]) rotate([0,0,45]) cube([strichlaenge, strichdicke, tiefe],center=true); }

module cut_plus () { translate ([0,0,-kante/2]) cube([strichlaenge, strichdicke, tiefe],center=true); translate ([0,0,-kante/2]) cube([strichdicke, strichlaenge, tiefe],center=true); }


module cut_pips1 () { translate([0,0,r]) sphere(r=r2*1.4, center=true); }

module cut_pips2 () { translate([-augenabstand,augenabstand,r]) sphere(r=r2, center=true); translate([augenabstand,-augenabstand,r]) sphere(r=r2, center=true); }

module cut_pips3 () { translate([-augenabstand,augenabstand,r]) sphere(r=r2, center=true); translate([0,0,r]) sphere(r=r2, center=true); translate([augenabstand,-augenabstand,r]) sphere(r=r2, center=true); }

module cut_pips4 () { translate([-augenabstand,augenabstand,r]) sphere(r=r2, center=true); translate([augenabstand,-augenabstand,r]) sphere(r=r2, center=true); translate([augenabstand,augenabstand,r]) sphere(r=r2, center=true); translate([-augenabstand,-augenabstand,r]) sphere(r=r2, center=true); }

module cut_pips5 () { translate([-augenabstand,augenabstand,r]) sphere(r=r2, center=true); translate([augenabstand,-augenabstand,r]) sphere(r=r2, center=true); translate([0,0,r]) sphere(r=r2, center=true); translate([augenabstand,augenabstand,r]) sphere(r=r2, center=true); translate([-augenabstand,-augenabstand,r]) sphere(r=r2, center=true); }

module cut_pips6 () { translate([-augenabstand,augenabstand,r]) sphere(r=r2, center=true); translate([augenabstand,-augenabstand,r]) sphere(r=r2, center=true); translate([-augenabstand,0,r]) sphere(r=r2, center=true); translate([augenabstand,0,r]) sphere(r=r2, center=true); translate([augenabstand,augenabstand,r]) sphere(r=r2, center=true); translate([-augenabstand,-augenabstand,r]) sphere(r=r2, center=true); }

module add_strich () { translate ([0,0,-kante/2+kerbe]) cube([strichlaenge, strichdicke, tiefe],center=true); }

module add_star () { translate([0,0,-kante/2+kerbe]) cube([strichlaenge, strichdicke, tiefe],center=true); translate([0,0,-kante/2+kerbe]) cube([strichdicke, strichlaenge, tiefe],center=true); translate([0,0,-kante/2+kerbe]) rotate([0,0,-45]) cube([strichlaenge, strichdicke, tiefe],center=true); translate([0,0,-kante/2+kerbe]) rotate([0,0,45]) cube([strichlaenge, strichdicke, tiefe],center=true); }

module add_plus () { translate([0,0,-kante/2+kerbe]) cube([strichlaenge, strichdicke, tiefe],center=true); translate([0,0,-kante/2+kerbe]) cube([strichdicke, strichlaenge, tiefe],center=true); }


module add_slash () { translate([0,0,-kante/2+kerbe]) rotate([0,0,-45]) cube([strichlaenge, strichdicke, tiefe],center=true); }

module add_x () { translate([0,0,-kante/2+kerbe]) rotate([0,0,-45]) cube([strichlaenge, strichdicke, tiefe],center=true); translate([0,0,-kante/2+kerbe]) rotate([0,0,45]) cube([strichlaenge, strichdicke, tiefe],center=true); }

module add_ring () { translate([0,0,r]) cylinder(tiefe,ringgroesse/2,ringgroesse/2,center=false); }

module add_prisma (n=3) {

 groesse =  strichlaenge / 2.3;

translate([0,0,-kante/2+kerbe]) cylinder(tiefe,groesse,groesse,center=true,$fn=n); }

module add_quad () {

 translate([0,0,-tiefe]) cube([quadgroesse, quadgroesse, 3*tiefe],center=true);

// translate([0,0,r]) cube(tiefe,35,35,center=true); }

module add_sphere1 () {

 hoehe = kerbe;
 rho = min (basis_kugelpunkte / 2, hoehe);
 radius = max((pow(hoehe,2) + pow(rho,2)) / (2 * hoehe),hoehe);

translate([0,0,r+hoehe]) sphere(r=radius, center=true);

}

module add_sphere2 () {

 hoehe = kerbe;
 rho = min (basis_kugelpunkte / 2, hoehe);
 radius = max((pow(hoehe,2) + pow(rho,2)) / (2 * hoehe),hoehe);

translate([-abstand_kugelpunkte,abstand_kugelpunkte,r+hoehe]) sphere(r=radius, center=true); translate([abstand_kugelpunkte,-abstand_kugelpunkte,r+hoehe]) sphere(r=radius, center=true);

}

module add_sphere3 () {

 hoehe = kerbe;
 rho = min (basis_kugelpunkte / 2, hoehe);
 radius = max((pow(hoehe,2) + pow(rho,2)) / (2 * hoehe),hoehe);

translate([-abstand_kugelpunkte,abstand_kugelpunkte,r+hoehe]) sphere(r=radius, center=true); translate([0,0,r+hoehe]) sphere(r=radius, center=true); translate([abstand_kugelpunkte,-abstand_kugelpunkte,r+hoehe]) sphere(r=radius, center=true);

}

module add_sphere4 () {

 hoehe = kerbe;
 rho = min (basis_kugelpunkte / 2, hoehe);
 radius = max((pow(hoehe,2) + pow(rho,2)) / (2 * hoehe),hoehe);

translate([-abstand_kugelpunkte,abstand_kugelpunkte,r+hoehe]) sphere(r=radius, center=true); translate([abstand_kugelpunkte,-abstand_kugelpunkte,r+hoehe]) sphere(r=radius, center=true); translate([abstand_kugelpunkte,abstand_kugelpunkte,r+hoehe]) sphere(r=radius, center=true); translate([-abstand_kugelpunkte,-abstand_kugelpunkte,r+hoehe]) sphere(r=radius, center=true);

}

module add_sphere5 () {

 hoehe = kerbe;
 rho = min (basis_kugelpunkte / 2, hoehe);
 radius = max((pow(hoehe,2) + pow(rho,2)) / (2 * hoehe),hoehe);

translate([-abstand_kugelpunkte,abstand_kugelpunkte,r+hoehe]) sphere(r=radius, center=true); translate([abstand_kugelpunkte,-abstand_kugelpunkte,r+hoehe]) sphere(r=radius, center=true); translate([0,0,r+hoehe]) sphere(r=radius, center=true); translate([abstand_kugelpunkte,abstand_kugelpunkte,r+hoehe]) sphere(r=radius, center=true); translate([-abstand_kugelpunkte,-abstand_kugelpunkte,r+hoehe]) sphere(r=radius, center=true);

}

module add_sphere6 () {

 hoehe = kerbe;
 rho = min (basis_kugelpunkte / 2, hoehe);
 radius = max((pow(hoehe,2) + pow(rho,2)) / (2 * hoehe),hoehe);

translate([-abstand_kugelpunkte,abstand_kugelpunkte,r+hoehe]) sphere(r=radius, center=true); translate([abstand_kugelpunkte,-abstand_kugelpunkte,r+hoehe]) sphere(r=radius, center=true); translate([-abstand_kugelpunkte,0,r+hoehe]) sphere(r=radius, center=true); translate([abstand_kugelpunkte,0,r+hoehe]) sphere(r=radius, center=true); translate([abstand_kugelpunkte,abstand_kugelpunkte,r+hoehe]) sphere(r=radius, center=true); translate([-abstand_kugelpunkte,-abstand_kugelpunkte,r+hoehe]) sphere(r=radius, center=true);

}


module add_pips1 () { translate([0,0,r]) cylinder(tiefe,kegelspitze,basis_kegelpunkte);

}

module add_pips2 () { translate([-abstand_kegelpunkte,abstand_kegelpunkte,r]) cylinder(tiefe,kegelspitze,basis_kegelpunkte); translate([abstand_kegelpunkte,-abstand_kegelpunkte,r]) cylinder(tiefe,kegelspitze,basis_kegelpunkte); }

module add_pips3 () { translate([-abstand_kegelpunkte,abstand_kegelpunkte,r]) cylinder(tiefe,kegelspitze,basis_kegelpunkte); translate([0,0,r]) cylinder(tiefe,kegelspitze,basis_kegelpunkte); translate([abstand_kegelpunkte,-abstand_kegelpunkte,r]) cylinder(tiefe,kegelspitze,basis_kegelpunkte); }

module add_pips4 () { translate([-abstand_kegelpunkte,abstand_kegelpunkte,r]) cylinder(tiefe,kegelspitze,basis_kegelpunkte); translate([abstand_kegelpunkte,-abstand_kegelpunkte,r]) cylinder(tiefe,kegelspitze,basis_kegelpunkte); translate([abstand_kegelpunkte,abstand_kegelpunkte,r]) cylinder(tiefe,kegelspitze,basis_kegelpunkte); translate([-abstand_kegelpunkte,-abstand_kegelpunkte,r]) cylinder(tiefe,kegelspitze,basis_kegelpunkte); }

module add_pips5 () { translate([-abstand_kegelpunkte,abstand_kegelpunkte,r]) cylinder(tiefe,kegelspitze,basis_kegelpunkte); translate([abstand_kegelpunkte,-abstand_kegelpunkte,r]) cylinder(tiefe,kegelspitze,basis_kegelpunkte); translate([0,0,r]) cylinder(tiefe,kegelspitze,basis_kegelpunkte); translate([abstand_kegelpunkte,abstand_kegelpunkte,r]) cylinder(tiefe,kegelspitze,basis_kegelpunkte); translate([-abstand_kegelpunkte,-abstand_kegelpunkte,r]) cylinder(tiefe,kegelspitze,basis_kegelpunkte); }

module add_pips6 () { translate([-abstand_kegelpunkte,abstand_kegelpunkte,r]) cylinder(tiefe,kegelspitze,basis_kegelpunkte); translate([abstand_kegelpunkte,-abstand_kegelpunkte,r]) cylinder(tiefe,kegelspitze,basis_kegelpunkte); translate([-abstand_kegelpunkte,0,r]) cylinder(tiefe,kegelspitze,basis_kegelpunkte); translate([abstand_kegelpunkte,0,r]) cylinder(tiefe,kegelspitze,basis_kegelpunkte); translate([abstand_kegelpunkte,abstand_kegelpunkte,r]) cylinder(tiefe,kegelspitze,basis_kegelpunkte); translate([-abstand_kegelpunkte,-abstand_kegelpunkte,r]) cylinder(tiefe,kegelspitze,basis_kegelpunkte); }

module make_ausschnitt () {

 if (ausschnittstyp == 1) color(kerbenfarbe) cut_quad (); 
 if (ausschnittstyp == 2) color(kerbenfarbe) cut_circle (); 
 if (ausschnittstyp > 2) color(kerbenfarbe) cut_circle (n=ausschnittstyp); 

}


module cut_weiche(variant) {

if (variant == 1) make_ausschnitt(); 
if (variant == 2) make_ausschnitt();  
if (variant == 3) make_ausschnitt();  
if (variant == 4) make_ausschnitt();  
if (variant == 5) make_ausschnitt();  
if (variant == 6) make_ausschnitt();  
if (variant == 7) make_ausschnitt();  
if (variant == 8) make_ausschnitt();  
if (variant == 9) make_ausschnitt();  
if (variant == 10) cut_quad (); 
if (variant == 11) cut_pips1 (); // 1 Auge
if (variant == 12) cut_pips2 (); // 2 Augen
if (variant == 13) cut_pips3 (); // 3 Augen
if (variant == 14) cut_pips4 (); // 4 Augen
if (variant == 15) cut_pips5 (); // 5 Augen
if (variant == 16) cut_pips6 (); // 6 Augen
if (variant == 17) cut_strich (); 
if (variant == 18) cut_plus (); 
if (variant == 19) cut_slash (); 
if (variant == 20) cut_circle (); 
if (variant == 21) make_ausschnitt(); 
if (variant == 22) make_ausschnitt(); 
if (variant == 23) make_ausschnitt(); 
if (variant == 24) make_ausschnitt(); 
if (variant == 25) make_ausschnitt(); 
if (variant == 26) make_ausschnitt(); 
if (variant == 27) make_ausschnitt(); 
if (variant == 28) cut_circle (n=3); 
if (variant == 29) cut_circle (n=5); 
if (variant == 30) cut_x (); 
if (variant == 31) make_ausschnitt(); 
if (variant == 32) make_ausschnitt(); 
if (variant == 33) cut_star (); 
if (variant == 34) make_ausschnitt();  
if (variant == 35) cut_circle (n=6); 
if (variant == 36) cut_circle (n=7); 
if (variant == 37) cut_circle (n=8); 
if (variant == 38) make_ausschnitt();  
if (variant == 39) make_ausschnitt();  
if (variant == 40) make_ausschnitt();  
if (variant == 41) make_ausschnitt();  
if (variant == 42) make_ausschnitt();  

}

module cut_unten() {

 cut_weiche(seite_unten);

}

module cut_hinten() { rotate([90,0,0]) {

 cut_weiche(seite_hinten);

} }

module cut_links() { rotate([0,90,0]) {

 cut_weiche(seite_links);

} }

module cut_rechts() { rotate([0,-90,0]) {

 cut_weiche(seite_rechts);

} }

module cut_vorne() { rotate([-90,0,0]) {

 cut_weiche(seite_vorne);

} }

module add_weiche(variant=0) {

if (variant == 1) add_pips1 (); // 1 keglige Punkt
if (variant == 2) add_pips2 (); // 2 keglige Punkte
if (variant == 3) add_pips3 (); // 3 keglige Punkt
if (variant == 4) add_pips4 (); // 4 keglige Punkte
if (variant == 5) add_pips5 (); // 5 keglige Punkte
if (variant == 6) add_pips6 (); // 6 keglige Punkte
if (variant == 7) add_strich (); // Taktiler Strich
if (variant == 8) add_plus (); // Taktiler Plus
if (variant == 9) add_slash (); // Taktiler Schrägstrich
if (variant == 21) add_sphere1 (); // 1 kugliger Punkt 
if (variant == 22) add_sphere2 (); // 2 kuglige Punkte 
if (variant == 23) add_sphere3 (); // 3 kuglige Punkte 
if (variant == 24) add_sphere4 (); // 4 kuglige Punkte 
if (variant == 25) add_sphere5 (); // 5 kuglige Punkte 
if (variant == 26) add_sphere6 (); // 6 kuglige Punkte 
if (variant == 27) add_quad (); // Taktiles Quadrat
if (variant == 31) add_x (); // Taktiles X
if (variant == 32) add_ring (); // Taktiler Ring
if (variant == 34) add_star (); // Taktiler Stern
if (variant == 38) add_prisma (n=3); // Taktiles Dreieck
if (variant == 39) add_prisma (n=5); // Taktiles Fünfeck
if (variant == 40) add_prisma (n=6); // Taktiles Sechseck
if (variant == 41) add_prisma (n=7); // Taktiles Siebeneck
if (variant == 42) add_prisma (n=8); // Taktiles Achteck

}

module cut_oben() { rotate([180,0,0]) {

 cut_weiche(seite_oben);

} }

module CutDice(){ cut_unten(); cut_hinten(); cut_links(); cut_rechts(); cut_vorne(); cut_oben(); }

module add_unten() {

 add_weiche(seite_unten);

}

module add_hinten() { rotate([90,0,0]) {

 add_weiche(seite_hinten);

} }

module add_links() { rotate([0,90,0]) {

 add_weiche(seite_links);

} }

module add_rechts() { rotate([0,-90,0]) {

 add_weiche(seite_rechts);

} }

module add_vorne() { rotate([-90,0,0]) {

 add_weiche(seite_vorne);

} }

module add_oben() { rotate([180,0,0]) {

 add_weiche(seite_oben);

} }

module AddPoints(){ add_unten(); add_hinten(); add_links(); add_rechts(); add_vorne(); add_oben(); }