Jump to content

EASY

Mitglieder
  • Gesamte Inhalte

    3041
  • Benutzer seit

  • Letzter Besuch

Alle erstellten Inhalte von EASY

  1. 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
  2. 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
  3. 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
  4. 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
  5. 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
  6. 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
  7. 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
  8. 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
  9. 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
  10. 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
  11. 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
  12. Hallo, ... habe ich mal aus Spaß an der Freude gemacht... --[[ * -> in die Klammer entsprechende Referenzspur eintragen ** Verknüpfte Objekte mit Referenzspur: (Gleiskontakte und Fahrzeuge werden mit der Referenzspur automalisch verknüpft!) Gleiskontakt "GKe" mit Schlagwort "GKref" sehr nahe am Ende der Referenzspur (nicht am Übergang) plazieren, so daß die Zuordnung zu Referenzspur eindeutig gegeben ist. *** wenn zu stark abgebremst werden müßte -> durchfahren --]] local blink=layout:getEntitiesLinkedTo($("Bremsspur 1"))-- * ; ** local ref=0 -- Dummyeintrag local auto=0 -- Dummyeintrag for i,v in ipairs(blink) do -- verknüpfte Objekte if v.variables["GKref"]==keyword then -- Referenzkontakt? ref=v end local res=false res,auto=pcall(function(x) x:hasEngine() return x end,v)-- Fahrzeug mit Antrieb? end if auto~=0 and ref~=0 then auto.currentSpeed=auto.currentSpeed -- evtl. Beschleunigung abbrechen -- Bremsweg berechnen (Vorderkante Auto -> Ende Spur) local pos1=ref.transformation.position local pos2=auto.transformation.position local dx=pos1.x-pos2.x local dy=pos1.y-pos2.y local la=auto.length/2 local l=math.sqrt(dx^2+dy^2)-la -- benötigte Verzögerung berechnen... local v=auto.currentSpeedAbs v=v/3.6 local a=(v^2)/(2*l) vehicle.deceleration=a if a<20 then -- *** vehicle.targetSpeed=0 end end Bremsversuch 01.mbp Gruß EASY
  13. Hallo, ... oh... hatte ich erst gar nicht ausprobiert. Danke für den Hinweis. Gruß
  14. 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
  15. Hallo, layout:getVehiclesOn($("Straßenname")) ... bezieht sich (leider) auf das ganze Objekt und liefert alle Fahrzeuge, die sich darauf befinden unabhängig davon auf welcher Spur sie stehen. Gruß EASY
  16. Hallo, das geht schon, du mußt nur die Drehscheibe vor dem Einrichten der Fahrstraße auf die jeweils gültige Stellung setzen. (Achtung beim Gleiskontakt auf der Drehscheibe: auf aktivierte Pfeilrichtung des Gleiskontaktes achten. Fahrstraßen sind richtungsbezogen.) Gruß EASY
  17. EASY

    EASY's kleiner Modellbau

    Hallo @HWB, danke! Besonders die .pdf ist ja sehr informativ. Nur ob ich "die 2 verstellbaren Rutschverlängerungen die je über einen Kettenzug an der Zahnstange in der gewünschten Höhenlage einstellbar sind" so bauen werde... muß ich mir noch überlegen. Gruß EASY
  18. EASY

    EASY's kleiner Modellbau

    Hallo, Durch Zufall bin ich auf dieses Modell gestoßen. Irgendwie hat mir die Funktion gefallen und ich habe angefangen zu bauen... Da ich (mal wieder) keine Ahnung habe, ergibt sich für mich folgendes Problem: Nach was muß ich im Internet suchen um evtl. auf technische Daten oder Fotos zu stoßen? Ich lande immer bei Bildern, die das Modell von Liliput oder Arnold darstellen, aber nie beim Original. Für Hilfestellung wäre ich dankbar. Gruß EASY
  19. Hallo @Eggu, ich frage mal noch neugierig nach. War das jetzt eine prinzipielle Frage oder hast du etwas spezielles vor? Gruß EASY
  20. 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
  21. Hallo, Werden noch mehr Farben gewünscht? Dann bitte hier die noch zu ergänzenden Farbtöne angeben. Deine Farben und meine zusätzlichen Farben sehen bei mit im Texturkatalog so aus (als Vorschlag...) ... und da ich die Texturen schon habe als .zip Farben.zip ... da wäre man ja mehr mit der Auswahl der Varianten als mit dem Setzen der Bausteine beschäftigt... Gruß EASY
  22. 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
  23. Hallo, folgt den gleichen Prinzip... GBS DKW.mbp Zeigst Du mir noch deine Lösung? Gruß EASY
  24. 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
  25. Hallo @Neo, den leeren GBS0 Baustein gibt es in folgenden Farbvarianten... ... da Tauschtextur habe ich die (Farb-) Texturen exportiert... ... mir in meinen Texturkatalog geladen... ... und mir die GBS0 Bausteine (die keine Farbvarianten besitzen) thematisch über die Tauschtextur eingefärbt. So habe ich im Gleisbildstellpult einen besseren Überblick... Damit diese Information auch bei einer Weitergabe oder Veröffentlichung erhalten bleibt, fände ich es gut, wenn es im Texturkatalog eben diesen Ordner "GBS Bausteine Farben" geben würde, damit man dort die Farben hinterlegen kann. Gruß EASY
×
×
  • Neu erstellen...