Jump to content
Zum Start hinzufügen

Weitere Informationen

3D-Modellbahn Studio

Eine Vollbild-App auf Ihrem Startbildschirm mit Push-Benachrichtigungen und mehr.

So installieren Sie diese App auf iOS und iPadOS
  1. Tippen Sie auf das Teilen-Symbol in Safari
  2. Scrollen Sie durch das Menü und tippen Sie auf Zum Startbildschirm hinzufügen.
  3. Tippen Sie oben rechts auf Hinzufügen.
So installieren Sie diese App auf Android
  1. Tippen Sie auf das 3-Punkte-Menü (⋮) in der oberen rechten Ecke des Browsers.
  2. Tippen Sie auf Zum Startbildschirm hinzufügen oder App installieren.
  3. Bestätigen Sie durch Tippen auf Installieren.

EASY

Mitglieder
  • Benutzer seit

  • Letzter Besuch

Alle erstellten Inhalte von EASY

  1. 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
  2. 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
  3. 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
  4. 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
  5. 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
  6. Hallo, ... oh... hatte ich erst gar nicht ausprobiert. Danke für den Hinweis. Gruß
  7. 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
  8. 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
  9. 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
  10. EASY antwortete auf EASYs Thema in Modelle
    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
  11. EASY antwortete auf EASYs Thema in Modelle
    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
  12. Hallo @Eggu, ich frage mal noch neugierig nach. War das jetzt eine prinzipielle Frage oder hast du etwas spezielles vor? Gruß EASY
  13. 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
  14. 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
  15. 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
  16. Hallo, folgt den gleichen Prinzip... GBS DKW.mbp Zeigst Du mir noch deine Lösung? Gruß EASY
  17. 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
  18. 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
  19. Hallo, Kann man die 2D-Kamera über die EV als aktive Kamera setzen oder muß man eine zusätzliche Kamera einrichten und diese (gegenüber der 2D-Kamera) "an aktueller Position ausrichten"? um auf eine (quasi) 2D-Ansicht umschalten zu können? Gruß EASY
  20. Hallo, ... aber nur so nebenbei... ... geht in Blender übrigens auch Gruß EASY
  21. Hallo, ... kannst du dir mal an meinem Beispiel ansehen (Tür und Zylinder als .blend Dateien) 2024-02-02-Chris Türe.zip Gruß EASY
  22. Hallo, diese Kombination geht nicht. Zu einem "_CP_Source" gehört ein "_CP_Target" damit die Bewegung mit der Animation mitgeht. Eine Kombination mit einen "normalen" Kontaktpunkt geht nicht. "_CP_Target" der am Zylinder mit der Animation geht, "_CP_Source" an der Türe. Gruß EASY
  23. Hallo @Chris06, so ganz verstehe ich noch nicht auf was du hinaus willst. Ist der Zylinder ein Modell und die Türe ein anderes Modell und die Tür soll am Zylinder einrasten und mit dessen Animation dann mitgehen? Gruß EASY
  24. Hallo @Eggu, ... wenn ich die Ebene "Tramsteig Bäume" ausblende ist der Effekt (fast) weg. Ich habe allerdings noch ein Objekt "Gruppe Laub 001" auf der Grundebene gefunden, bei der der Effekt deutlich zu sehen ist. ... es scheint sich um ein Darstellungsproblem zu handeln mit Bäumen die Transparenzen verwenden... ist aber nur eine Vermutung. Gruß EASY
  25. Hallo @Hawkeye ich nehme das was (derzeit) geht... ... träume von den was ideal wäre... ... und hoffe auf Veränderung. Gruß EASY

Push-Benachrichtigungen konfigurieren

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.