Beschreibung der Verknüpfungspunkte

Syntax: <ConnexionList>
    <connexion>
        <type>...</type>
        <position>
            <x>...</x>
            <y>...</y>
        </position>
        <angle>...</angle>
        <angleToPrev>...</angleToPrev>
        <angleToNext>...</angleToNext>
        <nextConnexionPreference>...</nextConnexionPreference>
        <electricPlug>...</electricPlug>
    </connexion>
    ...
</ConnexionList>
Standardwert: Kein Verknüpfungspunkt.
Beschreibung: Liste der Verknüpfungspunkte. Die Anzahl der Verknüpfungspunkte ist unbegrenzt. Für jeden Verknüpfungspunkt sind mehrere Parameter anzugeben.

The type field is string id representing the type of the connection. In BlueBrick only connections of the same type can connect to each other. The available types and the color used to represent them in BlueBrick are defined in an XML configuration file named "ConnectionTypeList.xml" and located in the "config" folder of the BlueBrick install folder. Read the "Connection Type" configuration file section for more details.

Im Feld position sind die Koordinaten der Verknüpfungspunkte in Noppen-Einheiten, relativ zum Teilmittelpunkt einzutragen.. Hierzu ist zunächst der Abstand des Verknüpfungspunktes zum Teilmittelpunkt zu bestimmen. Im unten gezeigten Beispiel beträgt der Abstand 8 Noppen zu allen Seiten. Der Teilmittelpunkt muss nicht angegeben werden, BlueBrick berechnet diesen automatisch. Wird ein Teil in BlueBrick gedreht, so ist es am einfachsten, dieses um den Teilemittelpunkt zu drehen. Deshalb sind die Koordinaten der Verknüpfungspunkte als Abstand zum Teilemittelpunkt anzugeben:

Bitte beachten, dass die y-Achse nach unten zeigt. (je größer die Werte desto weiter unten liegt der Punkt). Meistens kann der Teilemittelpunkt einfach anhand der Abmessungen in Noppen bestimmt werden. Die 9V Kreuzung beispielsweise ist 16 x 16 Noppen groß, somit ist offensichtlich, dass die Verknüpfungspunkte 8 Noppen vom Teilemittelpunkt entfernt sind. Bei komplexen Teilen wie der 9V-Weiche kann der Teilemittelpunkt anhand des Teilebildes in Pixel berechnet und anschließend in Noppen umgerechnet werden. Im nächsten Schritt können die Koordinaten der Verknüpfungspunkte berechnet werden.


Der Teilemittelpunkt der 9V-Weiche wird anhand der Bildgröße 279x166 Pixel berechnet. Die Breite bzw. Höhe wird durch den Maßstab (1 Noppe = 8 Pixel) geteilt und anschließend halbiert. So erhält man den Mittelpunkt:
Mittelpunkt X = 279 Pixels / 8 Pixel pro Noppe / 2 = 17.4375 Noppen
Mittelpunkt Y = 166 Pixels / 8 Pixel pro Noppe / 2 = 10.375 Noppen

Diese zwei Werte geben den Abstand in Noppen zwischen den Rändern und dem Teilemittelpunkt an. Da der linke Verknüpfungspunkt 0,5 Noppen vom linken Rand und 4 Noppen vom unteren Rand entfernt ist, ergeben sich die Koordinaten des linken Verknüpfungspunktes wie folgt:
Links X = 0.5 - Mittelpunkt X = 0.5 - 17.4375 = -16.9375
Links Y = Mittelpunkt Y - 4 = 10.375 - 4 = 6.375

Analog wird der rechte Verknüpfungspunkt berechnet:
Rechts Unten X = 32.5 - Mittelpunkt X = 15.0625
Rechts Unten Y = Links Y = 6.375

Für Gleiskurven kann ein Verknüpfungspunkt analog berechnet werden, aber der andere Verknüpfungspunkt muss mit Hilfe von Trigonometrie auf Basis des Drehwinkels und des Kurvenradius berechnet werden. So hat das 9V-Kurvengleis einen Radius von 40 Noppen und einen Winkel von 22.5°.

Zurück zur Weiche: Um die Koordinaten des Verknüpfungspunktes rechts oben zu berechnen, stelle man sich vor dass eine Kurve mit entgegengesetzter Krümmung an die Weiche angebunden wird. Der Endpunkt dieser Kurve ist nämlich bekannt: er ist exakt (16, -16) vom Verknüpfungspunkt rechts unten entfernt. Somit ergibt sich:
Ende Gegenkurve X = Rechts Unten X + 16 = 15.0625 + 16 = 31.0625
Ende Gegenkurve Y = Rechts Unten Y - 16 = 6.375 - 16 = -9.625

Damit ergeben sich die Koordinaten des Verknüpfungspunktes Rechts Oben zu:
Rechts Oben X = Ende Gegenkurve X - Radius * sin(Kurvenwinkel) = 31.0625 - 40 * sin(22.5°) = 15.7552
Rechts Oben Y = Ende Gegenkurve Y + Radius * (1 - cos(Kurvenwinkel)) = -9.625 + 40 * (1 - cos(22.5°)) = -6.58018

Die Berechnung der Koordinaten ist der schwierigste Teil der XML-Datei, wenn das Teil keine einfache Geometrie hat. Aber in den meisten Fällen ist die Geometrie so einfach, dass auch die Berechnung der Koordinaten einfach ist.

Der nächste Parameter ist der Winkel im Feld angle. Dieser beschreibt die Richtung des Verknüpfungspunktes in Grad. Vorsicht: da die Y-Achse im Teilekoordinatensystem nach unten zeigt und somit entgegengesetzt der in der Trigonometrie üblichen Richtung verläuft, muss auch das Vorzeichen des Winkels umgekehrt zum in der Trigonometrie üblichen Vorzeichen sein. Daher ist der Winkel des Verknüpfungspuntkes oben rechts -22.5° statt 22.5°.

Im Feld angleToPrev bzw. angleToNext wird, ähnlich zum vorherigen Parameter, der Winkelunterschied in Grad zwischen diesem und den vorherigen bzw. nachfolgendem Verknüpfungspunkt der Liste eingetragen. Dabei ist der letzte Verknüpfungspunkt der Liste als der vorhergehende Punkt des ersten Punktes und der erste Verknüpfungspunkt als der nachfolgende des letzten Verknüpfungspunktes zu betrachten, quasi als würde die Liste nicht mit dem ersten Punkt beginnen und mit dem letzten enden sonder als wäre die Liste ein geschlossener Kreis. Wird also die Reihenfolge der Verknüpfungspunkte geändert, so müssen auch die Parameter in den Feldern "angleToPrev" und "angleToNext" der neuen Reihenfolge angepaßt werden.

Die Reihenfolge der Vernküpfungspunkte wird von BlueBrick benutzt wenn ein Teil, das mit einem anderen verknüpft ist, gedreht wird. BlueBrick dreht nämlich bereits verknüpfte Teile so dass diese mit dem nächsten Verknüpfungspunkt in der Liste verknüpft werden.

Hat ein Teil mehrere Typen von Verknüpfungspunkten (so hat z.B. ein Bahnübergang sowohl Straßen- als auch Gleisverknüpfungspunkte), so müssen für jeden Verknüpfungstyp eigene Listen erstellt werden. Es darf aber nur eine Liste je Verknüpfungstyp geben.

Im letzten Feld nextConnexionPreference wird ein Verweis auf einen Verknüpfungspunkt der Liste eingetragen. Dieser Verweis legt den Verknüpfungspunkt fest, an dem das nachfolgende Teil angebunden werden soll. Nehmen wir als Beispiel ein gerades 9V-Gleis: wird ein neu hinzugefügtes Gleis an der linken Seite an bereits vorhandene Gleise angebunden, so soll automatisch der rechte Verknüpfungspunkt für den Anschluss weiterer Gleise ausgewählt werden. Ein mit einem Doppelklick aus der Teileliste ausgewähltes Gleisstück soll also automatisch an dem rechten Verknüpfungspunkt angebunden werden. Analoges gilt für die andere Seite: wird ein neu hinzugefügtes Gleis an der rechten Seite an bereits vorhandene Gleise angebunden, sollen weitere Gleise automatisch an der linken Seite angebunden werden.

Nehmen wir die oben dargestellte Weiche als weiteres Beispiel: Wird diese Weiche links ans Gleisbild angeschlossen, so wird automatisch der rechte untere Verknüpfungspunkt für den Anschluss weiterer Gleise ausgewählt. Wird die Weiche mit einem der rechten Verknüpfungspunkte mit dem vorhandenen Gleisbild verbunden, wird automatisch der linke Verknüpfungspunkt für die Anbindung weiterer Gleise ausgewählt. In der XML-Datei sieht dieses wie folgt aus:

<ConnexionList>
┌─► <connexion>
 ┌─── <nextConnexionPreference>1</nextConnexionPreference>
  </connexion>
 └►<connexion>
├──── <nextConnexionPreference>0</nextConnexionPreference>
    </connexion>
    <connexion>
└──── <nextConnexionPreference>0</nextConnexionPreference>
      </connexion>
</ConnexionList>

Sofern ein Teil nicht nur einen Verknüpfungspunkt hat, sollte ein Verknüpfungspunkt nicht auf sich selbst zur Anbindung des nächsten Teils verweisen. Nach Verknüpfung dieses Punktes mit einem Teil ist der Punkt ja bereits belegt und weitere Teile können an diesem Punkt nicht mehr angebunden werden.

Finally the Electric Plug field is used for track with electric circuits (9V and 12V) so you can omit this field for most parts. The field contains an integer that can be positive or negative. Different values indicates different independant circuits which are not connected electrically on the part. For example if you take the rail-cross part 32087, or a level crossing with two parallel railways, one line will be identified with the numbers +1/-1, and the other line with the numbers +2/-2.

The connections with the positive values are electricaly connected to the connections with the same negative values. That means a connection with an electric plug +1 is connected to all the connections with an electric plug -1 and vice and versa. But of cource +1 is not connected to -2, neither to another +1. See the image below for some example: