-
Gesamte Inhalte
5753 -
Benutzer seit
-
Letzter Besuch
Alle erstellten Inhalte von Goetz
-
Was ist bei Aktion unter "Bedingungen sind NICHT erfüllt" eingetragen?
-
@ Schlagerfuzzi Ich fürchte, dass deine "blumige" Konstruktion nicht das ist, wonach EASY sucht. @ EASY Das, was du im Bild zeigst, nennt man für gewöhnlich einen Hosenträger. Der lässt sich mit normalen Gleisen aus dem realen Modellbahnsortiment nicht bauen und ist daher auch im MBS nur mit Trickserei zu bewerkstelligen. Und im Bogen (wie auf deinem Screenshot) ist es nehezu unmöglich.) In der Realität kommt er jedoch vor. Man findet den eher selten. Nämlich dort, wo die Platzverhältnisse beengt sind. Ist genügend Platz vorhanden, dann baut die Bahn lieber zwei Gleiswechsel hintereinander. (Einmal hin und einmal zurück.) Das erfüllt die gleiche Aufgabe und man vermeidet so die anfällige und aufwendige Kreuzung. (Solche Dinge habe ich auch erst gelernt, seit ich mich mit der virtuellen Eisenbahn befasse.) Wenn dir bei deinen Tests der Abstand zwischen den Gleisen nicht wichtig ist, dann kannst du den Hosenträger erzielen, indem du vier Weichen um eine normale Kreuzung (keine DKW!) herum anschließt. Dock die vier abbiegenden Zweige der Weichen an die Kreuzung an und verbinde die geraden Enden mit Flexigleis. Damit bekommst du einen Hosenträger auf gerader Strecke hin. Aber wenn ich dich richtig verstehe, dann suchst du nicht speziell nach einer Möglichkeit selbst einen Hosenträger zu bauen, sondern alle erdenklichen exotischen, aber trotzdem sinnvollen Gleisverbindungen?
-
Weil ein Bild manchmal doch mehr sagt, möchte ich Brummis Aussage ergänzen: Das Ereignis "Zug betritt ein Gleis" tritt schon in dem Augenblick ein, wenn ein Zug das entsprechende Gleis berührt. Ich habe das "Halt" Gleis von Brummis Modul rot eingefärbt und das davor liegende "Bremsen" Gleis grün. Wenn der Zug das rote Gleis betritt und von rechts kommt, dann steht er zugleich auch auf dem grünen Gleis. Käme er von links, dann stünde er zugleich auf dem gelben Gleis (der DKW), aber keinesfalls schon auf dem grünen Gleis. Daher müssen zwei Bedingungen erfüllt sein, damit der Zug gestoppt wird: Das Signal ist geschlossen auf dem Gleis "Bremsen N103" steht ein Zug oder Waggon Diese Bedingungen müssen mit UND verknüpft sein. Wel der Zug nur dann gestoppt werden darf, wenn beide Bedingungen zugleich erfüllt sind, jedoch nicht, wenn nur entweder die eine ODER die andere Bedingung erfüllt ist.
-
Wenn etwas mal geht und mal nicht, dann musst du es eine Weile sehr genau beobachten um zu sehen, was der Unterschied ist. Daraus kannst du sehr viel lernen. In deinem Beispiel werden die Loks immer dann stoppen, wenn gleichzeitig eine Lok auf dem roten Gleis ist und die andere das blaue Gleis betritt. ist jedoch die eine Lok schon wieder vom roten Gleis runter, wenn die zweite das blaue Gleis betritt, dann stoppen die Loks nicht. Weil die Bedingung "Lo/Waggonk steht auf Gleis" dann nicht mehr erfüllt ist.
-
Du kannst eine DKW (Doppelkreuzungsweiche) auswählen, bei den Eigenschaften auf (Bearbeiten) klicken und siehst dann die Maße. Die können von Modell zu Modell sehr unterschiedlich sein, denn DKWs gibt es in verschiedenen Winkeln und Längen. Nicht nur im MBS, sondern auch in der Realität.
-
Soviel zu ...
-
Egal, wie viele Module du zusammensteckst und was du dazwischen noch alles einbaust - für die EV ist das eine einzige Anlage und du kannst aus der EV alles ansteuern, was sich darauf befindet.
-
Eine sehr schöne, einfache Beispielanlage mit Anleitung, die du für Aloys gebaut hast, Quackster!
-
Die Variable _CurrentSpeed liefert immer die Geschwindigkeit exakt auf fünf Nachkommastellen genau. Das lässt sich auch nicht per EV auf- oder abrunden. Wenn die Geschwindigkeit haargenau 50 beträgt, dann wird es auch genau so (und ohne Nullen hinter dem Komma) angezeigt. Weicht der Wert minimal ab, dann hat man die Darstellung von deinem Screenshot.
-
Prima, Neo. Danke für die schnelle Antwort.
-
Wo? Wie soll der Leser wissen, welche Stelle du meinst?
-
Ist bei der Umstellung auf das neue Forum (welches mir übrigens sehr gut gefällt!) der englische Abschnitt verloren gegangen?
-
Vielen Dank für den Hinweis, EASY! Wenn ich es richtig sehe - ich habe ein wenig damit experimentiert - dann enthält _Time die Uhrzeit als String. Damit kann man in der EV die Uhrzeit an Textfelder übergeben. Aber für Berechnungen oder Vergleiche in der EV eignet sich diese Variable demnach nicht, oder doch?
-
Nein, du machst da nichts falsch. Sobald die Spitze des Zuges ein Gleis berührt, wird das Ereignis für "Zug betritt ein Gleis" ausgelöst. Egal, ob vorne die Lok ist oder nicht. Für den normalen Betrieb einer Anlage ist das auch vernünftig und sinnvoll. Es gibt im MBS eine Bedingung "Lok/Waggon steht auf Gleis". Damit kann man beispielsweise prüfen, ob ein Gleis schon besetzt ist. Aber für deinen Zweck nützt das nichts. Das, was du gerne möchtest - nämlich die Schrift erst dann anzeigen, wenn die Lok auf dem Gleis steht - geht mit dem MBS nicht.
-
In der aktuellen Beta Version findest du jetzt in der EV die Uhrzeit als Ereignis. Sorry - das beantwortet natürlich nicht deine Frage ...
-
Du musst es nicht lassen, Aloys. Ganz bestimmt nicht deshalb, weil ich (alleine) mich mit schlechter Rechtschreibung schwer tue. Ich bin nicht der Maßstab dafür, was andere tun und lassen dürfen. Wenn du deine Rechtschreibung mit etwas mehr Mühe verbessern kannst, dann wäre ich dir dafür dankbar. Wenn es nicht geht, dann ist das auch okay.
-
Ein Textfeld kann nur einen Text anzeigen (wenn dieser Text durch die EV erstellt wird) Für mehrere Texte (z.B. mehrere Zugnamen) musst du mehrere Textfelder unter- oder nebeneinander setzen. In Zugverbänden wird nur die Lok erkannt, welche eine andere Geschwindigkeit als 0 hat (und somit den Zug bewegt), weil man sonst eine lange Liste an Namen ausgeben müsste. Nämlich jede Lok und jeden Waggon im Zugverband. Oder man bekäme ständig Meldungen. Nämlich für jeden Waggon im Zug eine, sobald dieser das Gleis betritt. Beides wäre in den meisten Fällen nur hinderlich. Denn meistens will man den ganzen Zug beeinflussen. Und das geht am besten, wenn man im Zug nur einen einzigen Ansprechpartner hat. Was deine Deutschlehrerin betrifft: Ich wäre auch froh, wenn sie mehr Geduld mit dir gehabt hätte. Dann wäre es nicht so mühselig deine Texte zu lesen. Ich muss mich wirklich überwinden dir zu antworten, ohne dir deine schlechte Rechtschreibung übel zu nehmen. Denn manchmal denke ich dann so etwas wie: "Ich habe mir 10 Stunden Mühe mit meinem Tutorial gegeben. Ich habe jeden Satz immer wieder geändert bis ich mir sicher war, dass er wirklich verständlich ist. Und Aloys gibt sich nicht einmal 5 Minuten Mühe bei seinen Antworten beziehungsweise seinen Fragen."
-
... dann startet jedes dieser Ereignisse die selbe Lok und kann entsprechend auch alles andere auslösen, was mit dem Start dieser Lok verbunden sein soll. Bleibt also nur der manuelle Start als Argument ...
-
Schritt 9 - Variable am Schrankenwärterhäuschen anzeigen Wenn man genauer beobachten möchte, wie sich im Betrieb die Variable ständig ändert, dann kann man sie in einem Textfeld ausgeben. Für diesen Zweck ist in der Übungsanlage schon ein passendes Textfeld eingebaut. Es hat den Namen "Anzahl", sitzt genau auf der Wand des Schrankenwärterhäuschens, besitzt einen durchsichtigen Hintergrund und eine weiße Schriftfarbe. Weil es aktuell keinen Text enthält, ist es nicht zu sehen. Um die Variable in diesem Textfeld anzuzeigen, muss das Ereignis "BUe öffnen" geändert und erweitert werden. Als erstes muss das Ereignis jetzt bei jedem Wert reagieren und nicht nur dann, wenn der Wert 0 ist. Dafür trägt man beim Ereignis als Wert statt der 0 den Namen der Variablen mit vorangestelltem Dollar Zeichen ein. Also Wert: $Schrankenwärter.Zahl (hier muss der Name der Variablen von Hand geschrieben werden. Bitte die genaue Schreibweise beachten! Vor dem Namen steht ein Dollarzeichen. Und zwischen den beiden Worten steht ein Punkt, aber kein Leerzeichen.) Das Dollar Zeichen bedeutet für die EV, dass sie nicht das Wort als Wert benutzen soll, sondern den Wert, der in der Variablen dieses Namens gespeichert ist. Im speziellen Fall bedeutet es, dass die EV immer reagiert, wenn sich der Wert der Variablen ändert. Egal, welchen Wert sie dann gerade bekommt. Die Methode ist ein bisschen "von hinten durch die Brust ins Auge" und deshalb nicht so leicht zu verstehen wie alles bisherige. Aber sie funktioniert sehr gut. Die EV reagiert jetzt also immer, wenn sich die Variable ändert. Das ist gut für die Textausgabe. Aber die Schranken dürfen sich trotzdem nur öffnen, wenn der Wert der Variablen 0 ist. Also braucht das Ereignis jetzt eine Bedingung: Bedingung: Variable besitzt den Wert Name: "Schrankenwärter.Zahl" Wert: "0" Das Öffnen der Schranken haben wir zuvor schon für den Fall "Bedingungen sind erfüllt" eingetragen. Daran muss nichts geändert werden. Für diesen Fall kommt nur noch eine Aktion hinzu: Spezifische Objektaktionen: Beschriftung setzen Beschriftung: "Anzahl" Text: "$Schrankenwärter.Zahl" Anschließend muss man festlegen, was passieren soll, wenn die Bedingungen NICHT erfüllt sind: In diesem Fall soll nur der neue Wert der Variablen an das Textfeld übertragen werden. Sonst nichts. Spezifische Objektaktionen: Beschriftung setzen Beschriftung: "Anzahl" Text: "$Schrankenwärter.Zahl" Jetzt wird der aktuelle Wert der Variablen bei jeder Veränderung an das Textfeld übertragen. Egal, ob der Wert 0 ist oder nicht. Und damit ist das Ende des Tutorials erreicht. Ich wünsche mir, dass ich damit manchen Nutzern des 3D-Modellbahn Studios zu einem besseren Verständnis der Ereignisverwaltung verhelfen konnte. Viel Spaß beim Nachbauen. Und wer nicht nur abschreibt, sondern dabei auch mitdenkt und versteht, was er tut, der kann sich anschließend viele andere Aufgaben ausdenken und selbständig lösen.
-
Schritt 8 - Züge frühzeitig anmelden. Damit ist der BÜ gesichert. Aber wirklich befriedigend ist das noch nicht. Denn in ungünstigen Fällen kann es vorkommen, dass ein Zug den BÜ öffnet und der nächste ihn gleich darauf wieder schließt. Es wäre deshalb sinnvoll einen Zug schon dann beim Schrankenwärter anzumelden, wenn sich das Öffnen der Schranken nicht mehr lohnt. Diese Stellen sind in der Übungsanlage mit gelben Gleisen markiert. Zwei weitere Ereignisse sind nötig: "BUe Anmeldung außen" und "BUe Anmeldung innen" Das Ereignis ist jeweils "Zug betritt ein Gleis". Das Gleis ist "2200 außen gelb" bzw. das Gleis "2200 innen gelb" Und die Aktion ist Variable setzen Name: Schrankenwärter.Zahl Wert: +1 Weil jetzt die ankommenden Züge schon bei den gelben Gleisen gezählt werden, muss die Aktion "Variable setzen" aus den Ereignissen für die roten Gleise "BUe schließen außen" und "BUe schließen innen" wieder gelöscht werden. Wenn alles stimmt, dann öffnet der BUe jetzt nur noch dann, wenn er wenigstens für 7 bis 10 Sekunden (je nach Zuggeschwindigkeit) geöffnet bleiben kann.
-
Schritt 7 - Schranken öffnen Jetzt fehlt nur noch das Ereignis, welches die Schranken öffnet. Dafür wird ein neues, fünftes Ereignis benötigt. Und dieses Ereignis ist vom Typ "Variable wird gesetzt". Dieses Ereignis soll genau dann eintreten, wenn der Wert der Variablen sich auf 0 ändert. Wenn dieser Fall eintritt, dann haben alle Züge den Bahnübergang verlassen. Also können die Schranken jetzt geöffnet werden. Die Aktionen dafür sind genau die selben, die wir vorher in der Ereignissen "BUe verlassen außen" und "BUe verlassen innen" gelöscht haben. Aber jetzt werden diese Aktionen nur noch dann ausgeführt, wenn alle Züge, die schon ein rotes Gleis überfahren hatten, den BÜ auch wieder verlassen haben. Ist erst ein Zug durch den BÜ hindurch, aber der andere noch auf dem Weg dorthin, dann bleiben die Schranken geschlossen weil die Variable noch nicht den Wert 0 hat. Je nachdem, wo sich die beiden Züge während der Erstellung der EV befanden, hat die Variable vielleicht den falschen Anfangswert. Deshalb wartet man am besten einen Moment ab, in dem beide Züge den BÜ passiert haben, öffnet dann die EV oder die Variablenliste des Schrankenwärterhäuschens und setzt jetzt den Wert der Variablen auf 0. Anschließend sollte der Bahnübergang korrekt funktionieren.
-
Schritt 6 - durchgefahrene Züge zählen Wenn ein Zug ein grünes Gleis verlässt, dann muss die Variable wieder 1 runter gezählt werden. Und mehr darf nicht passieren. Die grünen Gleise dürfen den BÜ jetzt nicht mehr automatisch öffnen. Deshalb müssen zunächst die beiden Animationen aus den Ereignissen "BUe verlassen außen" und "BUe verlassen innen" gelöscht werden: Und dann trägt man in beiden Ereignissen jeweils nur eine Aktion ein Variable setzen Name: "Schrankenwärter.Zahl" Wert "-1" Durch das Minus wird die Zahl um 1 verringert, wenn ein Zug den Bahnübergang verlässt.
-
Schritt 5 - ankommende Züge zählen Um jetzt zu zählen, wie viele Züge den BÜ passieren werden, muss den beiden Ereignissen "BUe schließen außen" und "BUe schließen innen" eine weitere Aktion hinzugefügt werden. Die Aktion heißt: "Variable setzen". Die Variable heißt "Schrankenwärter.Zahl" und kann aus der Liste ausgewählt werden. Der Wert ist "+1", wobei das Plus dafür sorgt, dass zum aktuellen Wert 1 addiert wird. Falls der Wert vorher 0 war, dann ist er nach Auslösung des Ereignisses 1 War der Wert vorher 1, dann ist er jetzt 2 Mit jedem Zug, der über eins der beiden roten Gleise fährt, wird die Zahl also um 1 größer.
-
Schritt 4 - Variable einrichten Aber wenn beide Züge gleichzeitig ihre Runden drehen, dann geht die Sache manchmal schief. Dann nämlich, wenn ein Zug die Schranken öffnet, nachdem der andere Zug schon das Gleis zum Schließen der Schranken überfahren hat: Der Güterzug hat das rote Gleis schon überfahren. Der Personenzug verlässt gleich das grüne Gleis. Und dann öffnen sich die Schranken, obwohl der Güterzug den BÜ noch passieren muss. Er kann die Schranken aber nicht erneut schließen, weil er den Punkt für diese Aktion schon hinter sich hat. Unser Prinzip, welches für jeden einzelnen Zug perfekt funktioniert, reicht also offensichtlich nicht mehr, wenn beide Züge gleichzeitig unterwegs sind. Um diese Aufgabe zu lösen muss man zählen, wie viele Züge den BÜ passieren sollen und wie viele Züge ihn schon passiert haben. Und für diesen Zweck sind Variablen perfekt geeignet. Denn man kann das, was in einer Variable steht, ändern. Also beispielsweise eine Zahl rauf und runter zählen. Eine Variable kann man einfach in der EV erzeugen, indem man ihr dort einen Namen gibt und einen Wert zuweist. Man kann die Variable aber auch einem bestimmten Modell zuordnen. Das kann ganz nützlich sein, um später bei vielen Variablen eine besseren Überblick zu behalten. Und bei Rollmaterial ist es besonders nützlich, weil es auf diese Weise immer seine Variablen mit dabei hat. Im konkreten Beispiel ist es nicht nötig und auch nicht von besonderem Vorteil, die Variable in einem Modell anzulegen. Ich will es trotzdem tun, um bei dieser Gelegenheit zu zeigen, wie das funktioniert. Neben dem Bahnübergang steht ein kleines Häuschen für den Schrankenwärter. Und das bietet sich doch geradezu dafür an, dort aufzuschreiben wie viele Züge den BÜ passieren wollen bzw. passiert haben. Wählt man das Modell aus, so kann man in den Eigenschaften unten rechts eine Liste öffnen. (zum Auswählen bitte auf das Dach des Häuschens klicken. Auf der Wand befindet sich ein unsichtbares Textfeld) Diese Liste ist zunächst leer. Hier legt man jetzt eine Variable an, gibt ihr einen Namen (im Beispiel: Zahl) und einen Wert (im Beispiel: 0). Anschließend kann man den Wert in dieser Variablen durch Ereignisse ändern und solche Änderungen wiederum als Ereignis auswerten, das weitere Aktionen auslösen soll. In der EV kann man jederzeit prüfen, welche Variablen es gibt und welchen Wert diese Variablen aktuell speichern. Das ist nützlich wenn man prüfen möchte, ob beispielsweise richtig gezählt wird. Außerdem kann jeder Eintrag mit einem Doppelklick geöffnet und geändert werden, falls mal etwas durcheinander geraten sein sollte.
-
Schritt 3 - Ereignisse für den Güterzug kopieren Für den Güterzug kann man jetzt zwei weitere Einträge in der EV vornehmen. Und da sie nahezu identisch mit den Einträgen für den Personenzug sind, kann man sich viel Arbeit ersparen indem man die beiden vorhandenen Einträge kopiert. Anschließend kann man diese Einträge umbenennen und die passenden Gleise als Auslöser wählen. Jetzt schließt und öffnet auch der Güterzug bei jeder Runde korrekt die Schranken.