Jump to content

fzonk

Mitglieder
  • Gesamte Inhalte

    570
  • Benutzer seit

  • Letzter Besuch

Beiträge erstellt von fzonk

  1. Hallo Timba,

    vor 15 Minuten schrieb Timba:

    Gar nicht interessanterweise, sondern völlig normal. Lua interpretiert 1 AND 3 AND 5 als logische Operation mit dem Ergebnis 5 und schaltet daraufhin korrekt die Lampe mit Index 5. Die logische Operation 1 OR 3 OR 5 ergibt 1 und auch da wird völlig korrekt Lampe 1 geschaltet.

    Für mich schon, weil ich mich an Lua gerade erst herantaste o.O

    Das Beispiel mit den Lampen ist gerade nur stellvertretend für eine andere Funktion an der ich gerade bastle. Bei dieser sind es 32 Objekte. In verschieden Aktionen will ich teilweise alle auf einmal ansprechen, was über Wiederholung kein Problem ist, zum Teil will ich aber auch nur einige bestimmte Objekte davon ansprechen, die Zusammenstellungen der Objekte ändert sich dabei immer wieder. Nun suche ich einen einfachen Weg wie ich bestimmte Objekte aus einer Liste ansprechen kann. 

     

    Gruß Frank

  2. Hallo EASY,

    Ich würde mich da streit_ross anschließen. Wenn er nicht eine komplett eigene Kategorie bekommen sollte würde er wohl am besten als komplettes Packet in die Kategorie Dieseltriebwagen>Fernschnelltriebwagen passen.

    Gruß Frank

  3. Hallo @Goetz

    Ja es geht um die Variante 3, ich möchte Teile des Indexes aufrufen. Dein Beispiel kommt meiner Vorstellung schon sehr nah. Ich hatte mir eine noch einfachere Lösung gewünscht. In der Grafischen EV in etwa so:

    Bild.jpg.91b1d45a390d8ad24922469171ced937.jpg

    Oder in Lua eventuell so:

    $("Kippschalter").variables["Lampen"]["1"]["3"]["5"].state = state 

    Aber scheinbar gibt es da keine so einfache Lösung, oder doch?

    Gruß Frank

    Nachtrag:

    Ich hatte auch noch die Idee zu dieser Lösung:

    $("Kippschalter").variables["Lampen"]["1"and"3"and"5"].state = state   

    interessanter weiße verarbeitet Lua den Befehl sogar ohne Fehlermeldung, aber leider wird nur die Lampe 5 geschalten. Wenn ich die „and“ gegen „or“ austausche wird nur die erste Lampe geschalten. Aber ist halt noch immer nicht die Lösung die ich anstrebe.

  4. Hallo an Alle,

    ich stehe gerade etwas auf dem Schlauch und habe gleich mal ein Beispiel angehangen. Ich habe in dem Kippschalter eine Liste erstellt mit den 5 Lampen (die Schalter sind). Nun würde ich gern mehrere Objekte aus dieser Liste gleichzeitig ansprechen (Lampen umschalten), dabei möchte ich aber in der EV nicht für jede Lampe eine Aktion erstellen. Gibt es die Möglichkeit über eine Aktion mehrere Objekte gleichzeitig aus der Liste anzusprechen. Als Beispiel ich hätte gern das Lampe 1; 3 und 5 um geschalten werden.

    Gruß Frank

    Liste abrufen.mbp

  5. Hallo @Jan

    Dass mit der Rastergröße und den verhalten der Geometrie was daraus entsteht ist ein leidiges Thema und da an sich wird sich schwer was ändern lassen, da wie du schon richtig geschrieben hast eine kleinere Rastergröße zu Lasten der FPS geht. Deine Idee mit der seitlichen Abdeckung mittels Sprinestraßen finde ich super. Vielleicht kann ja @Roter Brummer eine Tauschtextur zufügen oder ein anderer Modellbauer erstellt ein Splineobjekt, welches diese Fähigkeit besitzt.

    Gruß Frank

  6. Hallo @Timba,

     

    was über die grafische EV möglich wäre ist das du die Simulationszeit in einem Textfeld mitlaufen lässt, dies ist wie folg möglich.

    Bild2.thumb.jpg.854483f9d61c86d9d24985bd0bb17bbd.jpg

    Wenn dich dann ein bestimmter Zeitpunkt interessiert könntest du das Beschriftung setzten Ereignis einfach über die EV deaktivieren lassen. Damit bleibt der entsprechende Zeitpunkt auf dem Textfeld „eingefroren“ obwohl die Uhr weiterläuft. In meinem Beispiel habe ich als Auslöser einfach den Schalter.

    Zeit.mbp

    Gruß Frank

  7. Hallo an Alle,

    vor 3 Stunden schrieb Tesla:

    Nun bin ich ja auch ein neugieriger Mensch: Wenn Du es irgendwann mal schaffst, dann denk noch mal an die Parameter. Ich vermute, daß sich da noch viele Möglichkeiten verstecken.

    Wie gewünscht, hier auch ein kleines Beispiel mit Parametern. Auch hier dient die Anlage ausschließlich der Verdeutlichung für die benutzerdefinierten Ereignisse, alle anderen mit eingeflossenen Ereignisse sollen hier nur nebensächlich sein.

    Benutzerdefiniertes Ereignis mit Parametern.mbp

    Bild.thumb.jpg.a59648e6e1a2c992e99682c090814a81.jpg

    In diesem Beispiel soll einfach nur die Weichen gestellt werden, das Signal geöffnet werden und nach einer Verzögerung der Zug gestartet werden. Bitte immer nur einen Zug starten, dieser soll absichtlich wieder auf dem Ausgangsgleis ankommen.

    Bild2.jpg.6e00ae093d6fbc27ce7954884fd5f726.jpg

    Bei einer Steuerung ohne benutzerdefinierten Ereignissen könnte die Steuerung so aussehen.

    Bild3.jpg.3fdc9fe514b2c445e4e27bc5fb6ca379.jpg

    Da diese Abfolge ja aber für mehrere Ereignisse gleich ist, packe ich diese wieder in ein benutzerdefiniertes Ereignis. Nun suche ich mir alle Punkte heraus, die sich bei den Ereignissen unterscheiden. In diesem Fall sind es die beiden Weichenstellungen, das Signal, was geöffnet werden soll und die Lok, die gestartet werden soll. Dazu lege ich Parameter an (einfach auf das blaue Wort klicken). Die Namen der Parameter sind von mir frei gewählt und können x-beliebig benannt werden (Sonderzeichen und Leerzeichen sind nicht zugelassen). Für die beiden Weichenstellungen habe ich den Variablentyp „Zahl“ gewählt und für die Lok und das Signal den Typ „Objekt“.

    Bild4.thumb.jpg.14937dc2bf8a0453cc1bcca84dc8adf2.jpg

    Im nächsten Schritt habe ich wieder die Ereignisabfolge erstellt und an den betreffenden Stellen wählt man dann Auslöser und sucht sich den entsprechenden heraus.

    Bild5.thumb.jpg.009606cc52f9feeed6d4ed1cd7af7ab0.jpg

    Im letzten Schritt habe ich dann wieder die Ereignisse mit dem entstehenden Auslöser erstellt, in diesem Fall soll es einfach das betätigen des Tasters sein. Wenn man nun das benutzerdefinierte Ereignis hinzufügt kommt automatisch an der linken Seite die Liste mit den hinterlegten Parametern. Diese nur noch für jedes Ereignis eintragen und fertig ist eine Steuerung mit einem benutzerdefinierten Ereignis, inclusive Parameter.

    Wie Eingangs schon erwähnt ist dies nur eine darstellende Nutzungsmöglichkeit, richtig interessant wird diese Nutzungsmöglichkeit erst bei umfangreichen Steuerungen, vor allen wenn man nicht mehr als Auslöser einen Taster nimmt, sondern zufällig gesetzte Variablen, was dann aber auch schon wieder ein ganz anderes Thema ist.

    Gruß Frank

  8. Ja ich habe mir es angeschaut und vor allem auch die funktionsweiße (EV), da es eine super Leistung ist habe ich es mit einem gefällt mir honoriert. Da ich selbst aber keine Anlagen baue, wo ein aktives Steuern vorgesehen ist (Andy weiß bestimmt was ich meine) bin ich nicht weiter auf dieses Thema eingegangen, da ich persönlich keine Verwendung für habe.

    Gruß Frank

  9. Hallo an Alle,

    ich versuche es mal an einem Beispiel zu erklären für was unter anderem die benutzerdefinierten Ereignisse gut sind.

    Benutzerdefiniertes Ereignis.mbp

    Dazu habe ich dieses Beispiel erstellt (für alle Fortgeschrittenen, ja es würde auch andere Lösungen geben, aber zum Erklären sollte es recht gut herhalten).

    Bild.thumb.jpg.423976763e0229b29397c3270c3713c4.jpg

    Bei diesem Beispiel möchte ich, dass wenn die Lok ein gelbes Gleis betritt immer alle Lampen umschalten.

    Bild2.thumb.jpg.21db67a53fb31fac57cd9c4aa3aa2f74.jpg

    In der einfachsten Variante könnte ich für jedes der 4 Gleise ein Ereignis erstellen, wo jede der 4 Lampen einzeln hinterlegt ist.

    Bild3.thumb.jpg.2743f0308ade9c6232f7d12f59f2def0.jpg

    Da ich aber keine Lust habe immer wieder die 4 Lampen einzeln einzufügen und ich weiß, dass ich diese Kombination aus 4 Lampen auch noch an anderes stelle schalten will habe ich im nächsten Schritt ein benutzerdefiniertes Ereignis erstellt, in dieses habe ich die 4 Lampen gepackt.

    Bild4.thumb.jpg.c8277145e282dee0b620ba2cb4bdfba7.jpg

    Nun brauche ich bei den jeweiligen Gleisen nur immer dieses benutzerdefinierte Ereignis abrufen.

    Ich hoffe dieses Beispiel zeigt in etwa auf für was die benutzerdefinierten Ereignisse sein könne. Interessant ist dies zum Beispiel, wenn ein Zug gestartet werden soll, denn die Abfolge ist ja meist gleich. Weichen werden geschalten, Signal wird geöffnet, nach einer Verzögerung fährt der Zug los. Dabei kommen dann noch die Parameter ins Spiel, aber dies ist schon wieder ein ganz anderes Thema.

    Gruß Frank

  10. Hallo an Alle,

    hier noch mal ein kleiner Nachtrag. Ich habe mich dann doch noch mal hingesetzt und das Ereignis überarbeitet. Ich habe nahezu alle Verzögerungen aus dem Ereignis verbannt und diese Abläufe in benutzerdefinierte Ereignisse gepackt. Damit gibt es nahezu nur noch Bedingungen und benutzerdefinierte Ereignisse in diesem Ereignis. Die grundlegende Funktionsweise habe ich nicht geändert, ABER durch die Verbannung der Verzögerungen und die damit verbundenen Ereignisse konnte ich das Gesamtskript auf ein Zehntel „zusammenkürzen“. In Zahlen bedeutet dies, dass ursprüngliche Skript (nach Teilung) hatte 23833 Zeilen, nach der Bearbeitung und Nutzung von noch mehr benutzerdefinierten Ereignissen sind dann „nur noch“ 2048 Zeilen übriggeblieben. Daher kann ich als Fazit nur empfehlen, wenn man so wie ich mit einem Hauptereignis arbeitet, so viele wie mögliche benutzerdefinierte Ereignisse einzubinden und Abläufe die sich ähneln aus dem Ereignis zu verbannen, vor allem, wenn sie Verzögerungen beinhalten.

    Gruß Frank

  11. Hallo @Neo,

     danke für deine Antwort, ich hoffe es hilft dir um das tolle Programm weiter zu entwickeln. Ich selbst habe mir bereits erfolgreich geholfen indem ich das eine Ereignis in zwei aufgeteilt habe. So funktioniert es auch wieder fehlerfrei, gibt halt zwei Ereignisse mit dem selben Auslöser, diese stehen aber nicht direkt in Konkurrenz, daher habe ich da auch keine Funktionsbedenken. In dem Ereignis selbst sind bereits einige benutzerdefinierte Ereignisse mit eingebaut. Ich könnte zwar in der Tat noch mehr in separaten benutzerdefinierten Ereignissen zusammenfassen, was ich vielleicht zu einem späteren Zeitpunkt noch machen werde, aber wie gesagt, momentan funktioniert alles wieder.

     Danke Frank

  12. Hallo @Goetz

     du kannst gern für die Anlage eine Alternative Steuerung erstellen. Aber ich möchte dir gleich sagen dass diese dann nicht für mich ist (auch wenn ich sie mir anschauen werde), denn meine Steuerung mag vielleicht nicht die beste Lösung zu sein (wenn es sowas überhaupt gibt) aber wie schon erwähnt, sie funktioniert! Daher habe ich auch nicht vor etwas grundlegendes daran zu ändern, ganz im Gegenteil, ich arbeite bereits weiter daran und werde die Steuerung noch erweitern.

     Gruß Frank

     

  13. Hallo @Goetz

    Ein sehr interessanter Ansatz, jedoch bin ich bei weiten noch nicht so sicher im Umgang mit Lua, die ersten Versuche habe ich zwar bereits unternommen, aber bin noch weit entfernt um sicher damit zu arbeiten. Daher arbeite ich aktuell lieber noch mit der grafischen EV, zumal ich da schneller Fehler finden kann und beheben kann. Ja in der EV sind extrem viele Bedingungen eingebaut, vor allem verschachtelte. Da eine Vielzahl von Ereignissen aufeinander aufbauen fand ich diese Lösung gar nicht so verkehrt, auch wenn mir bewusst ist das der Steuerungsablauf damit ordentlich beschäftigt wird. Bis auf das der Eintrag offensichtlich zu umfangreich geworden ist funktioniert die Steuerung fehlerfrei! Aktuell habe ich das Ereignis auf zwei Ereignisse aufgeteilt, was in diesem Fall kein Problem darstellt, da ich die Prüfungen so getrennt habe, dass die beiden Ereignisse nicht gegeneinander arbeiten.

    Gruß Frank

  14. Hallo BahnLand,

    Vielen Dank für die ausführliche Erklärung. Das jede Verzweigung und Verzögerung zusätzliche Einträge (Zeilen) erstellt um es abarbeiten zu können war mir indirekt bereits bewusst. Das knapp 30000 Zeilen dadurch zusammengekommen sind erklärt dein Beispiel ja auch wunderbar. Jetzt ist nur noch die Frage warum Lua dies grundlegend nicht mehr abarbeiten möchte. Denn stabil gearbeitet hat das System, bis ein Eintrag zu viel hinzugefügt wurde.

    Gruß Frank

  15. Hallo BauerHeini und Tesla,

    vor 14 Minuten schrieb BauerHeini:

    Ich bin davon ausgegangen, dass wenn ich ein neues Ereignis erstelle, dieses "benutzerdefiniert" ist.

    Ja und nein. Grundlegend hast du recht und jedes Ereignis ist ein benutzerdefiniertes, in diesem Fall ist aber etwas anderes damit gemeint. Dieses spezielle ist dafür da, wenn du eine wiederkehrende Folge von Ereignissen hast wo sich nur bestimmte Parameter ändern, aber die Ereignisfolge nicht, dann ist es von vorteil wenn man die Ereignisfolge in einem "benutzerdefinieren Ereignis" erstellt und dort nur die sich ändernden Parameter hinterlegt. In einem weiteren Ereignis kannst du dann dein benutzerdefiniertes Ereignis abrufen und nur die Parameter angeben, was bei umfangreichen Steuerungen sehr hilfreich sein kann.

    Gruß Frank

  16. Hallo Timba,

    ja es dauert eine gefühlte Ewigkeit bis es gewandelt ist und das Studio reagiert in dieser Zeit auch nicht mehr. Einmal geschafft bekommt man dann diese Meldung.

    Bild6.thumb.jpg.589e7d661838e9cae49a9aad932dc87c.jpg

    @Neo Ich befürchte mit meinen Ereignissen bin ich in der Tat an die Grenzen von Lua gekommen. Denn das letzte End schließt an einer Stelle ab, wo eigentlich noch etwas kommen müsste.

    Gruß Frank

  17. Ich habe die Anlage als Entwurf in den Katalog geladen Content ID: 82F8F6B7-0C05-4A47-B16F-3B1FE472D350

    Die Anlage befindet sich noch im Bau, die grundlegende Zugsteuerung ist aber bereits fertig. Das „schuldige“ Ereignis findet ihr im Ordner „Zugsteuerung“ > „Ausfahrt aus Schattenbahnhof zu Klappbrücke“ > „Variable "Überprüfung" wird gesetzt“.

    Gruß Frank

  18. Hallo @Neo und an Alle,

    Ich glaube ich habe das MBS kaputt gemacht :$ denn ich habe auf einmal diese Meldung bekommen: „Die Ereignisverarbeitung ist aufgrund von Skriptfehlern deaktiviert: control structure too long near 'end'“. Eigentlich handelt es sich um eine recht kleine Anlage (für meine Verhältnisse) Ich habe die Hauptsteuerung in ein Ereignis gepackt, wo es einige Bedingungen und entsprechende Aktionen gibt. Eigentlich dachte ich das Ereignis wäre gar nicht so lang (groß), ich habe es mit der grafischen EV erstellt. Wenn ich es in Lua wandle (was schon mal eine Weile dauert bist es gewandelt ist) sagt es mir tatsächlich das dieses Ereignis aus 29227 Zeilen besteht. Bis dieser Fehler alles gestoppt hat lief die Steuerung sehr stabil und fehlerfrei.

    Ist es richtig, dass es ein Maximum an Ereignisfolgen in einem Ereignis gibt? Und gibt es Vorschläge was ich nun machen kann, außer das eine Ereignis auf mehrere wieder aufzuteilen?

    Gruß Frank

×
×
  • Neu erstellen...