EASY Geschrieben 24. Januar Teilen Geschrieben 24. Januar Hallo, ich mache hier mal ein neues Thema auf, das sich mit speziellen Lösungen in lua beschäftigt. Damit möchte ich versuchen das Thema etwas zu bündeln, damit es nicht im ganzen Forun verstreut ist. Für mein immer wieder verwendetes Testprojekt, habe ich mich damit beschäftigt, wie man in aneinander folgenden Fahrstraßen die nachfolgende Fahrstraße als Variable ablegen kann. Die Ausgangssituation ist ein in sich geschlossenes Kreissystem (nicht erschrecken über die Portale, sie sind fest verbunden und vereinfachen nur den Aufbau)... Das lua Skript für Schalter wird betätigt sieht so aus... -- Anschlußfahrstraßen finden -- FS1key = Schlagwort FS1 (Ausgangs-FS in die die Liste eingetragen wird) -- FS2key = Schlagwort FS2 (mögliche Anschluss-FS) -- routelist = Name der Liste für Anschluss-FS -- sort = Tabelle nach Namen sortieren (Namen müssen eindeutig [nicht doppelt] sein!) local function FindNextRoute(FS1key,FS2key,routelist,sort) local fs1a=layout:getRoutesByKeyword(FS1key) -- FS1 einlesen local fs2a=layout:getRoutesByKeyword(FS2key) -- FS2 einlesen for _,fs1 in ipairs(fs1a) do -- Schleife FS1 local Liste={} -- Ausgabeliste for _,fs2 in ipairs(fs2a) do -- Schleife FS2 local wp1=fs1.waypoints -- Wegpunkte FS1 local wp2=fs2.waypoints -- Wegpunkte FS2 if wp1[#wp1]==wp2[1] then -- letzter Wegpunkt FS1 = erster Wegpunkt FS2? table.insert(Liste,fs2) -- wenn ja, FS2 in Liste eintragen end end if #Liste>0 then -- Einträge in Liste vorhanden? if sort and #Liste>1 then -- sortieren und Einträge in Liste mindestens 2 local function sortfunction(a,b) return a.name < b.name end -- Sortierfunktion table.sort(Liste,sortfunction) -- Sortieren ausführen end fs1.variables[routelist]=Liste -- Liste als variable in FS1 schreiben end end end --========================================== FindNextRoute("Ausfahrt HFS","Fahrstrecken","Strecken",false) FindNextRoute("Fahrstrecken","Ausfahrt Strecken","Ausfahrten",false) FindNextRoute("Ausfahrt Strecken","HFS","Einfahrten",true) FindNextRoute("HFS","Ausfahrt HFS","Ausfahrten",false) ... die Auswertung in der Funktion "FindNextRoute" basiert darauf, daß der letzte Wegpunkt einer Fahrstraße der erste Wegpunkt einer direkt nachfolgenden Fahrstraße ist (Das Skript funktioniert nur unter dieser Voraussetzung!) Das Ergebnis sieht dann (exemplarisch für jede Fahrstraßengruppe) so aus... ...Anmerkung sort=false ... sort=true _____________________________________________________________________________________________________________________________________ Prinzipiell kann man auch ein benutzerdefiniertes Ereignis daraus machen... -- Anschlußfahrstraßen finden -- P1_Schlagwort_FS1 = Schlagwort FS1 (Ausgangs-FS) -- P2_Schlagwort_FS2 = Schlagwort FS2 (mögliche Anschluss-FS) -- P3_Listenname = Name der Liste für Anschluss-FS -- P4_sortiert = Tabelle nach Namen sortieren local fs1a=layout:getRoutesByKeyword(P1_Schlagwort_FS1) -- FS1 einlesen local fs2a=layout:getRoutesByKeyword(P2_Schlagwort_FS2) -- FS2 einlesen for _,fs1 in ipairs(fs1a) do -- Schleife FS1 local Liste={} -- Ausgabeliste for _,fs2 in ipairs(fs2a) do -- Schleife FS2 local wp1=fs1.waypoints -- Wegpunkte FS1 local wp2=fs2.waypoints -- Wegpunkte FS2 if wp1[#wp1]==wp2[1] then -- letzter Wegpunkt FS1 = erster Wegpunkt FS2? table.insert(Liste,fs2) -- wenn ja, FS2 in Liste eintragen end end if #Liste>0 then -- Einträge in Liste vorhanden? if P4_sortiert and #Liste>1 then -- sortieren und Einträge in Liste mindestens 2 local function sortfunction(a,b) return a.name < b.name end -- Sortierfunktion table.sort(Liste,sortfunction) -- Sortieren ausführen end fs1.variables[P3_Listenname]=Liste -- Liste als variable in FS1 schreiben end end mit diesen Parametern.. Anmerkung: den Prefix "Px" habe ich gesetzt damit die Variablen in dieser Reihenfolge aufgelistet werden (das MBS sortiert alphabetisch) Damit können die Parameter auch in der grafischen EV eingetragen werden... Der Vollständigkeit halber noch das Projekt... 2025-01-23-Anschlußverbindungen suchen.mbp ... mit extra 2 Schaltern Gruß EASY Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
EASY Geschrieben 25. Januar Autor Teilen Geschrieben 25. Januar (bearbeitet) Hallo, aus einer PN-Unterhaltung ergab sich, daß es praktisch wäre die Spurlängen von Gleisen auszulesen. (In diesem Fall Längensynchronisation mit TrainController) So ist bei mir die Idee entstanden, wie man das (nach meiner Meinung) einfach gestalten könnte... Meine Lösung ist mit einem Signal.... ... das Signal muß einen Gleiskontakt haben (was bei den meisten Signalen der Fall ist). Außerdem sollte es kein Signal (langer) Animation sein (z.B. die Formsignale), da das Ereignis "Signal schaltet" erst nach Ablauf der Animation im Ereignisprotokoll erscheint (quasi eine Zeitverzögerung). Gut geeignet sind Lichtsignale. Beim Signal habe ich in den Einstellungen die Kontaktabstände so gewählt, daß das Signal und der Gleiskontakt übereinander liegen... ... muß nicht sein, aber ich finde es praktischer um zu sehen, wo man sich gerade befindet. Wenn das Signal an einem Gleis einrastet, wird automatisch eine Verknüpfung zu dem Gleis erstellt... Wenn man nun diese Verknüpfung beim Signal abfragt, hat man das Gleis und kann dessen Paramater abfragen... In der EV ist die Aktion "Signal schaltet" -> Skript ausführen... --[[ Spurlängen von Gleisen auslesen. Das Meßsignal ist ein beliebiges Signal mit Gleiskontakt. Wenn das Signal (Gleiskontakt) an einem Gleis einrastet wird eine Verknüpfung zum Gleis erstellt. --]] local gleis=signal.link -- verknüpftes Gleis abfragen. if gleis~=nil then -- Verknüpfung vorhanden? print(gleis.name.." Spurlängen") for i=0,gleis.routeCount-1 do -- Für alle Spuren (Zählung beginnt bei 0!) print("Spur "..i,gleis.routes[i].length) end print("==============================") end ... und so sieht dann das Ergebnis aus, wenn man das Signal auf ein Gleis setzt und umschaltet (Doppelklick)... Zum ausprobieren oder als Vorlage... Spurlänge messen 01.mbp Gruß EASY Bearbeitet 25. Januar von EASY Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
EASY Geschrieben 26. Januar Autor Teilen Geschrieben 26. Januar (bearbeitet) Hallo, ich habe mich (als spontane Idee) noch etwas mit dem Thema Zuganzeiger und Kupplungen beschäftigt... ... so sieht es aus wenn der Zug von links nach rechts eingefahren ist... (gelb=Fahrzeug mit Antrieb) ... und so von rechts nach links... ... alle (jeweils hinteren) Kupplungen sind ein... Kupplung über entsprechenden Anzeiger aus... Solange die Anzeigeleiste nicht überschrieben wird und der Zug existiert, kann über die Anzeigeleiste an jedem beliebigen Punkt auf der Strecke auf die Kupplungen zugegriffen werden... ... dies war der Grundgedanke des Projektes. 2025-01-26-Zuganzeiger + Kupplungsfunktion.mbp Gruß EASY Bearbeitet 26. Januar von EASY Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
EASY Geschrieben 26. Januar Autor Teilen Geschrieben 26. Januar Hallo, ich habe die .mbe im vorhergehenden Beitrag ausgetauscht, war noch ein kleiner Denkfehler drin... Gruß EASY Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
EASY Geschrieben 28. Januar Autor Teilen Geschrieben 28. Januar Hallo, eine PN Anfrage war, ob sich auch die Länge einer Fahrstraße ermitteln läßt. Als Aktion auf das Ereignis "Fahrstraße wird aktiviert/deaktiviert" -> Skript ausführen... --[[ Länge einer Fahrstraße ermitteln. Ausgewertet wird die Aktivierung der Fahrstraße, da dann alle Weichen richtig gestellt sind. Hinweis: Die Länge bezieht sich auf ganze Gleise! (es wird nicht berücksichtigt, wenn z.B. das Anfangssignal in der Mitte eines Gleises liegt und deshalb nur die halbe Länge gültig ist) * Index Spur beginnt bei 0 ** Kreuzungen oder Kreuzbögen können mehr als eine aktive Spur haben, (da sie nicht als Weichen definiert sind). Da in der Regel beide Spuren gleich lang sind, wird nur eine gewertet. *** für realen Betrieb Zeile löschen! --]] if state then -- Fahrstraße wird aktiviert print("Fahrstraße: "..route.name) -- Fahrstraße ausgeben local l=0 -- Gleislänge local n=0 -- Anzahl der Gleise local Gleise=route.tracks -- alle zugehörigen Gleise auslesen for _,g in ipairs(Gleise) do for i=1,g.routeCount do -- alle Spuren if g.routes[i-1].active then -- aktive Spur (z.B. bei Weichen)* l=l+g.routes[i-1].length -- Länge der Spur addieren n=n+1 break --** end end end print("Länge: "..l) print("Gleise: "..n) print("==============================") route.active=false -- Fahrstraße wieder deaktivieren. *** end ergibt folgendes Ergebnis im Ereignisprotokoll... Gruß EASY Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Hawkeye Geschrieben 29. Januar Teilen Geschrieben 29. Januar (bearbeitet) Hallo @EASY, nettes Skript. vor 12 Stunden schrieb EASY: Hinweis: Die Länge bezieht sich auf ganze Gleise! (es wird nicht berücksichtigt, wenn z.B. das Anfangssignal in der Mitte eines Gleises liegt und deshalb nur die halbe Länge gültig ist) Um das mal zu verdeutlichen. Ermittelt wird die Länge der markierten Gleise. Die Fahrstraße geht aber nur von Gleiskontakt zu Gleiskontakt der Signale. Da ist dann doch eine erhebliche Abweichung von der rechnerischen Ermittlung der Länge einer Fahrstraße zum tatsächlichen Ist-Wert vorhanden. Es macht sich sicherlich keiner Gedanken darüber, an welcher Stelle auf einem Gleis der Gleiskontakt eines Signals steht. Die Länge einer Fahrstraße, bzw. interessanter wäre der Fahrweg bei Straßen, existiert im Programm. Wir können nur nicht darauf zugreifen. VG, Hawkeye Bearbeitet 29. Januar von Hawkeye Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
EASY Geschrieben 29. Januar Autor Teilen Geschrieben 29. Januar Hallo @Hawkeye ich nehme das was (derzeit) geht... vor 8 Stunden schrieb Hawkeye: Ermittelt wird die Länge der markierten Gleise. ... träume von den was ideal wäre... vor 8 Stunden schrieb Hawkeye: Die Länge einer Fahrstraße, bzw. interessanter wäre der Fahrweg bei Straßen... ... und hoffe auf Veränderung. vor 8 Stunden schrieb Hawkeye: ... existiert im Programm. Wir können nur nicht darauf zugreifen. Gruß EASY Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Hawkeye Geschrieben 29. Januar Teilen Geschrieben 29. Januar 😂👍 Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
EASY Geschrieben 4. Februar Autor Teilen Geschrieben 4. Februar Hallo, aus Neugier habe ich mich mit der Ansteuerung der GBS0 Bausteine beschäftigt... Bei der 3-Wegeweiche hatte ich mich schon gefreut, daß es einen direkten Zusammenhang zwischen Weichenstellung und Signalstellung GBS0 gibt... ... 2*WS+1 für reserviert und 2*WS+2 für belegt (WS=Weichenstellung) ... bei der 2-Wegeweiche funktionierte die Formel leider schon wieder nicht mehr... Da ich die Formel beibehalten wollte, habe ich dem GBS0 Baustein eine Tabelle mit auf den Weg gegeben... ... die das Ergebnis der Weichenstellung entsprechend anpasst... Damit es einen Zusammenhang von GBS0 und Weiche gibt (zum Auslesen der Weichenstellung) habe ich im GBS0 eine Verknüpfung zur Weiche gesetzt... Die entsprechenden GBS0 Bausteine für eine Fahrstraße... ... habe ich in einer Variablen "GBS0" in der Fahrstraße in einer Liste hinterlegt... Das benutzerdefinierte Ereignis für die GBS0 Ansteuerung sieht dann so aus... --[[ Ansteuerung GBS0 Bausteine --]] local gba=FS.variables["GBS0"] -- GBS0 Bausteine in der FS-Variablen "GBS0" local st=Anzeige -- 1=reserviert, 2=belegt if FS.state==0 then -- FS wurde aufgelöst? for _,gb in ipairs(gba) do -- alle GBS0 der FS Bausteine.. gb.state=0 -- ..Anzeige 0=frei end else for _,gb in ipairs(gba) do -- alle GBS0 der FS Bausteine local l=gb.link -- Verknüpfung GBS0 Baustein if l~=nil then -- Verknüpfung vorhanden (Weiche)? local s1=l.state -- Weichenstellung auslesen if gb.variables["cs"]~=nil then -- Variable cs für Korrektur Weichenstellung vorhanden? s1=gb.variables["cs"][s1] -- Weichenstellung korrigieren end gb.state=2*s1+st -- Anzeige GBS0 Baustein in Abhängigkeit von Weichenstellung setzen else -- -- Verknüpfung nicht vorhanden (keine Weiche)! gb.state=st -- Anzeige GBS0 Baustein setzen end end end ... und der Aufruf für Fahrstraße wird aktiviert/deaktiviert sieht so aus... --[[ Fahrstraße Ausfahrt HFS Anzeige=1 -> reserviert Anzeige=2 -> belegt --]] $("FS GBS0 (B)"):invoke(2,route) Der Vollständigkeit halber noch die Versuchsanlage. 2024-02-04-Ansteuerung GBS0-Bausteine.mbp Gruß EASY Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Hawkeye Geschrieben 4. Februar Teilen Geschrieben 4. Februar Hallo @EASY, hab mich auch schon daran versucht und fand, das der einfachste Weg die FS im GBS darzustellen über Variablen in den Gleisen führt, die die GBS-Bausteine enthalten. Dadurch entfällt die aufwendige Erstellung der Listen in den Fahrstraßen. Die Gleise einer Fahrstraße können per Route.tracks eingelesen werden. Aber viele Wege führen nach Rom, deshalb bin ich mal auf deine Lösung für eine DKW gespannt. VG, Hawkeye Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
EASY Geschrieben 4. Februar Autor Teilen Geschrieben 4. Februar Hallo, vor 1 Stunde schrieb Hawkeye: deshalb bin ich mal auf deine Lösung für eine DKW gespannt. folgt den gleichen Prinzip... GBS DKW.mbp Zeigst Du mir noch deine Lösung? Gruß EASY Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Hawkeye Geschrieben 4. Februar Teilen Geschrieben 4. Februar vor 36 Minuten schrieb EASY: Zeigst Du mir noch deine Lösung? Klar. Angefangen hatte ich damit alle Weichentypen mit GBS-Bausteinen und Variablen zu füttern. Angewandt auf ein anderes Gleissystem und mit EV sieht das bisher so aus. GBS schalten per Fahrstraßen.mbp Ein paar Optimierungen sind sicherlich noch möglich. VG, Hawkeye Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
EASY Geschrieben 4. Februar Autor Teilen Geschrieben 4. Februar Hallo @Hawkeye, dein Lösungsansatz bietet natürlich mehr die Möglichkeit der Anzeige im Detail und ich werde mich (da neugierig) auch mal mit diesem Lösungsansatz beschäftigen. ( Immerhin eine "Übersetzungstabelle" habe ich in deinen Weichen auch gefunden...) Gruß EASY Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Hawkeye Geschrieben 4. Februar Teilen Geschrieben 4. Februar vor 13 Minuten schrieb EASY: und ich werde mich (da neugierig) auch mal mit diesem Lösungsansatz beschäftigen. Schön, vielleicht findest du ja die ein oder andere Verbesserungsmöglichkeit. VG, Hawkeye Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
EASY Geschrieben 7. Februar Autor Teilen Geschrieben 7. Februar (bearbeitet) Hallo, Beim Umgang mit GBS Bausteinen gibt es das Problem, daß man sehr schnell viele Objekte hat, die den gleichen Namen haben. Auf der Suche nach Lösungen bin ich auf diese Anlage (12FBFA21-6D56-444E-A59B-E7A4655EFE2D) von @Goetz gestoßen in der eine prinzipielle Lösung des Problems steckt. Ich habe mir die Idee also nur abgeschaut und mir überlegt was man noch etwas verbessern könnte. Die Ausgangslage... ... und viele gleiche Namen... In der beigefügten Beispielanlage: ...zuerst werden zwei Listen angelegt... ... zum Ausfüllen der Liste (z.B. Bahnhof unten)... ... alle entsprechenden GBS Bausteine markieren... und Strg+c (kopieren). Die Liste "GBS Bahnhof unten" -> "Bearbeiten" und mit Strg+v (Einfügen). ... desgleichen für "GBS Bahnhof oben" Das Benutzerdefinierte Ereignis "Namen setzen (B)" legt ein Raster an... ...und vergibt die Namen nach Zeilen und Spalten (und der Anzahl der Spuren...) Ich habe das Skript dahingehend erweitert, daß es auch für andere Objektreihen anwendbar ist, bei denen die Grundform nicht quadratisch ist, z.B. die "Abstellfläche" 4EBBA477-BB3F-4C8F-9AAF-2CC7AB6E19EF... So sieht der Aufruf von "Namen setzen (B)" aus (mit Beschreibung der Parameter)... ... ergibt für die Abstellflächen... Die Anlage mit dem Skript... Objektreihen Namen 01.mbp Gruß EASY Bearbeitet 7. Februar von EASY Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Paul5102 Geschrieben 8. Februar Teilen Geschrieben 8. Februar Allein die Idee ist schon genial! Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
EASY Geschrieben 17. Februar Autor Teilen Geschrieben 17. Februar (bearbeitet) Hallo, der Ursprung dieses Versuches liegt hier. @bigrala wollte Loks aus einem Ringlokschuppen entlassen, die entweder das Schlagwort "Dampf" oder "Diesel" haben, und es sollte die Möglichkeit bestehen die Lok entweder in den Schuppen zurück zu fahren oder sie im Kreis fahren zu lassen... Die bisherigen Lösungsansätze arbeiten ohne Fahrstraßen, weshalb ich mich für eine (Teil-) Lösung mit Fahrstraßen entschieden habe. Eine weitere Problemstellung war, wie man eine Lok in der Mitte der Drehscheibe anhalten kann. Bei einer einzelnen Lok ist es kein Problem, da man mit einem Gleiskontakt arbeiten kann, der auf "Mitte" reagiert. Bei einer Lok mit Tender, funktioniert dies aber nicht, da für das MBS die Mitte der Lok gültig ist. Ich bin es mathematisch angegangen: Wenn die Lok (oder Lok+Tender) den Gleiskontakt betritt, muß noch um eine halbe Zuglänge weiter gefahren werden damit der Zug mittig zum stehen kommt. Bei bekannter Geschwindigkeit, kann die Bremszeit berechnet werden... --[[ * -> sonst Probleme, wenn Loklänge knapp auf Drehscheibe passt, Lok hält zu früh an! --]] if not deferredCall then local s=layout:getVehicleGroupLength(vehicle)/2 -- Halbe Länge Zugverband (evtl. Lok+Tender) local v=vehicle.currentSpeedAbs -- Lokgeschwindigkeit local t=s*3.6/v -- Bremszeit ermitteln für halbe Länge Zugverband vehicle.autoDeceleration=false -- Automatisches Bremsen deaktivieren (siehe oben)* defer(t,"vz1") -- Verzögerung mit Bremszeit elseif deferredCall=="vz1" then -- Lok in der Mitte der Drehscheibe anhalten vehicle.currentSpeed=0 vehicle.autoDeceleration=true -- Automatisches Bremsen wieder aktivieren Hinweis: Da der Versuchsaufbau nicht weiter abgesichert ist, werden die Auswahltaster ausgeblendet, wenn 2 Züge aus dem Schuppen angefordert wurden (2 Strecken, 2 Einfahrten)... Anmerkung: Da die Steuerung in lua geschrieben ist, wollte ich den Thread von @bigrala damit nicht "belasten"... Ringlokschuppen 1c.mbp Gruß EASY Bearbeitet 17. Februar von EASY Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Hawkeye Geschrieben 17. Februar Teilen Geschrieben 17. Februar vor 18 Minuten schrieb EASY: Ich bin es mathematisch angegangen: Wenn die Lok (oder Lok+Tender) den Gleiskontakt betritt, muß noch um eine halbe Zuglänge weiter gefahren werden damit der Zug mittig zum stehen kommt. Bei bekannter Geschwindigkeit, kann die Bremszeit berechnet werden... Hallo Easy, schöner Ansatz. Solche Ansätze versuche ich schon eine ganze Weile im virtuellen Straßenverkehr anzuwenden. Da ist das Problem noch etwas komplexer. An einer Ampel z.B. muss jeder "virtuelle" Fahrer eines Fahrzeuges beim Umschalten von Grün auf Gelb eine Entscheidung in Abhängigkeit seiner Geschwindigkeit und dem aktuellen Abstand zur Ampel treffen. Soller er bremsen, um noch rechtzeitig an der Haltelinie der Ampel zum Stehen zu kommen oder soll er beschleunigen, um vor dem Umschalten der Ampelphase von Gelb auf Rot noch über die Ampel zu huschen. Dies ist allein mit Gleiskontakten und den mehrspurigen Straßen im virtuellen Straßenverkehr nicht realisierbar. Über deinen Ansatz in Verbindung mit separaten "Bremsspuren" (im Bild: rot) auf die in der EV zugegriffen werden kann, schon. Hast du nicht Lust, dich auch mal mit solchen Aufgabestellungen zu beschäftigen? VG, Hawkeye Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Hawkeye Geschrieben 17. Februar Teilen Geschrieben 17. Februar vor 49 Minuten schrieb EASY: local v=vehicle.currentSpeedAbs -- Lokgeschwindigkeit Hallo Easy, in deinem Skript fehlt aus meiner Sicht eine Anweisung. Das Skript dürfte nur richtig ausgeführt werden, wenn der Zug eine konstante Geschwindigkeit hat. Befindet er sich jedoch noch in einem Beschleunigungsvorgang wird er bei einer zeitverzögerten Ausführung nicht an der geplanten Stelle zum Stehen kommen. Ich unterbreche deshalb immer vor der Zeitverzögerung den Beschleunigungsvorgang mit der Anweisung. VG, Hawkeye Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
prinz Geschrieben 17. Februar Teilen Geschrieben 17. Februar vor 3 Stunden schrieb EASY: Bei einer Lok mit Tender, funktioniert dies aber nicht, da für das MBS die Mitte der Lok gültig ist. Hallo @EASY , Nicht ganz richtig. Als Mittelpunkt eines Zugverbandes gilt immer die Zugmitte, also bei Lok mit Tender die Mitte der Gesamtlänge. Die leichte Verschiebung nach rechts ergibt sich aus den Verzögerungswerten der Lok. Das Problem in bigralas BW ergibt sich durch das automatische Bremsen der Lok, da auf der gegenüberliegenden Seite von z.B. Gleis45 kein Gleis an der Drehscheibe angeschlossen ist und so die Lok mit Abstand zum Gleisende stehen bleibt (und somit nicht den Gleiskontakt erreicht). Aber trotzdem: Schöne Lösung, die man vielleicht in anderem Kontext gebrauchen kann. Viele Grüße, Wolfgang Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Roter Brummer Geschrieben 17. Februar Teilen Geschrieben 17. Februar (bearbeitet) Hallo zusammen, vor 44 Minuten schrieb prinz: Die leichte Verschiebung nach rechts ergibt sich aus den Verzögerungswerten der Lok. Diese tritt nicht mehr auf, wenn man in der EV die Geschwindigkeitsregulierung auf den "Ist"-Wert einstellt. vor 44 Minuten schrieb prinz: und so die Lok mit Abstand zum Gleisende stehen bleibt (und somit nicht den Gleiskontakt erreicht). Das kann umgangen werden, wenn in der Lok die automatische Verzögerung abgeschaltet wird. Dann fährt die Lok bis ans Gleisende. Das sieht in der grafischen EV dann so aus: Im Lua Script steht das: vehicle.autoDeceleration = false local v = vehicle if v:hasEngine() then v.currentSpeed = 0 end HG Brummi Bearbeitet 17. Februar von Roter Brummer Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Hawkeye Geschrieben 17. Februar Teilen Geschrieben 17. Februar (bearbeitet) vor 52 Minuten schrieb Roter Brummer: Diese tritt nicht mehr auf, wenn man in der EV die Geschwindigkeitsregulierung auf den "Ist"-Wert einstellt. V.currentSpeed = 0 ?? 🤔 Als „sanftes“ Abbremsen kann man das aber nicht bezeichnen. Widerspricht irgendwie den Gesetzen der Massenträgheit.😂 VG, Hawkeye Bearbeitet 17. Februar von Hawkeye Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Roter Brummer Geschrieben 17. Februar Teilen Geschrieben 17. Februar Eine Lok fährt ja auch nicht 50km/h oder mehr auf eine Drehscheibe und wenn man vorher sanft auf 1km/h abbremst. fällt es garantiert nicht auf. Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Hawkeye Geschrieben 17. Februar Teilen Geschrieben 17. Februar vor 4 Minuten schrieb Roter Brummer: und wenn man vorher sanft auf 1km/h abbremst Ok, dann fällt die Kohle auch nicht mehr aus dem Tender.😉 Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
EASY Geschrieben 17. Februar Autor Teilen Geschrieben 17. Februar Hallo, vor 1 Stunde schrieb prinz: Nicht ganz richtig. Als Mittelpunkt eines Zugverbandes gilt immer die Zugmitte, also bei Lok mit Tender die Mitte der Gesamtlänge. ... oh... hatte ich erst gar nicht ausprobiert. Danke für den Hinweis. Gruß Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
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