Goetz
Mitglieder
-
Benutzer seit
-
Letzter Besuch
-
Aktuell
Liest ein Thema: unknown error launching mbs 6.0
Alle erstellten Inhalte von Goetz
-
module
Soviel zu ...
-
module
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.
-
LOK/WAGON steht auf Gleis
Eine sehr schöne, einfache Beispielanlage mit Anleitung, die du für Aloys gebaut hast, Quackster!
-
Textfeld mit Geschwindigkeit
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.
-
Neues Forum
Prima, Neo. Danke für die schnelle Antwort.
-
LOK/WAGON steht auf Gleis
Wo? Wie soll der Leser wissen, welche Stelle du meinst?
-
Neues Forum
Ist bei der Umstellung auf das neue Forum (welches mir übrigens sehr gut gefällt!) der englische Abschnitt verloren gegangen?
-
Uhrzeit in die EV bekommen.
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?
-
LOK/WAGON steht auf Gleis
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.
-
Uhrzeit in die EV bekommen.
In der aktuellen Beta Version findest du jetzt in der EV die Uhrzeit als Ereignis. Sorry - das beantwortet natürlich nicht deine Frage ...
-
Grundlagen zu Variablen
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.
-
Grundlagen zu Variablen
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."
-
Ereignis Lokstart
... 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 ...
-
Grundlagen zu Variablen
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.
-
Grundlagen zu Variablen
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.
-
Grundlagen zu Variablen
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.
-
Grundlagen zu Variablen
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.
-
Grundlagen zu Variablen
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.
-
Grundlagen zu Variablen
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.
-
Grundlagen zu Variablen
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.
-
Grundlagen zu Variablen
Schritt 2 - Schranken schließen Jetzt soll der Personenzug die Schranken schließen, bevor er den Bahnübergang passiert. Und zwar früh genug damit die Schranken geschlossen sind, bevor der Zug den BÜ erreicht. Das rot markierte Gleis liegt weit genug entfernt um als Auslöser zu dienen, wenn die Geschwindigkeit des Zuges nicht mehr als 350 mm/sec beträgt. Bei 200 mm/sec sieht es noch besser aus. Das soll für dieses Beispiel genügen. Das Prinzip ist nahezu identisch wie beim Öffnen der Schranken. Aber das Ereignis ist jetzt "Zug betritt Gleis". Das Gleis ist 2200 (außen rot). Und die beiden Animationen müssen vorwärts ablaufen: Damit sollte der Personenzug Runde für Runde die Schranken korrekt schließen und öffnen.
-
Grundlagen zu Variablen
Schritt 1 - Schranken öffnen Im ersten Schritt soll der Personenzug die Schranken öffnen, sobald er den Bahnübergang passiert hat. Das ist dann der Fall, wenn der Zug das grüne Gleis im äußeren Ring verlässt. Es ist ratsam alle Ereignisse, die den Bahnübergang (kurz: BÜ oder BUe) betreffen, in einem Ordner zusammenzufassen. So behält man später einen besseren Überblick, wenn die Ereignisverwaltung (kurz: EV) mehr steuert als nur einen BÜ. Jetzt kann man die zugehörigen Ereignisse in diesem Ordner erstellen: Der erste Eintrag in der EV legt fest, was passiert wenn der Zug das grüne Gleis verlässt: Beide Schranken sollen in diesem Fall geöffnet werden. Das erreicht man, indem man die im Modell enthaltene Animation startet: Damit die Schlagbäume hoch gehen, muss die Animation rückwärts ablaufen: Für die Startposition muss "Aktuell" gewählt werden. Denn sonst läuft die gesamte Animation bei einer schon geöffneten Schranke ein zweites Mal ab. (Für das Schließen der Schranken gilt später das selbe!) Weil die beiden Schlagbäume zwei unabhängige Modelle sind, muss das Ereignis zwei Animationen starten. Eine für jede Schranke: Setzt man den Personenzug jetzt in Bewegung, dann öffnen sich beide Schranken, sobald er das grüne Gleis hinter sich gelassen hat.
-
Grundlagen zu Variablen
Der zweigleisige Bahnübergang - Schritt für Schritt In den nächsten Beiträgen möchte ich Schritt für Schritt und ausreichend bebildert erklären, wie man einen zweigleisigen Bahnübergang mit fester Fahrtrichtung für beide Gleise per Ereignisverwaltung steuern kann. Die passende Anlage dazu, komplett mit markierten und eindeutig benannten Gleisen, befindet sich im Anhang dieses Postings. Sie muss lediglich entsprechend der Anleitung mit einer Ereignisverwaltung versehen werden. Um den Zweck der verschiedenen Einträge in der EV verständlich zu machen, beginne ich mit einer sehr einfachen Steuerung, die aber fehlerhaft arbeitet und in weiteren Schritten entsprechend korrigiert werden muss. Denn meines Erachtens genügt es nicht, eine "perfekte" Lösung anzubieten. Ich finde es genauso wichtig, dass man Erfahrungen mit Lösungswegen sammelt, die letztlich nicht zum Ziel führen. Das Tutorial beginnt mit dem nächsten Posting. BUe Tutorial.mbp
-
Brummis Module
Das sieht höchst interessant aus. Und deine Überlegungen dazu, wie man im einfachen Fall auch ohne Schaltung auskommt, finde ich clever!
-
Lock am Signal anhalten lassen
Ein Signal selbst hat keinen Einfluss auf Züge. Du musst die Ereignisverwaltung (kurz: EV) nutzen, um den Zugverkehr zu regeln. Dort kannst du beispielsweise eintragen, dass bei Betreten eines bestimmten Gleises der auslösende Zug die Geschwindigkeit 0 zugewiesen bekommt, falls ein bestimmtes Signal "Halt" zeigt.