Gesellschaftsspiel-Replikator/Domino V1: Unterschied zwischen den Versionen

Aus Stratum 0
Wechseln zu:Navigation, Suche
(Seite erstellt: OpenSCAD für Blinden-Domino-Stein)
 
(Update - Nun ein ganzer Satz)
Zeile 3: Zeile 3:
  
 
// Blindendomino
 
// Blindendomino
// 2014-01-22 V1
+
// 2014-01-22 V1.01
 
// by Stratum 0
 
// by Stratum 0
 
// License: WTF
 
// License: WTF
Zeile 22: Zeile 22:
 
Punktspitze=0;
 
Punktspitze=0;
 
Punktabstand=4;
 
Punktabstand=4;
 +
Rechts=1;
 +
Links=-1;
 +
Abstand=0;
  
 +
//MyDomino();
  
intersection()
+
 
 +
//module MyDomino()
 
{
 
{
sphere (LangeKante*0.8);
 
MyDomino();
 
}
 
  
module MyDomino()
+
 
{
+
for (i = [1:6])
CutDomino();
+
    {
AddPoints();
+
    for (j = [1:6])
}
+
          {
 +
          translate([(LangeKante+Abstand)*(i-1),(KurzeKante+Abstand)*(j-1),0])  CutDomino();
 +
          translate([(LangeKante+Abstand)*(i-1)+Abstand,(KurzeKante+Abstand)*(j-1),0])  CreateValue("purple", i, Links);
 +
          translate([(LangeKante+Abstand)*(i-1)+Abstand,(KurzeKante+Abstand)*(j-1),0])  CreateValue("pink", j, Rechts);
 +
          } // End For J
 +
    } // End For I
 +
} // End Module
  
  
Zeile 40: Zeile 48:
 
{
 
{
 
difference()
 
difference()
{
+
    {
 
     // Basisdomino erstellen
 
     // Basisdomino erstellen
 
     cube([LangeKante, KurzeKante, Hoehe], center=true);
 
     cube([LangeKante, KurzeKante, Hoehe], center=true);
Zeile 47: Zeile 55:
 
     // Rechte Seite
 
     // Rechte Seite
  
     color("red") translate ([LangeKante/4,0,Kerbe])  cube([Ausschnitt, Ausschnitt,Kerbe],center=true);
+
     color("lightblue") translate ([LangeKante/4,0,Kerbe])  cube([Ausschnitt, Ausschnitt, Kerbe*2],center=true);
  
 
     // Ausschnitt für Einkerbungen erstellen
 
     // Ausschnitt für Einkerbungen erstellen
 
     // Linke Seite
 
     // Linke Seite
  
     color("blue") translate ([-LangeKante/4,0,Kerbe])  cube([Ausschnitt, Ausschnitt,Kerbe],center=true);
+
     color("blue") translate ([-LangeKante/4,0,Kerbe])  cube([Ausschnitt, Ausschnitt,Kerbe*2],center=true);
  
 
+
    };// End Difference
 +
}; // End Module
  
};// End Difference
 
}; // End Module
 
  
 
// Punkte hinzufügen
 
// Punkte hinzufügen
  
 +
module CreateValue(Farbe, Value, Seite)
 +
{
 +
    if (Value==1)
 +
    {
 +
          punkt(Farbe, 8, Seite);
 +
    }
 +
 +
    if (Value==2)
 +
    {
 +
          punkt(Farbe, 1, Seite);
 +
          punkt(Farbe, 6, Seite);
 +
    }
 +
 +
    if (Value==3)
 +
    {
 +
          punkt(Farbe, 1, Seite);
 +
          punkt(Farbe, 8, Seite);
 +
          punkt(Farbe, 6, Seite);
 +
    }
 +
 +
    if (Value==4)
 +
    {
 +
          punkt(Farbe, 1, Seite);
 +
          punkt(Farbe, 3, Seite);
 +
          punkt(Farbe, 4, Seite);
 +
          punkt(Farbe, 6, Seite);
 +
    }
 +
 +
    if (Value==5)
 +
    {
 +
          punkt(Farbe, 1, Seite);
 +
          punkt(Farbe, 3, Seite);
 +
          punkt(Farbe, 8, Seite);
 +
          punkt(Farbe, 4, Seite);
 +
          punkt(Farbe, 6, Seite);
 +
    }
 +
 +
    if (Value==6)
 +
    {
 +
          punkt(Farbe, 1, Seite);
 +
          punkt(Farbe, 2, Seite);
 +
          punkt(Farbe, 3, Seite);
 +
          punkt(Farbe, 4, Seite);
 +
          punkt(Farbe, 5, Seite);
 +
          punkt(Farbe, 6, Seite);
 +
 +
    }
 +
};
 +
 +
 +
 +
 +
 +
module punkt(Farbe,PunktPos,Seite)
 +
{
  
module AddPoints(){
+
if (PunktPos==1)  
 +
    {
 +
          color(Farbe)
 +
              translate([LangeKante/4*Seite-Punktabstand,Punktabstand,Kerbe*0]) 
 +
                    cylinder(Punkthoehe,Punktbasis,Punktspitze,center=yes);
 +
    }
  
// Seite Z: 1
 
  
color("orange")
+
if (PunktPos==2)
translate([-LangeKante/4,0,Kerbe])   
+
    {
cylinder(Punkthoehe,Punktbasis,Punktspitze);    
+
          color(Farbe)  
 +
              translate([LangeKante/4*Seite-Punktabstand,0,Kerbe*0])   
 +
                    cylinder(Punkthoehe,Punktbasis,Punktspitze,center=yes);
 +
    }
  
// Seite -Z: 6
 
  
color("cyan")
+
if (PunktPos==3)
translate([LangeKante/4+Punktabstand,0,Kerbe])   
+
    {
 +
          color(Farbe)  
 +
              translate([LangeKante/4*Seite-Punktabstand,-Punktabstand,Kerbe*0])   
 +
                    cylinder(Punkthoehe,Punktbasis,Punktspitze,center=yes);
 +
    }
  
cylinder(Punkthoehe,Punktbasis,Punktspitze);
 
  
color("white")
+
if (PunktPos==4)
translate([LangeKante/4-Punktabstand,0,Kerbe])   
+
    {
 +
          color(Farbe)  
 +
              translate([LangeKante/4*Seite+Punktabstand,+Punktabstand,Kerbe*0])   
 +
                    cylinder(Punkthoehe,Punktbasis,Punktspitze,center=yes);
 +
    }
  
cylinder(Punkthoehe,Punktbasis,Punktspitze);
 
  
color("green")
+
if (PunktPos==5)
translate([LangeKante/4+Punktabstand,Punktabstand,Kerbe])   
+
    {
 +
          color(Farbe)  
 +
              translate([LangeKante/4*Seite+Punktabstand,0,Kerbe*0])   
 +
                    cylinder(Punkthoehe,Punktbasis,Punktspitze,center=yes);
 +
    }
  
cylinder(Punkthoehe,Punktbasis,Punktspitze);
 
  
color("blue")
+
if (PunktPos==6)
translate([LangeKante/4-Punktabstand,Punktabstand,Kerbe])   
+
    {
 +
          color(Farbe)  
 +
              translate([LangeKante/4*Seite+Punktabstand,-Punktabstand,Kerbe*0])   
 +
                    cylinder(Punkthoehe,Punktbasis,Punktspitze,center=yes);
 +
    }
  
cylinder(Punkthoehe,Punktbasis,Punktspitze);
 
  
color("yellow")
+
if (PunktPos==7)
translate([LangeKante/4+Punktabstand,-Punktabstand,Kerbe])   
+
    {
 +
          color(Farbe)  
 +
              translate([LangeKante/4*Seite,Punktabstand,Kerbe*0])   
 +
                    cylinder(Punkthoehe,Punktbasis,Punktspitze,center=yes);
 +
    }
  
cylinder(Punkthoehe,Punktbasis,Punktspitze);
 
  
color("black")
+
if (PunktPos==8)
translate([LangeKante/4-Punktabstand,-Punktabstand,Kerbe])   
+
    {
 +
          color(Farbe)  
 +
              translate([LangeKante/4*Seite,0,Kerbe*0])   
 +
                    cylinder(Punkthoehe,Punktbasis,Punktspitze,center=yes);
 +
    }
  
cylinder(Punkthoehe,Punktbasis,Punktspitze);
 
  
 +
if (PunktPos==9)
 +
    {
 +
          color(Farbe)
 +
              translate([LangeKante/4*Seite,-Punktabstand,Kerbe*0]) 
 +
                    cylinder(Punkthoehe,Punktbasis,Punktspitze,center=yes);
 +
    }
  
}
+
};
  
  
 
</pre>
 
</pre>

Version vom 22. Januar 2014, 15:24 Uhr



// Blindendomino
// 2014-01-22 V1.01
// by Stratum 0
// License: WTF

// **************************************
// ** Dominos bitte *massiv* drucken!  **
// **************************************

$fn=20;
LangeKante=40;
KurzeKante=LangeKante/2;
Hoehe=LangeKante/8;
Ausschnitt=15;
Kerbe=2;
Punktpos=LangeKante/2-Kerbe;
Punkthoehe=Kerbe;
Punktbasis=2;
Punktspitze=0;
Punktabstand=4;
Rechts=1;
Links=-1;
Abstand=0;

//MyDomino();


//module MyDomino()
{


for (i = [1:6])
     {
     for (j = [1:6])
          {
          translate([(LangeKante+Abstand)*(i-1),(KurzeKante+Abstand)*(j-1),0])  CutDomino();
          translate([(LangeKante+Abstand)*(i-1)+Abstand,(KurzeKante+Abstand)*(j-1),0])  CreateValue("purple", i, Links);
          translate([(LangeKante+Abstand)*(i-1)+Abstand,(KurzeKante+Abstand)*(j-1),0])  CreateValue("pink", j, Rechts);
          } // End For J
     } // End For I
} // End Module


module CutDomino()
{
difference()
     {
     // Basisdomino erstellen
     cube([LangeKante, KurzeKante, Hoehe], center=true);

     // Ausschnitt für Einkerbungen erstellen
     // Rechte Seite

     color("lightblue") translate ([LangeKante/4,0,Kerbe])  cube([Ausschnitt, Ausschnitt, Kerbe*2],center=true);

     // Ausschnitt für Einkerbungen erstellen
     // Linke Seite

     color("blue") translate ([-LangeKante/4,0,Kerbe])  cube([Ausschnitt, Ausschnitt,Kerbe*2],center=true);

     };// End Difference
}; // End Module


// Punkte hinzufügen

module CreateValue(Farbe, Value, Seite)
{
     if (Value==1)
     {
          punkt(Farbe, 8, Seite);
     }

     if (Value==2)
     {
          punkt(Farbe, 1, Seite);
          punkt(Farbe, 6, Seite);
     }

     if (Value==3)
     {
          punkt(Farbe, 1, Seite);
          punkt(Farbe, 8, Seite);
          punkt(Farbe, 6, Seite);
     }

     if (Value==4)
     {
          punkt(Farbe, 1, Seite);
          punkt(Farbe, 3, Seite);
          punkt(Farbe, 4, Seite);
          punkt(Farbe, 6, Seite);
     }

     if (Value==5)
     {
          punkt(Farbe, 1, Seite);
          punkt(Farbe, 3, Seite);
          punkt(Farbe, 8, Seite);
          punkt(Farbe, 4, Seite);
          punkt(Farbe, 6, Seite);
     }

     if (Value==6)
     {
          punkt(Farbe, 1, Seite);
          punkt(Farbe, 2, Seite);
          punkt(Farbe, 3, Seite);
          punkt(Farbe, 4, Seite);
          punkt(Farbe, 5, Seite);
          punkt(Farbe, 6, Seite);

     }
};





module punkt(Farbe,PunktPos,Seite)
{

if (PunktPos==1) 
     {
          color(Farbe) 
               translate([LangeKante/4*Seite-Punktabstand,Punktabstand,Kerbe*0])  
                    cylinder(Punkthoehe,Punktbasis,Punktspitze,center=yes);
     }


if (PunktPos==2) 
     {
          color(Farbe) 
               translate([LangeKante/4*Seite-Punktabstand,0,Kerbe*0])  
                    cylinder(Punkthoehe,Punktbasis,Punktspitze,center=yes);
     }


if (PunktPos==3) 
     {
          color(Farbe) 
               translate([LangeKante/4*Seite-Punktabstand,-Punktabstand,Kerbe*0])  
                    cylinder(Punkthoehe,Punktbasis,Punktspitze,center=yes);
     }


if (PunktPos==4) 
     {
          color(Farbe) 
               translate([LangeKante/4*Seite+Punktabstand,+Punktabstand,Kerbe*0])  
                    cylinder(Punkthoehe,Punktbasis,Punktspitze,center=yes);
     }


if (PunktPos==5) 
     {
          color(Farbe) 
               translate([LangeKante/4*Seite+Punktabstand,0,Kerbe*0])  
                    cylinder(Punkthoehe,Punktbasis,Punktspitze,center=yes);
     }


if (PunktPos==6) 
     {
          color(Farbe) 
               translate([LangeKante/4*Seite+Punktabstand,-Punktabstand,Kerbe*0])  
                    cylinder(Punkthoehe,Punktbasis,Punktspitze,center=yes);
     }


if (PunktPos==7) 
     {
          color(Farbe) 
               translate([LangeKante/4*Seite,Punktabstand,Kerbe*0])  
                    cylinder(Punkthoehe,Punktbasis,Punktspitze,center=yes);
     }


if (PunktPos==8) 
     {
          color(Farbe) 
               translate([LangeKante/4*Seite,0,Kerbe*0])  
                    cylinder(Punkthoehe,Punktbasis,Punktspitze,center=yes);
     }


if (PunktPos==9) 
     {
          color(Farbe) 
               translate([LangeKante/4*Seite,-Punktabstand,Kerbe*0])  
                    cylinder(Punkthoehe,Punktbasis,Punktspitze,center=yes);
     }

};