-<pre>
+[[Datei:Blinden-Domino.png|thumb|Blinden-Domino]]
+
+[[Datei:Stratum0 Dominosteine V1.png|thumb|Dominosteine für Blinde]]
+
+
+==Regeln==
+* [http://www.pegasus.de/fileadmin/_downloads/_regeln/Domino_Dominoes.pdf http://www.pegasus.de/fileadmin/_downloads/_regeln/Domino_Dominoes.pdf]
+* Wikipedia: [http://de.wikipedia.org/wiki/Domino http://de.wikipedia.org/wiki/Domino]
+* Online-Spiel und Regeln: [http://www.brettspielnetz.de/spielregeln/domino.php http://www.brettspielnetz.de/spielregeln/domino.php]
+* [http://www.pagat.com/class/domino.html Pagat.com]
+
+== OpenSCAD Code für Steine ==
+
+<pre>
// Blindendomino
-// 2014-01-22 V1
+// 2014-10-31 V1.1
// by Stratum 0
-// License: WTF
+// License: WTFPL
-// **************************************
-// ** Dominos bitte *massiv* drucken! **
-// **************************************
$fn=20;
LangeKante=40;
Punktbasis=2;
Punktspitze=0;
Punktabstand=4;
+Rechts=1;
+Links=-1;
+Abstand=2;
+//MyDomino();
-intersection()
-{
-sphere (LangeKante*0.8);
-MyDomino();
-}
-module MyDomino()
+//module MyDomino()
{
-CutDomino();
-AddPoints();
-}
+
+
+for (i = [1:6]) // Hier Anfangswert und Endwert für linke Steinhaelfte eintragen
+ {
+ for (j = [1:6]) // Hier Anfangswert und Endwert für rechte Steinhaelfte eintragen
+ {
+ translate([(LangeKante+Abstand)*i+Abstand,(KurzeKante+Abstand)*j,0]) CutDomino();
+ translate([(LangeKante+Abstand)*i+Abstand,(KurzeKante+Abstand)*j,0]) CreateValue("purple", i, Links);
+ translate([(LangeKante+Abstand)*i+Abstand,(KurzeKante+Abstand)*j,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("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
// 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 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)
+{
-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")
-translate([-LangeKante/4,0,Kerbe])
-cylinder(Punkthoehe,Punktbasis,Punktspitze);
+if (PunktPos==2)
+ {
+ color(Farbe)
+ translate([LangeKante/4*Seite-Punktabstand,0,Kerbe*0])
+ cylinder(Punkthoehe,Punktbasis,Punktspitze,center=yes);
+ }
-// Seite -Z: 6
-color("cyan")
-translate([LangeKante/4+Punktabstand,0,Kerbe])
+if (PunktPos==3)
+ {
+ color(Farbe)
+ translate([LangeKante/4*Seite-Punktabstand,-Punktabstand,Kerbe*0])
+ cylinder(Punkthoehe,Punktbasis,Punktspitze,center=yes);
+ }
-cylinder(Punkthoehe,Punktbasis,Punktspitze);
-color("white")
-translate([LangeKante/4-Punktabstand,0,Kerbe])
+if (PunktPos==4)
+ {
+ color(Farbe)
+ translate([LangeKante/4*Seite+Punktabstand,+Punktabstand,Kerbe*0])
+ cylinder(Punkthoehe,Punktbasis,Punktspitze,center=yes);
+ }
-cylinder(Punkthoehe,Punktbasis,Punktspitze);
-color("green")
-translate([LangeKante/4+Punktabstand,Punktabstand,Kerbe])
+if (PunktPos==5)
+ {
+ color(Farbe)
+ translate([LangeKante/4*Seite+Punktabstand,0,Kerbe*0])
+ cylinder(Punkthoehe,Punktbasis,Punktspitze,center=yes);
+ }
-cylinder(Punkthoehe,Punktbasis,Punktspitze);
-color("blue")
-translate([LangeKante/4-Punktabstand,Punktabstand,Kerbe])
+if (PunktPos==6)
+ {
+ color(Farbe)
+ translate([LangeKante/4*Seite+Punktabstand,-Punktabstand,Kerbe*0])
+ cylinder(Punkthoehe,Punktbasis,Punktspitze,center=yes);
+ }
-cylinder(Punkthoehe,Punktbasis,Punktspitze);
-color("yellow")
-translate([LangeKante/4+Punktabstand,-Punktabstand,Kerbe])
+if (PunktPos==7)
+ {
+ color(Farbe)
+ translate([LangeKante/4*Seite,Punktabstand,Kerbe*0])
+ cylinder(Punkthoehe,Punktbasis,Punktspitze,center=yes);
+ }
-cylinder(Punkthoehe,Punktbasis,Punktspitze);
-color("black")
-translate([LangeKante/4-Punktabstand,-Punktabstand,Kerbe])
+if (PunktPos==8)
+ {
+ 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>