Gesellschaftsspiel-Replikator/Domino V1: Unterschied zwischen den Versionen
Aus Stratum 0
Lulu (Diskussion | Beiträge) (Seite erstellt: OpenSCAD für Blinden-Domino-Stein) |
Lulu (Diskussion | Beiträge) (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(); | ||
− | + | ||
+ | //module MyDomino() | ||
{ | { | ||
− | |||
− | |||
− | |||
− | + | ||
− | { | + | for (i = [1:6]) |
− | CutDomino(); | + | { |
− | + | 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(" | + | 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> |
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); } };