Jump to content

Hawkeye

Mitglieder
  • Gesamte Inhalte

    967
  • Benutzer seit

  • Letzter Besuch

Beiträge erstellt von Hawkeye

  1. Hallo Zusammen, 

    ich habe mich mal wieder dem Straßenverkehr gewidmet und eine allgemeine Steuerung für einen kleinen Kreisverkehr entwickelt. 

    Screenshot2024-02-22163310.thumb.jpg.34f72c136e8b9cdd0c8cb3c9796bba2a.jpg

    Obwohl die Anlage eigentlich recht flüssig läuft, kommt es immer mal wieder zu kleinen Aussetzern, weil die Fahrer sich nicht entsprechend der Verkehrsregeln verhalten. :D

    Screenshot2024-02-22162429.thumb.jpg.8c08fb2ff7f63c015fff4eff2ba91f79.jpg

    Oder sich keiner traut loszufahren. >:(

    Screenshot2024-02-22163602.thumb.jpg.ee7fe2e605999971a07cba668781ea8d.jpg

    Um solche Situationen aufzulösen, ist in jedem Kreisverkehr ein Schalter, der die Fahrzeuge wieder beschleunigt. 

    Kreisverkehr klein V-01.mbp

    Bemerkung: Für Sattelschlepper ist der kleine Kreisverkehr nicht geeignet. 

    Viel Spaß, 

    Hawkeye

  2. vor 56 Minuten schrieb EASY:

    .. für die Spur über die Brücke mußt Du also nur beim Typ "Virtuell (Mitte,Spur)" auswählen9_9...

    Hallo Easy, 

    bzw. das von mir als Spur in Blender definierte Objekt, dann gehts. 

    Screenshot2024-02-20172026.thumb.jpg.b13c22fda1e603305c14e80432003975.jpg 

    Mit dem als Drehpunkt definierten Objekt geht es eben nicht. Screenshot2024-02-20171955.thumb.jpg.1ebfc1e3c8144351cf043ab8bfe06416.jpg 

    Im 3D-Modelleditor habe ich sie dann auch mit der in Blender vergebenen Bezeichnung gefunden. (y)

    Screenshot2024-02-20172231.thumb.jpg.e9ba2ab765b006b060bbe2907aeb3c63.jpg

    Und die 90°-Weiche funktioniert. :D

    Screenshot2024-02-20172424.thumb.jpg.5e7eb1763943eeeda98667fdaa045d94.jpg

    Screenshot2024-02-20172437.thumb.jpg.b59d423d26b6e8421ba974566b1aecc2.jpg

    Screenshot2024-02-20172408.thumb.jpg.da490f42446204068630ca6a94e4a632.jpg

    Da die Position linear verschoben wird, wären zwar ein paar Zwischenschritte erforderlich, das spielt beim Testen aber erstmal keine Rolle.  

    Was fehlt sind nur noch Kleinigkeiten, wie ein MODELL!:/ Aber die Funktionsweise habe ich jetzt verstanden, danke @EASY und @Neo.

    VG,

    Hawkeye

  3. Hallo @EASY

    durch Brummi's Versuche habe ich mich an deine schönen Klappbrücken erinnert. Hier wird ja auch ein Gleis um eine nicht mittige Drehachse bewegt.

    Hier bewegt sich die Lok auch mit. (Natürlich gut gesichert, sonst würde sie ja runterfallen. :D ) 

    Screenshot2024-02-20113856.thumb.jpg.e02b2a934c34e91346dce367f6dd35dd.jpg

    Wie hast du denn damals diese Verschiebung der virtuellen Spur zur Drehachse hingekriegt? 

    Wenn ich das versuche, wird im 3D-Modelleditor, wie auch von Brummi beschrieben, die virtuelle Spur mittig in den Drehpunkt gelegt und keine Ausricht- oder Verschiebemöglichkeit angeboten.

    Screenshot2024-02-20113532.thumb.jpg.28d645152d65221a0e3925dc48bc394a.jpg

    Gibt es da einen Trick? 

    Übrigens,

     Screenshot2024-02-20113950.thumb.jpg.287f5f8d4bae3a8e9354bdca6deca548.jpg

    Screenshot2024-02-20114012.thumb.jpg.9a814f4a4a8e0a96add46076079cbe9c.jpg

    die Übergänge zu den Anschlussgleisen sind etwas holprig. 

    VG,

    Hawkeye

  4. Hallo Brummi,

    vor 4 Stunden schrieb Roter Brummer:

    Hat jemand eine Idee, wie das Problem gelöst werden kann

    Ich versuch es mal.😁

    vor 4 Stunden schrieb Roter Brummer:

    Ich habe auch schon ausprobiert, diese Drehspur so kurz zu halten, dass sie nur bis an das linke Ende der Drehbühne geht und eine zusätzliche Spur bis zum rechten Rand hinzugefügt.

    Die Drehspur so kurz halten, das ihr Mittelpunkt der Drehpunkt ist.

    Dieses Drehgleis bekommt einen CP_Target im Mittelpunkt, der auch die Drehbewegung mitmacht.

    Die zusätzliche erforderliche Spur bis zum Rand wird ein extra Objekt mit einem CP_Source im Drehpunkt des Drehgleises. (als Variation?)

    In etwa so: 

    Screenshot2024-02-19194943.thumb.jpg.5751d8b8b930bef4ffa4038c6a2dcee1.jpg

    Screenshot2024-02-19194835.thumb.jpg.9bf75ad88b3ade1f60875be0e33715bf.jpg

    VG,

    Hawkeye

  5. vor 44 Minuten schrieb AndreasWB:

    Für das Anlegen des Splines ist es wichtig zu erwähnen, daß dieses am noch nicht überhöhten Gleis ausgerichtet wird. Somit stehen später die Masten automatisch gerade.

    Hallo Andreas, 

    Screenshot2024-02-19173321.thumb.jpg.4a55499e0407ce837f2b5a770daf4ed7.jpg

    bei mir folgt die Oberleitung in der Kurve dem roten Spline. Klar, dieser muss ohne Neigung sein. Hätte ich auch noch hinzufügen können, danke.  

    Die Gleisneigung wird dann ganz zum Schluss eingestellt. 

     VG,

    Hawkeye

    Screenshot 2024-02-19 173628.jpg

  6. Hallo @AndreasWB,

    in der Anlage in diesem Beitrag ist das Fahrzeug auch in der Mitte der Platte vorhanden. 

    Diese Testanlage hatte ich schon in V6 erstellt und auch da hat die Höhe des Pantografen an dem Fahrzeug schon nicht gepasst. 

    Ich habe das Fahrzeug trotzdem wegen der Skala am Pantografen eingesetzt. Bei entsprechender Anordnung der Kameras für die rechte/ linke Auslenkung spielt der Kontakt zur Oberleitung aber keine Rolle. Wichtig ist es 2 Kameras zu verwenden, da der Blickwinkel aus der Gleisachse die Messung verfälscht.

    Screenshot2024-02-19164132.thumb.jpg.b99cc42fda1ab38d7419884c40b0d3bd.jpg

    VG,

    Hawkeye

  7. Hallo Easy, 

    vor 14 Stunden schrieb EASY:
    gk:gsub("[^-]+",function(c) table.insert(a,c) end)--* / **(a)

    Wow, das geht über meinen Horizont und übersteigt meine Kenntnisse in Lua!  :$

    vor 14 Stunden schrieb EASY:
    Achtung: Mit diesem Verfahren liegt die Referenzzahl im Namen des Gleiskontaktes!
    -> der Name darf im MBS Projekt nur einmal vorkommen!

    Danke für den Hinweis, deshalb ist mir diese Variante zu unsicher. Dann kann man die Kreuzung mit den Gleiskontakten nicht kopieren, ohne alle Bezeichnungen zu überarbeiten. Ich favorisiere deshalb deine zweite Variante mit Übergabe einer Nummer. 

    Screenshot2024-02-19094538.thumb.jpg.ffda4c831779537a02939cee035ef346.jpg

    Funktioniert super. 

    Screenshot2024-02-19095430.thumb.jpg.c3ed1da9478640f09ca9d20039fb0ebf.jpg

    Wieder was dazu gelernt. Nochmals danke. 

    Damit lässt sich doch was anfangen. :D

    VG, 

    Hawkeye 

  8. Hallo Easy, 

    vor 18 Minuten schrieb EASY:

    .. eine kleine Demoanlage zu Deinem Anliegen...

    super, vielen Dank. :)  Perfektes Ergebnis (y) 

    vor 19 Minuten schrieb EASY:

    Anmerkung: Ich habe das Ereignis allen 4 Gleiskontakten zugeordnet (sinnvoll wäre evtl. mit Schlagworten zu arbeiten)...

    Ich baue es mir als function() für ein Skript-Ereignis um, dann kann ich es beliebig einsetzten. 

    VG, 

    Hawkeye

     

  9. Hallo @EASY,

    diese Möglichkeit gibt es noch nicht lange.  siehe WIKI 

    Version 8.5.4.0 vom 21.08.2023

    Ereignisverwaltung

    • Erweiterung der Wiederholung "Für alle Fahrzeuge in einem Zug/Fahrzeugverbund" um eine zusätzliche Ausrichtung der einzelnen Fahrzeuge relativ zur Fahrtrichtung. Damit können mit nur wenigen Befehlen Fahrzeugtüren auf den richtigen Seiten geöffnet werden.
    • Zugriff auf die Portal-Verbindung per EV
    • Return-Werte von benutzerdefinierten Ereignissen werden in Lua an die aufrufende Funktion zurückgegeben
    • Die Schriftgröße der Aktionen/Lua-Skripte kann in der EV geändert werden
    • Eine neue Steuerschnittstelle auf JSON-RPC-Basis und Integration in die EV

     

    Vielleicht musst du die Variable "a" im Ereignis erst als Liste definieren und dann das benutzerdefinierte Ereignis zuweisen.

    local a={}
    a = $(
    "Benutzerdefiniert"):invoke()

    print(#a)

     

    VG,

    Hawkeye    

  10. vor 19 Minuten schrieb EASY:

    ... dies wäre allerdings eine andere Reihenfolge bei GK-3 als Du angegeben hast.

    vor 3 Stunden schrieb Hawkeye:

    GK-3: Rückgabe in der Reihenfolge 4; 3; 2; 1

    Hast Du Dich da vertippt oder muß es die von Dir angegebene Reihenfolge sein?

     

    Hallo Easy,

    Du hast natürlich recht, da habe ich mich verschrieben. 🙄  Bei GK- 3 ist die Folge 4,1,2,3 das richtige Ergebnis.

    Aber genau um solche Fehler geht es auch. Wie schnell baut man beim stupiden Kopieren der Listen und Ändern der Reihenfolge logische Fehler ein, die man dann nur sehr schwer identifizieren kann. 😊

    Super gemacht, danke. 👍👍👍😃
     

    Ich finde, das solche kleinen Funktionen für Listen sehr hilfreich sein können.

    @Goetz hatte mal eine ähnliche Funktion zum Umkehren einer Liste geschrieben die aus 1,2,3,4 dann 4,3,2,1 macht. Diese ist auch sehr hilfreich.

    VG,

    Hawkeye

  11. vor 20 Stunden schrieb EASY:

    ich wollte hier spezielle Lösungsansätze in lua vorstellen

    Hallo Easy, 

    nimmst du denn Aufträge an? 😉 Ich versuche es einfach mal 😂

    Eine nützliche Funktion wäre die Neusortierung einer Liste ab einem bestimmten Platz in der Liste.

    Beispiel: Ein Kreisverkehr oder eine Kreuzung gleichberechtigter Straßen (Rechts vor Links-Regel) hat an jeder Ein- und Ausfahrt Gleiskontakte die in Listen die Vorfahrtsregeln (Objekte sind Gleiskontakte) enthalten. In den Listen der Gleiskontakte sind die gleichen Objekte vorhanden. Die Listen unterscheiden sich nur in einer Reihenfolge, wie die Objekte in den Listen stehen müssen. Damit nicht in jedem Gleiskontakt eine Liste gespeichert werden muß, wäre ein Funktion nützlich, die anhand eines Parameters der vom Gleiskontakt gesetzt wird, nur auf eine Liste zurückgreift und die Liste in der gewünschten Reihenfolge sortiert zurückgibt. So das die Liste in der Kreuzung existiert und die Gleiskontakte über diese Funktion anhand ihres Parameters die Liste neu sortiert erhalten.

    Liste  (gespeichert in der Kreuzung) mit den Objekten: 

    1 = GK-01 ;  2 = GK-02 ; 3 = GK-03  ; 4 = GK-04

    Wird die Funktion vom jeweiligen Gleiskontakt aufgerufen, soll das folgende Ergebnis zurückgegebenen werden.

    Bei Aufruf von

    GK-1: Rückgabe (der Liste) in der Reihenfolge 2; 3; 4; 1

    GK-2: Rückgabe in der Reihenfolge 3; 4; 1; 2

    GK-3: Rückgabe in der Reihenfolge 4; 3; 2; 1

    GK-4: Rückgabe in der Reihenfolge 1; 2; 3; 4

    Wäre das was für dich?

    VG,

    Hawkeye

  12. vor 52 Minuten schrieb winpet:

    (3) Warum werden in der EV Wechselschalter nur die Fahrstrassen 2 bis 4 jedoch nicht 1 und 5 aktiviert, resp. deaktiviert?

    Die Frage kann dir im Moment keiner beantworten, weil du dich anscheinend auf eine Anlage beziehst, die du uns gar nicht zur Verfügung gestellt hast. :D

    Es gibt in beiden Anlagen keine EV "Wechselschalter". Auch hat die erste Anlage keine Fahrstraßen und die zweite Anlage nur 3. 

    Screenshot2024-02-18100904.thumb.jpg.d70ef2dcc3a070b33075987db284531b.jpg

    Screenshot2024-02-18100824.thumb.jpg.b60b7c157f3008d3f2ddf84ea5fae9c3.jpg

    Screenshot2024-02-18101431.thumb.jpg.a56028c9063daa8e88327a910e6dea23.jpg

    VG, 

    Hawkeye

     

  13. vor 3 Stunden schrieb winpet:

    Eigenanlage 1: Einfach EV-Streckenblock_v1.0.mbs ist eine Streckenblock-Schaltung mit drei Blockstrecken, die auf auslösenden Gleiskontakten basiert (analog zum YouTube-Video von Wolfgang MBS 602_4). In der Objekt-Variablen ‘LOK-ObjVari’ angekoppelt an die Blocksignale, wird die Referenz des auslösenden Zugs erfasst. Die Steuerung der Blockstrecken geschieht über die Objekt-Variable ‘RückSignal_ObjVari’ (Fahrstrassen kommen nicht zum Einsatz).

    Das ist der Unterschied! Wenn du keine Fahrstraßen definiert hast, dann kann die Verbindung des Schalters mit dem Signal sinnvoll sein. Es findet ja auch keine Prüfung statt, ob der Weg frei ist. Dies geht nur mit Fahrstraßen und dann darf es keine Verbindung eines Schalters mit einem Signal geben.

    VG,

    Hawkeye

  14. Hallo @winpet,

    der Hintergrund, warum der Schalter nicht mit dem Signal verbunden werden darf, ist folgender.

    Der Schalter fordert die Fahrstraße in der EV an. Das Programm prüft daraufhin, ob die Fahrstraße frei ist oder noch z.B durch ein anderes Fahrzeug belegt ist. Ist die Fahrstraße noch belegt wird sie blockiert. Ist die Fahrstraße irgendwann frei, dann schaltet das Signal auf „Fahrt“.

    Wenn du jetzt zusätzlich eine Verbindung des Schalters mit dem Signal hast, wird diese Sicherungsfunktion überbrückt und das Signal auch bei blockierter Fahrstraße auf „Fahrt“ geschaltet. Der Zug fährt los, obwohl die Strecke nicht frei ist.

    Stell einfach mal ein Fahrzeug auf die Stecke und schaltet den Schalter ein, dann erkennst du den Unterschied.

    VG,

    Hawkeye

  15. vor 30 Minuten schrieb winpet:

    Konkret: Der Rundkurs startet wohl, endet jedoch bevor die Züge eine ganze Runde zurückgelegt haben.

    Was du vermeiden musst ist eine Doppelschaltung des Hauptschalters. Du möchtest die Anlage durch den Schalter per EV 1.1 bedienen. 

    Dann darf der Schalter aber nicht zusätzlich mit dem Signal verbunden sein. 

     Screenshot2024-02-17172518.thumb.jpg.2ac61563cc86d41f2f7aee0f8a170ad2.jpg 

    VG,

    Hawkeye

  16. vor 31 Minuten schrieb EASY:

    habe ich mal aus Spaß an der Freude gemacht...

    😁👍
     

    @Neo Die Berechnung des Bremsweges über die Position könnte man sich sparen, wenn es die Möglichkeit gäbe, den Abstand eines Fahrzeuges zu einem Gleiskontakt per Lua abzufragen. Dann könnten auch in Kurven tatsächliche Spurlängen ausgelesen werden und nicht nur der lineare Abstand zweier Punkte.

    Dieser Punkt wurde schon häufig gewünscht und trotz verschiedener Ansätze dieses auf anderem Wege zu lösen komme ich immer wieder auf die Notwendigkeit einer solchen Funktion zurück.

    Läßt sich das nicht doch realisieren?

    VG,

    Hawkeye

  17. 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

  18. 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.   

    Screenshot2024-02-17110340.jpg.3eb9aa219ebaf1fa01a01adaed16f7e0.jpg

     

    VG,

    Hawkeye

  19. 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. 

    Screenshot2024-02-17102514.thumb.jpg.6f6fa32d655a3ca5477ea64889ca25ca.jpg

    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

  20. vor einer Stunde schrieb WalterW:

    Leider geht es wohl nicht, die Belegung von Straßenspuren abzufragen. Schade, weil ich gehofft habe dass es Mittel und Wege dafür gibt.

    Hallo Walter,

    nicht für mehrspurige Straßen. Du kannst aber in jeder mehrspurigen Straße einzelne Spuren löschen und durch eine Einzelspur ersetzten.

    Diese Kreuzung enthält z.B. einzelne Sicherheitsspuren, die per EV abgefragt zur Verkehrsregelung eingesetzt werden. 

       Screenshot2024-02-16171036.thumb.jpg.53fd080a0b71df2e884d0f8bb1f07518.jpg

    Blendet man die Kreuzung aus, sieht man die Spuren.

    Screenshot2024-02-16171055.thumb.jpg.e94ae4ee3d900c445e8c7ed9c5282d6a.jpg

    In deinem Fall würde sich das wohl auch anbieten. Nimm eine Straße und lösche eine der Spuren. 

    Screenshot2024-02-16171204.thumb.jpg.8bc3395c6aebb816c0668196e779f2c9.jpg 

    z.B. Spur 2 löschen und durch eine einzelne Fahrspur ersetzten. (Variation nach belieben auswählen.) Screenshot2024-02-16171344.thumb.jpg.f2c54e37178a86dfa8f9a0105da7157a.jpg

    Zum Verständnis hier mal in Rot dargestellt. 

    Screenshot2024-02-16171531.thumb.jpg.295368f9d2799e844d23c8aa6fe92c6e.jpg

    Schaltest du die Spur auf "unsichtbar“ erhältst du dieses Ergebnis und kannst auf jede der beiden einzelnen Spuren in der EV zugreifen. Besser wäre solchen Spuren eine eigene Ebene zuzuweisen, um sie alle nach Belieben ein und ausblenden zu können.

    Screenshot2024-02-16172413.thumb.jpg.18914709f2c4ceeecb003799c32bbc69.jpg

     

    VG, 

    Hawkeye 

  21. vor 2 Stunden schrieb Roter Brummer:

    Bei vorbildgerechter polygonaler Verlegung wird der Schleifer der Lok in der Mitte der Sehne den Kontakt zum Fahrdraht verlieren resp. diesen an den Enden überschneiden.

    Wenn die Oberleitung in Kurven mit 15 Grad Mastabstand und der Variation links/links (oder rechts/rechts je nach Gleisausrichtung) verlegt wird, dann passt das ganz gut. D.h. Für ein 30 Grad Gleisstück 2 Oberleitungsstücke a 15 Grad. Sieht aber nur bei großen Radien gut aus.

    VG,

    Hawkeye

×
×
  • Neu erstellen...