-
Gesamte Inhalte
3342 -
Benutzer seit
-
Letzter Besuch
Letzte Besucher des Profils
Der "Letzte Profil-Besucher"-Block ist deaktiviert und wird anderen Benutzern nicht angezeigt.
-
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
-
Hallo, einfach gar nicht ... die Variablen gehen über (eindeutige) Namen. Wildcards sind im MBS nicht vorgesehen. Prinzipiell geht es nur über eine Referenzliste als Variable z.B. "Variablennamen" mit allen Variablennamen, die in einer Schleife durchlaufen wird. Um auf alle Objekte zuzugreifen gibt es ... layout:enumEntities() Und so würde ein Listendurchlauf beispielsweise aussehen... local t = $("Ereignisse").variables["Variablennamen"] for _,v in ipairs(t) do layout:enumEntities(function (entity) entity.variables[v]=nil end) end ... dabei muß man allerdings bedenken, daß bei jedem Durchlauf allen Objekten die Variable zugewiesen wird und da "nil", diese jedoch nicht als solche gespeichert bzw. [wenn vorhanden] gelöscht wird (also nicht erschrecken beim Verfolgen in Ereignisprotokoll...). Für Schlagwörter gäbe es noch als Alternative eine Liste z.B. "SwNamen" mit den Namen aller Schlagwörter, die durchlaufen wird... t = $("Ereignisse").variables["SwNamen"] for _,v in ipairs(t) do local s=layout:getEntitiesByKeyword(v) for _,sw in ipairs(s) do sw.variables[v] = nil end end ... so werden beim Listendurchlauf nicht immer alle Objekte angesprochen sondern nur die, mit dem entsprechenden Schlagwort... ... etwas "einfacheres" ist mir [leider] nicht eingefallen... wäre aber vielleicht etwas für die "Wunschliste" Gruß EASY
-
Hallo @gmd, Neo hat es eigentlich schon beschrieben. Noch ergänzend dazu ein Wort zu "Spezialfall". Du hast eine Szene mit Straßenverkehr, bei dem es z.B. keine Weichen im eigentlichen Sinn gibt. Bedenke bitte, daß es im MBS auch noch den Schienenverkehr gibt und da spielen für den Anfangszustand die Stellungen von z.B. Weichen und Signalen eine bedeutende Rolle (wenn diese im Test in ihrer Stellung verändert werden, sollten sie schon zurückgesetzt werden...) Gruß EASY
-
Hallo, ... in Deiner Antwort liegt liegt ein wichtiger Aspekt. Ich nehme an, daß Neo mit "Zuständen" wohl mehr auf den Zustand von z.B. Weichen, Signalen... angesprochen hat und das läßt sich nicht "mit einem einfachen loeschen aller temporarer variablen regeln" und da beginnt die Schwierigkeit für @Neo, Deinen "Spezialfall" zu berücksichtigen bei dem dies (anscheinend) keine Rolle spielt. P.S. ... es ist zwar etwas mehr Aufwand aber mit STRG+C (markierte Objekte) und STRG+V läßt sich auch einfach eine Objektliste in einer z.B. Modulvariablen füllen. Dann bist Du unabhängig von eindeutigen Namen. Mit zwei Tastern und den dazugehörigen Ereignissen kannst Du dann die Anfangs-position / -rotation z.B. als Objektvariablen abspeichern und die Objekte wieder auf die Anfangs-position / -rotation bringen... so habe ich dieses "Problem" schon einmal für mich gelöst. Gruß EASY
-
Fragen zu Auswertung Ereignisse über JSON Schnittstelle
EASY antwortete auf EASYs Thema in Erweiterungen (Plugins)
Hallo, ... danke für den Hinweis. Ich habe noch etwas herumexperimentiert. Wie es aussieht liegt es tatsächlich an der Ausgabe im Visual Studio 2022 und die Newtonsoft Bibliothek arbeitet korrekt. Wenn da noch jemand einen Tipp hat, an welcher Stelle man da noch etwas an den Einstellungen drehen könnte... gerne! (... die Microsoft Hilfe dazu ist zwar interessant aber [wie gewohnt] mehr verwirrend als hilfreich...) Gruß EASY -
Hallo, ... du denkst zu kompliziert... ... beides steht im Ereignisprotokoll (ein Ereignis [event] wurde ausgelöst... also muß es das auch geben) Gruß EASY