Gesellschaftsspiel-Replikator/Connect V1: Unterschied zwischen den Versionen

Aus Stratum 0
Wechseln zu:Navigation, Suche
(Seite angelegt: Anlegespiel Connect)
 
(Erweitert)
 
(2 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
 
<pre>
 
<pre>
 
  
 
// Rivers, Roads and Rails / Contact
 
// Rivers, Roads and Rails / Contact
Zeile 15: Zeile 14:
 
RadiusC=Kante*3/4;
 
RadiusC=Kante*3/4;
 
Strichdicke=8;
 
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()
 
     difference()
 
     {
 
     {
 
         CreateTile("white");
 
         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(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()
 
     difference()
 
     {
 
     {
 
         CreateTile("white");
 
         CreateTile("white");
         translate ([-Kante/2,Kante/2,0]) CreateArch(RadiusA,"red");
+
         translate ([0,RadiusA,Hoehe-Kerbe]) CreateStraight(RadiusA,"red");
         translate ([-Kante/2,Kante/2,0]) CreateArch(RadiusB,"black");
+
         translate ([0,0,Hoehe-Kerbe]) CreateStraight(RadiusA,"black");
         translate ([-Kante/2,Kante/2,0]) CreateArch(RadiusC,"blue");
+
         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()
 
     difference()
 
     {
 
     {
 
         CreateTile("white");
 
         CreateTile("white");
         translate ([Kante/2,-Kante/2,0]) CreateArch(RadiusA,"red");
+
         translate ([0,RadiusA,Hoehe-Kerbe]) CreateStraight(RadiusA,"red");
         translate ([Kante/2,-Kante/2,0]) CreateArch(RadiusB,"black");
+
         translate ([-Kante/4,0,Hoehe-Kerbe]) CreateEnd(RadiusB,"black");
        translate ([Kante/2,-Kante/2,0]) CreateArch(RadiusC,"blue");
 
 
     }
 
     }
 
};
 
};
  
  
if (Kachelnummer==4)  
+
// 96 rot: Geradeaus schwarz: Endet blau: kleine Kurve Weiche
 +
if (Kachelnummer==96)  
 
{
 
{
 
     difference()
 
     difference()
 
     {
 
     {
 
         CreateTile("white");
 
         CreateTile("white");
         translate ([-Kante/2,-Kante/2,0]) CreateArch(RadiusA,"red");
+
         translate ([-Kante/2,-Kante/2,Hoehe-Kerbe]) CreateArch(RadiusA,"blue");
         translate ([-Kante/2,-Kante/2,0]) CreateArch(RadiusB,"black");
+
         translate ([-Kante/4,0,Hoehe-Kerbe]) CreateEnd(RadiusB,"black");
         translate ([-Kante/2,-Kante/2,0]) CreateArch(RadiusC,"blue");
+
         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()
 
     difference()
 
     {
 
     {
 
         CreateTile("white");
 
         CreateTile("white");
 
         translate ([-Kante/2,-Kante/2,Hoehe-Kerbe]) CreateArch(RadiusA,"red");
 
         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(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)
 
module CreateTile(myColor)
Zeile 99: Zeile 384:
 
{
 
{
 
     color(myColor)  cube([Kante/2,Strichdicke*2, Hoehe], center=true);
 
     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>
 
</pre>

Aktuelle Version vom 23. Januar 2014, 17:25 Uhr


// Rivers, Roads and Rails / Contact
// 2014-01-23 V1
// by Stratum 0
// License: WTF

$fn=20;
Kante=100;
Hoehe=4;
Kerbe=2;
RadiusA=Kante/4;
RadiusB=Kante*2/4;
RadiusC=Kante*3/4;
Strichdicke=8;
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==32) 
{
    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(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,"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");
    }
};


//	93	rot:	Geradeaus	schwarz:	Geradeaus	blau:	Geradeaus	Normalteil
if (Kachelnummer==93) 
{
    
    difference()
    {
        CreateTile("white");
        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");
    }
};


//	95	rot:	Geradeaus	schwarz:	Endet	blau:	Leer	Normalteil
if (Kachelnummer==95) 
{
    difference()
    {
        CreateTile("white");
        translate ([0,RadiusA,Hoehe-Kerbe]) CreateStraight(RadiusA,"red");
        translate ([-Kante/4,0,Hoehe-Kerbe]) CreateEnd(RadiusB,"black");
    }
};


//	96	rot:	Geradeaus	schwarz:	Endet	blau:	kleine Kurve	Weiche
if (Kachelnummer==96) 
{
    difference()
    {
        CreateTile("white");
        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==1096) 
{

    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)
{
     // Basisdomino erstellen
    color(myColor)     cube([Kante, Kante, Hoehe], center=true);
}; // End Module


module CreateArch(myRadius, myColor)
{
    difference () // Innenkreis vom Außenkreis abziehen.
    {
      color (myColor) 
        cylinder(Hoehe, myRadius+Strichdicke, myRadius+Strichdicke, center=true, $fn=60);
        cylinder(Hoehe, myRadius-Strichdicke, myRadius-Strichdicke, center=true, $fn=60);
    }  
};

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);

};