Jump to content

Goetz

Mitglieder
  • Gesamte Inhalte

    5841
  • Benutzer seit

  • Letzter Besuch

Alle erstellten Inhalte von Goetz

  1. Wenn du eine Variable dynamisch angeben, also ihre Adresse aus mehreren Teilen zusammensetzen musst, benötigst du die erweiterte Variable. Der erste Teil ist dann der Ort und der zweite der Name. Jede dieser zwei Angaben kannst du bei Bedarf erneut mit einer erweiterten Variable aufsplitten. Du benötigst ein Element aus einer Liste. Dafür gibst du ebenfalls (wie bei einer erweiterten Variable) zwei Informationen an: Die Liste und den Index. Die Liste selbst möchtest du dynamisch angeben. Deshalb splittest du dieses Feld mit der erweiterten Variable in Ort und Name auf. Den Namen möchtest du dynamisch aus einem anderen Objekt entnehmen. Deshalb musst du den noch ein weiteres Mal über die erweiterte Variable angeben. In Lua schreiben wir dasselbe, ohne groß darüber nachzudenken welche Bausteine wir da zusammenfügen. Deshalb bevorzugen die meisten User auch Lua, wenn sie solche komplexen Strukturen anlegen. Ich brauchte ja auch einen etwas längeren Anlauf, bis ich das in der grafischen EV zusammengesetzt hatte. Viele Grüße Götz
  2. und nun habe ich auch die richtige Schreibweise für die grafische EV: Beispielanlage: Aktion Textfeld setzen.mbp Viele Grüße Götz
  3. Hallo Andreas, diese Art der Zuordnung (Name einer Modulvariablen aus einem Objekt auslesen) gelingt mir auf Anhieb nur in Lua: local Name = $("Schalter (groß)").variables["meineListe"] $("Text1").text = $("Ereignisse").variables[Name][1] Viele Grüße Götz
  4. Problem erkannt: Du übergibst nur den Namen der Variablen. In deiner EV steht nicht, dass mit diesem Namen eine Modulvariable angesprochen werden soll. Ich suche nach der korrekten Schreibweise ... Moooment
  5. Hallo Jürgen, hier ist der Umbau der Beispielanlage für V9. Dazu musste ich nur die Aktionen zum Öffnen und Schließen der Schranken austauschen. Statt eine Animation zu starten, betätige ich jetzt einen integrierten Schalter. Alles andere ist geblieben. Bahnübergang mit Sicherung für FS V9.mbp Die alte Version hat auch in V9 wie vorgesehen funktioniert. Aber du hast natürlich recht, dass es jetzt ratsam ist mit den integrierten Schaltern zu arbeiten. Viele Grüße Götz
  6. Die gibt es noch nicht, Jürgen. Danke für den Hinweis. Ich schau mal, ob ich davon eine V9 Version machen kann.
  7. Hallo Gmd, aufschlussreicher ist es, den Typ von v auszugeben. Dann sieht man, was sich ändert wenn eine Tabelle in einer Modul- (oder Objekt-) Variablen gespeichert wird: local modul = layout:getEventsByName("SC_1")[1] -- Original structured table local testState = { shortPhase = { "Vo1" }, 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 -- Display both print("From modul.variables:") for k, v in pairs(broken) do print(" " .. k, type(v)) end print("From _G:") for k, v in pairs(good) do print(" " .. k, type(v)) end Viele Grüße Götz
  8. kannst du das nicht? Na gut, bitte sehr: long and short phase example.mbp Aber einen Fehler erkenne ich hier nicht! Warum willst du einen String mit tostring() in einen String wandeln? Und welches Ergebnis erwartest du, wenn du mit print() versuchst eine ganze Tabelle auszugeben? Viele Grüße Götz
  9. Du musst doch nur den Bezeichner nennen, der nicht mit einem X beginnt, aber trotzdem von in pairs() falsch interpretiert wird. Wir haben uns auch nicht "irgendwie auf das X eingenordet", sondern klar nachvollzogen, was es bewirkt. aus XAB wird 171, weil hex AB = dezimal 171 (A0 + B = 10 * 16 + 11)
  10. Wenn du jetzt noch das "Beispiel ohne X" nennen würdest, könnte man daraus Schlüsse ziehen ...
  11. Was sollen wir bitte mit der Aussage anfangen?
  12. Hätte ich mir eigentlich denken müssen - sorry für die Schlaumeierei.
  13. ab und ac können als Hexzahlen gelesen werden, gg und gh hingegen nicht.
  14. und deshalb von mir noch der folgende Hinweis an @Neo: Wenn ich die Bezeichner X01 und X02 abändere in A01 und A02, dann werden sie von in pairs() korrekt wiedergegeben. Das große X, gefolgt von einer Zahl scheint die Ursache zu sein. Könnte es damit zusammenhängen, dass man (in anderen Sprachen, nicht in Lua) Hexadezimalzahlen ein x voranstellt?
  15. Minimalbeispiel für @Neo: Beispielanlage für in pairs.mbp Zweite Beispielanlage. Mit diesen Bezeichnern passiert der Fehler nicht. zweite Beispielanlage für in pairs.mbp
  16. Das Problem scheint in der Implementierung von in pairs() zu stecken. Die Tabelle in der Modulvariablen bekommt die korrekten Bezeichner und ist auch vom Format "Tabelle". Aber in pairs() bekommt einen anderen (nämlich den numerischen) key anstelle dieses Bezeichners. Da muss @Neo einen Blick drauf werfen und schauen, was das verursacht. Viele Grüße Götz
  17. Oh, stimmt. Das ist neu und ich hatte es komplett vergessen. Vielen Dank, @Roter Brummer
  18. Hallo @WalterW, es geht nur über den Import der Anlage. Schmeiß aus der vorhandenen Anlage alle Objekte raus und speichere diese Variante unter einem neuen Namen. Diese speziell für den Import aufbereitete Version importierst du dann in deine neue Anlage. Beim Import kannst du in V9 auswählen, welche Kategorien du aus der alten Anlage übertragen möchtest: Viele Grüße Götz
  19. Weil dort, wo die Gleise wieder zusammengeführt werden, Signale fehlen! Die sind zwingend erforderlich. Und dann bekommt die rote V100 nur eine Streckenfreigabe bis zum Ausfahrsignal, aber nicht darüber hinaus. Viele Grüße Götz
  20. Hallo Gmd, wenn du zuerst eine Variable vom Typ Tabelle (nicht Liste) anlegst, kannst du anschließend deine Lua Tabelle an diese Modul- (oder Objekt-)Variable übertragen: Lua Tabelle in Modulvariable übertragen.mbp Das exotische Lua unterscheidet nicht zwischen Tabellen und Listen. Das 3D-Modellbahn Studio hingegen schon. Deshalb muss man da ein bisschen nachhelfen, damit in der Modulvariablen der richtige Typ erzeugt wird. Viele Grüße Götz P.S.: Entgegen meiner ersten Annahme ist der Umweg doch nicht nötig. Es funktioniert auch auf direktem Weg: Lua Tabelle direkt in Modulvariable übertragen.mbp P.P.S.: Mit deinem Skript funktioniert es auch: gmd signalLists.mbp Bleibt die Frage, warum es bei dir trotz mehrfacher Tests nicht geklappt hat ...
  21. Da gilt dasselbe: Die Elemente einer Gruppe in Mehrfachselektion auswählen ist etwas anderes als die Gruppe selektieren. Markiere (in der Strukturansicht) die Gruppe und du kannst sie auflösen.
  22. sind in einer offenen Gruppe. Das heißt, dass du die Objekte dieser Gruppe einzeln auswählen kannst. So lassen sie sich aber nicht mit anderen Dingen gruppieren. Wähle in der Strukturansicht die komplette Gruppe aus. Die kannst du dann mit weiteren Objekten zu einer größeren Gruppe zusammenfassen. Alternativ kannst du die Gruppe auch schließen. Viele Grüße Götz
  23. Hallo Gmd, beschreibe mal bitte genauer, was du (erfolglos) versucht hast. Denn eine Gruppe mit ein paar Straßenstücken, einem Mast, einer Ampel und einer Markierung für einen Fußgängerüberweg kann ich bilden: Gruppe mit Mast und Ampel.mbp Viele Grüße Götz
  24. you want to ask Neo for permission to upload it to the public catalogue.
  25. Dazu braucht es keinen Schaltkontakt. Jeder Kontakt, der mit einem Signal verknüpft wird, erhält dadurch so viele Konfigurationen, wie das Signal Stellungen hat. Der Schaltkontakt ist insofern eine Besonderheit, weil er auch ohne die Verbindung zu einem Signal 10 Stellungen hat.
×
×
  • Neu erstellen...