Jump to content

EASY

Mitglieder
  • Gesamte Inhalte

    3358
  • Benutzer seit

  • Letzter Besuch

Alle erstellten Inhalte von EASY

  1. Hallo, Ich habe ein kleines Beispiel gebaut... Wenn der entsprechende Zugtyp dem in der Lokvariablen "Zugtyp" entspricht, sollen die entsprechenden Signale umgeschaltet werden... Die Lok vom Typ "Fernverkehr" hat folgende Variableneinträge... Wichtig! Der Text in der Variablen "Zugtyp" entspricht dem Namen der Tabelle für die Signale... ... die Tabelle für die Signale hat folgende Einträge... So sieht es für den "Nahverkehr" aus... Die Darstellung für den Güterverkehr ist dem Schema entsprechend (wird deshalb nicht auch noch dargestellt)... Der Eintrag in der EV sieht dann so aus... Es gibt nur eine Abfrage ob die Variable "Zugtyp" existiert (als Absicherung für den Fall, daß ein Zug nicht typisiert wurde). Der Vorteil dieser Methode liegt darin, daß weitere Zugtypen einfach nach dem Schema für die Variablen in der Lok erstellt werden können ohne die EV ändern zu müssen. Zum ausprobieren... 2024-03-05-Zugtypen unterscheiden 01.mbp Gruß EASY
  2. Hallo, Nur zur Info: Ohne Auslöser geht in der EV gar nichts. Theoretisch gibt die Möglichkeit in einem Modell eine Animation zu definieren, die abhängig von der Fahrtrichtung ist, die kann allerdings nur der Modellersteller in das Modell mit einbauen. aus der wiki: Spezialanimationen _AnimWheel - Animationszeit hängt von der Radrotation ab -> z.B. für Gestängeanimationen oder als Ersatz für _Wheel. _AnimRun - Animation wird einmalig abgespielt, sobald das Fahrzeug sich in Bewegung setzt. _AnimRunLoop - Wie _AnimRun, wird allerdings in einer Endlosschleife abgespielt. _AnimRunPositive - Animation wird einmalig abgespielt, sobald das Fahrzeug vorwärts fährt (z.B. für Zuglichter). _AnimRunNegative - Animation wird einmalig abgespielt, sobald das Fahrzeug rückwärts fährt (z.B. für Zuglichter). _AnimSpeed - Animation in Abhängigkeit der Zielgeschwindigkeit. Die Mitte der Animation entspricht der Geschwindigkeit 0. Gruß EASY
  3. Hallo @Chris06, verstehe ich jetzt nicht ganz, warum Du aufgeben möchtest. Um ein Benutzerdefiniertes Ereignis aufzurufen, brauchst Du ein Ereignis in dem Du als Aktion das benutzerdefinierte Ereignis aufrufen kannst wie z.B. "Gleiskontakt wird betreten"... .. hier rufst Du dein benutzerdefiniertes Ereignis mit folgenden Parametern auf... ... und so sieht mein überarbeitetes benutzerdefiniertes Ereignis aus... Anmerkung: "ZNoRearLight"=falsch brauchst Du eigentlich nicht, da Du einem Fahrzeug mit Licht keine Lichtscheiben zu geben brauchst... zum Ansehen und ausprobieren... Lichtwechsel test 02.mbp Gruß EASY
  4. Hallo @Chris06, kannst Du eine kleine Demoanlage hier einstellen. Die Fehlersuche wäre einfacher wenn man die Anlage selbst vor sich hat, als die EV nur als Bild zu sehen... Gruß EASY
  5. EASY

    EASY's kleiner Modellbau

    Hallo, ich habe noch eine kleine Entladestelle für das "Mittekipp-Selbstenladen" gebastelt und meine Demoanlage erweitert, so daß beide Verfahren laufen... 2024-03-03-Wagons entladen.mbp Anmerkung: Da keine Absicherung... (beide) Starttaster nur einmal betätigen... Gruß EASY
  6. EASY

    EASY's kleiner Modellbau

    Hallo, Das Modell ist zwar noch nicht fertig, aber bevor ich weiterbaue, wollte ich wissen, wie eine mögliche Steuerung aussehen könnte und ob ich noch Anpassungen machen muß. Deshalb habe ich eine kleine Demoanlage gebaut... Wagonkipper 01.mbp Hinweis: Der Startknopf ist nichts für nervöse Finger (nur einmal betätigen [Endlosschleife])... Anmerkungen und Anregungen wie immer gerne... Gruß EASY
  7. EASY

    EASY's kleiner Modellbau

    Hallo, Neugierig wie ich bin, habe ich mit dem Wagonkipper angefangen. Diese Variante hat es mir angetan... ... sie ist zum Durchfahren. Soweit bin ich bisher gekommen... Ich hatte zuerst etwas Bedenken, ob sich der Ablauf im MBS darstellen läßt. Ich bin gerade dabei die EV für eine kleine Demo zusammen zu basteln... Gruß EASY
  8. Hallo, ... sehe ich auch so nachdem ich die Testanlage gesehen habe. ... die jeder Gleisharfe entsprechenden Ausfahrtsignale sind ja in den Gleiskontakten netterweise schon hinterlegt... so würde dann "Gleiskontakt mit dem Schlagwort Gleisharfe SBf" wird betreten aussehen... local signale=contact.variables["Signale"]-- alle Ausfartsignale der Gleisharfe local n=0 --Hilfszähler for i,s in ipairs(signale)do -- Widerholung für alle Signale if #layout:getVehiclesOn(s)~=0 then -- Signal besetzt? (mindestens ein Fahrzeug steht auf Gleiskontakt vom Signal) n=n+1 -- Zähler hochzählen end end if n==#signale then -- alle Signale besetzt? (Hilfszähler=Anzahl der Signale) FS=contact.variables["Fahrstraßen"] local x=math.random(1,#FS) FS[x].autoActivate=true FS[x].active=true end Hat zumindest im Versuch einmalig funktioniert... die EV verfängt sich allerdings in einer Endlosschleife bei "Lok Einfahrt"... das habe ich allerdings nicht untersucht woran das liegt... Gruß EASY
  9. Hallo @liftboy if $("Depot").count>0 then local tblFahrzeuge = $("Depot").entries print(tblFahrzeuge[0].name) -- (1) print(tblFahrzeuge[0].variables.einfahrt) -- (2) end (1) geht nicht, weil Dein Zugriff nicht stimmt. local tblFahrzeuge = $("Depot").entries liefert keine Liste zurück! sondern .entries ist ein Direktzugriff auf den Eintrag. if $("Depot").count>0 then print($("Depot").entries[0].name) -- (1) end ... dann wird der Name auch ausgegeben. Gruß EASY
  10. Hallo, wenn der Gleiskontakt der des Ausfahrtsignals ist, dann brauchst Du nur noch das Schlagwort (und evtl. die Signalstellung) in dem Skript anpassen und als Aktion "Skript ausführen" wählen, dann wird, wenn die Gleisharfe voll ist, der nächste Zug gestartet. Gruß EASY
  11. EASY

    EASY's kleiner Modellbau

    Hallo, danke! ... (mal sehen, ob meine Textur den Roman noch zuläßt...) Gruß EASY
  12. Hallo @Neo, ... und wenn Du Dich gerade mit Wagons beschäftigst... vielleicht auch noch der automatischen Verzögerung etwas mehr Nachdruck verleihen (einstellbar?), so daß ein rollender Wagon der etwas schneller unterwegs ist nicht z.B. an einem Prellbock (oder Gleisende) wieder abprallt, sondern auch wirklich zum Stehen kommt... Gruß EASY
  13. Hallo, ... das ist nicht der Auslöser sondern eine Aktion. In Deiner Anfrage hast Du nicht definiert, welches Ereignis die Aktionen auslösen soll... Gruß EASY
  14. Hallo, In lua könnte es so aussehen... local signale=layout:getEntitiesByKeyword("Ausfahten HBF1")-- alle Signale mit dem Schlagwort local n=0 --Hilfszähler for i,s in ipairs(signale)do -- Widerholung für alle Signale if #layout:getVehiclesOn(s)~=0 then -- Signal besetzt? (mindestens ein Fahrzeug steht auf Gleiskontakt vom Signal) n=n+1 -- Zähler hochzählen end end if n==#signale then -- alle Signale besetzt? (Hilfszähler=Anzahl der Signale) signale[math.random(1,n)].state=1 -- zufälliges Signal auf 1 setzen end Gruß EASY
  15. EASY

    EASY's kleiner Modellbau

    Hallo, ich danke Euch für die Klicks! Ich erstelle meine Texturen in CorelDraw. Die "Flecken" sind ein Füllmuster vom CorelDraw... ich werde mal noch etwas mit den Parametern spielen... ... wäre so vom Ablauf her logisch (allerdings weiß man bei der DB nie so richtig, ob es auch so gesehen wird)... Ich glaube es ist das Modell von Liliput... hier gibt es eine "Bedienungsanweisung" (oder so ähnlich) auf der Tür... ich habe nur noch kein scharfes Foto gefunden auf dem man es lesen kann... ... ich mir auch... zumal sich die Herausforderung ergibt, daß das Beladen nicht die Umkehrung von Entladen ist. Der Anfang von Entladen sollte idealerweise das Ende von Beladen sein aber mit unterschiedlichen Animationen, die zum Ziel führen... ...und ob da der Problemstellung nicht genug wären, kann der Wagon ja schließlich auch noch durch Kippen über die vordere oder hintere Klappe entladen werden... (Das Foto aus "MIBA Spezial 76 vom April 2008" zeigt zwar einen anderen Wagon aber es ist auch für diesen Wagon so vorgesehen) (Anmerkung: Dir Kippvorrichtung ergibt ein interessantes nächstens Projekt...) Gruß EASY
  16. EASY

    EASY's kleiner Modellbau

    Hallo, soweit bin ich mit meinem Selbstenlader gekommen... Ich habe das Modell als Entwurf hochgeladen 60F4611C-F919-4653-AFAF-F4B4E70B7045 Anmerkungen und Anregungen, wie immer gerne... Gruß EASY
  17. Hallo, Du machst nichts falsch. Mit der Aufhebung der Verknüpfung des Wagons löst Du den Wagon gleichzeitig aus dem Zugverband. Nur die erneute Verknüpfung mit dem Gleis bringt den Wagon nicht zurück in den Zugverband. Der Wagon wird erst wieder als "gültig" erkannt, wenn er leicht bewegt wird oder neu auf das Gleis gesetzt wird. In lua wäre eine Lösung: $("Wagon").transformation.position=$("Wagon").transformation.position Gruß EASY
  18. Hallo, ich habe die Lösung von @prinz für mich auch schon mal in einem anderen Zusammenhang benutzt... ... zum einen kann man als Referenzkoordinaten das "Ablagegleis" selbst benutzen (man muß nur die z-Position um die Gleishöhe korrigieren) oder man setzt einen Gleiskontakt auf das Gleis und nimmt dessen Parameter (Position und evtl. Rotation) als Referenz für SX1... Gruß EASY
  19. EASY

    EASY's kleiner Modellbau

    Hallo, Der Trick liegt im Unterschied der beiden Bilder... Bei diesem Bild wird im Gleiseditor als Typ "Virtuell (Mitte,Spur)" angezeigt... Bei diesem Bild wird im Gleiseditor als Typ "Virtuell (Drehpunkt)" angezeigt... ... für die Spur über die Brücke mußt Du also nur beim Typ "Virtuell (Mitte,Spur)" auswählen... Anmerkung: "Virtuell (Drehpunkt)" wird zwar in der Liste "Typ" angezeigt, ist allerdings nur ein Animationsname und hat mit der Vergabe der Spuren nichts zu tun (aber das kannst weder Du noch das MBS wissen) Das Modell stammt noch als "alten Zeiten"... damals waren die Standartschienen noch etwas höher... Gruß EASY
  20. Hallo, Der Kreis hat als Mittelpunkt die Drehachse und muß nur rotiert werden. Die Mittelpunkt der Geraden folgt von der Position her einem Teilkreis mit dem Radius r=r(Kreis)+Länge Gerade / 2 und als Drehbewegung die Gegendrehung zur Drehung von Kreis so daß die Ausrichtung wieder stimmt. Kommt darauf an, wie schnell Du Deine Animationsgeschwindigkeit (fps) definierst. In meinem Demomodell sind es 48 Animationsschritte bei 24 fps. So dauert die Animation von der Weichenstellung 0 (-22,5°) bis zur Weichenstellung 2 (+22,5°) genau 2 Sekunden. Nachtrag: Manchmal dauert es etwas bei mir... Deine Frage bezieht sich auf die Auflösung für die Genauigkeit der der Ausrichtung und Position zueinander... bei +- 19° ist die Abweichung von einer linearen Bewegung noch nicht sehr groß (r*sin(19°) bzw. r*cos(19°)) so daß Du mit wahrscheinlich weniger als 48 Stützpunkten zurecht kommst... So sehen die beiden Positionskurven bei mir aus... Gruß EASY
  21. Hallo @Roter Brummer, eine Möglichkeit wäre das Modell aus 2 Teilobjekten zu bauen, die jeweils eine Animation der Drehbewegung haben... ... da "Gerade" dem Mittelpunkt in der Mitte des Objektes hat, besteht die Animation aus einer Positions- und einer Rotationsangabe. Damit können der Animation "Kreis" und der Animation "Gerade" jeweils die entsprechenden Spuren zugeordnet werden.... Einfaches Demomodell als Entwurf hochgeladen 76667EF1-EB85-42CF-AAEF-A3251A7D54A1 Gruß EASY
  22. Hallo @Hawkeye, ... eine kleine Demoanlage zu Deinem Anliegen... Gleiskontakt wird betreten sieht so aus... * Die Funktion teilt einen String am Seperator in Teilstrings auf Beispiel: Gleiskuntaktname: "GK-1" -> Seperator="-" ergibt die beiden Teilstrings "GK" (a[1]) und "1" (a[2]) a[2] dient als Zahlengrundlage für das zyklische Anlegen der Ausgabeliste Achtung: Mit diesem Verfahren liegt die Referenzzahl im Namen des Gleiskontaktes! -> der Name darf im MBS Projekt nur einmal vorkommen! ** alternativ kann auch eine Zahlenvariable im Gleiskontakt verwendet werden die Zeile **(a) entfällt und bei **(b) a[2] durch die Variable ersetzen. --]] local ausgabe={}-- Ausgabeliste local a={}-- teporäre Liste für GK-x Namen zerlegen local gk=contact.name -- Name des Gleiskontaktes print("Gleiskontakt: "..gk.." hat ausgelöst") gk:gsub("[^-]+",function(c) table.insert(a,c) end)--* / **(a) local gkx=$("Kreuzung 1").variables["GK x"]--Liste in der Kreuzung n=#gkx --Anzahl der Einträge in der Liste print("Liste:") for i=1+a[2],n+a[2]do --Liste vom Anfangswert her zyklisch erstellen **(b) local x=math.tointeger((i % n))-- Ergibt den Rest einer Division if x==0 then -- Rest=0 table.insert(ausgabe,gkx[n])-- maximalen Wert nehmen else -- Rest>0 table.insert(ausgabe,gkx[x])-- Restwert nehmen end end for i,v in ipairs(ausgabe)do --Ausgabetabelle print(v.name) end Anmerkung: Ich habe das Ereignis allen 4 Gleiskontakten zugeordnet (sinnvoll wäre evtl. mit Schlagworten zu arbeiten)... 2024-02-18-Zyklische Liste erstellen 01.mbp Gruß EASY2024-02-18-Zyklische Liste erstellen 01.mbp2024-02-18-Zyklische Liste erstellen 01.mbp2024-02-18-Zyklische Liste erstellen 01.mbp2024-02-18-Zyklische Liste erstellen 01.mbp
  23. Hallo, ich habe ein Ereignis... local a=$("Benutzerdefiniert"):invoke() print(a) ... und ein benutzerdefiniertes Ereignis... local b=123 return b ... der Aufruf bringt mir das gewünschte Ergebnis... Nun habe ich dieses Ereignis... local a=$("Benutzerdefiniert"):invoke() print(#a) ... mit diesem benutzerdefinierten Ereignis... local b={1,2,3} return b ... dies ergibt eine Fehlermeldung... Wenn ich das benutzerdefinierte Ereignis als Funktion in das Ereignis schreibe... local function test() local b={1,2,3} return b end local a=test() print(#a) ... kommt das gewünschte Ergebnis... Nun ist meine Frage @Neo (oder wer etwas weiß)... Mache ich einen Fehler oder kann ein benutzerdefiniertes Ereignis keine Tabelle zurückgeben? Gruß EASY
  24. Hallo @Hawkeye, Ich könnte Dir folgende (logische) Reihe anbieten: [16:54:04] Gleiskontakt wird ausgelöst -> GK-1, Golf 1, 1 [16:54:04] Gleiskontakt wird ausgelöst [16:54:04] Gleiskontakt: GK-1 hat ausgelöst [16:54:04] Liste: [16:54:04] GK-2 [16:54:04] GK-3 [16:54:04] GK-4 [16:54:04] GK-1 [16:54:16] Gleiskontakt wird ausgelöst -> GK-2, Golf 1, 1 [16:54:16] Gleiskontakt wird ausgelöst [16:54:16] Gleiskontakt: GK-2 hat ausgelöst [16:54:16] Liste: [16:54:16] GK-3 [16:54:16] GK-4 [16:54:16] GK-1 [16:54:16] GK-2 [16:54:24] Gleiskontakt wird ausgelöst -> GK-3, Golf 1, 1 [16:54:24] Gleiskontakt wird ausgelöst [16:54:24] Gleiskontakt: GK-3 hat ausgelöst [16:54:24] Liste: [16:54:24] GK-4 [16:54:24] GK-1 [16:54:24] GK-2 [16:54:24] GK-3 [16:54:31] Gleiskontakt wird ausgelöst -> GK-4, Golf 1, 1 [16:54:31] Gleiskontakt wird ausgelöst [16:54:31] Gleiskontakt: GK-4 hat ausgelöst [16:54:31] Liste: [16:54:31] GK-1 [16:54:31] GK-2 [16:54:31] GK-3 [16:54:31] GK-4 ... dies wäre allerdings eine andere Reihenfolge bei GK-3 als Du angegeben hast. Hast Du Dich da vertippt oder muß es die von Dir angegebene Reihenfolge sein? Gruß EASY
  25. Hallo an alle, ich wollte hier spezielle Lösungsansätze in lua vorstellen. Wenn es alternative Lösungsansätze gibt, macht das bitte in einem eigenen Thema, sonst wird dieses Thema aus dem Zusammenhang gerissen, wie leider schon viele Themen in diesem Forum. Gruß EASY
×
×
  • Neu erstellen...