-
Gesamte Inhalte
231 -
Benutzer seit
-
Letzter Besuch
-
EV-Bedingung Animationszustand
tim-fischertechnik antwortete auf MarkoPs Thema in Fragen zur Steuerung
Hallo @BahnLand, ich baue meine Modelle mit Blender. Ich hatte zwei Lösungsansatz von dem ich den letzteren verworfen habe und den ersten, als Entwurf veröffentlicht habe. Variante A: zwei Materialien bei dem einem Material werden getrennt Texturen jeweils für die Base-Color und die Emissive-Color verwendet das andere Material "Leuchten" verwendet eine gemeinsame Datei Ja das habe ich tatsächlich so gemacht für das Material "Leuchten". Hierbei weist man der Textur eine gemeinsame Datei sowohl für den Base-Color-Channel als auch für den Emissive-Color-Channel zu. Das sieht dann wie folgt aus: Der Rahmen und die Textfelder bestehen aus einem anderen Material, das getrennt über eine separate Base-Color und Emissive-Color Textur verfügt. Variante B: nur ein Material mit getrennten Farbkanälen (Base-Color und Emissive-Color) Tauschtexturen nicht sinnvoll, da sich nur ein Material austauschen ließe, nicht aber beide gleichzeitig, und es Diskrepanzen zwischen der Ansicht bei Tag und Nacht gäbe Trotzdem danke für das Text/Codebeispiel. @Neo, liege ich damit richtig, dass man bei einem Modell maximal eine Tauschtextur, bezogen auf die unterschiedlichen Farbkanäle zuweisen kann (d.h. es kann dann pro Variationen nicht mehr als eine Tauschtextur angeboten werden) und dass es in diesem Punkt kein Unterschied zwischen Blender und SketchUP gibt? Hast du sonst noch Ideen/Verbesserungsvorschläge zu dem Zustandsanzeiger? Viele Grüße Tim -
EV-Bedingung Animationszustand
tim-fischertechnik antwortete auf MarkoPs Thema in Fragen zur Steuerung
Hallo @Goetz, hallo @MarkoP, meinst du das in etwa so? Content-ID des Modells: 622FE80A-F30F-41A1-8383-3CCA82096496 erledigt. Ich würde es bei grau belassen, den momentan ist es nicht möglich, mehrere Tauschtexturen einem Modell zuzuweisen. Hintergrund: Ich verwende schon für die Dreiecke unterschiedliche Farben und verwende hier gleiche Tauschtextur für die Base-Color und Emissive-Color, damit die Modelle mit derselben Farbe leuchten, sowohl tagsüber (Base-Color) als auch nachts (Emissive-Color). Würde ich eine gesamte Textur mit der Farbe des Rahmens und den Farben der Dreiecke und des Texts verwenden könnte ich nicht sicherstellen, dass nachts dieselbe Farbe wie auch tagsüber angezeigt wird, da ich nur eine identische Textur für Base-Color und Emissive-Color verwenden könnte aber dann auch der Rahmen leuchtet. ich zwar zwei Texturen jeweils für die Base-Color und die Emissive-Color verwenden könnte, aber diese zeigen unterschiedliche Farben zwischen tagsüber und nachts an. @BahnLand, hast du vielleicht zu dieser Problematik ein paar Lösungsansätze die ich so nicht bedacht habe? Ich habe das zumindest für die Symbole gemacht. Hier habe ich ein paar Variationen eingefügt und auch Tauschtexturen verfügbar gemacht. Für die Texthintergründe scheint mir das noch nicht sinnvoll und würde aus dem obigen Problem nicht funktionieren. Das ist möglich und ich habe das nun bei meinem Modell berücksichtigt. Es lassen sich sämtliche Textfelder einzeln ausblenden. Was stellst du dir als Alternative vor? Ich glaube du meintest, dass dann ein Stopp/Play Symbol dann besser geeignet ist so wie du auch hier schon schriebst? Das wäre einen Versuch wert. Ich schau mal was sich da machen lässt. folgende Korrekturen wurden am Modell vorgenommen: Text blinkt nicht mehr Bewegung aus der Animation genommen Tauschtexturen und Variationen ergänzt Textfelder sind nun ausblendbar Viele Grüße Tim -
EV-Bedingung Animationszustand
tim-fischertechnik antwortete auf MarkoPs Thema in Fragen zur Steuerung
Hallo @MarkoP, hallo zusammen, ich hatte bereits vor längerer Zeit einen Art Zustandsanzeiger für Animationen gebastelt, der bisher auf meiner Festplatte geschlummert hat und ich diesen nie vorgestellt habe, da ich dachte, dass es kein Bedarf danach gibt. Das Modell unterstützt folgende Features: blinkt solange die Animation läuft, jeweils nach unten (rückwärts) nach oben (vorwärts) zeigt Dauerlicht für die Anfangs (unten) und Endposition (oben) fünf editierbare Textfelder, davon eins für die Animationsbezeichnung und vier für die Animationszustände Design nach GBS0 Baustein nachempfunden dockt mit anderen Gleisbildstellpult-Kacheln mittels Kontaktpunkten an ID als Entwurf: 622FE80A-F30F-41A1-8383-3CCA82096496 Ich habe eine kleine Beispielanlage gebastelt, in der ich eine Bahnschranke mit dem Zustandsanzeiger steuere und auch die Position der Bahnschranke zurückmelde: Sobald die Schranke die Endposition erreicht, schaltet der Zustandsanzeiger auf die Position "Ende" (Textfeld = geschlossen). Schaltet der Zustandsanzeiger auf "vor" wird der integrierte Schalter der Bahnschranke auf An gestellt und die Schranke bewegt sich nach oben (Textfeld = öffnen). Sobald die Schranke die Anfangsposition erreicht, schaltet der Zustandsanzeiger auf die Position "Anfang" (Textfeld = geöffnet). Schaltet der Zustandsanzeiger auf "zurück" wird der integrierte Schalter der Bahnschranke auf Aus gestellt und die Schranke bewegt sich nach unten (Textfeld = schließen). Zustandsanzeiger für Animationen.mbp Besteht Bedarf an einem solchem Modell? Gerne biete ich auch noch unterschiedliche Variationen mit unterschiedlicher Farbgebung an, eventuell auch mit Tauschtexturen. Was könnte ich noch modifizieren anders gestalten? Viele Grüße Tim -
Vermisst: Kibris Lokschuppen und DR-Loks
tim-fischertechnik antwortete auf Ricky Fitzs Thema in Modellwünsche
Hallo @Roter Brummer, möglicherweise könnte das Problem mit dem sogenannten Mip Mapping zu tun haben. Viele Grüße, Tim -
Hallo @Markus44, Ja hat er. Verschieben nach links oder rechts (Parallelabstand). Vorsignalbalken können bei zweigleisigen Strecken sich auch links und nicht nur rechts vom Gleis befinden. Ich hätte auch einen sogenannten _Spline-Kontakt verwenden können, damit das Modell sich automatisch am Gleis ausrichtet. Das würde grundsätzlich völlig ausreichen. Allerdings kann man das Modell, wenn es sich einmal am Gleis angedockt hat, nur entlang der Gleisachse verschieben aber nicht rechts und links (Parallelabstand). Um das Verschieben nach links und rechts möglich zu machen, habe ich mich für einen sogenannten _Track_Dynamic entschieden. Das Dynamic steht hier für die veränderliche Position des Gleiskontakts. zusätzliches EV-Ereignis: "Gleiskontakt wird ausgelöst" Als Überbleibsel bleibt noch neben der Möglichkeit, das Modell sowohl nach vorne und hinten als auch nach links und rechts zu verschieben, die Funktion eines Gleiskontaktes übrig. Der Gleiskontakt kann dann das Ereignis "Gleiskontakt wird ausgelöst" auslösen. So kann man beispielsweiße eine Zuganmeldung auslösen, die die Einfahrfahrstraße in den Bahnhof aktiviert. Das Vorsignal soll noch auf Vr1 (Fahrt erwarten) gestellt werden, ehe der Zug das Vorsignal passiert. Andernfalls sähe der Zugführer nur Vr0 (Halt erwarten) obwohl nur Sekunden später eh schon das Vorsignal auf Vr1 gestellt wird und der Zugführer würde verfrüht bremsen, da er immer Vr0 quittieren (bestätigen) muss, weil ihm beim Nichtbeachten sonst eine Zwangsbremsung droht. Viele Grüße Tim
-
Frage zu Signalen in Bahnhöfen
tim-fischertechnik antwortete auf Klartexters Thema in Fragen zur Planung
Hallo @Klartexter in der Tat ist so ein Kopfbahnhof wie in München betriebstechnisch sehr komplex. Allerdings lassen sich solche komplexe Betriebsabläufe mit unzähligen Weichen und Signalen mit einfacheren Grundregeln ganz gut beschreiben. Grundregel Nr. 1 – Fahren in Blockabschnitten Jeder Zug darf in nur einen freien Blockabschnitt fahren und in einem Blockabschnitt darf sich maximal nur ein einziger Zug befinden. Ein Blockabschnitt startet an einem Startsignal und endet am Zielsignal. In einem Blockabschnitt können mehrere Weichen liegen. Über die Fahrstraße werden die Weichen in die richtige Stellung gebracht. Die Fahrstraße startet ebenfalls am Startsignal und endet am Zielsignal. Ja grundsätzlich reicht für eine Einfahrt in eines der Gleise ein einfaches Einfahrtsignal aus. Ist ein Bahnhof aber in mehrere Bahnhofsteile unterteilt, so stellt man dort sogenannte Zwischensignale auf. Siehe auch folgende zweite Graphik aus diesem Link: TF-Ausbildung.de - Bahnhöfe Ja genau. Ja, Formsignale wurde früher verwendet. Heutzutage verwendet man Lichtsignale. Grundregel Nr. 2 – Definition eines Bahnhofs Beinhaltet eine Gleisanlage mindestens eine Weiche, wo Züge beginnen, enden, halten, kreuzen, überholen oder wenden dürfen, handelt es sich um einen Bahnhof, ansonsten um einen Haltepunkt Siehe auch: TF-Ausbildung.de - Bahnhöfe Es gibt noch viele weitere Themen (Regeln) wie zum Beispiel die Hp-Signalbilder (TF-Ausbildung.de - Hp-Signale) oder die etwas neueren Kombinations-Signalbilder (TF-Ausbildung.de - Ks-Signale). Die Webseite: TF-Ausbildung.de - Startseite kann ich dir nur wärmstens an Herz legen. Ich hoffe ich konnte dir etwas weiterhelfen. Viele Grüße, Tim -
Hallo @Weißeritztaler, willkommen im Forum. Die Anlage ist schön ausgestaltet. Besonders gefallen mir das Bahnbetriebswerk, die Überwerfungsbauwerke im linken Anlagenteil und die geschwungene Streckenführung. Kennst du das Konzept von Fahrstraßen. Diese sichern die Strecke in gesicherte Blockabschnitte ab, worin immer nur ein Zug hineinfahren darf. Fahrstraßen, oft im Forum auch nur mit FS abgekürzt, sind viel einfacher zu handhaben und auch von der Programmierung viel benutzerfreundlicher. Es gibt im Wiki einen Abschnitt, in dem Fahrstraßen genauer erklärt werden: Viele Grüße Tim
-
Tutorials zur Ereignisverwaltung
tim-fischertechnik antwortete auf tim-fischertechniks Thema in Anleitungen und Tutorials
Teil 6 – Demoanlage eine lange Reise (mehrfache Bedingungen) In dieser Demoanlage finden Züge automatisch ihr Ziel. Bedingung - eine lange Reise.mbp Was soll erreicht werden? Züge finden von selbst ihr Ziel, welches in einem Schlagwort mit dem Präfix Fahrtziel xxx im Fahrzeug eingetragen ist. Erreicht ein Zug sein Endbahnhof, wird er ins Depot geschickt. Das Fahrtziel München kann auf zwei verschiedenen Wegen angefahren werden. Dazu besitzen die Fahrzeuge mit dem Fahrtziel München zusätzlich das Schlagwort Zwischenstopp in Stuttgart oder Zwischenstopp in Würzburg. Wie bedient man am besten die Anlage? Einzig und allein muss man den Taster neben dem Depot Frankfurt am Main drücken. Dabei wird ein Zug aus dem Depot auf das Abfahrtsgleis des Frankfurter Bahnhofs geschickt. Der Rest funktioniert von allein. Die Züge halten für 10 Sekunden an jedem Bahnhof und finden dann von selbst ihr Ziel. Was kann die Anlage (noch) nicht leisten? Die EV ist nicht generisch aufgebaut und daher noch recht unübersichtlich. Abhilfe können hier Listen mit den Fahrtzielen schaffen. Das Konzept mit Listen möchte ich in einer weiterführenden Reihe später erklären. Wozu sind mehrfache Bedingungen gut und wie funktionieren diese? Im dritten Teil haben wir uns mit den kaskadierten Bedingungen beschäftigt. Dort haben wir gelernt, dass zum Beispiel zwei ineinander geschachtelte Bedingungen eine UND-Verknüpfung bewirken. Für das Aktivieren der Ausfahrt aus Gleis 1 gibt es ein Äquivalent das wie folgt aussieht und sich Mehrfache Bedingung nennt. Entscheidend ist hier der Und-Operator, der die beiden einzelnen Bedingungen miteinander verknüpft. Nur wenn beide Bedingungen erfüllt sind, also der Schalter auf Aus steht und ein Zug auf Gleis 1 sich befindet, ist auch die Mehrfache Bedingung erfüllt und die Ausfahrt aus Gleis 1 wird gestellt. Wenn eine Teilbedingung nicht erfüllt ist, dann ist die Mehrfache Bedingung auch nicht erfüllt. Um eine mehrfache Bedingung anzulegen, klickt man auf den blauen Link „Weitere Bedingung hinzufügen“ und wählt die passende Bedingung aus. Unter kann man eine weitere Bedingung oder Gruppe anlegen. wählt man die Art der Verknüpfung Und oder Oder aus. ODER-Verknüpfung – Wie wird die Einfahrt für den Bahnhof Mannheim gestellt? Am Beispiel der Einfahrt Mannheim möchte ich zeigen, wofür man die Mehrfache Bedingung mit einer ODER-Verknüpfung einsetzen kann. Das Ereignis „Einfahrt Mannheim“ wird durch den Gleiskontakt „Gleiskontakt Einfahrt Mannheim“ ausgelöst, der sich einige Meter vor dem Einfahrtsignal befindet. Man kann erkennen, dass wenn eines der drei Fahrziele (München, Stuttgart oder Freiburg) als Schlagwort existiert, immer die Einfahrt auf Gleis 1 gestellt wird, weil der Zug ja nur in Mannheim zwischenhält. Ist keines der drei Fahrtziele im Fahrzeug hinterlegt, so ist Mannheim der Endbahnhof und der Zug fährt auf Gleis 2 ein, worauf er nach einem kurzen Aufenthalt ins Depot (Abstellung) fährt. Wie man sieht, steht dort dreimal dasselbe, ausgenommen natürlich die unterschiedliche Bedingung. Wenn mehrere Bedingungen gleichberechtig in einer Ebene untereinanderstehen, können diese auch zu einer mehrfachen ODER-Bedingung verknüpft werden, das dann wie folgt aussieht: Bei einer Oder-Verknüpfung muss nur eine Teilbedingung erfüllt sein, damit die Bedingung erfüllt ist. Natürlich können auch mehrere Teilbedingungen erfüllt sein. Dies hat dann aber keinen zusätzlichen Effekt. Wie wird die Ausfahrt aus Mannheim gestellt? Nach einem kurzen Aufenthalt von 10 Sekunden am Ausfahrtsignal „Asig N1 Mannheim“ entscheiden zwei Bedingungen darüber, in welche Richtung der Zug weiterfährt. In der ersten Bedingung wird geprüft, ob sich im Fahrzeug das Fahrtziel Freiburg befindet. Ist dies der Fall, so fährt der Zug in Richtung Freiburg. In der zweiten Bedingung existiert wieder eine Oder-Verknüpfung. Besitzt der Zug das Fahrziel München oder Stuttgart, so wird er in Richtung Stuttgart geleitet. Wie fahren Züge nach München über unterschiedliche Routen? München ist in dieser Beispielanlage der einzige Bahnhof, der über zwei Routen befahrbar ist. Züge können entweder über Mannheim und Stuttgart nach München oder über Hanau und Würzburg nach München fahren. Wie kann jetzt eine Differenzierung der Routen vorgenommen werden? Das Zauberwort lautet Gruppierung einer Mehrfachen Bedingung. Ganz ähnlich zur Ausfahrt in Mannheim haben wir hier in Frankfurt am Main auch wieder zwei Richtungen in der der Zug weiterfahren kann. Einmal Hanau und einmal Mannheim. Der Zug fährt in Richtung Hanau, wenn er das Fahrtziel Hanau, Kassel, Würzburg oder die UND-Gruppierung aus Fahrtziel München und Zwischenstopp Würzburg enthält. In Richtung Mannheim fährt der Zug, wenn der das Fahrtziel Mannheim, Stuttgart, Freiburg oder die Gruppierung aus Fahrtziel München und Zwischenstopp Stuttgart besitzt. Gruppierungen sind dazu da, mehrere untergeordnete Eigenschaften zusammenzufassen. Dadurch ist es möglich auch unterschiedliche Abhängigkeiten aus UND und ODER zu realisieren, die ohne Gruppen nicht möglich wären. wird fortgesetzt ... Viele Grüße Tim -
Tutorials zur Ereignisverwaltung
tim-fischertechnik antwortete auf tim-fischertechniks Thema in Anleitungen und Tutorials
Teil 5 – Beispiel automatische Gleiswahl Die folgende Anlage automatische Gleiswahl baut auf den Konzepten verschachtelte Bedingungen aus Teil 3 und negierten Bedingungen Teil 4 auf. Was soll erreicht werden? Die zwei Selbstblöcke schalten von selbst. Sobald der Schalter Einfahrt betätigt wird, sucht sich der Zug das freie Gleis. Sobald der Schalter Ausfahrt betätigt wird, wird die Ausfahrt für das passende Gleis gestellt, auf dem Zug am Bahnsteig hält. Hält er auf Gleis 1 so wird die Ausfahrt aus Gleis 1 gestellt. Hält er hingegen auf Gleis 2 so wird die Ausfahrt aus Gleis 2 gestellt. Wie bedient man am besten die Anlage? Die Selbstblöcke muss man im Gegensatz zum vorherigen Anlagenbeispiel nicht manuell aktivieren. Die EV aktiviert die Selbstblöcke automatisch. Wenn der Bahnhof komplett frei ist, kann man durch Betätigen des Schalters Einfahrt den ersten Zug auf Gleis 1 einfahren lassen. Befindet sich schon auf Gleis 1 ein Zug, so kann durch erneutes Betätigen des Schalters Einfahrt ein weiterer Zug auf Gleis 2 einfahren. Um einen Zug aus Gleis 1 oder 2 auszufahren, betätigt man den Schalter Ausfahrt. Wenn beide Gleise belegt sind, fährt der Zug auf Gleis 1 zuerst ab. Wie wird die Ausfahrt gestellt? Wie funktioniert die EV dahinter? Die EV dahinter wurde schon im Teil 3 näher erläutert. Trotzdem gibt es hier nochmal eine kurze Zusammenfassung: Sobald der Taster auf Aus steht, wird zusätzlich entschieden, ob ein Zug sich auf Gleis 1 befindet. Befindet sich ein Zug auf Gleis 1, so soll die Ausfahrt aus Gleis 1 gestellt werden andernfalls kann er sich nur auf dem anderen Gleis 2 befinden also nicht auf Gleis 1 und dann soll die Ausfahrt aus Gleis 2 gestellt werden. Wie suchen sich Züge ihre freien Gleis? Die EV der Einfahrt gleicht ziemlich der Ausfahrt. Im Gegensatz zur Ausfahrt werden hier die Einfahrtfahrstraßen statt der Ausfahrtfahrstraßen verwendet. Wenn man ganz genau hinschaut, dann fällt einem auf, dass die untergeordnete Bedingung Fahrzeug befindet sich auf Gleis 1 negiert ist. Das liegt daran, dass kein Zug in ein besetztes Gleis einfahren kann. Er würde ewig am Einfahrsignal stecken bleiben. Man benötigt als ein freies, anders ausgedrückt, nicht besetztes Gleis. Wie kann man einen neuen Durchlauf starten? Wie werden die Schalter zurückgesetzt? Damit man einen neuen Durchlauf starten kann, muss der jeweilige Schalter auf An geschaltet werden. Denn das Stellen der Ein- und Ausfahrten reagiert auf einen Zustandswechsel von An auf Aus. Nun ist es nicht sinnvoll, dass der Schalter sofort nach dem Ausschalten wieder automatisch auf An geschaltet wird. Wenn eines der beiden Ausfahrsignale Asig N1 oder Asig N2 betreten wird, dann wird der Schalter für die Einfahrt auf An geschaltet. Wenn das Blocksignal 01 verlassen wird, dann wird der Schalter für die Ausfahrt auf An geschaltet. Demoanlage: Bedingung - automatische Gleiswahl.mbp wird fortgesetzt ... Viele Grüße Tim -
Tutorials zur Ereignisverwaltung
tim-fischertechnik antwortete auf tim-fischertechniks Thema in Anleitungen und Tutorials
Teil 3 – verschachtelte Bedingungen Eine einzelne Bedingung reicht meist nicht aus, um den Bahnverkehr abwechslungsreich zu gestalten. Um mehr Abwechslung in der Anlage zu bringen, nutzt man verschachtelte Bedingungen. Verschachtelte Bedingungen bestehen immer aus mindestens zwei Bedingungen, bei der sich eine untergeordnete Bedingung in einem Pfad der übergeordneten Bedingung befindet. Dabei kann die untergeordnete Bedingung sich sowohl in dem Pfad befinden, der bei der übergeordneten Bedingung erfüllt ist, aber auch in dem Pfad, der bei der übergeordneten Bedingung nicht erfüllt ist. In diesem Beispiel befindet sich die untergeordnete Bedingung „Fahrzeug befindet sich auf Gleis 1“ im Pfad, bei der die übergeordnete Bedingung erfüllt ist also dort, wo der Schalter auf Position Aus steht. Nur wenn beide Bedingungen erfüllt sind, also der Schalter auf Aus steht und sich ein Fahrzeug auf Gleis 1 befindet dann wird die Ausfahrt aus Gleis 1 gestellt. Man kann sich also merken, dass eine Verschachtelung von mehreren Bedingungen eine UND-Verknüpfung bewirkt. Nur wenn beide Einzelbedingungen erfüllt sind, ist auch die Bedingung zum Stellen der Ausfahrt aus Gleis 1 erfüllt. Sobald eine einzelne Bedingung nicht erfüllt ist, ist diese Bedingung nicht mehr erfüllt. Natürlich kann sich die untergeordnete Bedingung auch in dem Pfad befinden, in der die übergeordnete Bedingung nicht erfüllt ist, also der Schalter auf An steht und nicht auf Aus. Dann platziert man wie im Bild zu sehen die unterordnete Bedingung unterhalb der Trennlinie der übergeordneten Bedingung. Teil 4 – negierte Bedingung Ich möchte auch anhand von zwei Bildern die Funktionsweise von negierten Bedingungen veranschaulichen. Beides bewirkt dasselbe. Nur die negierte Bedingung ist in manchen Fällen wie hier leichter lesbarer. Sobald die Fahrstraße mit dem Schlagwort Selbstblock deaktiviert wurde also inaktiv ist, wird die gleiche Fahrstraße wieder aktiviert. Im ersten Fall handelt es sich um eine normale Bedingung. Diese wurde nicht negiert, weil das Kästchen Negieren nicht gesetzt wurde. Damit die Fahrstraße nur dann aktiviert wird, wenn die Fahrstraße inaktiv ist, muss man den unteren Pfad auswählen. Man platziert hier also die Aktion unterhalb der Trennlinie. Im zweiten Fall wurde die Bedingung negiert, da das Auswahlkästchen Negieren gesetzt wurde. Man erkennt hierbei, dass der untere Pfad komplett wegfallen kann und in der Bedingung der Zusatz NICHT auftaucht. Eine Negierung dreht also den Zustand um. Aus erfüllt wird nicht erfüllt und aus nicht erfüllt wird erfüllt. Warum die negierte Bedingung in Lua kürzer / besser ist. Dieser Abschnitt richtet sich an alle Lua-Interessierte und verdeutlicht, warum die Negierung den Code schlanker macht. Aus der graphischen EV erkennt man zuerst nicht, warum die Negierung prägnanter ist. Doch ein Blick in das if-else Konstrukt zeigt, dass im ersten Fall nichts im if-Zweig steht: if route.active then else route.active = true end und man stattdessen einen else-Zweig benötigt. Verwendet man nun die Negierung, so benötigt man kein else-Zweig mehr. Der Code ist jetzt deutlich kürzer if not (route.active) then route.active = true end Eine Negierung in Lua wird also durch das Schlüsselwort not ausgedrückt. wird fortgesetzt ... -
Hallo zusammen, oft schreibt man einige Zeilen in Lua, die man nur für Testzwecke geschrieben hat. Diese möchte man oft nicht ganz löschen weil man sie vielleicht später noch braucht und kommentiert diese entsprechend aus. Man kann natürlich händisch Zeilen auskommentieren doch noch praktischer und benutzerfreundlicher wäre es, wenn man mehrere oder eine Zeile zuerst markiert und dann mittels einer Tastenkombination automatisch auskommentiert. In Visual Studio Code gibt es zum mehrzeiligen Auskommentieren folgende Tastenkombination: How to Comment in VS Code - The VSCode Comment Shortcut Windows: Shift + Alt + A Das Ergebnis könnte nach dem Auskommentieren wie folgt aussehen: if controller.state == 0 then --[[ if #layout:getVehiclesOn($("Gleis 1")) > 0 then $("Ausfahrt Gleis 1").active = true else $("Ausfahrt Gleis 2").active = true end --]] end Nach dem "rückgängig machen" des Auskommentierens gäbe es theoretisch zwei Möglichkeiten -- 1. Drei '-' am Anfang des Kommentars if controller.state == 0 then ---[[ if #layout:getVehiclesOn($("Gleis 1")) > 0 then $("Ausfahrt Gleis 1").active = true else $("Ausfahrt Gleis 2").active = true end --]] end -- 2. Brackets komplett entfernen if controller.state == 0 then if #layout:getVehiclesOn($("Gleis 1")) > 0 then $("Ausfahrt Gleis 1").active = true else $("Ausfahrt Gleis 2").active = true end end Dieser Befehl funktioniert in beide Richtungen (toggle). Nicht auskommentierte Codezeilen werden auskommentiert und auskommentierter Code wird er nicht mehr auskommentiert. Beim zeilenweisen Auskommentieren gibt es in Visual Studio Code zwei statt einem Befehl: auskommentieren (comment out) Windows: Ctrl + K + C auskommentieren rückgängig machen (uncomment) Windows: Ctrl + K + U Dabei spielt es beim zeilenweisen Auskommentieren keine Rolle, ob nur eine Zeile markiert wird -- eine einzelne Zeile auskommentieren oder mehrere auf einmal. -- erste Zeile auskommentiert -- zweite Zeile auskommentiert -- nächste Zeile ebenfalls auskommentiert -- alle Zeile haben gemeinsam, dass sie mit '--' statt '--[[ Code --]]' beginnen Wäre so etwas umsetzbar und zielführend? Viele Grüße Tim
-
Hallo @winpet, Ich habe deinen Fehler gefunden. Du hast nicht direkt die rechte Nachbarfahrstraße im Signal hinterlegt. Stattdessen nutzt du die Fahrstraße, die direkt am Signal liegt, an der auch der Zug ankommt. Dadurch wird nicht die Nachbarfahrstraße angestoßen und es wird keine Ausfahrt gestellt. Ich habe mal ein Bild davon gemacht, welche Variablen du im Signal SBF Ausfahr-Signal P 00, GL 1 eintragen musst. Für die anderen Signale trägst du auch die jeweils rechte Nachbarfahrstraße ein. Beim letzten Signal SBF Ausfahr-Signal P 03, GL 4 musst du die erste Ausfahrfahrstraße Ausfahrt Gleis 1 (A) eintragen. Viele Grüße Tim
-
Hallo zusammen, in diesem Thread könnt ihr Fragen, Anliegen und Probleme zu den beiden Tutorials stellen. Tutorials zu Fahrstraßen Tutorials zur Ereignisverwaltung Ich bin immer dankbar für Verbesserungsvorschläge. Manchmal sieht man nicht, was an der Erklärung fehlt. Dann bin ich dankbar, Feedback zu erhalten und damit kann ich dann Unklarheiten aus dem Weg räumen und euch hoffentlich weiterhelfen. Viele Grüße Tim
-
Tutorials zu Fahrstraßen
tim-fischertechnik antwortete auf tim-fischertechniks Thema in Anleitungen und Tutorials
Hallo @winpet, es liegt nicht an dir, sondern daran, dass ich die Anlage nur als 30-tägigen Entwurf hochgeladen habe. Nun habe ich die Anlage dauerhaft im Online-Katalog veröffentlicht. Viele Grüße und viel Spaß beim Studieren der Anlage, Tim -
Tutorials zur Ereignisverwaltung
tim-fischertechnik antwortete auf tim-fischertechniks Thema in Anleitungen und Tutorials
Kurztutorial [09] - Wie man mit Bedingungen die richtige Entscheidung trifft. Teil 1 - Aufbau von Bedingungen Bedingungen, auch Fallunterscheidungen genannt, eignen sich hervorragend, um Entscheidungen zu treffen und den Bahnbetrieb dadurch abwechslungsreicher zu gestalten. Hier ist der grundlegende Aufbau einer Bedingung dargestellt: Bedingungen werden im Modellbahnstudio immer gelb gekennzeichnet. Im Kopf der Bedingung trägt man eine bestimmte Eigenschaft ein. Hier wurde die Eigenschaft: Eigenschaften/Variable existiert ausgewählt. Das Modellbahnstudio prüft hier, ob die erweiterte Variable Güterzug im Auslöser Fahrzeug existiert. Anhand dieser Eigenschaft entscheidet das Modellbahnstudio welcher Pfad ausgeführt wird. Jede Bedingung besteht aus zwei Pfaden. Wenn die Bedingung erfüllt ist, die Variable also existiert, werden sämtliche Aktionen etc. oberhalb der grauen Trennlinie ausgeführt. Zur besseren Visualisierung habe ich diesen Pfad grün markiert. Dort wo ich den Pfad rot markiert habe, werden alle Aktionen etc. unterhalb der grauen Trennlinie ausgeführt, wenn die Bedingung NICHT erfüllt ist, also die Variable nicht existiert. Teil 2 – Einführungsbeispiel Bedingung – Güterzug oder Personenzug Damit man die Funktionsweise einer Bedingung besser nachvollziehen kann, habe ich eine kleine Beispielanlage dafür gebaut. Was soll erreicht werden? Güterzüge sollen über Gleis 1 im Bahnhof automatisch durchfahren. Personenzüge wiederum fahren automatisch auf Gleis 2 ein und halten dort am Bahnsteig. Wie bedient man am besten die Anlage? Die Einfahrt in den Bahnhof mittels Fahrstraßen wird automatisch gestellt. Hierfür muss man nichts unternehmen. Die Durchfahrt über Gleis 1 wird ebenfalls automatisch gestellt, allerdings nicht die Ausfahrt aus Gleis 2. Um also den Schienenbus aus dem Bahnhof zu fahren, muss man händisch die Fahrstraße Ausfahrt Gleis 2 stellen. Ebenfalls muss man die drei Blockstrecken händisch aktivieren und dafür sorgen, dass die Ausfahrt frei ist, da es sonst zu Konflikten mit der Durchfahrt über Gleis 1 kommt. Diese Fahrstraße würde dann blockieren. Wann/ Wodurch soll das Ereignis ausgelöst werden? Beim Betreten des Gleiskontakts „Gleiskontakt Zuganmeldung“ vor der Einfahrt des Bahnhofs wird das Ereignis ausgelöst. Wie funktioniert die Fallunterscheidung? Existiert die Variable Güterzug, so ist die Bedingung erfüllt und der Pfad oberhalb der Trennlinie wird ausgeführt. Dabei wird die Durchfahrt über Gleis 1 als Fahrstraße gestellt. Im anderen Fall, wenn es sich um keinen Güterzug, sondern um einen Personenzug handelt, ist die Bedingung nicht erfüllt. Dann wird der Pfad unterhalb der Trennlinie ausgeführt und die Einfahrt auf Gleis 2 gestellt. Demoanlage: Bedingung - Beispiel Güterzug oder Personenzug_Stand_20.03.25.mbp Tutorial wird fortgesetzt Viele Grüße Tim