Gesellschaftsspiel-Replikator/Domino V1: Unterschied zwischen den Versionen
Lulu (Diskussion | Beiträge) (Seite erstellt: OpenSCAD für Blinden-Domino-Stein) |
UW (Diskussion | Beiträge) (+pagat) |
||
| (7 dazwischenliegende Versionen von einem anderen Benutzer werden nicht angezeigt) | |||
| Zeile 1: | Zeile 1: | ||
| + | [[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> | <pre> | ||
| − | |||
// Blindendomino | // Blindendomino | ||
| − | // 2014- | + | // 2014-10-31 V1.1 |
// by Stratum 0 | // by Stratum 0 | ||
| − | // License: | + | // License: WTFPL |
| − | |||
| − | |||
| − | |||
$fn=20; | $fn=20; | ||
| Zeile 22: | Zeile 32: | ||
Punktspitze=0; | Punktspitze=0; | ||
Punktabstand=4; | Punktabstand=4; | ||
| + | Rechts=1; | ||
| + | Links=-1; | ||
| + | Abstand=2; | ||
| + | //MyDomino(); | ||
| − | + | ||
| + | //module MyDomino() | ||
{ | { | ||
| − | |||
| − | |||
| − | |||
| − | + | ||
| − | { | + | for (i = [1:6]) // Hier Anfangswert und Endwert für linke Steinhaelfte eintragen |
| − | CutDomino(); | + | { |
| − | + | 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 | ||
| Zeile 40: | Zeile 58: | ||
{ | { | ||
difference() | difference() | ||
| − | { | + | { |
// Basisdomino erstellen | // Basisdomino erstellen | ||
cube([LangeKante, KurzeKante, Hoehe], center=true); | cube([LangeKante, KurzeKante, Hoehe], center=true); | ||
| Zeile 47: | Zeile 65: | ||
// Rechte Seite | // Rechte Seite | ||
| − | color(" | + | 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 | ||
| − | |||
| − | |||
// 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) | ||
| + | { | ||
| − | + | if (PunktPos==1) | |
| + | { | ||
| + | color(Farbe) | ||
| + | translate([LangeKante/4*Seite-Punktabstand,Punktabstand,Kerbe*0]) | ||
| + | cylinder(Punkthoehe,Punktbasis,Punktspitze,center=yes); | ||
| + | } | ||
| − | |||
| − | color( | + | if (PunktPos==2) |
| − | translate([ | + | { |
| − | cylinder(Punkthoehe,Punktbasis,Punktspitze); | + | color(Farbe) |
| + | translate([LangeKante/4*Seite-Punktabstand,0,Kerbe*0]) | ||
| + | cylinder(Punkthoehe,Punktbasis,Punktspitze,center=yes); | ||
| + | } | ||
| − | |||
| − | color( | + | if (PunktPos==3) |
| − | translate([LangeKante/4 | + | { |
| + | color(Farbe) | ||
| + | translate([LangeKante/4*Seite-Punktabstand,-Punktabstand,Kerbe*0]) | ||
| + | cylinder(Punkthoehe,Punktbasis,Punktspitze,center=yes); | ||
| + | } | ||
| − | |||
| − | color( | + | if (PunktPos==4) |
| − | translate([LangeKante/4 | + | { |
| + | color(Farbe) | ||
| + | translate([LangeKante/4*Seite+Punktabstand,+Punktabstand,Kerbe*0]) | ||
| + | cylinder(Punkthoehe,Punktbasis,Punktspitze,center=yes); | ||
| + | } | ||
| − | |||
| − | color( | + | if (PunktPos==5) |
| − | translate([LangeKante/4+Punktabstand, | + | { |
| + | color(Farbe) | ||
| + | translate([LangeKante/4*Seite+Punktabstand,0,Kerbe*0]) | ||
| + | cylinder(Punkthoehe,Punktbasis,Punktspitze,center=yes); | ||
| + | } | ||
| − | |||
| − | color( | + | if (PunktPos==6) |
| − | translate([LangeKante/4 | + | { |
| + | color(Farbe) | ||
| + | translate([LangeKante/4*Seite+Punktabstand,-Punktabstand,Kerbe*0]) | ||
| + | cylinder(Punkthoehe,Punktbasis,Punktspitze,center=yes); | ||
| + | } | ||
| − | |||
| − | color( | + | if (PunktPos==7) |
| − | translate([LangeKante/4 | + | { |
| + | color(Farbe) | ||
| + | translate([LangeKante/4*Seite,Punktabstand,Kerbe*0]) | ||
| + | cylinder(Punkthoehe,Punktbasis,Punktspitze,center=yes); | ||
| + | } | ||
| − | |||
| − | color( | + | if (PunktPos==8) |
| − | translate([LangeKante/4 | + | { |
| + | 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); | ||
| + | } | ||
| − | } | + | }; |
</pre> | </pre> | ||
Aktuelle Version vom 13. November 2014, 12:44 Uhr
Regeln
- http://www.pegasus.de/fileadmin/_downloads/_regeln/Domino_Dominoes.pdf
- Wikipedia: http://de.wikipedia.org/wiki/Domino
- Online-Spiel und Regeln: http://www.brettspielnetz.de/spielregeln/domino.php
- Pagat.com
OpenSCAD Code für Steine
// Blindendomino
// 2014-10-31 V1.1
// by Stratum 0
// License: WTFPL
$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=2;
//MyDomino();
//module MyDomino()
{
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("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);
}
};

