Gesellschaftsspiel-Replikator/ScrabbleBrett: Unterschied zwischen den Versionen
Lulu (Diskussion | Beiträge) (ScrabbleBrett OpenSCAD angefangen) |
Lulu (Diskussion | Beiträge) (Noch ein Anbieter) |
||
| (4 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
| Zeile 1: | Zeile 1: | ||
| + | |||
| + | [[Datei:Ein Viertel Scrabble-Brett.PNG|thumb|OpenSCAD Entwurf von einem Scrabble-Brett (ein Viertel)]] | ||
| + | |||
| + | * Andere Anbieter: | ||
| + | **[http://www.amazon.com/Maxi-Aids-Tactile-Braille-Crossword-Puzzle-Game/dp/B004USI2H6/ref=pd_sim_t_10?ie=UTF8&refRID=1CRT5HWAZZD53CGR5XT8] | ||
| + | ** [http://www.amazon.com/Deluxe-Scrabble-Game-Braille-Version/dp/B000YL1XEM/ref=pd_sim_hpc_7?ie=UTF8&refRID=1ZV6GKYKWP7PTT01XTER] | ||
| + | |||
<PRE> | <PRE> | ||
| − | // Scrabble Spielbrett | + | |
| − | // 2014-05-15 V1 | + | // Scrabble Spielbrett |
| + | // (ein Viertel) | ||
| + | // 2014-05-15 V1.2 | ||
// by Stratum 0 | // by Stratum 0 | ||
// License: WTFPL | // License: WTFPL | ||
| Zeile 8: | Zeile 17: | ||
// $fn=20; | // $fn=20; | ||
| − | Kante = | + | Kante = 14; |
| − | Kantenbreite = | + | Kantenbreite = 1; |
Hoehe = 4; | Hoehe = 4; | ||
Randhoehe = 2; | Randhoehe = 2; | ||
| Zeile 16: | Zeile 25: | ||
Viertelfeld=8; | Viertelfeld=8; | ||
| + | |||
| + | |||
| + | //Hauptprogramm | ||
| + | |||
| + | intersection() | ||
| + | { | ||
| + | ViertelBrett(); | ||
| + | cube ([Kante*(Viertelfeld+0.5), Kante*(Viertelfeld+0.5), Kante*(Viertelfeld+0.5)]); | ||
| + | } | ||
| + | |||
| + | |||
| + | module ViertelBrett() | ||
| + | { | ||
for (i = [1:Viertelfeld]) | for (i = [1:Viertelfeld]) | ||
| Zeile 24: | Zeile 46: | ||
{ | { | ||
//Dreifacher Wortwert | //Dreifacher Wortwert | ||
| − | if ((i==1) && (j==1)) { Feld("red"); } | + | if ((i==1) && (j==1)) { Feld("red"); Striche(3);} |
| − | if ((i==1) && (j==8)) { Feld("red"); } | + | if ((i==1) && (j==8)) { Feld("red"); Striche(3);} |
| − | if ((i==8) && (j==1)) { Feld("red"); } | + | if ((i==8) && (j==1)) { Feld("red"); Striche(3);} |
//Doppelter Wortwert | //Doppelter Wortwert | ||
| − | if ((i==2) && (j==2)) { Feld("pink"); } | + | if ((i==2) && (j==2)) { Feld("pink"); Striche(2);} |
| − | if ((i==3) && (j==3)) { Feld("pink"); } | + | if ((i==3) && (j==3)) { Feld("pink"); Striche(2);} |
| − | if ((i==4) && (j==4)) { Feld("pink"); } | + | if ((i==4) && (j==4)) { Feld("pink"); Striche(2);} |
| − | if ((i==5) && (j==5)) { Feld("pink"); } | + | if ((i==5) && (j==5)) { Feld("pink"); Striche(2);} |
| − | if ((i==8) && (j==8)) { Feld("pink"); } | + | if ((i==8) && (j==8)) { Feld("pink"); Striche(2);} |
// Dreifacher Buchstabenwert | // Dreifacher Buchstabenwert | ||
| − | if ((i==2) && (j==6)) { Feld("blue"); } | + | if ((i==2) && (j==6)) { Feld("blue"); Punkte(3);} |
| − | if ((i==6) && (j==2)) { Feld("blue"); } | + | if ((i==6) && (j==2)) { Feld("blue"); Punkte(3);} |
| − | if ((i==6) && (j==6)) { Feld("blue"); } | + | if ((i==6) && (j==6)) { Feld("blue"); Punkte(3);} |
// Doppelter Buchstabenwert | // Doppelter Buchstabenwert | ||
| − | if ((i==7) && (j==7)) { Feld("lightblue"); } | + | if ((i==7) && (j==7)) { Feld("lightblue"); Punkte(2); } |
| − | if ((i==3) && (j==7)) { Feld("lightblue"); } | + | if ((i==3) && (j==7)) { Feld("lightblue"); Punkte(2);} |
| − | if ((i==7) && (j==3)) { Feld("lightblue"); } | + | if ((i==7) && (j==3)) { Feld("lightblue"); Punkte(2);} |
| − | if ((i==8) && (j==4)) { Feld("lightblue"); } | + | if ((i==8) && (j==4)) { Feld("lightblue"); Punkte(2);} |
| − | if ((i==4) && (j==8)) { Feld("lightblue"); } | + | if ((i==4) && (j==8)) { Feld("lightblue"); Punkte(2);} |
| − | if ((i==1) && (j==4)) { Feld("lightblue"); } | + | if ((i==1) && (j==4)) { Feld("lightblue"); Punkte(2);} |
| − | if ((i==4) && (j==1)) { Feld("lightblue"); } | + | if ((i==4) && (j==1)) { Feld("lightblue"); Punkte(2);} |
// ansonsten normales Feld | // ansonsten normales Feld | ||
Feld("lightgreen"); | Feld("lightgreen"); | ||
| − | |||
| − | |||
} | } | ||
} // End For J | } // End For J | ||
| Zeile 58: | Zeile 78: | ||
| + | } | ||
| − | + | // Basisfeld erstellen | |
| − | |||
module Feld(Farbe) | module Feld(Farbe) | ||
{ | { | ||
| Zeile 74: | Zeile 94: | ||
} | } | ||
| + | |||
| + | module Punkte(AnzahlPunkte) | ||
| + | { | ||
| + | if (AnzahlPunkte==2) | ||
| + | { | ||
| + | translate ([Kante/3, Kante/3, Hoehe-Randhoehe]) cylinder(Randhoehe/2,2,1, center=false); | ||
| + | translate ([Kante/3*2, Kante/3*2, Hoehe-Randhoehe]) cylinder(Randhoehe/2,2,1, center=false); | ||
| + | } | ||
| + | if (AnzahlPunkte==3) | ||
| + | { | ||
| + | translate ([Kante/4, Kante/4, Hoehe-Randhoehe]) cylinder(Randhoehe/2,2,1, center=false); | ||
| + | translate ([Kante/4*2, Kante/4*2, Hoehe-Randhoehe]) cylinder(Randhoehe/2,2,1, center=false); | ||
| + | translate ([Kante/4*3, Kante/4*3, Hoehe-Randhoehe]) cylinder(Randhoehe/2,2,1, center=false); | ||
| + | } | ||
| + | } | ||
| + | |||
| + | |||
| + | |||
| + | module Striche(AnzahlStriche) | ||
| + | { | ||
| + | if (AnzahlStriche==2) | ||
| + | { | ||
| + | translate ([Kante/3-Kantenbreite/2, Kante/4, Hoehe-Randhoehe]) cube([Randhoehe/2,Kante/2,Randhoehe/2]); | ||
| + | translate ([Kante/3*2-Kantenbreite/2, Kante/4, Hoehe-Randhoehe]) cube([Randhoehe/2,Kante/2,Randhoehe/2]); | ||
| + | } | ||
| + | if (AnzahlStriche==3) | ||
| + | { | ||
| + | translate ([Kante/4, Kante/4, Hoehe-Randhoehe]) cube([Randhoehe/2,Kante/2,Randhoehe/2]); | ||
| + | translate ([Kante/4*2, Kante/4, Hoehe-Randhoehe]) cube([Randhoehe/2,Kante/2,Randhoehe/2]); | ||
| + | translate ([Kante/4*3, Kante/4, Hoehe-Randhoehe]) cube([Randhoehe/2,Kante/2,Randhoehe/2]); | ||
| + | } | ||
| + | } | ||
| + | |||
| + | |||
</PRE> | </PRE> | ||
Aktuelle Version vom 27. Oktober 2014, 14:44 Uhr
// Scrabble Spielbrett
// (ein Viertel)
// 2014-05-15 V1.2
// by Stratum 0
// License: WTFPL
// $fn=20;
Kante = 14;
Kantenbreite = 1;
Hoehe = 4;
Randhoehe = 2;
Abstand=0;
Zaehler=1;
Viertelfeld=8;
//Hauptprogramm
intersection()
{
ViertelBrett();
cube ([Kante*(Viertelfeld+0.5), Kante*(Viertelfeld+0.5), Kante*(Viertelfeld+0.5)]);
}
module ViertelBrett()
{
for (i = [1:Viertelfeld])
{
for (j = [1:Viertelfeld])
{
translate([(Kante+Abstand)*i+Abstand,(Kante+Abstand)*j,0])
{
//Dreifacher Wortwert
if ((i==1) && (j==1)) { Feld("red"); Striche(3);}
if ((i==1) && (j==8)) { Feld("red"); Striche(3);}
if ((i==8) && (j==1)) { Feld("red"); Striche(3);}
//Doppelter Wortwert
if ((i==2) && (j==2)) { Feld("pink"); Striche(2);}
if ((i==3) && (j==3)) { Feld("pink"); Striche(2);}
if ((i==4) && (j==4)) { Feld("pink"); Striche(2);}
if ((i==5) && (j==5)) { Feld("pink"); Striche(2);}
if ((i==8) && (j==8)) { Feld("pink"); Striche(2);}
// Dreifacher Buchstabenwert
if ((i==2) && (j==6)) { Feld("blue"); Punkte(3);}
if ((i==6) && (j==2)) { Feld("blue"); Punkte(3);}
if ((i==6) && (j==6)) { Feld("blue"); Punkte(3);}
// Doppelter Buchstabenwert
if ((i==7) && (j==7)) { Feld("lightblue"); Punkte(2); }
if ((i==3) && (j==7)) { Feld("lightblue"); Punkte(2);}
if ((i==7) && (j==3)) { Feld("lightblue"); Punkte(2);}
if ((i==8) && (j==4)) { Feld("lightblue"); Punkte(2);}
if ((i==4) && (j==8)) { Feld("lightblue"); Punkte(2);}
if ((i==1) && (j==4)) { Feld("lightblue"); Punkte(2);}
if ((i==4) && (j==1)) { Feld("lightblue"); Punkte(2);}
// ansonsten normales Feld
Feld("lightgreen");
}
} // End For J
} // End For I
}
// Basisfeld erstellen
module Feld(Farbe)
{
difference()
{
cube([Kante, Kante, Hoehe+Randhoehe], center=false);
translate ([Kantenbreite,Kantenbreite,Hoehe-Randhoehe])
color (Farbe)
cube([Kante-Kantenbreite-Kantenbreite, Kante-Kantenbreite-Kantenbreite, Hoehe+Randhoehe], center=false);
};
}
module Punkte(AnzahlPunkte)
{
if (AnzahlPunkte==2)
{
translate ([Kante/3, Kante/3, Hoehe-Randhoehe]) cylinder(Randhoehe/2,2,1, center=false);
translate ([Kante/3*2, Kante/3*2, Hoehe-Randhoehe]) cylinder(Randhoehe/2,2,1, center=false);
}
if (AnzahlPunkte==3)
{
translate ([Kante/4, Kante/4, Hoehe-Randhoehe]) cylinder(Randhoehe/2,2,1, center=false);
translate ([Kante/4*2, Kante/4*2, Hoehe-Randhoehe]) cylinder(Randhoehe/2,2,1, center=false);
translate ([Kante/4*3, Kante/4*3, Hoehe-Randhoehe]) cylinder(Randhoehe/2,2,1, center=false);
}
}
module Striche(AnzahlStriche)
{
if (AnzahlStriche==2)
{
translate ([Kante/3-Kantenbreite/2, Kante/4, Hoehe-Randhoehe]) cube([Randhoehe/2,Kante/2,Randhoehe/2]);
translate ([Kante/3*2-Kantenbreite/2, Kante/4, Hoehe-Randhoehe]) cube([Randhoehe/2,Kante/2,Randhoehe/2]);
}
if (AnzahlStriche==3)
{
translate ([Kante/4, Kante/4, Hoehe-Randhoehe]) cube([Randhoehe/2,Kante/2,Randhoehe/2]);
translate ([Kante/4*2, Kante/4, Hoehe-Randhoehe]) cube([Randhoehe/2,Kante/2,Randhoehe/2]);
translate ([Kante/4*3, Kante/4, Hoehe-Randhoehe]) cube([Randhoehe/2,Kante/2,Randhoehe/2]);
}
}

