-
Gesamte Inhalte
3357 -
Benutzer seit
-
Letzter Besuch
Alle erstellten Inhalte von EASY
-
Grundsätzliche Fragen zu "Schlagwörter" und "Benutzerdefinierte Ereignisse" etc.
EASY antwortete auf Swen44s Thema in Fragen zur Steuerung
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 -
Grundsätzliche Fragen zu "Schlagwörter" und "Benutzerdefinierte Ereignisse" etc.
EASY antwortete auf Swen44s Thema in Fragen zur Steuerung
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 -
Grundsätzliche Fragen zu "Schlagwörter" und "Benutzerdefinierte Ereignisse" etc.
EASY antwortete auf Swen44s Thema in Fragen zur Steuerung
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 -
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
-
Präzise Positionierung (Steuerung) von Objekten
EASY antwortete auf Fifofs Thema in Fragen zur Steuerung
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- 20 Antworten
-
- 14
-
-
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
-
Hallo, ... Du kannst die Anlage auch exportieren und hier als .mbp Datei mit einfügen. Das belastet Dein Kontingent gar nicht... Gruß EASY
-
Fragen zu Wendeschleifen und Fahrtrichtungswechsel
EASY antwortete auf Swen44s Thema in Fragen zur Steuerung
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 -
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
-
Spline-Fehler nach Erzeugung von gebogenen Parallelgleisen
EASY antwortete auf AndreasWBs Thema in Feature-Wünsche
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 -
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
-
Hallo, ... danke für die Aufklärung (... immer diese kleinen Feinheiten [über die man stolpert...]) Gruß EASY
-
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
-
Hallo, ... deshalb extra so gewählt... Gruß EASY
-
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
-
Koordinaten Ursprung setzen (auch zum nachträglichen messen ...)
EASY antwortete auf egech01s Thema in Feature-Wünsche
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 -
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
-
Hallo, ... "empty" ist v auch, wenn die Variable ein Objekt oder eine Liste / Tabelle beinhaltet... ist also nicht so ganz zuverlässig... Gruß EASY
-
Hallo, ... liefert zwar nicht für alle Variablentypen ein Ergebnis (v)... ich aber für einen Überblick ganz praktisch und ausbaufähig Gruß EASY
-
Ereignisverwaltung kopieren aus einer Tutorialanlage
EASY antwortete auf Erwins Thema in Fragen zur Planung
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 -
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
-
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
-
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
-
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