Jump to content

Sparschattenbahnhof


EASY

Empfohlene Beiträge

Hallo,

ich wollte schon lange ein kleines Experiment mit der neuen Möglichkeit der Verbindung von Portalen über die EV machen.
Herausgekommen ist ein "Sparschattenbahnhof" ohne Weichen. (MBS V8.5)
Bild001.thumb.jpg.4627edd3fa1e1a01d883a0ada3d43ec7.jpg

Bedient werden 2 Strecken, die der Abwechslung halber zufällig entweder von links nach rechts oder von rechts nach links durchfahren werden. Die Auswahl der Zuge ist auch zufällig wobei die mögliche Strecke allerdings vorgegeben ist (deshalb im Schattenbahnhof die farbigen Gleise).

Da ich immer noch mit der grafischen EV auf Kriegsfuß stehe, ist die EV (für den einen oder anderen leider) in lua geschrieben, aber vielleicht dient es trotzdem als Anregung.
(Vielleicht mag sich ja auch jemand [netterweise] damit beschäftigen, wie man es in der grafischen EV lösen könnte...)

Sparschattenbahnhof01.mbp

Gruß
EASY

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo @EASY,

vor 2 Stunden schrieb EASY:

Vielleicht mag sich ja auch jemand [netterweise] damit beschäftigen, wie man es in der grafischen EV lösen könnte..

Im Prinzip kann ich das, weiß aber nicht, wie die lokale Tabelle und v.a. ein table.insert graphisch machen könnte (wenn es überhaupt geht), weshalb ich "Weiter Benutzerdefiniert" nicht übersetzen konnte.

Sparschattenbahnhof01graphisch.mbp

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo @Phrontistes,

danke für die Übersetzung.
Ich brauche alleine schon 5 Minuten um so einen Ausdruck in der grafischen EV hinzubekommen:(...
Bild002.jpg.36eaa026e6b255b762dc6fca1ed5b953.jpg

... in lua sehe ich es schon vor dem Schreiben vor mir, wie es aussehen soll...

signal.variables["Portale"][1].connection = signal.variables["Portale"][math.random(2,3)]

... in der grafischen EV...
ich möchte auf eine Eigenschaft (Verbindung) zugreifen
die Parameter dafür befinden sich in einer Liste/Tabelle (Variable (Liste Tabelle))
der Zugriff auf die Tabelle/Liste ist ein indirekter Zugriff (Variable erweitert)
...ist das für mich mehr oder weniger Versuchs-und-Irrtum Methode (richtiger Klick im jeweiligen Untermenü)
(und ich lasse es mir in lua übersetzen um zu sehen ob es denn stimmt).

Gruß
EASY

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo @EASY,

auf jeden Fall ist Dein Schattenbahnhof mit wechselnder Portalverbindung statt Weichen schon mal eine super Idee! :)

vor 1 Stunde schrieb EASY:

Ich brauche alleine schon 5 Minuten um so einen Ausdruck in der grafischen EV hinzubekommen

5 Minuten ist doch eine gute Leistung:). Kann gut sein, dass ich länger gebraucht habe. Aber Du hast das Vorgehen gut beschrieben: Man muss, wenn man lua-Code übersetzen will, mit dem, was in lua hinten steht, in der graphische EV anfangen.

vor 1 Stunde schrieb EASY:

ist das für mich mehr oder weniger Versuchs-und-Irrtum Methode (richtiger Klick im jeweiligen Untermenü

Nein, wenn man primär in der graphischen EV denkt, bekommt man das ganz flott und gezielt hin, schneller jedenfalls, als wenn man Deinen lua-Code übersetzen muss - aber sicher nicht schnell, wie gleich in lua zu schreiben, wenn man sich dessen verquere Syntax mal angeeignet hat (was bei mir noch nicht so recht der Fall ist).

vor 1 Stunde schrieb EASY:

und ich lasse es mir in lua übersetzen um zu sehen ob es denn stimmt

(y) Das mache ich auch so.

Es gibt im Beispiel übrigens noch eine Tücke: Da steht nur [Verbindung], Du musst aber die richtige (Portal)[Verbindung] und nicht die unzutreffende (TC)[Verbindung] mit einem Haken versehen.

Screenshot2023-12-29115646.jpg.c5dd519a1ed97c25eb0679d5ddbd473f.jpgScreenshot2023-12-29103609.jpg.de80ab5e51c143fa8faa47155063055e.jpg

Auf diese naheliegende und nach Eingabe nicht mehr sichtbare Fehlbedienung habe ich @Neo hier auch schon hingewiesen.

So, jetzt schaue ich mal, ob ich "Weiter Benutzerdefiniert" nicht doch noch übersetzen kann. Das wird aber ganz wild, weil es in der graphischen EV keine lokalen Variablen gibt, die ich mir auch schon mal gewünscht habe. Einen praktischen Nutzen für Leute, die nur rudimentär programmieren können, hat das natürlich nicht.

Beste Grüße

Phrontistes

Bearbeitet von Phrontistes
Erstes Bild getauscht, ich hatte eine unzutreffende Situation fotografiert
Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 55 Minuten schrieb EASY:

in lua sehe ich es schon vor dem Schreiben vor mir, wie es aussehen soll

Wenn man an dem Punkt ist, dass man mit der EV solche Spielereien macht, ist die grafische EV auch nicht mehr wirklich sinnvoll.
Zumal derjenige, der in solchen logischen Zusammenhängen denken kann, auch Lua verstehen wird.

Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 10 Minuten schrieb Goetz:

Zumal derjenige, der in solchen logischen Zusammenhängen denken kann, auch Lua verstehen wird.

Nur mal so ein Gedanke, werter @Goetz: Es wäre vielleicht nicht das Schlechteste, wenn es hier im Forum ein Tutorial gäbe, in welchem anhand von Beispielen den Interessierten Lua näher gebracht werden könnte. Ich zum Beispiel würde da durchaus Interesse haben, denn es ist schon recht mühsam, wenn man so eine Scriptsprache ohne fremde Hilfe oder Beispielen erlernen soll. Ich habe mir einst HTML selbst beigebracht, weil ich die Quelltexte "gelesen" und dann "übersetzt" habe, aber da konnte ich auch das fertige "Produkt" sehen. Das hat das lernen sehr erleichtert, und heute weiß ich, wie etwas aussieht, wenn ich es erst schreibe, da geht es mir wie @EASY mit Lua. Wie gesagt, ist nur so ein Gedanke von mir, aberich kann mir vorstellen, dass er auch für andere Nutzer interessant wäre. In diesem Sinn einen schönen Tag wünscht

Walter

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo,

vor 41 Minuten schrieb Klartexter:

Ich habe mir einst HTML selbst beigebracht, weil ich die Quelltexte "gelesen" und dann "übersetzt" habe, aber da konnte ich auch das fertige "Produkt" sehen.

... das geht im MBS auch...

Bild003.jpg.1c1124c11f8b8ba354d2467ff81420c8.jpg

Bild004.thumb.jpg.2a531a50ed0ef971f5609bbb24d5bd60.jpg

Hinweis: Das Rückgängig machen geht nur solange, wie Du im (konvertierten) Skript nichts änderst oder zwischenzeitlich ein anderes Ereignis aufrufst.

... auf diese Weise habe ich im MBS mit lua angefangen.

Gruß
EASY

Bearbeitet von EASY
Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo,

vor 7 Minuten schrieb EASY:

Das Rückgängig machen geht nur solange, wie

... weshalb es sich empfiehlt, für Experimente mit lua mit einer Kopie dessen zu arbeiten, was man graphisch schon erfolgreich bewerkstelligt hat (wenn man denn schon etwas hat). Und ich nutze die Konvertierung auch, um zu kontrollieren, ob es einen Sinn ergibt, was ich graphisch gemacht habe (s.o.).

Beste Grüße

Phrontistes

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo @EASY ,

Ich finde Deine Lösung für einen Schattenbahnhof auch eine Super-Idee.

Für alle LUA-Verweigerer habe ich das letzte LUA-Element auch mal in die graphische EV übersetzt. Da dort keine lokalen Variablen gebildet werden können, habe ich diese auf den Start-Schalter gelegt (muss halt ein eindeutiges Element sein). Wichtig bei solchen Verfahren ist, dass es keine Zeitverzögerungs-Aktion im Ereignis geben darf, da ansonsten andere Events abgehandelt werden, die ggf. diese Variablen ebenfalls nutzen.

Danke für die Idee und hier die überarbeitete Anlage.

Grüße,
    Wolfgang

Schattenbahnhof01graphisch2.mbp

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo zusammen,

nochmals zurück zum Thema "SparSchattenbahnhof":
Genau diese Idee wird in 3D-MBS doch durch das virtuelle Depot dargestellt.

Und wie das funktioniert, wird in den Tutorial-Videos von @Goetz ganz gut erklärt. Meist werden sie dann auch in weiteren Demonstrationen verwendet und mit speziellen Funktionen mittels grafischer EV versehen.

-->

hier in dieser Playlist speziell die Videos 2 (ab 17:00) und 5.

Ich hoffe, da sind genügend Anregungen dabei.

Gruß

Andreas

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo @AndreasWB,

vor 3 Minuten schrieb AndreasWB:

nochmals zurück zum Thema "SparSchattenbahnhof":
Genau diese Idee wird in 3D-MBS doch durch das virtuelle Depot dargestellt.

Du schweifst ab, nicht die übrigen Diskutanten. Der Schattenbahnhof von @EASY arbeitet mit Portalen, welche anderes als die Depots auch im praktischen Betrieb brauchbar sind. Ich bin hier nicht der Einzige, der alle Depots wieder ausgebaut hat, weil er einen flüssigen Betrieb sehen will und kein Gehakel.

Beste Grüße

Phrontistes

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo @Phrontistes,

vor einer Stunde schrieb Phrontistes:

Hallo AndreasWB,

Du schweifst ab, nicht die übrigen Diskutanten. Der Schattenbahnhof von EASY arbeitet mit Portalen, welche anderes als die Depots auch im praktischen Betrieb brauchbar sind. Ich bin hier nicht der Einzige, der alle Depots wieder ausgebaut hat, weil er einen flüssigen Betrieb sehen will und kein Gehakel.

das mit dem Gehakel ist mir neu.
Aber mit Portalen für jedes einzelne Schattenbahnhosf-Gleis bereitet es eben unnütz viele Komplikationen in der EV.
Wie man des weiteren sieht, ist es auch nur etwas für Leute mit versierten Kenntnissen methodischer Programmierung.

Deshalb von mir die Rückfokussierung auf das Eingangsthema dieses Threads.

Gruß

Andreas

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo @AndreasWB ,

Natürlich sollten Depots eine Alternative zu Schattenbahnhöfen sein. Leider haben diese - wie auch im Forum schon öfter diskutiert - zumindest derzeit die negative Eigenschaft, das beim Verlassen von Fahrzeugen der gesamte Ablauf "hakelt", d.h. für eine sehr geringe Zeit einfriert. Die komplette Geometrie der Fahrzeuge muss neu aufgebaut werden, was nun mal etwas Zeit braucht. Deshalb gehen einige Anlagenbauer wieder zurück zu klassischen Schattenbahnhöfen, eventuell per Portal in den "Keller" der Anlage verlagert (so auch ich).

@Phrontistes : Richtig, habe mich verschrieben. Sollte heißen: Benutzerdefiniert mit ohne Lua ;)

Viele Grüße,
    Wolfgang (aka Walter)

 

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo,

vor 2 Stunden schrieb AndreasWB:

Genau diese Idee wird in 3D-MBS doch durch das virtuelle Depot dargestellt.

noch der Vollständigkeit halber. Es gibt noch einen kleinen Unterschied.
Beim Portal löst sich der Zug bei der Einfahrt Fahrzeugweise (Mitte Fahrzeug) auf bzw. erscheint bei der Ausfahrt auch wieder (Mitte Fahrzeug) Fahrzeugweise.
Beim Depot löst sich der Zug bei der Einfahrt als ganzes auf bzw. erscheint bei der Ausfahrt auch wieder in ganzer Länge.

Damit das "Verschwinden" und "Auftauchen" des Zuges nicht auffällt, braucht es beim Portal jeweils eine (verdeckte) Strecke der Länge des längsten Einzelfahrzeuges, beim Depot hingegen jeweils die volle Zuglänge.
Bei kleinen Anlagen (z.B. ein Diorama) ist das Portal platzmäßig eindeutig im Vorteil.
Zur optischen Demo...
Portal-Depot.mbp

Gruß
EASY

Bearbeitet von EASY
Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo,

ich zähle zur Abrundung mal noch weitere Nachteile der Depots auf:

  1. Es gibt keine Möglichkeit, an die Objektvariablen der Fahrzeuge heranzukommen während der Zug im Depot ist.
  2. Der erste Kontakt nach Ausfahrt des Depots muss etwas mehr als die längste volle Zuglänge vom Depot entfernt sein, sonst wird er übersprungen.
  3. Eine Gruppe von mehreren Fahrzeugen wird beim Betreten des Depots (stillschweigend) aufgelöst und bei Verlassen nicht wiederhergestellt.

Vor allem 2. und 3. führen zu mancher Überraschung, wenn man es nicht weiß.

Aber jetzt schweife ich selbst ab, es ging EASY ja um

vor 17 Stunden schrieb EASY:

ein kleines Experiment mit der neuen Möglichkeit der Verbindung von Portalen über die EV

Ich bin schon am Nachdenken, was sich damit vielleicht noch so anstellen lässt.

Beste Grüße

Phrontistes

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo,

vor 5 Minuten schrieb Goetz:

Weil du da gleich mehrere Gleise in der Länge des längsten Zuges unterirdisch benötigst?
Warum leuchtet mir das nicht so recht ein?

:D o.K. ... ich habe nur das Verschwinden und wieder Auftauchen des Zuges im Diorama betrachtet.
(aber als Anmerkung: auch unter einem Diorama ist jede Menge Platz9_9)

Gruß
EASY

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo,

ich benutze die Depots um schnell bis zu 1000 verschiedene Fahrzeuge von einer Anlage auf die andere zu übertragen oder alle Modelle die nicht im Catalog sind vor dem hochladen zu entfernen. Siehe meine HWB Testplatte V8.5.3.

C0C97AC9-5BCC-418B-B97C-2A562529E524

Depot.thumb.jpg.6c7c31d37e971a4a6cfacb5cc2a8bffa.jpg

Dabei wird die Grafik noch nicht belastet, was ich mir bei dem Schattenbahnhof mit Portalen nicht vorstellen kann.

Gruß Hermann

 

Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 19 Stunden schrieb EASY:

ein kleines Experiment mit der neuen Möglichkeit der Verbindung von Portalen über die EV machen.

Hallo, 

da mach ich auch mal mit. :D

vor 1 Stunde schrieb Phrontistes:

Ich bin schon am Nachdenken, was sich damit vielleicht noch so anstellen lässt.

Hier ein kleines einfaches Beispiel für eine zufällige Auswahl eines Portals. 

 Screenshot2023-12-29180535.thumb.jpg.5dd8d50e8fcf8c4598a8696b4ec8f9a7.jpg

Geht auch ohne Lua. 

Portal zufällig auswählen.mbp

VG,

Hawkeye

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo @EASY,

nachdem ich vorgestern eine Musteranlage final veröffentlicht habe, mit der ich zeige, wie man Fahrstraßen durch zwei Schalter einstellen kann (ECA056F3-B61F-4E96-B977-4367D0D16B50), habe ich Deine Idee fruchtbar gemacht für eine fast gleiche Musteranlage, die aber weniger Platz braucht, weil zwei Weichenstraßen wegfallen. Es ist nur die (Monster-)Anweisung

controller.variables["Route"].variables["Destination portal"].connection = controller.variables["Route"].variables["Start portal"]

dazugekommen, mit der ich die richtigen Portale verbinde, bevor ich die Fahrstraße einstelle. Ich brauche bei jeder Fahrstraße halt zwei weitere Variablen, in der die zugehörigen Depots hinterlegt sind. Für die beliebige Anpassung auf anderen Anlagen müssen nur Variablen gesetzt werden, die (komplexe) EV muss man nicht anfassen.

Eine Tücke ist hinzugekommen: Die Fahrstraße kann man nur einrichten (und ggf. rekonstruieren), wenn die "richtigen" Portale verbunden sind. Ansonsten ist das MBS aber sehr tolerant und zeigt z.B. die eingebauten Pfeile auch dann richtig an, wenn die Portale nicht verbunden sind. Auch kann man die Fahrstraße aktivieren/deaktivieren, wenn die Portale nicht verbunden sind. Nur bleibt halt der Zug (trotz aktivierter Fahrstraße) vor dem Portal stehen, wenn das Portal keine Verbindung zu einem anderen Portal hat.

ID: A9B1D92D-9633-41C8-BDA5-7ECFFE70A11E (Entwurf)

Beste Grüße

Phrontistes

Bearbeitet von Phrontistes
typo
Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo,

vor 22 Minuten schrieb Phrontistes:

Ansonsten ist das MBS aber sehr tolerant und zeigt z.B. die eingebauten Pfeile auch dann richtig an, wenn die Portale nicht verbunden sind. Auch kann man die Fahrstraße aktivieren/deaktivieren, wenn die Portale nicht verbunden sind. Nur bleibt halt der Zug (trotz aktivierter Fahrstraße) vor dem Portal stehen, wenn das Portal keine Verbindung zu einem anderen Portal hat.

Das habe ich auch schon ausprobiert. Mit Deinem Beispiel kommt man schon stark in Grenzbereiche, wo man sich sehr bewußt sein muß unter welchen Umständen es (noch) funktioniert...

Gruß
EASY

Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 12 Stunden schrieb Phrontistes:

Auch kann man die Fahrstraße aktivieren/deaktivieren, wenn die Portale nicht verbunden sind. Nur bleibt halt der Zug (trotz aktivierter Fahrstraße) vor dem Portal stehen, wenn das Portal keine Verbindung zu einem anderen Portal hat.

Hallo @Phrontistes,

das Problem kann man aber leicht umgehen, indem man prüft, ob auf der Strecke der Fahrstraße Portale vorhanden sind und diese mit Aktivierung der Fahrstraße dann automatisch verbunden werden. 

Portal zufällig auswählen mit Fahrstraßen.mbp

VG,

Hawkeye

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo,

ok, wenn man wie @Hawkeye die Portale erst auf den letzten Drücker verbindet, nämlich wenn die Fahrstraße aktiviert wird (und nicht schon vor deren Aktivierung wie ich das gemacht hatte), dann entfällt auch die obige Monsteranweisung und es reicht

route.variables["Destination portal"].connection = route.variables["Start portal"]

im Ereignis "Fahrstraße wird aktiviert". Danke für den Hinweis, so ist es übersichtlicher.

Hab's entsprechend abgeändert und A9B1D92D-9633-41C8-BDA5-7ECFFE70A11E (Entwurf) und nochmals hochgeladen.

vor 13 Stunden schrieb EASY:

Grenzbereiche, wo man sich sehr bewußt sein muß unter welchen Umständen es (noch) funktioniert...

Sagen wir so: Das Layout von @Hawkeye, der auch mit Variablen arbeitet (was auch sonst), sowie die drei Ereignisse in meinem Layout funktionieren zuverlässig, wenn man die Variablen wie aus der Beschreibung und der Musteranlage ersichtlich setzt. Setzt man die Variablen nicht oder nicht richtig passiert (in meinem layout) halt nichts - auch kein Fehler, weil ich (hoffentlich überall) daran gedacht habe, die von mir vorausgesetzten Variablen auf Existenz zu prüfen bevor ich sie benutze.

Nicht jeder wird die drei Ereignisse in meinem layout bis ins Detail verstehen, wer mag kann sie aber auch einfach in seine eigene Anlage übernehmen, denn sie haben keine Objektbezüge.

Und wer schlicht nur Weichenstraßen durch Portale ersetzen will (ohne Schalter), muss ja nur die beiden Portale in der Fahrstraße als Variablen vom Typ Objekt hinterlegen und wie oben gezeigt verbinden, sobald (irgend)eine Fahrstraße aktiviert wird. Graphisch sieht das dann sehr einfach aus (wobei die zweite Bedingung nur prüft, ob die beiden in der Anweisung benutzen Fahrstraßenvariablen existieren):

Screenshot2023-12-30123902.jpg.a84dfa118ba49db59d750cafd39305c8.jpg

und in lua so:

if route.active then
  if (route.variables["Destination portal"] ~= nil) and (route.variables["Start portal"] ~= nil) then
    route.variables["Destination portal"].connection = route.variables["Start portal"]
  end
end

Das ist jetzt wirklich sehr einfach und allemal weniger Aufwand, als Weichenstraßen für den Schattenbahnhof zu bauen. Ich werde bestimmt nie wieder Weichenstraßen bauen, die man nicht sehen kann.

Deshalb nochmals vielen Dank an @EASY für die Anregung, diese geniale neue Funktion in V. 8.5 auch mal zu nutzen :).

Bei der Gelegenheit für @Neo: Das keyword "Route" in den Fahrstraßen brauche ich in meiner Schalterlösung (und nur dort) nur deshalb, weil man nicht über alle Fahrstraßen iterieren kann, wohl auch nicht mit lua, weil weder "getRoutesByKeyword" noch "getRoutesByName" weiterhelfen, wenn man alle Fahrstraßen durchgehen will. Ein "getRoutes" (im Sinne von "getAllRoutes") scheint es nicht zu geben :(.

Beste Grüße

Phrontistes

Link zu diesem Kommentar
Auf anderen Seiten teilen

Erstelle ein Benutzerkonto oder melde dich an, um zu kommentieren

Du musst ein Benutzerkonto besitzen, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen.

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde dich hier an.

Jetzt anmelden
×
×
  • Neu erstellen...