Alle Aktivitäten
Dieser Verlauf aktualisiert sich automatisch
- Letzte Stunde
-
Hallo, ... danke für die Aufklärung (... immer diese kleinen Feinheiten [über die man stolpert...]) Gruß EASY
- Heute
-
bleibt es bei Lua. _G und _Env sind die Tabellen, in denen alle Lua Variablen, Tabellen, Funktionen etc. verwaltet werden. Aber die Objekt- und Modulvariablen sind nicht Teil von Lua. Die gehören zum Studio und sind Teil einer anderen Struktur.
-
Hallo zusammen, Habe die Modelle überarbeitet, der Glanz ist weg. Leider haben sich die ID`s geändert. Neu ist das Modell „Bürgersteig - Verkehrsinsel – Ecken“ mit Außen- und Innenecken. Modell: Bürgersteig - Grün- Parkstreifen (48 Variationen) Entwurf ID 1641A3ED-49D2-4F97-96FB-9946E425B4BD Modell: Bürgersteig - Verkehrsinsel - Spline (12 Variationen) Entwurf C5D7EF4E-E231-4CE8-80E0-CE8C610A4321 Modell: Bürgersteig - Verkehrsinsel – Ecken (10 Variationen) Entwurf ID B5DB5057-DE52-4179-ACE7-2C0CBCE4AC06 Viel Spaß beim weiter testen wünscht Axel
-
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
-
Fahrstraße ergänzt mit eigener Kondition
jloos antwortete auf liftboys Thema in Fragen zur Steuerung
Danke @Goetz, Gruß Jürgen -
Hallo, mal wieder ein update. Habe mein erstes "road modul" fertig.. Eine generische ampelsteuerung fuer beliebige anzahl von ampeln ind definierbaren konfigurationen. Viele features, inclusive gruene welle. Beinhaltet noch keine fussgaegerampel. Das kommt spaeter wenn ich die grundlagen fertig habe. Bisher erkunde ich moeglichkeiten und die integration mit meinem tool. In diesem fall gibt es eine reihe von hilfsfunktionen, die auch plugins sein koennen um die definition der tabellen zu uebernehmen. Das pdf mit allen scripten ist zu gross, kann es nicht attachen, also habe ich die beschreibung ohne scripte geladen. Falls jemand die demo und scripte moechte bitte PM. gruss Gmd SC_Dokumentation_noscript.pdf
- Gestern
-
Wobei die Untersicht auf die Gleise nicht sehr schön aussieht. Aber man guckt ja mit guten Manieren auch keiner Dame unter den Rock.
-
Unser „Facility Manager „ hat mich endgültig für übergeschnappt erklärt. Die Details werden immer kleiner…🙀😎 „Pardauz“. Kleine Szene vor der Bäckerei, die zu den Halbreliefhäusern am Anlagenhintergrund gehören wird. Mal sehen, ob ich sie wenigstens so platzieren kann, dass die Szene durch eine Straßenschlucht hindurch zu sehen sein wird… Nur mir bekannt wird wohl folgendes Detail bleiben: Die Bierkrüge und Flaschen auf den Tischen im Innenhof hinter Ricks Bar. Um später hier hinein zu schauen bleiben nur Selfiestick, Mini-Drone oder Stielaugen 🤣🥴😉 Ich weiß es und das ist für mich persönlich die Hauptsache. 😇 Beste Grüße, Ralf
-
Hallo @Goetz, die Dinge, die Du da beschreibst, waren ja soweit bekannt. Wo es fehlte, war die richtige Zusammenstellung, um auf eine "globale" Modul-Variable mit der grafischen EV zugreifen zu können. Aber das hat sich ja jetzt geklärt. Gruß Andreas
-
Hallo zusammen! Die Westkurve hat ein neues Landschaftsdesign erhalten und dient jetzt deutlich besser als Szenentrenner zwischen Einfahrt/Walzwerk und dem Bahnhof Dierscheid. Von der anderen Seite sieht das so aus: Ich bin immer wieder überrascht, welche neuen "Bastel-Lösungen" im MBS zu finden sind. Ich habe lange gegrübelt, wie ich die Brücke und die umliegenden Stützmauern gestalte. Am Ende bin ich bei umgedrehten, ineinander verschachtelten und mit Zusatzteilen ausgestatteten Brückenpfeilern gelandet... Schönes WE allerseits! LG Alex
-
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
-
Hallo @Goetz, danke. Da gibt es dann Ereignis/Modul. Das hatte ich nicht gefunden. Ich hatte vermißt "Ereignisse. " schreiben zu können. Soviel war mir schon klar. Denn so versuchte ich ja, auf einen Text, der in der Variablen stand, eine Listen-Methode anzuwenden. Ich habe allerdings die Fehlermeldung in der Ereignisprotokollierung vermißt (datatype mismatch). Wäre es nicht eine gute Idee, in den Variablen von Objekten auf solche "globalen" Modul-Variablen verweisen zu können? (zus. Datentyp "Variable")? Eine Idee für V9.1 ? Gruß Andreas
-
und nun habe ich auch die richtige Schreibweise für die grafische EV: Beispielanlage: Aktion Textfeld setzen.mbp Viele Grüße Götz
-
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
-
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
-
Fahrstraße ergänzt mit eigener Kondition
Goetz antwortete auf liftboys Thema in Fragen zur Steuerung
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 -
Hallo, ich benötige mal die Hilfe der Spezialisten. Folgende Situation: verschiedene Objekte sollen mit einem einheitlichen Ereignis auf Listen zugreifen. Da mehrere Objekte diese Listen verwenden, sollten diese nicht redundant bei allen betroffenen Objekten hinterlegt werden. Daher habe ich sie als "globale" Variablen direkt unter "Ereignisse" in der EV-Steuerung abgelegt. In den Objekten steht dann eine Variable, die auf die jeweilige Liste verweist. Da es so auf Anhieb nicht funktionierte, wie ich es mir dachte, bin ich auf ein simples Test-Szenario umgestiegen. Das Objekt ist jetzt ein Schalter und ein Textfeld. varialble Liste ansprechen.mbp Wird der Schalter betätigt, soll aus der Liste, deren Name in seiner Variablen hinterlegt ist, ein bestimmter Texteintrag aus der Liste angezeigt werden. "globale" Textliste: Listenverweis im Schalter: Theoretisch müßte ich auf den ensprechenden Eintrag (z. B. den ersten) in der Textliste mittels grafischer EV wie folgt zugreifen können: In einem ähnlichen Kostrukt hatte dieser Mechanismus unter V7 einwandfrei funktioniert. Wie komme ich hier weiter? Gruß Andreas varialble Liste ansprechen.mbp
-
Fahrstraße ergänzt mit eigener Kondition
jloos antwortete auf liftboys Thema in Fragen zur Steuerung
Danke @Goetz Gruß Jürgen -
Fahrstraße ergänzt mit eigener Kondition
Goetz antwortete auf liftboys Thema in Fragen zur Steuerung
Die gibt es noch nicht, Jürgen. Danke für den Hinweis. Ich schau mal, ob ich davon eine V9 Version machen kann. -
Fahrstraße ergänzt mit eigener Kondition
jloos antwortete auf liftboys Thema in Fragen zur Steuerung
Hallo, nach Umstellung von Animation auf interne Schalter funktioniert die Bü Überwachung nicht mehr. Gibt es dafür auch eine Neuerung? Gruß Jürgen -
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
-
-
-
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
-
Das beispiel ist etwas anders gelagert 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(" " .. tostring(k), v) end print("From _G:") for k, v in pairs(good) do print(" " .. tostring(k), v) end Ich habe das auf ein minimum reduziert. Pack das in einen event wo der print funktioniert. Gruss Gmd