chrissi099 Geschrieben Mittwoch um 10:17 Uhr Geschrieben Mittwoch um 10:17 Uhr Hallo, ich bin neu hier, die echte Modellbahn gibt es schon länger nicht mehr, dafür hab ich jetzt auf virtuellen Modellbau umgeschwenkt. Da ich Softwareentwickler bin, hab ich bei der Ereignissteuerung natürlich bessere Voraussetzungen, um direkt mittels LUA-Skripten Probleme zu lösen. Daher hier mein erstes Beispielprojekt: Angeregt von der Diskussion über einheitliche Schalternamen hab ich mal ein Demoprojekt gebaut, wo ich für Straßenfahrzeuge weitgehend generisch Blinker und Bremslicht über ein spezielles Skript gekapselt habe. So ist über ein benutzerdefiniertes Ereignis ein Blinken/Bremsen für nn Sekunden einfach möglich. z.B. ausgelöst über Gleiskontakt. Das die Schalter oft unterschiedlich heißen, hab ich aus der Schalterliste von Neo aus der Diskussion Neue Schalterfunktionen mit einheitlichen Namen Alle Blinker, Bremslichter und Türen extrahiert (Powershell-Script, im Anhang) und jeweils ein Benutzerdefiniertes Ereignis erstellt und mit der vorher extrahierten Liste gefüttert. Das Eregnis erhält den Auslöser und die gewünschte Dauer als Parameter und kann von einem Gleiskontakt o.ä. einfach aufgerufen werden. Im Beispiel-Projekt Ansicht 0, am besten Nachtansicht. Da sieht man die Bremslichter besser. Eine ähnliche Diskussion gab es über Wagentüren am Bahnhof. ähnliche Lösung, nur daß Fahrtrichtung von Wagen nicht eindeutig definiert ist, daher wird bei jedem Wagen beim ersten Aufruf eine Variable zugefügt ("drivingDirection", 0/1), die die Richtung ggfs. korrigiert. Wenn die Türen auf der falschen Seite öffnen, einfach den Parameter pro Waggon zwischen 0 und 1 wechseln. (Ansicht 1, Tagesansicht. vorn und hinten werden jeweils Türen links und rechts am Zug geöffnet) Bei allen Skripten wird nach dem entsprechenden Schalter gesucht. Wenn gefunden, dann wird der Schaltername auf in das entsprechende Objekt direkt eingetragen und beim nächsten Aufruf direkt benutzt. Die Suche nach den passenden Schalternamen in der Schalterliste (schalter.txt von Neo) erfokgt über ein Powershell-Script. Das liefert dan Dateien, in denen ein Quelltextschnipsel für die benutzerdefinierten Scripte steht. Dabei gibt es natürlich auch falsche Treffer (Fahrzeugtüren in der Liste das Waggon-Türen), die machen aber nichts, weil i.D.R, keine Autos auf den Gleisen fahren. Vielleicht hilft das ja dem einen oder anderen. Das soll vor allem als Anregung dienen und hat keinen Anspruch auf allumfassende Lösung Viele Grüße, Christian Blinken-Bremsen-Türen.mbp Schalterlisten.zip
Goetz Geschrieben Mittwoch um 10:39 Uhr Geschrieben Mittwoch um 10:39 Uhr vor 13 Minuten schrieb chrissi099: Wagentüren am Bahnhof. ähnliche Lösung, nur daß Fahrtrichtung von Wagen nicht eindeutig definiert ist Hallo Christian, In den allermeisten Fällen wird "rechts und links" gemäß Fahrtrichtung (positive Geschwindigkeit = vorwärts) unterschieden. Und die Wiederholung "alle Fahrzeuge in einem Zugverband" liefert zwei Listen: Die Wagen und ihre aktuelle (bzw. letzte) Fahrtrichtung. Eventuell weißt du beides schon. Das kann ich leider nicht einschätzen. Aber hier findest du eine kleine Beispielanlage, in der die jeweils richtigen Türen (unabhängig davon, wie jedes Fahrzeug im Verbund eingereiht ist) geöffnet werden. 3686C01C-77A1-4359-A516-5E83F8EC7319 Viele Grüße Götz
chrissi099 Geschrieben Mittwoch um 11:20 Uhr Autor Geschrieben Mittwoch um 11:20 Uhr vor 38 Minuten schrieb Goetz: In den allermeisten Fällen wird "rechts und links" gemäß Fahrtrichtung (positive Geschwindigkeit = vorwärts) unterschieden. Und die Wiederholung "alle Fahrzeuge in einem Zugverband" liefert zwei Listen: Die Wagen und ihre aktuelle (bzw. letzte) Fahrtrichtung. Eventuell weißt du beides schon. Das kann ich leider nicht einschätzen. Das war mir noch nicht klar. Beim Herumspielen gab es Probleme mit der Richtungserkennung und ich fand auch eine entsprechende Diskussion hier. Die war dann wohl etwas älter. Anbei die korrigierte Version, mit funktionierender Richtungsauswertung ohne zusätzliche Variable! Danke und Gruß Blinken-Bremsen-Türen_2.mbp
Phrontistes Geschrieben Mittwoch um 13:02 Uhr Geschrieben Mittwoch um 13:02 Uhr vor 2 Stunden schrieb chrissi099: hab ich aus der Schalterliste von Neo aus der Diskussion Neue Schalterfunktionen mit einheitlichen Namen Alle Blinker, Bremslichter und Türen extrahiert Sehr schön, dass Du das gemacht hast. Vielen Dank! vor 2 Stunden schrieb chrissi099: gewünschte Dauer als Parameter Das würde ich für mich jetzt eher so machen, dass ich die Funktion auf Kommando wieder abschalte. Aber das kann man sich aus Deinen Skripts schnell zusammenbasteln. Hast Du mitbekommen, dass die Schalter auch mehrwertig sein können? Das bedeutet, dass es auch das geben kann: Türen (Name des Schalters) alle schließen (Schalterstellung 0) links öffnen (Schalterstellung 1) rechts öffnen (Schalterstellung 2) alle öffnen (Schalterstellung 3) Das bietet nochmals neue Herausforderungen, weil der state nicht mehr nur 0 oder 1 ist.
Phrontistes Geschrieben Mittwoch um 13:14 Uhr Geschrieben Mittwoch um 13:14 Uhr Nachdem @prinz und @gmd mitbekommen sollten, was Du hier machst, erwähne ich sie hiermit mal.
Phrontistes Geschrieben Mittwoch um 13:17 Uhr Geschrieben Mittwoch um 13:17 Uhr vor 14 Minuten schrieb Phrontistes: Schalter auch mehrwertig sein können Beispiele gibt es noch nicht viele. Aber dieses: D62529FC-E5C5-4869-A3BE-B222BEC8B49F (BR 285) dort für die Lichter.
chrissi099 Geschrieben Mittwoch um 13:24 Uhr Autor Geschrieben Mittwoch um 13:24 Uhr Wie geschrieben, eher als Anregung. Und daß es nicht für alles funktioniert, hatte ich auch schon vermutet. Deswegen erstmal für Türen, Blinker und Bremse. Ich bin jetzt seit ein paar Tagen dabei und muß mal sehen, wie weit ich da einsteige. Viele Grüße, Christian
gmd Geschrieben Mittwoch um 14:11 Uhr Geschrieben Mittwoch um 14:11 Uhr 49 minutes ago, Phrontistes said: Nachdem prinz und gmd mitbekommen sollten, was Du hier machst, erwähne ich sie hiermit mal. Die trefferquote by autos is wesentlich hoeher als bei loks und wagen. Bei loks gibt es wesentlich mehr funktionen, zumindest bei einigen, und nicht allzuviele gemeinsamkeiten bei der benennung der front, rueck, rot,weiss usw. Man muss schon einige keywords verwenden um da einiges rauszuholen, mal ganz abgesehen von vielen tippfehlern. Ich habe alle schalter fuer loks und alle wagen zugeordnet und immer dann wenn ich mal keine lust mehr habe an einer anderen sache zu arbeiten sortiere ich ein paar weitere keywords ein und naehere mich einem "Mapper" fuer alle schalter. Wird aber noch eine weile dauern bis ich da eine standardisierte liste habe. Ich bleibe aber zunaechst mal bei rolling stock, strassen sind noch viel weiter hinten auf meiner liste. Gruss Gmd
Phrontistes Geschrieben Mittwoch um 15:13 Uhr Geschrieben Mittwoch um 15:13 Uhr Auch nur als Anregung und für den Fall, dass Du noch nicht entdeckt hast, wie was man mit dem error anstellen kann: Wenn Du vor dem ::doxxx:: noch dies eingefügst if ActStr=="" then error("Kein Eintrag für xxx gefunden") end und der Event trace ist offen, dann bleibt das Programm stehen und Du kannst nachschauen, welches Fahrzeug das ist und ggf. die Variable von Hand eintragen. Blöd nur, wenn die Animation im Fahrzeug nicht existiert (wie beim VW Bulli T1 in Deiner Beispielsanlage). Das müsste man oben noch behandeln, z.B. so: if ActStr=="N/A" then goto nichtstun end und bei den betroffenen Fahrzeugen die Variable mit "N/A" belegen, sonst bleibt das Programm ja jedes mal stehen. Ob sich das lohnt, weiß ich nicht.
chrissi099 Geschrieben Mittwoch um 16:33 Uhr Autor Geschrieben Mittwoch um 16:33 Uhr vor einer Stunde schrieb Phrontistes: Auch nur als Anregung und für den Fall, dass Du noch nicht entdeckt hast, wie was man mit dem error anstellen Danke, gute Anregung. Bin immernoch am Syntax lernen...
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde dich an, um zu kommentieren
Du musst ein Benutzerkonto besitzen, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen.
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde dich hier an.
Jetzt anmelden