Jump to content

EASY

Mitglieder
  • Gesamte Inhalte

    3357
  • Benutzer seit

  • Letzter Besuch

Alle erstellten Inhalte von EASY

  1. Hallo @Swen44, Vielleicht hilft Dir diese Betrachtungsweise weiter: Das was Du zu einem bestimmten Ereignis in der EV festlegst, ist eine Liste von Aktionen, die ausgeführt werden sollen, wenn das Ereignis ausgelöst wird und hat mit "Hauptprogramm" und eventuellen "Unterprogrammen" nichts zu tun... die Liste wird einfach nur abgearbeitet. Gruß EASY
  2. Hallo, ... die Langfassung hatte ich zuerst auch, habe mich dann allerdings für die Kurzfassung entschieden... ... wie es aussieht bedürfte es etwas ausführlicher Gruß EASY
  3. Hallo, Nein... ... es werden alle Aktionen die vor der Verzögerung stehen sofort ausgeführt, alle Aktionen, die nach der Verzögerung stehen, werden nach der Verzögerungszeit ausgeführt. Dies betrifft allerdings nur das eine Ereignis in dem die Verzögerung steht. Wenn in einer Aktion ein benutzerdefiniertes Ereignis mit einer Verzögerung aufgerufen wird, dann betrifft diese Verzögerung nur das benutzerdefinierte Ereignis. Gruß EASY
  4. Hi, Note: layout:getVehiclesOn() does not necessarily return the correct order of the vehicles within the train formation. layout:getVehicleGroup() returns the correct order... EASY
  5. Hallo, ... ich habe auf die Schnelle was gebastelt... ... und das Modell als Entwurf hochgeladen... 4AEDA530-740C-43F0-8A79-485E99974E3C Die Vitrine hat 9 Stellplätze und wird wie eine Weiche angesteuert. Wenn Interesse besteht, werde ich das Modell (optisch) noch etwas verfeinern und in den Katalog bringen. Gruß EASY
  6. Hi @Leslie, Why do you want to move an object with a crane without lifting it? Either you are using a larger crane or it is simply not possible. Why would you want to lift a turnout with a crane and only in relation to the active track? Setting down an object on the active track of a turnout still makes sense, but in reality this would not be done. I can't understand the background to your wishes... EASY
  7. Hallo, ... Du kannst die Anlage auch exportieren und hier als .mbp Datei mit einfügen. Das belastet Dein Kontingent gar nicht... Gruß EASY
  8. Hallo @Swen44, in Fall solcher Anfragen ist es immer besser die Versuchsanlage zu exportieren und die .mbp Datei hier im Forum mit anzuhängen. So kann man Deine Anlage auch laufen lassen und besser nachvollziehen wo der Fehler liegen könnte. Mir ist es z.B. nicht ganz klar, warum sich die letzte Aktion "Fahrtrichtung setzen" im mittleren Bild nur auf einen einzelnen Zug "SBahn 1" bezieht... Gruß EASY
  9. Hallo @Rotti, Damit das Ereignis ausgelöst wird, muß zuerst eine Animation des Objektes ausgelöst worden sein. Nach Deinem Bild ist der Löffel bereits eingeklappt. Du setzt den Schalter "Löffel einklappen" auf 2 was Löffel einklappen entspricht, aber er ist ja bereits in seiner Endstellung für diese Animation. In der Grundstellung (frisch aus dem Katalog) geht der Schalter "Drehen" in Stellung 2 (rechts) nicht, da die Animation bereits in der Endstellung ist. Es muß zuerst nach links gedreht werden. Gruß EASY
  10. Hallo, ... unter der Prämisse... ... fällt mir gerade kein Beispiel ein, bei der "Pfad umkehren" notwendig ist, da der Parallelabstand in beide Richtungen (+-) gesetzt werden kann... (... bei Spline-Modellen mit unterschiedlichen Ansichtsseite schon...) Gruß EASY
  11. Hallo @gmd, ... hatte ich hier auch schon einmal angemerkt... Ja das stimmt, der Parameter fehlt aber auch schon in der EV, weil es kein Parameter im eigentlichen Sinn ist, sondern ein "Filter", der angibt, wann das Ereignis getriggered wird. Im Kontext der Steuerschnittstelle fehlt einem aber dadurch eine wichtige Information, das werde ich verbessern. ... über die Schnittstelle sollte dann eine Differenzierung möglich sein (wenn Neo es "verbessert" in einem Update veröffentlicht hat) Gruß EASY
  12. Hallo, ... danke für die Aufklärung (... immer diese kleinen Feinheiten [über die man stolpert...]) Gruß EASY
  13. Hallo, @Neo ich habe das Beispiel von @Goetz etwas erweitert... local modul = layout:getEventsByName("SC_1")[1] -- Original structured table local testState = { shortPhase = { "Vo1","Vo1a" }, longPhase = { "Vo2" }, currentMode = "countDown" } -- Store in module variable modul.variables["BrokenState"] = testState -- Also store in global variable _G.goodState = testState -- Later access (simulate after a timer or defer callback) local broken = modul.variables["BrokenState"] local good = _G.goodState print("From testState") for k, v in pairs(testState) do print(" " .. k, type(v)) if type(v)=="table" or type(v)=="object" then for i,w in ipairs(v) do print(k,w,i) end else print(k,v) end end print() print("From modul.variables:") for k, v in pairs(broken) do print(" " .. k, type(v)) if type(v)=="table" or type(v)=="object" then for i,w in ipairs(v) do print(k,w,i) end else print(k,v) end end print() print("From _G:") for k, v in pairs(good) do print(" " .. k, type(v)) if type(v)=="table" or type(v)=="object" then for i,w in ipairs(v) do print(k,w,i) end else print(k,v) end end ... mit diesem Ergebnis... ... wie Goetz schon angemerkt hat, wird beim Übertragen von "testState" auf die Modulvariable der Typ "table" auf den Typ "object" geändert obwohl die Variable prinzipiell richtig angelegt wird... und bei der Übertragung auf eine globale Variable nicht. ... zum Auslesen wird der typ "object" wieder wie eine Tabelle (Liste) behandelt. Da ich neugierig bin... hat das einen bestimmten Sinn? Was verbirgt sich hinter dem Typ "object"? Gruß EASY
  14. Hallo, ... deshalb extra so gewählt... Gruß EASY
  15. Hallo, ... wird anscheinend so interpretiert. Wenn man... local signalLists = { ["XAB"] = { $("Hauptsignal Hp0/1"), $("Hauptsignal Hp0/1/2") }, ["XAC"] = { $("H/V Blocksignal"), $("H/V Hauptsignal") } } $("Ereignisse").variables["SignalLists"] = signalLists ... definiert, kommt in dem Beispiel von @Goetz... for k, v in pairs ($("Ereignisse").variables["SignalLists"]) do print(k) end 171 und 172 zurück... ... wenn man hingegen.... local signalLists = { ["XGG"] = { $("Hauptsignal Hp0/1"), $("Hauptsignal Hp0/1/2") }, ["XGH"] = { $("H/V Blocksignal"), $("H/V Hauptsignal") } } $("Ereignisse").variables["SignalLists"] = signalLists ... definiert, dann kommt auch XGG und XGH zurück... ... ist also etwas gemischt mit der Interpretation... Gruß EASY
  16. Hallo, um Teilstrecken zu messen, kannst Du auch wie folgt vorgehen (Hinweis: mit dieser Methode werden nur ganze Gleislängen ausgelesen)... Temporär eine Fahrstraße mit 2 Gleiskontakten anlegen... ... in der EV folgendes Ereignis anlegen... ... dieses Skript einfügen... --[[ Länge aller Gleise einer Fahrstraße ermitteln Hinweis: Längenangabe in ganzen Gleisen --]] if route.active then Gleise=$("FSLänge").tracks local l=0 for _,g in ipairs(Gleise) do if g.routeCount>1 then for i=0,g.routeCount-1 do if g.routes[i].active then l=l+g.routes[i].length end end else l=l+g.routes[0].length end end print() print("Gleislänge (in ganzen Gleisen):") print(l,"Meter") print() end ... wenn die Fahrstraße aktiviert wird (wichtig! damit die richtige Spur der Weiche aktiv ist), wird die Gleislänge im Ereignisprotokoll angezeigt... Wichtig! Die Fahrstraße wieder deaktivieren (sonst funktionieren nachfolgende Schritte nicht, da die Weiche gesperrt ist)... Zum Messen des anderen Gleisstranges, den hinteren Gleiskontakt verschieben. Dadurch wird die Fahrstraße (logischerweise) ungültig... ... auf den Bleistift klicken... ... um die Fahrstraße neu zu definieren im nachfolgenden Fenster noch einmal auf dem Bleistift klicken... ... und übernehmen... ... jetzt wird mit dem Aktivieren der Fahrstraße die Länge des anderen Zweiges angezeigt... Gruß EASY
  17. Hallo, ... ist sehr praktisch wenn man verschiedene Lösungswege ausprobieren möchte und auf schnelle Art und Weise zwischen den Lösungen hin und her wechseln möchte oder zum Unterdrücken von Codezeilen bei der Fehlersuche... geht auf jeden Fall schneller, wie die "Lösung" in lua... Gruß EASY
  18. Hallo, ich kenne Deinen Aufbau nicht. Mein Lösungsansatz wäre folgender: Wenn ein Zug den Bahnhof verlassen hat (Gleis ist garantiert frei), wird nachgesehen, ob ein Zug auf Einfahrt wartet (weil er kein freies Gleis gefunden hat). Damit braucht es keinen Timer... @Goetz war einen Tick schneller... Gruß EASY
  19. Hallo, ... "empty" ist v auch, wenn die Variable ein Objekt oder eine Liste / Tabelle beinhaltet... ist also nicht so ganz zuverlässig... Gruß EASY
  20. Hallo, ... liefert zwar nicht für alle Variablentypen ein Ergebnis (v)... ich aber für einen Überblick ganz praktisch und ausbaufähig Gruß EASY
  21. Hallo, ... da bist Du nicht alleine... diese Frage taucht immer wieder auf... @Neo ... und bei dem Tooltip... ... kommt man nicht zwingend auf die Idee den kleinen Pfeil für das Einfügen aus Datei / Katalog zu nutzen Gruß EASY
  22. Hallo @RoBa-MoBa, ... siehe hier Einen Key bekommst du nicht, du kannst aber die Steam-Version direkt im Programm aus mit deinem Benutzerkonto hier verknüpfen. Im Studio gibst du dafür einfach die E-Mail des Benutzerkontos an, der Rest geht automatisch. Viele Grüße, Neo Gruß EASY
  23. Hallo, ... die Falle liegt allerdings bei Dir Du hast in Deiner Definition der Funktion "function IsStartKontakt(keyword, kontakt)" "keyword" als Variablenname. Dies ist im MBS lua ein Schlüsselwort! (auf das Du ja auch noch abfragst) if kontakt.variables[keyword .. "_Start"] == keyword then... kann in diesem Fall niemals "true" sein. Mit... function IsStartKontakt(key, kontakt) if kontakt.variables[key .. "_Start"] == keyword then return true else return false end end ... geht auch die 1. Variante... Gruß EASY
  24. Hallo, der einzige Umweg, der mir einfällt ist, den Schlagwortnamen (die Schlagwortnamen) in einer Objekt-Textvariablen (Liste Objekt-Textvariable) zu hinterlegen und diese dann abfragen. Dann hast Du eine (namentlich bekannte) Variable für weitere Verzweigungen... dies steht allerdings etwas entgegen zu dem eigentlichen Sinn von Schlagworten, da man so prinzipiell natürlich dann auch nur über die Variable arbeiten könnte. Gruß EASY
  25. Hallo @Chaosgrummi, ... noch ein kleiner Hinweis: Wenn Du im Simulationsmodus ein Fahrzeug markierst, dann wird mit einen animierten grünen Pfeil die aktuelle Fahrtrichtung des Fahrzeugs angezeigt (auch wenn es steht) [MBS V9]... ... Ziele können nur festgelegt werden, wenn sie in Fahrtrichtung liegen... deshalb: Gruß EASY
×
×
  • Neu erstellen...