-
Gesamte Inhalte
5763 -
Benutzer seit
-
Letzter Besuch
Alle erstellten Inhalte von Goetz
-
Ich habe keine Ahnung, streitross. Erst die Grundlagen schaffen, dann kann man es im Detail untersuchen. Dein bisheriger Ansatz ist so falsch, dass es nicht lohnt den näher zu untersuchen. Du sagst ja selbst, dass man bei deiner Vorgehensweise den Überblick verliert.
-
Sehr gut, streit_ross Wenn du jedem Hauptsignal dasselbe Schlagwort gibst ... dann kannst du mit einem einzigen Eintrag in der EV alle Signale auf Halt setzen, wenn ein Zug darüber fährt: Mit dieser Taktik musst du dir nur noch Gedanken darüber machen, wann ein Zug ein Signal auf Fahrt stellen darf. Das verbessert deine Chancen um 100%. Damit bleibt nur noch ein halbes Prozent übrig, dass an deiner perfekten Umsetzung fehlt. Viele Grüße Götz
-
Vielen Dank! Mal abgesehen davon, dass man an Konfliktstellen (z.B. einer Einmündung) ein Signal (hier Signal B 2) niemals erst dann auf Halt stellen sollte, wenn ein Zug darauf zufährt ... ... stellst du hier das Signal A 2 ein zweites Mal auf Halt, wenn die Weiche in Stellung 0 ist. Welchen Zweck erfüllt das?
-
Die würde ich mir gerne ansehen.
-
Ich denke eher, dass du es unbeabsichtigt kurz vom Fahrweg runter gezogen hast. Das würde nämlich die Ist-Geschwindigkeit eines Fahrzeugs auf 0 setzen.
-
Hallo zusammen, gestern habe ich Herman diesen Vorschlag zur Drehscheibe geschickt und er hat mir erlaubt, den auch öffentlich vorzustellen:
-
Sehr gut. Jetzt erkenne ich deine Probleme. Fahr bitte mit deiner Lok zum Signal vor. Sie stoppt selbständig auf dem Kontakt, der zum Signal gehört. Damit stimmt jetzt die Fahrtrichtung. Und die Lok steht auf dem Signalkontakt. Beides sind Voraussetzungen dafür, dass die Lok losfährt, wenn du die Fahrstraße aktivierst. Beim PKW hast du dasselbe Problem. Er hat die Fahrtrichtung "rückwärts" und er steht nicht auf dem Kontakt. Außerdem beschleunigt der PKW-Kontakt immer, unabhängig davon, welchen Status die Fahrstraße hat. Die Möglichkeit seine Eigenschaften zu ändern bekommt der Kontakt erst in Kombination mit einem Signal. Viele Grüße Götz
-
Liebend gerne, Stefan Aber dazu müssen wir sehen, was du aufgebaut hast. Deine Beschreibung enthält soweit noch keinen Hinweis, der auf die Ursache deines Problems schließen lässt. Was das Starten eines Zuges am Signal angeht: Schau mal bitte in dieses Video rein. Eventuell hilft das weiter? Viele Grüße Götz
-
Gestern habe ich EASY per PN folgenden Vorschlag gemacht. Und da er ihm gefiel, möchte ich ihn heute öffentlich vorstellen. Sein Skript für die Umwandlung der Zeigerposition in "rot", "grün" und "weiß" sah so aus: --[[ Ampelsteuerung in Abhängigkeit der Animationsposition "Betrieb" --]] local HNS="" -- Nord-Süd Richtung local HOW="" -- Ost-West Richtung local pos=$("HeuerAmpel 1").animations["Betrieb"].position -- Position Animation "Betrieb" -- Nord-Süd Farbaufteilung in Abhängigkeit der Animationsposition if pos<=0.13 then HNS="rot" elseif pos>0.14 and pos<=0.36 then HNS="grün" elseif pos>0.37 and pos<=0.63 then HNS="rot" elseif pos>0.64 and pos<=0.86 then HNS="grün" elseif pos>0.87 and pos<=1 then HNS="rot" else HNS="weiß" end -- Objektvariabe für Nord-Süd der Ampel bei Farbwechsel setzen if HNS=="grün" and $("HeuerAmpel 1").variables["HNS"]~="grün" then $("HeuerAmpel 1").variables["HNS"]="grün" elseif HNS=="rot" and $("HeuerAmpel 1").variables["HNS"]~="rot" then $("HeuerAmpel 1").variables["HNS"]="rot" end -- Ost-West Farbaufteilung in Abhängigkeit der Animationsposition if pos<=0.11 then HOW="grün" elseif pos>0.12 and pos<=0.38 then HOW="rot" elseif pos>0.39 and pos<=0.61 then HOW="grün" elseif pos>0.62 and pos<=0.88 then HOW="rot" elseif pos>0.89 and pos<=1 then HOW="grün" else HOW="weiß" end -- Objektvariabe für Ost-West der Ampel bei Farbwechsel setzen if HOW=="grün" and $("HeuerAmpel 1").variables["HOW"]~="grün" then $("HeuerAmpel 1").variables["HOW"]="grün" elseif HOW=="rot" and $("HeuerAmpel 1").variables["HOW"]~="rot" then $("HeuerAmpel 1").variables["HOW"]="rot" end Mein Alternativvorschlag dazu ist: --[[ Ampelsteuerung in Abhängigkeit der Animationsposition "Betrieb" --]] local HNS="rot" -- Nord-Süd Richtung local HOW="rot" -- Ost-West Richtung local pos=$("HeuerAmpel 1").animations["Betrieb"].position -- Zeigerstellung pos = pos + 0.125 -- Nullpunkt verschieben pos = (pos * 100 // 1) % 50 -- in ganze Zahl wandeln und Spiegel eliminieren if (pos+1) % 25 > 2 then -- weißes Band von 24 über 0 bis 1 if pos < 25 then -- halb grün, halb rot HOW = "grün" else HNS = "grün" end end -- Objektvariabe für Nord-Süd der Ampel bei Farbwechsel setzen if $("HeuerAmpel 1").variables["HNS"] ~= HNS then $("HeuerAmpel 1").variables["HNS"] = HNS end -- Objektvariabe für Ost-West der Ampel bei Farbwechsel setzen if $("HeuerAmpel 1").variables["HOW"] ~= HOW then $("HeuerAmpel 1").variables["HOW"] = HOW end Auf Wunsch erkläre ich gerne einzelne Komponenten und ihren Sinn. Viele Grüße Götz
-
attempt to index a nil value (field 'variables')
Goetz antwortete auf jlooss Thema in Fragen zur Steuerung
Nein Tim, tut mir leid. Es liegt an der falschen Schachtelung in seinem Tabellenaufruf. So sähe er in der grafischen EV richtig aus: Aufbau: Wähle zuerst "Tabelle/Liste" Dann klick auf das Zahnrad neben "Variable" und wähle anstatt der Variablen wieder "Variable/Liste" Und wiederhole den Prozess noch ein drittes Mal. Dann hast du diese Struktur und kannst jeden Index richtig befüllen: -
attempt to index a nil value (field 'variables')
Goetz antwortete auf jlooss Thema in Fragen zur Steuerung
Du erkennst den Fehler besser, wenn du eine Zeile in Lua konvertierst. Dort steht: vehicle.deceleration = $("Ereignisse").variables["Standard-Einstellungen"].variables[vehicle.variables["ZugTyp"]]["Verzögerung"] Aber was du eigentlich haben willst, ist das hier: vehicle.deceleration = $("Ereignisse").variables["Standard-Einstellungen"]["ZugTyp"][vehicle.variables["ZugTyp"]]["Verzögerung"] Viele Grüße Götz -
Okay, dann versuche ich ein paar Wegweiser für dich aufzustellen: Es sollen nur die Taster eine Fahrstraße stellen, welche du dafür vorsiehst. Deshalb musst du sie von allen anderen unterscheiden. Dafür dient ein Schlagwort. Jeder Taster, dem du das Schlagwort "FS Taster" gibst, wird diese Aktionsliste auslösen. Und kein anderer! Da jeder Taster etwas anderes auslösen soll, müssen die Daten, welche individuell verschieden sind, an einer Stelle stehen, die dem jeweiligen Taster zugeordnet ist. Und diese Stelle bietet das Studio in Form einer Objektvariablen. Du kannst also in jedem Taster sein individuelles Datenpaket ablegen: aus diesen Paketen bedient sich die EV Wenn es im gedrückten Knopf eine Liste mit Zielen gibt und wenn der Knopf auf "ein" geschaltet wurde dann nimm jedes Element aus der Zielliste, nenne es temporär "Ziel" und rufe eine neue Funktion mit drei Argumenten auf. Die Argumente sind der gedrückte Schalter, die im Ziel gespeicherte Fahrstraße und der im Ziel gespeicherte Taster. Kurz gesagt: Bei Tastendruck sammle ich Daten aus den Objekten und bereite sie auf. Die Funktion, welche ich dann mit diesen aufbereiteten Daten aufrufe, macht die eigentliche Arbeit. Entweder stelle ich alle Ziele auf Bereitschaft. (Wenn die Taste auf "ein" gestellt wurde) Oder ich aktiviere die Fahrstraße. (Wenn die gedrückte Taste auf "aus" geschaltet wurde) Viele Grüße und meine Hochachtung, dass du dich da reindenken möchtest Götz
-
klar, das darfst du tun. Du verstehst überhaupt nicht, wie das System funktioniert. Deshalb fehlt bei dir die Hälfte. Deine Taster haben weder Schlagworte, noch Listen mit Zielen. Mein System eignet sich nicht für "blindes Abschreiben ohne Verstehen". Tut mir leid. Das muss man schon vollständig durchschauen, bevor man es auf der eigenen Anlage einsetzen kann. Ich meine das nicht böse, @rumech. Und auch nicht als Kritik. Es ist nur leider so, dass man gutes Grundlagenwissen haben muss, um diese Steuerung nachzubauen.
-
Hallo @guenter.strickmann, Nun weißt du, dass du die Videos zumindest in diesem Punkt missverstanden hast. Eine Fahrstraße erkennt, ob sie durch eine andere, aktive Fahrstraße blockiert ist. Und sie erkennt selbständig, wenn ein zuvor blockierter Weg frei wurde. Aber mehr nicht! Viele Grüße Götz
-
Du hast noch nicht verstanden, wann du welche Fahrstraße aktivieren musst und warum. Du musst lernen, verschiedene Situationen zu unterscheiden. Deine Art der Aktivierung funktioniert nur für einfache Blockstrecken. Also für die Abschnitte, in denen Gleise weder zusammengeführt, noch aufgeteilt werden. Hier hast du ein Beispiel für den Beginn einer einfachen Blockstrecke: Zwischen diesem und dem folgenden Signal liegen keine Weichen. Da kann man einfach jedes Mal, wenn das Signal auf Halt geht fordern, dass dieser Abschnitt bei nächster Gelegenheit wieder aktiviert werden soll. Denn das einzig mögliche Hindernis ist der vorausfahrende Zug, aber keiner, der von links oder rechts kommen könnte. Aber wenn zwei Wege zusammenlaufen, dann geht diese Methode nicht. Dann kann nämlich das hier passieren: Als der letzte Zug das Signal 6 passiert hatte, wurden beide Wege gleichzeitig frei. Der von Signal 11 nach Signal 6 Und der von Signal 5 nach Signal 6. Und Fahrstraßen wissen nur, ob ein Weg frei ist. Sie wissen nicht, ob der Weg gerade benötigt wird. Die Fahrtstraße, welche im Bild aktiviert wurde, ist eine zufällige Wahl. Signal 11 und Signal 5 hatten sozusagen beide eine faire Chance. Eine Fahrstraße kommt der anderen zuvor. Und damit ist die andere gesperrt, weil sie nun durch die erste Wahl blockiert ist. Da kein Zug den Weg von Signal 11 zu Signal 6 durchfährt, wird die Fahrtstraße auch nie aufgehoben. Du musst also an solchen Stellen anders vorgehen. Diese beiden Fahrstraßen (ab 11 und ab 5) darfst du nicht sofort wieder aktivieren, wenn sie frei wurden. Du musst sie dann aktivieren, wenn sie benötigt werden. Wenn also ein Zug in den Abschnitt vor Signal 11 bzw. Signal 5 einfährt. Deine Methode, immer den folgenden Abschnitt freizugeben, wenn ein Signal umschaltet, kann funktionieren, wenn du darauf achtest die Aktion nur dann auszuführen, wenn das Signal auf Halt schaltet. Denn das ist der Indikator dafür, dass gerade ein Zug am Signal vorbei fuhr. Und der will dann auch in den folgenden Abschnitt einfahren. Beispiel: Strickmann Test Alternative.mbp Viele Grüße Götz
-
In diesem Video kannst du den Mechanismus besser durchschauen:
-
Die ist klasse. Die Form der Bodenplatte passt perfekt zum Zweck. Und es macht Spaß, sich umzuschauen. Dabei sind mir dann diese Garagen aufgefallen, die selbst Zweiradfahrern etwas Geschick abverlangen.
-
Dahinter steckt das Element, welches die Wiederholungsschleife aus der Liste pickt. Eine Liste wird in der Wiederholung abgearbeitet. Element für Element. Jedes Element bekommt dann temporär den Namen, den du selbst vergibst. Standard ist Wdh. Hier habe ich Fahrstraße oder Ziele gewählt. Das vorangestellte @-Zeichen siehst du nur in der grafischen EV. Es soll dich daran erinnern, dass diese temporäre Variable das Element aus der Wiederholung enthält.
-
Ich dachte, das hätte ich (mit dem Screenshot und der roten Unterstreichung darin) schon getan. Halte im Skriptfenster die Strg-Taste gedrückt und drücke dann auf die Leertaste.
-
Hallo Gunther, Die Position eines Objekts gehört zur Eigenschaft "transformation" In Lua sieht die Befehlszeile so aus: $("Kamera").transformation.position = {x = -50, y = 20, z = 10} Das heißt, du musst eine Tabelle übergeben, welche die drei Werte für die x, y und z Position enthält. Beachte bitte, dass die Bezeichner x, y und z Kleinbuchstaben sein müssen! Viele Grüße Götz
-
Damit wartest du besser, bis der "Klick" da war. Du musst bitte erst das einfache in allen Einzelheiten verstehen, bevor du die Sache komplizierter machst. Sonst lernst du es nicht.
-
Gleise mit Bettung belasten den Rechner weniger. Die Form des Modells ist einfacher, weil nicht jede Schwelle extra ausgeformt ist.
-
Das hängt vom Aufbau der Kreuzung ab, Walter. Wenn es sich um eine DKW handelt, dann ist auch der kreuzende Teil (durch die verriegelte Stellung der DKW) mit abgesichert. Eine kreuzende aktive Fahrstraße wird erkannt. Rollmaterial in der Konfliktzone ebenfalls. Wenn es sich bei der Kreuzung um ein einzelnes Objekt mit zwei kreuzenden Gleisen (ohne Weichenfunktion) handelt, dann wird eine kreuzende aktive Fahrstraße ebenfalls erkannt. Aber Rollmaterial im kreuzenden Gleis wird nicht bemerkt. Wenn du hingegen nur zwei Gleise überkreuz verlegst, dann kann das System eventuelle Konflikte nicht selbständig erkennen.