Gesellschaftsspiel-Replikator/Domino V1
< Gesellschaftsspiel-Replikator
Version vom 15:24, 22. Jan. 2014 von Lulu (Diskussion | Beiträge)
// 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);
}
};

