Table of Contents
SVG-Dynamische-Themen
Inhalt → Rocview → SVG-Themen
Diese Dokumentation basiert auf der Rocrail-Version 2.1.4966 vom 03.08.2024.
Die Entwiklung ist noch "In Arbeit" (WIP).
Einführung
SVG-Symbole (Scalable Vector Graphics) werden verwendet, um Rocrail-Objektsymbole zu definieren und den Inhalt einer Rocrail-Plandatei anzuzeigen.
SVG-Symbole können mit dem internen Rocview-SVG-Editor von Rocview erzeugt und/oder geändert werden.
Pfad
Die Pfade zu den SVG-Symbolen sind:
Path | Description |
---|---|
svg/themes | Standardmäßige SVG-Themen. |
svg/dynthemes | Optionale dynamische SVG-Themen. |
Konstruktionsdetails
Unterstützte Elemente
Ein „SVG-Tutorial“ findet sich unter https://www.w3schools.com/graphics/svg_intro.asp
Ein SVG-Symbolcode kann jedes beliebige SVG-Element verwenden, aber … .
- das Standard-SVG-Symbol misst 32 x 32 Pixel;
- daher kann ein Kreis mit seinem Radiuswert nicht innerhalb dieses Symbols zentriert werden, da für alle Koordinaten ganzzahlige Werte verwendet werden müssen;
- …
Element | Bedeutung |
---|---|
svg | Kopf |
g | Gruppe; mindestens ein g muss enthalten sein |
path | einfache oder komplexe Formen erstellen |
rect | ein Rechteck erstellen |
circle | einen Kreis erstellen |
ellipse | eine Ellipse erstellen |
line | eine Linie erstellen |
polygon | eine Grafik mit mindestens drei Seiten erstellen |
polyline | ein Form nur aus geraden Linien erstellen |
Das bevorzugte Element fürs Zeichnen ist <path>.
Kopfzeilen-Attribute
Beispiele:
<svg width="100%" viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg"> ... </svg> <svg ledsupport="true" width="100%" viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg"> ... </svg>
Die Kopfzeile des SVG-Symbolcodes sollte die folgenden Attribute enthalten:
Element | Attribute | Beispiele | Bedeutung |
---|---|---|---|
svg | - | - | kein LED-Attribute und kein G-STATE wid für dieses Symbol verwendet |
ledsupport | ledsupport="true" | Rocrail spezifisch; LED-Attribute werden für deises Symbol verwendet; im Fall von Weichen wird G-STATE auch für dieses Symbol verwendet |
SVG-Element-Attribute
SVG-Element G
Beispiele:
<g state="straight"> ... </g> <g state="turnout"> ... </g> <g state="left"> ... </g> <g state="right"> ... </g>
Element | Attribute | Beispiele | Bedeutung |
---|---|---|---|
g | state | state="straight" | Rocrail-spezifische-Steuerung, um diese Gruppe bei dem gegebenen Status auszuführen |
SVG-Element PATH
Beispiele:
<path led="1" stroke="rgb(192,192,192)" fill="rgb(192,192,192)" d="M 8,14 L 23,14 L 23,17 L 8,17 z "/> <path led="2" stroke="black" fill="rgb(255,0,0)" d="M 2,6 L 6,2 L 27,2 L 23,6 L 27,10 L 6,10 z "/>
Element | Attribute | Beispiele | Bedeutung |
---|---|---|---|
path | led | led="1" | Rocrail-spezifische-Steuerung, um STROKE und FILL einzufärben |
stroke | stroke="black" | legt die Farbe der Linie um ein Element fest; verwendet die implizite STROKE-WIDTH von 1 |
|
fill | fill="rgb(192,192,192)" | sets the color of the inside of an element | |
d | d="M 8,14 L 23,14 L 23,17 L 8,17 z " | eine Reihe von Befehlen, die den Pfad definieren; M = moveto; L = lineto; Z = close path; … mit komma-separierten x,y-Punkten; x und y müssen Integer-Werte sein |
SVG-Element RECT
Beispiele:
<rect txt="1" x="0" y="0" rx="0" width="31" height="10" stroke="none" fill="none"/> <rect x="0" y="0" rx="0" width="1" height="1" stroke="rgb(0,0,255)" fill="rgb(0,0,255)"/>
Element | Attribute | Beispiele | Bedeutung |
---|---|---|---|
rect | led | led="1" | Rocrail-spezifische-Steuerung, um STROKE und FILL einzufärben |
txt | txt="1" | Rocrail-spezifisch; um die Positionierung der Symbol-Kennungs-Zeichenkette zu bestimmen; funktioniert nur mit RECT; |
|
x | x="0" | die x-Position der oberen linken Ecke des Rechtecks | |
y | y="0" | die y-Position der oberen linken Ecke des Rechtecks | |
rx | rx="0" | das rx-Attribut definiert den Radius der Ecken des Rechtecks | |
ry | ry="0" | das ry-Attribut definiert den Radius der Ecken des Rechtecks | |
stroke | stroke="black" | bestimmt die Farbe der Linie um das Element; verwendet die implizite STROKE-WIDTH von 1 |
|
fill | fill="rgb(192,192,192)" | bestimmt die Farbe innerhalb des Elements |
LED-Attribut-Werte
Die normalen LED-Attributwerte liegen im Bereich von 1 bis 99.
Durch Offsets zum Normalwert lässt sich die Bedeutung erweitern:
LED | Offset | Bedeutung | Bemerkung |
---|---|---|---|
- | - | die Farben innerhalb des SVG-Symbols werden angezeigt | |
led="x" | +0 | die Füll-Farbe wird auf die aktuwelle Status-Farbe gesetzt | |
led="x" | +100 | die STROKE-Farbe wird auf die aktuwelle Status-Farbe gesetzt | |
led="x" | +200 | die STROKE-Farbe wird auf die Schwarz-Farbe gesetzt | |
led="x" | +300 | der STROKE erhält die Status-Farbe und FILL wird auf "nonbe" gesetzt (transparent) | Kann für Test des Text-Rahmens verwendet werden. |
Die folgenden LED-Attribut-Werte sind definiert:
Name | Wert |
---|---|
Gleis oder Block | |
occ | 1 |
Block | |
blockstate | 2 |
sensplus | 3 |
sensmin | 4 |
arrowplus | 5 |
arrowmin | 6 |
Rückmelder | |
stateoff | 2 |
stateon | 3 |
Signal | |
red | 2 |
green | 3 |
yellow | 4 |
white | 5 |
blank | 6 |
SVG-Ausleuchtungs-Eigenschaften
Jeder SVG-Themenordner enthält die Datei „properties.xml“, die die Ausleuchtungseigenschaften für dieses SVG-Thema enthält. Der Inhalt kann unter "Rocview-Menü → -Eigenschaften → SVG → Thema X → Eigenschaften" bearbeitet werden.
Ein Beispiel wird unten angezeigt: