/* Talks am Donnerstag, 14. Mai 2015, ab 19:00 */ recording d-bus
[stratum0-wiki.git] / Gesellschaftsspiel-Replikator%2FConnect_V1.mw
index 7b15f58..a41c771 100644 (file)
@@ -1,7 +1,6 @@
 <pre>
 
-
-// "Rivers, Roads and Rails" / "Contact" / "Connect"
+// Rivers, Roads and Rails / Contact
 // 2014-01-23 V1
 // by Stratum 0
 // License: WTF
@@ -14,69 +13,355 @@ RadiusA=Kante/4;
 RadiusB=Kante*2/4;
 RadiusC=Kante*3/4;
 Strichdicke=8;
-Kachelnummer=5;
+Kreisdicke=Strichdicke*1.5;
+Kachelnummer=27;
+
+// Es fehlen noch die Teile, wo eine Farbe endet und eine andere beginnt.
+
+//     1       rot:    Leer    schwarz:        Leer    blau:   kleine Kurve    Normalteil
+//     2       rot:    Leer    schwarz:        Leer    blau:   Große Kurve    Normalteil
+//     3       rot:    Leer    schwarz:        Leer    blau:   Geradeaus       Normalteil
+//     4       rot:    Leer    schwarz:        Leer    blau:   Endet   Normalteil
+//     5       rot:    Leer    schwarz:        Kurve gen rot   blau:   Leer    Normalteil
+//     6       rot:    Leer    schwarz:        Kurve gen rot   blau:   kleine Kurve    Gabel
+//     7       rot:    Leer    schwarz:        Kurve gen rot   blau:   Große Kurve    Normalteil
+//     8       rot:    Leer    schwarz:        Kurve gen rot   blau:   Geradeaus       Weiche
+//     9       rot:    Leer    schwarz:        Kurve gen rot   blau:   Endet   Normalteil
+//     10      rot:    Leer    schwarz:        Kurve gen blau  blau:   Leer    Normalteil
+//     11      rot:    Leer    schwarz:        Kurve gen blau  blau:   kleine Kurve    Normalteil
+//     15      rot:    Leer    schwarz:        Geradeaus       blau:   Leer    Normalteil
+//     16      rot:    Leer    schwarz:        Geradeaus       blau:   kleine Kurve    Weiche
+//     18      rot:    Leer    schwarz:        Geradeaus       blau:   Geradeaus       Normalteil
+//     19      rot:    Leer    schwarz:        Geradeaus       blau:   Endet   Normalteil
+//     20      rot:    Leer    schwarz:        Endet   blau:   Leer    Normalteil
+//     21      rot:    Leer    schwarz:        Endet   blau:   kleine Kurve    Normalteil
+//     23      rot:    Leer    schwarz:        Endet   blau:   Geradeaus       Normalteil
+//     25      rot:    kleine Kurve    schwarz:        Leer    blau:   Leer    Normalteil
+//     26      rot:    kleine Kurve    schwarz:        Leer    blau:   kleine Kurve    Weiche
+//     27      rot:    kleine Kurve    schwarz:        Leer    blau:   Große Kurve    Normalteil
+if (Kachelnummer==27) 
+{
+    difference()
+    {
+        CreateTile("white");
+        translate ([-RadiusB,RadiusB,Hoehe-Kerbe]) CreateArch(RadiusA,"red");
+        translate ([-RadiusB,RadiusB,Hoehe-Kerbe]) CreateArch(RadiusC,"blue");
+    }
+};
+//     28      rot:    kleine Kurve    schwarz:        Leer    blau:   Geradeaus       Weiche
+if (Kachelnummer==28) 
+{
+    difference()
+    {
+        CreateTile("white");
+        translate ([-RadiusB,RadiusB,Hoehe-Kerbe]) CreateArch(RadiusA,"red");
+        translate ([0,-RadiusA,Hoehe-Kerbe]) CreateStraight(RadiusA,"blue");
+    }
+};
+//     29      rot:    kleine Kurve    schwarz:        Leer    blau:   Endet   Normalteil
+if (Kachelnummer==29) 
+{
+    difference()
+    {
+        CreateTile("white");
+        translate ([-RadiusB,RadiusB,Hoehe-Kerbe]) CreateArch(RadiusA,"red");
+        translate ([-RadiusA,-RadiusA,Hoehe-Kerbe]) CreateEnd(RadiusA,"blue");
+    }
+};
+//     30      rot:    kleine Kurve    schwarz:        Kurve gen rot   blau:   Leer    Normalteil
+if (Kachelnummer==30) 
+{
+    difference()
+    {
+        CreateTile("white");
+        translate ([RadiusB,RadiusB,Hoehe-Kerbe]) CreateArch(RadiusA,"red");
+        translate ([RadiusB,RadiusB,Hoehe-Kerbe]) CreateArch(RadiusB,"black");
+    }
+};
+//     31      rot:    kleine Kurve    schwarz:        Kurve gen rot   blau:   kleine Kurve    Gabel
+if (Kachelnummer==31) 
+{
+    difference()
+    {
+        CreateTile("white");
+        translate ([RadiusB,RadiusB,Hoehe-Kerbe]) CreateArch(RadiusA,"red");
+        translate ([RadiusB,RadiusB,Hoehe-Kerbe]) CreateArch(RadiusB,"black");
+        translate ([-RadiusB,RadiusB,Hoehe-Kerbe]) CreateArch(RadiusA,"blue");
+    }
+};
+//     32      rot:    kleine Kurve    schwarz:        Kurve gen rot   blau:   Große Kurve    Normalteil
+
 
-if (Kachelnummer==1
+if (Kachelnummer==32
 {
     difference()
     {
         CreateTile("white");
-        translate ([Kante/2,Kante/2,0]) CreateArch(RadiusA,"red");
+        translate ([RadiusB,RadiusB,Hoehe-Kerbe]) CreateArch(RadiusA,"red");
+        translate ([RadiusB,RadiusB,Hoehe-Kerbe]) CreateArch(RadiusB,"black");
+        translate ([RadiusB,RadiusB,Hoehe-Kerbe]) CreateArch(RadiusC,"blue");
+    }
+};
+//     33      rot:    kleine Kurve    schwarz:        Kurve gen rot   blau:   Geradeaus       Weiche
+if (Kachelnummer==33) 
+{
+    difference()
+    {
+        CreateTile("white");
+        translate ([RadiusB,RadiusB,Hoehe-Kerbe]) CreateArch(RadiusA,"red");
+        translate ([RadiusB,RadiusB,Hoehe-Kerbe]) CreateArch(RadiusB,"black");
+        translate ([0,-RadiusA,Hoehe-Kerbe]) CreateStraight(RadiusA,"blue");
+    }
+};
+//     34      rot:    kleine Kurve    schwarz:        Kurve gen rot   blau:   Endet   Normalteil
+if (Kachelnummer==34) 
+{
+    difference()
+    {
+        CreateTile("white");
+        translate ([-RadiusB,RadiusB,Hoehe-Kerbe]) CreateArch(RadiusA,"red");
+        translate ([-RadiusB,RadiusB,Hoehe-Kerbe]) CreateArch(RadiusB,"black");
+        translate ([-RadiusA,-RadiusA,Hoehe-Kerbe]) CreateEnd(RadiusA,"blue"); 
+    }
+};
+//     35      rot:    kleine Kurve    schwarz:        Kurve gen blau  blau:   Leer    Gabel
+//     36      rot:    kleine Kurve    schwarz:        Kurve gen blau  blau:   kleine Kurve    Gabel
+//     39      rot:    kleine Kurve    schwarz:        Kurve gen blau  blau:   Endet   Gabel
+//     40      rot:    kleine Kurve    schwarz:        Geradeaus       blau:   Leer    Weiche
+//     41      rot:    kleine Kurve    schwarz:        Geradeaus       blau:   kleine Kurve    Kreuzung
+//     43      rot:    kleine Kurve    schwarz:        Geradeaus       blau:   Geradeaus       Weiche
+//     44      rot:    kleine Kurve    schwarz:        Geradeaus       blau:   Endet   Weiche
+//     45      rot:    kleine Kurve    schwarz:        Endet   blau:   Leer    Normalteil
+//     48      rot:    kleine Kurve    schwarz:        Endet   blau:   Geradeaus       Weiche
+//     49      rot:    kleine Kurve    schwarz:        Endet   blau:   Endet   Normalteil
+//     50      rot:    Große Kurve    schwarz:        Leer    blau:   Leer    Normalteil
+if (Kachelnummer==50) 
+{
+    difference()
+    {
+        CreateTile("white");
+        translate ([RadiusA*2,RadiusA*2,Hoehe-Kerbe]) CreateArch(RadiusC,"red");
+    }
+};
+//     51      rot:    Große Kurve    schwarz:        Leer    blau:   kleine Kurve    Normalteil
+//     60      rot:    Große Kurve    schwarz:        Kurve gen blau  blau:   Leer    Normalteil
+//     61      rot:    Große Kurve    schwarz:        Kurve gen blau  blau:   kleine Kurve    Normalteil
+if (Kachelnummer==61) 
+{
+    difference()
+    {
+        CreateTile("white");
+        translate ([Kante/2,Kante/2,0]) CreateArch(RadiusA,"blue");
         translate ([Kante/2,Kante/2,0]) CreateArch(RadiusB,"black");
-        translate ([Kante/2,Kante/2,0]) CreateArch(RadiusC,"blue");
+        translate ([Kante/2,Kante/2,0]) CreateArch(RadiusC,"red");
+    }
+};
+//     71      rot:    Große Kurve    schwarz:        Endet   blau:   kleine Kurve    Normalteil
+//     75      rot:    Geradeaus       schwarz:        Leer    blau:   Leer    Normalteil
+//     76      rot:    Geradeaus       schwarz:        Leer    blau:   kleine Kurve    Weiche
+if (Kachelnummer==76) 
+{    
+    difference()
+    {
+        CreateTile("white");
+        translate ([0,RadiusA,Hoehe-Kerbe]) CreateStraight(RadiusA,"red");
+        translate ([-Kante/2,-Kante/2,Hoehe-Kerbe]) CreateArch(RadiusA,"blue");
+    }
+};
+//     78      rot:    Geradeaus       schwarz:        Leer    blau:   Geradeaus       Normalteil
+//     79      rot:    Geradeaus       schwarz:        Leer    blau:   Endet   Normalteil
+//     86      rot:    Geradeaus       schwarz:        Kurve gen blau  blau:   kleine Kurve    Weiche
+if (Kachelnummer==86) 
+{    
+    difference()
+    {
+        CreateTile("white");
+        translate ([0,RadiusA,Hoehe-Kerbe]) CreateStraight(RadiusA,"red");
+        translate ([-RadiusB,-RadiusB,Hoehe-Kerbe]) CreateArch(RadiusB,"black");
+        translate ([-Kante/2,-Kante/2,Hoehe-Kerbe]) CreateArch(RadiusA,"blue");
+    }
+};
+//     90      rot:    Geradeaus       schwarz:        Geradeaus       blau:   Leer    Normalteil
+if (Kachelnummer==90) 
+{    
+    difference()
+    {
+        CreateTile("white");
+        translate ([0,RadiusA,Hoehe-Kerbe]) CreateStraight(RadiusA,"red");
+        translate ([0,0,Hoehe-Kerbe]) CreateStraight(RadiusA,"black");
     }
 };
 
+//     91      rot:    Geradeaus       schwarz:        Geradeaus       blau:   kleine Kurve    Weiche
+if (Kachelnummer==91) 
+{    
+    difference()
+    {
+        CreateTile("white");
+        translate ([0,RadiusA,Hoehe-Kerbe]) CreateStraight(RadiusA,"red");
+        translate ([0,0,Hoehe-Kerbe]) CreateStraight(RadiusA,"black");
+        translate ([-Kante/2,-Kante/2,Hoehe-Kerbe]) CreateArch(RadiusA,"blue");
+    }
+};
 
-if (Kachelnummer==2) 
+
+//     93      rot:    Geradeaus       schwarz:        Geradeaus       blau:   Geradeaus       Normalteil
+if (Kachelnummer==93) 
 {
+    
     difference()
     {
         CreateTile("white");
-        translate ([-Kante/2,Kante/2,0]) CreateArch(RadiusA,"red");
-        translate ([-Kante/2,Kante/2,0]) CreateArch(RadiusB,"black");
-        translate ([-Kante/2,Kante/2,0]) CreateArch(RadiusC,"blue");
+        translate ([0,RadiusA,Hoehe-Kerbe]) CreateStraight(RadiusA,"red");
+        translate ([0,0,Hoehe-Kerbe]) CreateStraight(RadiusA,"black");
+        translate ([0,-RadiusA,Hoehe-Kerbe]) CreateStraight(RadiusA,"blue");
     }
 };
+//     94      rot:    Geradeaus       schwarz:        Geradeaus       blau:   Endet   Normalteil
+if (Kachelnummer==94) 
+{
+    difference()
+    {
+        CreateTile("white");
+        translate ([0,RadiusA,Hoehe-Kerbe]) CreateStraight(RadiusA,"red");
+        translate ([0,0,Hoehe-Kerbe]) CreateStraight(RadiusA,"black");
+        translate ([-RadiusA,-RadiusA,Hoehe-Kerbe]) CreateEnd(RadiusA,"blue");
+    }
+};
+
 
-if (Kachelnummer==3) 
+//     95      rot:    Geradeaus       schwarz:        Endet   blau:   Leer    Normalteil
+if (Kachelnummer==95) 
 {
     difference()
     {
         CreateTile("white");
-        translate ([Kante/2,-Kante/2,0]) CreateArch(RadiusA,"red");
-        translate ([Kante/2,-Kante/2,0]) CreateArch(RadiusB,"black");
-        translate ([Kante/2,-Kante/2,0]) CreateArch(RadiusC,"blue");
+        translate ([0,RadiusA,Hoehe-Kerbe]) CreateStraight(RadiusA,"red");
+        translate ([-Kante/4,0,Hoehe-Kerbe]) CreateEnd(RadiusB,"black");
     }
 };
 
 
-if (Kachelnummer==4) 
+//     96      rot:    Geradeaus       schwarz:        Endet   blau:   kleine Kurve    Weiche
+if (Kachelnummer==96) 
 {
     difference()
     {
         CreateTile("white");
-        translate ([-Kante/2,-Kante/2,0]) CreateArch(RadiusA,"red");
-        translate ([-Kante/2,-Kante/2,0]) CreateArch(RadiusB,"black");
-        translate ([-Kante/2,-Kante/2,0]) CreateArch(RadiusC,"blue");
+        translate ([-Kante/2,-Kante/2,Hoehe-Kerbe]) CreateArch(RadiusA,"blue");
+        translate ([-Kante/4,0,Hoehe-Kerbe]) CreateEnd(RadiusB,"black");
+        translate ([0,Kante/4,Hoehe-Kerbe]) CreateStraigt(RadiusC,"red");
     }
 };
+//     98      rot:    Geradeaus       schwarz:        Endet   blau:   Geradeaus       Normalteil
+if (Kachelnummer==98) 
+{
+    difference()
+    {
+        CreateTile("white");
+        translate ([0,RadiusA,Hoehe-Kerbe]) CreateStraight(RadiusA,"red");
+        translate ([-Kante/4,0,Hoehe-Kerbe]) CreateEnd(RadiusB,"black");
+        translate ([0,-RadiusA,Hoehe-Kerbe]) CreateStraight(RadiusA,"blue");
+    }
+};//   99      rot:    Geradeaus       schwarz:        Endet   blau:   Endet   Normalteil
+//     101     rot:    Endet   schwarz:        Leer    blau:   kleine Kurve    Normalteil
+//     103     rot:    Endet   schwarz:        Leer    blau:   Geradeaus       Normalteil
+//     110     rot:    Endet   schwarz:        Kurve gen blau  blau:   Leer    Normalteil
 
 
-if (Kachelnummer==5
+if (Kachelnummer==1096
 {
-        translate ([-Kante/4,Kante/4,Hoehe-Kerbe]) CreateEnd(RadiusC,"blue");
+
     difference()
     {
         CreateTile("white");
         translate ([-Kante/2,-Kante/2,Hoehe-Kerbe]) CreateArch(RadiusA,"red");
+        translate ([-Kante/4,0,Hoehe-Kerbe]) CreateEnd(RadiusB,"black");
+        translate ([0,Kante/4,Hoehe-Kerbe]) CreateStraigt(RadiusC,"blue");
+    }
+};
+
+
+//     111     rot:    Endet   schwarz:        Kurve gen blau  blau:   kleine Kurve    Normalteil
+if (Kachelnummer==111) 
+{        
+    difference()
+    {
+        CreateTile("white");
+        translate ([-Kante/4,Kante/4,Hoehe-Kerbe]) CreateEnd(RadiusC,"red");        
         translate ([-Kante/2,-Kante/2,Hoehe-Kerbe]) CreateArch(RadiusB,"black");
-       
+        translate ([-Kante/2,-Kante/2,Hoehe-Kerbe]) CreateArch(RadiusA,"blue");
     }
 };
 
 
+//     115     rot:    Endet   schwarz:        Geradeaus       blau:   Leer    Normalteil
+if (Kachelnummer==115) 
+{        
+    difference()
+    {
+        CreateTile("white");
+        translate ([-Kante/4,Kante/4,Hoehe-Kerbe]) CreateEnd(RadiusC,"red");        
+        translate ([0,0,Hoehe-Kerbe]) CreateStraight(RadiusB,"black"); 
+    }
+};
+//     116     rot:    Endet   schwarz:        Geradeaus       blau:   kleine Kurve    Weiche
+if (Kachelnummer==116) 
+{        
+    difference()
+    {
+        CreateTile("white");
+        translate ([-Kante/4,Kante/4,Hoehe-Kerbe]) CreateEnd(RadiusC,"red");        
+        translate ([0,0,Hoehe-Kerbe]) CreateStraight(RadiusB,"black");
+        translate ([-Kante/2,-Kante/2,Hoehe-Kerbe]) CreateArch(RadiusA,"blue");
+    }
+};
+
+//     118     rot:    Endet   schwarz:        Geradeaus       blau:   Geradeaus       Normalteil
+if (Kachelnummer==118) 
+{       
+    difference()
+    {
+        CreateTile("white");
+        translate ([-RadiusA,RadiusA,Hoehe-Kerbe]) CreateEnd(RadiusC,"red");        
+        translate ([0,0,Hoehe-Kerbe]) CreateStraight(RadiusB,"black");
+        translate ([0,-RadiusA,Hoehe-Kerbe]) CreateStraight(RadiusC,"blue");
+    }
+};
+//     119     rot:    Endet   schwarz:        Geradeaus       blau:   Endet   Normalteil
+if (Kachelnummer==119) 
+{       
+    difference()
+    {
+        CreateTile("white");
+        translate ([-RadiusA,RadiusA,Hoehe-Kerbe]) CreateEnd(RadiusC,"red");        
+        translate ([0,0,Hoehe-Kerbe]) CreateStraight(RadiusB,"black");
+        translate ([0,-RadiusA,Hoehe-Kerbe]) CreateStraight(RadiusC,"blue");
+    }
+};
+//     121     rot:    Endet   schwarz:        Endet   blau:   kleine Kurve    Normalteil
+if (Kachelnummer==121) 
+{       
+    difference()
+    {
+        CreateTile("white");
+        translate ([-RadiusA,RadiusA,Hoehe-Kerbe]) CreateEnd(RadiusC,"red");        
+        translate ([-RadiusA,0,Hoehe-Kerbe]) CreateEnd(RadiusB,"black");
+        translate ([-RadiusA*2,-RadiusA*2,Hoehe-Kerbe]) CreateArch(RadiusA,"blue");
+    }
+};
 
+//     123     rot:    Endet   schwarz:        Endet   blau:   Geradeaus       Normalteil
+if (Kachelnummer==123) 
+{       
+    difference()
+    {
+        CreateTile("white");
+        translate ([-RadiusA,RadiusA,Hoehe-Kerbe]) CreateEnd(RadiusC,"red");        
+        translate ([-RadiusA,0,Hoehe-Kerbe]) CreateEnd(RadiusB,"black");
+        translate ([0,-RadiusA,Hoehe-Kerbe]) CreateStraight(RadiusA,"blue");
+    }
+};
 
 module CreateTile(myColor)
 {
@@ -98,7 +383,12 @@ module CreateArch(myRadius, myColor)
 module CreateEnd(myLane, myColor)
 {
     color(myColor)   cube([Kante/2,Strichdicke*2, Hoehe], center=true);
-                    
+    color(myColor)   translate ([Kante/4,0,0]) cylinder(Hoehe, Kreisdicke, Kreisdicke, center=true, $fn=60);
 };
 
+module CreateStraight(myLane, myColor)
+{
+    color(myColor)   cube([Kante,Strichdicke*2, Hoehe], center=true);
+
+};
 </pre>
This page took 0.033812 seconds and 4 git commands to generate.