Jump to content

guenter.strickmann

Mitglieder
  • Gesamte Inhalte

    121
  • Benutzer seit

  • Letzter Besuch

Alle erstellten Inhalte von guenter.strickmann

  1. Ich habe noch eine abschließende Frage zum Thema. Grundsätzlich sollte man ja redundante Speicherung von Variablen vermeiden, um mögliche Fehlerquellen klein zu halten. Wenn ich die Einzelspeicherung jetzt auf die Spitze treibe, habe ich oft den Effekt, dass ich nicht direkt auf eine Variable (Gleiskontakt.Loktyp), sondern nur indirekt über den Tabellenzugriff mit Verschachtelungen erreiche. Wird das Programm dadurch langsamer?
  2. Vielen Dank, so gehts. Ich habe es so verstanden, dass es im Prinzip wieder auf eine direkte Ansprache hinausläuft. Die Liste Tabellen wird direkt angesprochen, über die Indizes habe ich dann den Zugriff auf einzelnen Gleistabellen.
  3. Da muss ich mal schauen, wie ich Tabelle-1 mit Tab überschreiben kann. Weiß auch nicht, ob das der richtige Weg wäre. Aber ich habe mal ausprobiert, was in der Funktion Gleis-1 überhaupt ankommt. Dazu habe ich die auszulesenden Parameter in Textfelder geschrieben. Interessant ist, dass die Eigenschaft der Lok, als "kein Wendezug" und "E-Lok" übernommen werden, aber die Lok "2" selber wird nicht ausgelesen. Nochmal, warum will ich das so machen? So muss ich für jedes Gleis1 bis Gleis-5 eine eigene Funktion schreiben und den richtigen Tabellennamen direkt reinschreiben. Dann klappt das auch hervorragend. Wenn ich aber einen Platzhalter für die Tabelle vergeben könnte, bräuchte ich nur eine Funktion Gleis-x. Vielleicht geht es auch nicht, aber eigentlich sollte so ein Platzhalter doch möglich sein. 5a-neu1.mbp
  4. So gehts nicht. Tab als Variable deklariere, kann ich zwar Tabelle-1 dort über die Modul-Variablenfunktion eintragen. Die Funktion Gleis-1 wird auch ausgeführt, aber die Daten werden nicht in Tabelle-1 abgelegt.
  5. . Jetzt habe ich doch noch ein Problem. Ich habe hier Fahrzeug als Objekt und Tab als Tabelle deklariert. Dann rufe ich hier das Ereignis auf. Das Fahrzeug kann ich als Auslöser deklarieren und übergeben. Aber für Tab kann ich nicht die richtige Tabelle übergeben, die ich möchte. Wenn ixh auf Bearbeiten klicke, kann ich nur eine neue Tabelle anlegen, ich möchte aber eine bereits bestehende Tabelle vorgeben. Wie kriege ich das hin? Das ganze Problem ist im Event BK-Kopfende sichtbar. 5a.mbp
  6. Hab es jetzt selbst hinbekommen, hatte einen Parameter falsch übergeben.
  7. Ich baue gerne Kopfbahnhöfe. Bisher habe ich dazu in den verschiedenen Gleiskontakten direkt Variable deklariert. Das funktioniert auch soweit gut. Jetzt habe ich mir gedacht, statt überall Variablen abzulegen, für jedes Gleis eine Tabelle anzulegen und alle notwendigen Infos dort direkt abzulegen. Auch das funktioniert soweit. Aber ich trage dann für jedes Gleis im Kontakt BK-Kopfende immer noch einen Wust an Befehlen ein, die sich aber nur in dem Ansprechen der jeweiligen Tabelle unterscheiden. Also war mein Gedanke, hier ein benutzdefiniertes Ereignis zu kreieren und mit der Übergabe von zwei Parametern müsste man eigentlich dann alles hinbekommen. In Hauptbahnhof/BK-Kopfende habe ich mal beides untereinander eingetragen. Geht mein Gedankengang überhaupt, wenn ja wie muss ich im Ereignis "Gleis-1" die Parameter übergeben. Ich habe schon versucht, diese als Text zu deklarieren, aber so geht es auch nicht. Die Krux ist, dass ich in Gleis-1 die Lok auf dem Kontakt BK-Kopfende-1 ansprechen muss, aber da fehlt mir die direkte Verbindung. Testanlage 5a.mbp
  8. Ausgehend von einem Gleiskontakt mehrere Zielkontakte gleichzeitig markieren und hierzu die Fahrstraßen dann automatisch erstellen. Beispiel: Ich markiere ein Ausfahrsignal im Bahnhof und mehrere Abstellgleise und das Prog. erstellt dann sofort alle Fahrstraßenverbindungen. Da dann auch alle Signaleinstellungen des Ausfahrsignals gleich sind, reicht es, die gewünschte einmal vorzugeben. Als letzte Option könnte man auch einen Namen für die ganzen Fahrstraßen vorgeben oder auswählen. Fahrstraßen sind super, aber es ist immer ein ziemlicher Aufwand, die zu erstellen. Dabei sind die einzelnen Handgriffe immer gleich. Die Möglichkeit, den Bildschirm dafür zu teilen, erleichtert die Arbeit auch nur bedingt. Für Blockstrecken würde das übrigens auch gehen. Von einem Startkontakt bis zu einem finalen Kontakt immer von einem Kontakt zum nächsten.
  9. Das war es . Danke und schönen Sonntagabend
  10. Ja genau, nur dass mir Auslöser nicht angeboten wird. Woran liegt das?
  11. Die EV "Fahrstraßen mit Schlagwort" kommt bei mir öfter vor. Ich kann natürlich jedesmal eine EV mit einem Schlagwort eingeben. Die Idee ist aber, per Parameter die EV nur einmal zu setzen. Dafür müsste ich aber m. E. den xyz-Parameter als Variable einsetzen. Das krieg ich aber nicht hin. Geht das in dieser EV grundsätzlich nicht, oder muss das nur anders konfiguriert werden.
  12. Nein ist es nicht, war schon Absicht. In der Realität passt das ja auch nicht immer. Aber es führt dann halt zu Mehraufwand. War mir schon klar, dass ich die Gleise einfach verlängern könnte.
  13. So, ein erster Ansatz. Ich habe den Timer umgewandelt. Jedesmal wenn eine beliebige Fahrstraße aktiviert wird, schaut die EV nach, ob ein Einfahrgleis frei ist. Das funktioniert auch soweit. Allerdings scheint mir das aktuell noch zu kompliziert mit den vielen Variablen. Das kommt eigentlich daher, dass die langen ICE und EC nicht auf das 1. bzw. 6 Gleis passen. Das muss noch vereinfacht werden. Aber prinzipiell funktioniert es. Das ist ja schon mal was. Das Auslösen einer FS ersetzt den Timer. 8.mbp
  14. Nein, ich habe die Anlage vor einer halben Stunde aus einem deiner Forenbeiträge heruntergeladen. Aber wie so oft: Das Problem sitzt vor dem Bildschirm. :-( Jedenfalls habe ich jetzt eine Idee, das probier ich mal aus. Wenn es klappt, stell ichs rein, wenn nicht steig ich auf Ölmalerei um.
  15. Hallo Hawkeye, ich kenne deine Anlage wohl und die hat mir schon einige Ideen gebracht. Ich habe deine Anlage einmal in einer bestimmten Situation exportiert. Die einfahrende S-Bahn hat eigentlich ein Gleis frei, wartet aber, bis die gegenübliegende Lok auf das Abstellgleis fährt. An der Stelle möchte ich, dass die S-Bahn bereits das freie Gleis anfährt. Die Timer-Funktion in meiner Anlage schaut alle 3 Sekunden, ob was frei ist. Aber sie schaut eben immer wieder. Ich denke mir das so: 1. Ein Stück vor dem Einfahrsignal erzeugt ein Gleiskontakt den Befehl: Ich komme jetzt rein, gib mir ein freies Gleis. 2. Am Signal sind aber immer noch alle Gleise nicht zugängig. 3. Das liegt in meiner Anlage aber nicht daran, dass alle belegt sind, sondern das ein Zug quer vorherläuft und alle blockiert. 4. Am Ende des vorbeilaufenden Zuges müsste dann das erste freie Gleis signalisieren: ich bin jetzt frei, komm rein. Das muss über eine Zustandsabfrage der Ausfahr-Fahrtsraßen gehen. Also wenn blockiert passiert nichts, wird die Straße frei, schaut sie, ob jemand am Einfahrsignal wartet und gibt die entsprechende Fahrstraße frei. So oder so ähnlich. Der Auslöser wäre dann immer das Umschalten der Ausfahr-Fahrstraße von Belegt nach frei. Aber warum fährt die S-Bahn dann nicht in das freie Gleis? Hawkeye.mbp
  16. Vielen Dank erstmal für den Vorschlag. Das geht aber ein wenig am Kern meines Wunsches vorbei. Wenn ein Zug auf Gleis 6 bis zum Einfahrsignal einfährt, könnte er theoretisch alle Gleise 1-6 belegen. Kommt jetzt zeitgleich ein Zug auf Gleis 2 angefahren und fährt in 6 ein, dann "schneidet" er alle Gleise für den Zug auf 6 ab, wenn ich nur einmal die Wdh-Funktion nutze. Durch den Timer schaue ich alle par Sekunden, ob wieder ein Gleis frei wird. Das konntet ihr nicht wissen, aber wenn ich euren Ansatz wählen würde, bliebe der Zug auf 6 stehen, bis ein Zug von vielleicht Gleis 3 ausfahren würde. Dann würde 6 in 3 einfahren. Zeitgleich wären aber vielleicht, 1,2,4 und 5 schon frei gewesen. Ich hoffe, das war verständlich. Durch die Timerabfrage habe ich also die Möglichkeit, ständig nach freien Gleisen "Ausschau" zu halten. Wie gesagt, dass funktioniert auch. Aber geht das nicht auch anders? a.mbp
  17. Ein Zug fährt in einen Bahnhof ein. Über die EV "Fahrstraßen mit einem Schlagwort" wählt er sich zufällig ein Gleis. Da die Funktion nur einmal durchläuft habe ich einen Timer gesetzt (Beispiel hatte ich im Forum gefunden), damit er solange sucht, bis ein Gleis frei wird. Das klappt auch. Allerdings bin ich damit nicht so richtig zufrieden. In anderen Sprachen gibt es "do while" oder andere Schleifen. Geht das nicht irgendwie eleganter? Timer finde ich suspekt. Den False/True-Schalter habe ich deswegen, weil der Zug bei der Einfahrt über zwei Kontakte fährt. Ist beim ersten Kontakt kein Gleis frei, dann vielleicht beim zweiten.
  18. Mit Schlagwörtern arbeite ich. Die Idee von "Roter Brummer" hilft mir weiter. So kann es zukünftig gehen.
  19. Ich arbeite gerne mit Kopfbahnhöfen. Die EV in jeder Anlage ist dabei weitestgehend gleich. Gibt es eigentlich eine Möglichkeit, sich diese Codeschnipsel als Favoriten abzulegen oder einen Gleiskontakt mit hinterlegter Codierung? Im Grunde wäre das eine Softwaredatenbank. Momentan trage ich die notwendige EV für den ersten Kontakt jedesmal händisch ein und dupliziere dann. Das hat man zwar schon fast alles im Kopf, ist aber lästig.
  20. Gott sei Dank. :-) Jetzt klappts.
  21. Ich versuche gerade, das Einfahren in Bahnhöfe ein wenig zu beschleunigen. In Anlage 3 habe ich allerdings zwei Loks, die gerade frontal aufeinander fahren würden. Zwei Fahrstraßen sind aktiv, die sich eigentlich gegenseitig ausschließen. 101-104 = E-Lok 201-203 = Dampflok Das dürfte doch eigentlich garnicht passieren. Kann so etwas vorkommen, wenn die zeitgleich aktiviert werden, oder woran kann das liegen? Das Problem sitzt ja wohl nicht vor dem Bildschirm. :-) test3.mbp
  22. Gerätename Guenter_Lenovo Prozessor AMD Ryzen 7 6800HS Creator Edition 3.20 GHz Installierter RAM 16,0 GB (13,7 GB verwendbar) Systemtyp 64-Bit-Betriebssystem, x64-basierter Prozessor Stift- und Toucheingabe Für diese Anzeige ist keine Stift- oder Toucheingabe verfügbar. Im Autostart läuft nix weiter im Hintergrund. Maximal habe ich 60 fps, auch bei ganz kleinen Anlagen. Bei der hier bin ich je nach Zoomstufe bei 30-40 fps. Die Züge laufen eigentlich flüssig.
  23. Also, ich finde die Idee einer Vergleichsanlage garnicht so schlecht. Das muss ja nix großartiges sein. Aber man könnte dann z. B. sagen, in der und der Konfigruation läuft die Anlage mit ... fps. Dadurch hätte man einen Vergleich, um seinen privaten Rechner einschätzen zu können. Liegt es an der Grafikkarte, zu wenig RAM oder alles tutti. Zumindest hätte man einen Anhalt. Nur so eine Idee.
  24. Hallo zusammen, die Anlage läuft einigermaßen rund, auch wenn ich noch einiges zum Thema relistisch machen muss. Meine Frage ist aber eine andere. Ich habe immer "Blitze" in der Anlage, egal wie weit ich rein oder raus zoome. Blitze ist nicht völlig korrekt, kann es aber nicht genauer beschreiben. Einzelne Objekte, egal welche, haben sozusagen eine Millisekunde einen Aussetzer. Liegt das an der Grafikkarte, oder kann das einen anderen Grund haben? Das könnte identisch sein zu "Gleise flimmern" aus einem Januar-Beitrag. ich hatte bei 8.5 auch nie solche Effekte. Günter 1.mbp
  25. Alles klar, vielen Dank für die hilfreichen Tipps.
×
×
  • Neu erstellen...