-
Gesamte Inhalte
3322 -
Benutzer seit
-
Letzter Besuch
Alle erstellten Inhalte von EASY
-
Hallo, Nachdem ich etwas das Gefühl habe, daß hier alle etwas im Nebel herumstochern, würde mich interessieren, was das Dialogfenster anzeigen soll damit... Gruß EASY
-
Hallo, links ja, rechts nein (oben viereckig neben rund sieht für mich "komisch" aus ich würde oben alle rund machen [persönliche Meinung])... Gruß EASY
-
Hallo, ... ich würde oben (mitte) rund und unten viereckig machen... Gruß EASY
-
Hallo, ... die "Virtuelle Drehspur" {354F8A6D-4690-41C2-B239-BEA4AE43FAE8} ist eine Weiche. Du kannst in den Eigenschaften -> Weichenstellung selbst noch Zwischenschritte einfügen... Gruß EASY
-
Hallo @klausdieter.orzol wie @Neo schon beschrieben hat, hat die Textur der Scheibe im Fensterrahmen einen Alpha-Wert von 1, ist also nicht transparent. Etwas näher betrachtet: Deine Originaldatei im MBS... ...bei den 3 Einzelscheiben hat die Textur einen Alpha-Wert von kleiner 1... ... beim Fenster mit Scheibe... ... liegen als Scheibe 4 Flächen (!) übereinander, die alle in der Textur einen Alpha-Wert von 1 haben... ... 3 Flächen gelöscht und der 4. Fläche die transparente Textur der anderen Flächen zugewiesen... ... ergibt das gewünschte Ergebnis im MBS... Persönliche Anmerkung: Wie man an den angelegten Texturen sehen kann... ... hast Du einige Versuche gemacht. Wie Neo schon angedeutet hat, sind hier aussagekräftige Namen von Vorteil (z.B. daß der Alpha-Wert im Namen ist)... Hinweis: Mit der Zuweisung von Texturen im Blender als Farbe solltest Du sparsam sein. Jede Farbe wird als Textur gewertet! Gruß EASY
-
Hallo @klausdieter.orzol, von den Dateinamen her sind Blenderdateien 2 und 3 ohne Scheiben und die 1. Datei zwar mit Scheiben dafür aber nur die .glb (KG-Hasenwinkel_6A-KG_+EG_mit_Fenster-und_Türrahmen-mit-Scheiben_17-05.09.2024.glb) Interessant wäre die Blenderdatei (+ eventuelle Texturen) mit Scheiben damit man sehen kann, was Du in Blender gemacht hast. Gruß EASY
-
Bei Benutzerdefiniertem Ereignis Auslöser anzeigen
EASY antwortete auf Atruss Thema in Feature-Wünsche
Hallo, ... kann es ja nicht geben, da Du ein Benutzerdefiniertes Ereignis von innerhalb von jedem beliebigen Ereignis aufrufen kannst. Da ist ja der Trick vom benutzerdefiniertem Ereignis. Du hast darin (gemeinsame) Aktionen, die auf verschiedene Ereignisse anwendbar sind. Von da her ist die Überschrift Antwort auf die Fragestellung wann es aufgerufen wird schon sinnvoll mit "manuell...". Sonst wäre die Antwort auf die Frage eine Liste, die in einer Zeile sowieso nicht darstellbar ist... Gruß EASY -
Hallo, Zwar etwas umständlich aber bis zur V9 behelfe ich mir damit... --[[ Umlaute bestehen aus 2 Zeichen! (string.char(195) vorangestellt) Es wird allerdings nur ein Zeichen dargestellt, weshalb die Wortlänge string.len() angepasst werden muß. * string.gsub() ist prinzipiell eine Ersetzungsfunktion und liefert 2 Werte: den geänderten String und die Anzahl der Ersetzungen. Da am geänderten String kein Interesse beseht -> "_" als Variable und "" als Ersetzungsstring (kann jeder beliebige String sein) --]] local wort="Köln-Überdorf" local _,z=string.gsub(wort,string.char(195),"")-- * local n=string.len(wort) local n1=n-z print("Anzahl der Zeichen von "..wort) print(n,"(mit doppeltem Zeichen Umlaut)") print(n1,"(wahre Anzahl der Zeichen)") ... liefert... [17:23:44] Schalter wird betätigt -> Taster groß, 0 [17:23:44] Schalter wird betätigt [17:23:44] Anzahl der Zeichen von Köln-Überdorf [17:23:44] 15 (mit doppeltem Zeichen Umlaut) [17:23:44] 13 (wahre Anzahl der Zeichen) ... dann sieht die Tabelle auch wieder geordnet aus... Gruß EASY
-
Hallo, In ZeroBrane Studio ergibt... print(utf8.len("Koln"),utf8.len("Köln")) 4 4 und in MBS: [19:07:22] Skriptfehler (15): attempt to index a nil value (global 'utf8') ... womit diese (indirekte) Fragestellung... ... beantwortet wäre. ... wäre schön ... dann sieht z.B. eine Tabelle... ... in ihren Trennungszeichen nicht so zerfranst aus... Gruß EASY
-
Hallo, Für die einheitliche Formatierung von strings wollte ich mir die einzelnen Längen ausgeben lassen. Dabei bin ich darauf gestoßen, daß Umlaute 2 Zeichen belegen... print("Koln="..string.len("Koln"),"Köln="..string.len("Köln")) print("o="..string.len("o"),"ö="..string.len("ö")) ergibt... So etwas macht mich neugierig... weiß jemand warum? Gruß EASY
-
Hallo, ... prinzipiell geht es auch mit einem Textfeld, wenn man sehr lange Namen kürzt (meist ist die Bezeichnung trotzdem noch eindeutig)... ... so bleibt noch Platz für Steuerelemente... So sieht das Skript dazu aus... -[[ Hinweis: Es muß eine Monospace-Schrift verwendet werden! im Beispiel: MS-Gothic * max. Anzahl von Zeichen ist abhängig von verwendeter Schrift --]] local d=$("Depot 1a").count-1 -- Anzahl der Einträge im Depot local a="" -- Zeile Teil 1 local b="" -- Zeile Teil 2 local t="" -- Text local max=25 -- max. Anzahl von Zeichen von Name * for i=0,d,2 do -- Alle Depoteinträge a=$("Depot 1a").entries[i].name -- Zeile Teil 1 if string.len(a)>max+2 then -- Name zu lang? a=string.sub(a,1,max)..".." -- auf max Zeichen kürzen + ".." end if $("Depot 1a").entries[i+1]~=nil then -- Eintrag Zeile Teil 2? b=$("Depot 1a").entries[i+1].name -- Zeile Teil 2 if string.len(b)>max+2 then -- Name zu lang? b=string.sub(b,1,max)..".." -- auf max Zeichen kürzen + ".." end else b=" " end t=t..string.format("__>%-27s||__>%-27s",a,b) -- Format 2 Reihen if not ((d-2)<=i) then -- nicht letzte Zeile t=t.."\n" -- Zeilenumbruch end end $("Textfeld").text=t -- Text in Textfeld schreiben Gruß EASY
-
Hallo, ... wenn Du dies im gleichen Textfeld machst, hast Du (bei langen Namen) das gleiche Problem, die Beschränkung gilt für beide Richtungen (oder arbeitest Du dann schon mit 2 Textfeldern?) Gruß EASY
-
Hallo, ... kann ich Dir nichts dazu sagen... bei mir laufen beide Dateien (wenn ich zunächst auf Init und dann auf Start klicke). Welche MBS Version hat Du? Du braucht Dich nicht fühlen wie ein Erstklässler, auch ich habe einmal ohne Ahnung von lua angefangen. Vielleicht spricht es Dich ja später einmal an Gruß EASY
-
Hallo, Manchmal finde ich folgendes bei einem Textfeld störend... Wenn einem Textfeld (C1040AD7-0E8B-493F-B7C7-AEAA19A41855)... ... z.B. Zeilen hinzugefügt werden, dann ändert sich die Höhe (bezogen auf den mittigen Nullpunkt) in beide Richtungen... ... dies kann z.B. bei einem geneigten Textfeld (Rotation in x-Richtung)... ...wenn z.B. Zeilen hinzugefügt werden dazu führen, daß das Textfeld teilweise in der Bodenplatte verschwindet... ... auch ist in diesem Fall das Platzieren von eventuellen Bedienelementen nicht ganz einfach... ... zumal, wenn die Drehung um mehrere Achsen erfolgt... Ausgangspunkt für mein Projekt (das prinzipielle Layout habe ich von einem Projekt von @prinz "entliehen")... ... die beiden Textfelder haben unterschiedliche Anforderungen, wenn Zeilen hinzugefügt oder gelöscht werden. Dazu wird jeweils ein Fixpunkt und eine Ausrichtung für die Größenänderung festgelegt. Ausgangspunkt für das Textfeld in Bild unten rechts: Ein Textfeld (gelb) und Bedienelemente (blau)... ... das Textfeld hat die Objektvariable "oben"... - oben=true -> Fixpunkt (Nullpunkt) = oben links - "oben=false" -> Fixpunkt (Nullpunkt) = unten links ... und die Bedienelemente sind in der Liste "TS" hinterlegt.... ... das Textfeld wird positioniert... ... und erweitert ["Liste einlesen" betätigen] sich nach unten... ... und beim löschen von Zeilen nach oben... ... wobei die Position des Fixpunktes erhalten bleibt. Bei einer im Raum gedrehten Liste (im Beispiel x und z) ... wird "oben" auf false gesetzt (Fixpunkt unten links)... ... dadurch erweitert sich das Textfeld nach oben und verschwindet nicht (teilweise) in der Bodenplatte (und die Bedienelemente werden "richtig" positieniert)... Im Skript wird die Höhe einer Zeile ermittelt so daß wenn das Textfeld... ... skaliert wird... ... werden die neuen Zeilenabstände für das Positionieren der Bedienelemente berücksichtigt (und die Bedienelemente werden mit skaliert)... Abschließend noch das Projekt für eigene Versuche... 2024-08-25-Depotliste 04.mbp Gruß EASY
-
How do I set the fixed times for day/night on V8.5 ?
EASY antwortete auf ern45s Thema in [International] Problems and solutions
If you do not want to wait for V9 you can do this... ... you can take a switch... "off" "on" with this event... ... this also works when simulated time is "fix"... -
Hallo, Die Idee geistert mir schon lange im Kopf herum und irgendwann setze ich es dann doch um... Entlang dieser Strecke... ... sollen die "Hektometer-Tafeln" (D51CAB33-09EB-433D-80BF-A700E5665F9F) an "richtiger" Position gesetzt werden. Vorbereitung: ... am Streckenanfang... - als "Lok ref" wurde die "Peil-Lok" (AFE18725-9A8B-4DF7-87D2-C5D9BD4DDBE4) gewählt. Sie hat den Vorteil, daß sie ebenso wie die Tafeln in y-Richtung ausgerichtet ist. So kann die Orientierung der Lok problemlos von den Tafeln übernommen werden. - der Gleiskontakt am Anfang der Strecke bestimmt die Position der 1. Tafel - da man in lua keine Objekte kopieren kann, gibt er einen Vorrat an Tafeln zum Setzen. ...am Streckenende... ... der Gleiskontakt sollte etwas hinter dem Ende der Strecke liegen. Objektvariablen: ...der Lok... - Tname -> Name den die Tafeln erhalten sollen - Tsw -> Schlüsselwort der Tafeln, die gesetzt werden sollen - abstand -> Abstand der Tafeln zueinander in m (Da es sich um Hektometertafeln handelt sind nur Werte mit ganzen 100-er Zahlen sinnvoll [0, 100, 200...] ) - km_anfang -> Kilometeranzeige der 1. Tafel (ganze Zahl oder 1-stellig hinter dem Komma) ...Gleiskontakt am Anfang... ...Gleiskontakt am Ende... ...die Tafeln... Nach "Start" werden... ...die Tafeln "richtig" beschriftet... ...die Tafeln in einer Objektliste in der Lok hinterlegt... ... und die Tafeln umbenannt (Tname Kilometer[3 stellig] Hektometer)... so kann auch über den Namen im Projekt zu einer Stelle gefunden werden... Am ersten Gleiskontakt wird (beim Erreichen der Lok) die 1. Tafel gesetzt... ... auf der Strecke ist das Setzen gesteuert über einen Timer (Die Lokgeschwindigkeit darf nicht verändert werden!) Anmerkung: Die Tafeln werden mit dem Gleis, auf dem sich die Lok beim Setzen befindet, verknüpft und werden auch an einer Steigung immer senkrecht ausgerichtet. ...am Gleiskontakt hinter dem Streckenende stoppt die Lok... ...da nicht alle bevorrateten Tafeln gebracht wurden, sind noch ein paar übrig (wenn sie nicht gebraucht werden können sie gelöscht werden) Die Abweichung der letzten Tafel in der Position ist (nach meiner Meinung) sehr gering (nach 50 Zwischenschritten)... (Zur optischen Referenz, ist im Versuchsprojekt jedes Gleis der Strecke 100m lang) Hinweis: Die Genauigkeit ist abhängig von der Geschwindigkeit der Lok und ob die (sehr [>>>]) beschleunigte Animation im MBS aktiv war. Noch das Versuchsprojekt (alles schon vorbereitet...) 2024-08-21 Hektometertafel.mbp Gruß EASY
-
Hallo @Goetz, Danke für die Erklärung... in manchen Dingen ist lua eben schon speziell Gruß EASY
-
Hallo, ... ist mir erst gestern aufgefallen und ich verstehe es nicht so ganz... Wenn ich habe... local a=$("Schalter klein").transformation.position for i=1,5 do local b=a b.x=b.x+i print("a.x="..a.x,"b.x="..b.x) end ... ist das Ergebnis... Wenn ich habe... local a=$("Schalter klein").transformation.position for i=1,5 do local b={x=a.x,y=a.y,z=a.z} b.x=b.x+i print("a.x="..a.x,"b.x="..b.x) end ... ist das Ergebnis... Warum wird im ersten Fall a geändert, wenn sich b ändert? Gruß EASY
-
Hallo, ich wurde per PN noch darauf angesprochen, daß es nur bei horizontaler Ausrichtung funktioniert. Deshalb habe ich es noch auf eine beliebige Ausrichtung erweitert... Ausgangssituation: "LS1a" muß in Position und Rotation richtig platziert sein. Position und Rotation von "LS1b" müssen nicht genau sein. Der Mittelpunkt von "LS1b" bestimmt dem Parallelabstand. (Die Fläche (türkis) dient der optischen Orientierung) ... Ergebnis... ... das Projekt für eigene Versuche... Lauflicht Liste beliebiger Winkel EASY.mbp Gruß EASY
-
Hallo, ... das simmt natürlich... es war schon spät am abend Gruß EASY
-
Hallo, Irgendwo mußt Du die Fahrstraße ja als Aktion aktivieren. Wenn Du nun aus Deinem Skript ein benutzerdefiniertes Ereignis "FS aktivieren" mit dem Parameter "Fahrstraße" machst und um folgendes ergänzt... if not deferredCall then Fahrstraße.active = true -- Ergänzung defer(30, "Verzögerung") elseif deferredCall == "Verzögerung" then if route.state == 1 or route.state == 2 then local Signal = route.waypoints[1] Signal.variables["Zug"].variables["nächste FS"].active = false route.variables["Alternative FS"].autoActivate = true route.variables["Alternative FS"].active = true end end ...und dort wo du die Fahrstraße aktivierst... $("Deine Fahrstraße").active = true ...statt dessen das benutzerdefinierte Ereignis aufrufst... $FS aktivieren:invoke($"Deine Fahrstraße") ... dann wird 30 Sekunden später geprüft, ob die Fahrstraße zwischenzeitlich aktiviert werden konnte... was Du mit Deinem Skript wolltest. Gruß EASY
-
Hallo, ... irgendetwas geht nicht... Deine .zip Dateien stehen nicht zur Verfügung... ... es wäre einfacher, Du würdest eine Versuchsanlage aufbauen und diese dann hier als .mbp zur Verfügung stellen. So kann man besser nachvollziehen, was Du gemacht hast. ... so bleibt mir nur folgende Vermutung: Wie es aussieht führst Du die Ladung über einen Dummy-Antrieb der Drehung des Auslegers nach. Nach Augenschein ist die Drehung des Auslegers nicht linear. Entgegen dem Uhrzeigersinn (von ober betrachtet) beginnt die Drehung langsamer und endet schnell. Somit hast Du im Uhrzeigersinn das Problem, daß die Drehung schnell anfängt und langsam aufhört. Beide Situationen über einen (synchronen) Dummy-Antrieb lösen zu wollen ist zwar nicht ganz unmöglich aber sehr schwer umsetzbar... Du müßtest jeweils die Beschleunigung / Verzögerung des Dummy-Antriebs der Situation anpassen. ... ist aber nur eine Vermutung... Gruß EASY
-
Hallo, ausgehend von diesem Thema von @Rotti hat mich eine Lösung in lua interessiert. Zwar gibt es in dem Thread schon Lösungen aber ich möchte es hier als Gesamtprojekt vorstellen. Die Aufgabenstellung ist ein Lauflicht mit Leuchtpaaren die in einer Linie nacheinander aufleuchten sollen... ... die Idee die Leuchtpaare durch eine Verbindung zu erzeugen stammt von @Phrontistes, so muß nur die untere Leuchte angesteuert werden... Ausgangslage: 2 Leisten (Ebenen) entlang derer die Leuchten platziert werden sollen und eine Leuchte ("Leuchtwürfel" 243FA8AB-7111-4545-98C4-5E168D686BDA) ... die Leuchte bekommt das Schlagwort "LW1"... ... durch Duplizieren die gewünschte Anzahl (muß durch 2 teilbar sein!) Leuchten erzeugen... ... in der Stückliste sieht es nun so aus... viele "Leuchtwürfel"... Nach "Init" betätigen sieht es nun so aus... ... die obere Leiste ("LS1b") ist in x (und z) an der unteren Leiste ("LS1a") ausgerichtet, die Leuchten sind gleichmäßig verteilt und mit eindeutigen Namen versehen ... und die Verbindungen wurden gesetzt (LW1a xx -> LW1b xx) ... in der unteren Leiste "LS1a" wurden diese Variablen gesetzt... ... als Leuchten "LW" diese... ... in der oberen Leiste "LS1b" wurde die Variable "LW" gesetzt... ... mit diesen Einträgen... ... mit "Start" kann nun das Lauflicht gestartet werden... ... sollte sich aus optischen Gründen herausstellen, daß z.B. zu wenig Leuchten vorhanden sind, können durch Duplizieren weitere Leuchten erzeugt werden... ... und mit "Init" erfolgt die Verteilung neu... Das lua Skipt von "Init"... -[[ * index a=Master ; Index b=Slave ** i= 1 2 3 4 5 6 ... LW1a= 1 - 2 - 3 - ... LW1b= - 1 - 2 - 3 ... --]] -- Funktion Leuchten auf Leiste ausrichten local function ausricht(ls) local l=ls.size.x -- Länge Leiste (ls) local r=ls.variables["LW"] -- Leuchten einlesen local d=r[1].size.x -- Abmessung erstes Element in x l=l-2*d -- Anfangs- und Endposition -> Versatz local dx=l/(#r-1) -- Berechnung Abstand der Elemente local pos=ls.transformation.position -- Hilfsvariable Position local x=pos.x-l/2 -- x-Position Hilfsvariable for i,v in ipairs(r) do -- Alle Elemente der Liste pos.x=x+(i-1)*dx -- x.Position berechnen v.transformation.position=pos -- Element positionieren v.link=ls -- Leuchte mit Leiste verknüpfen end end -- Leuchten Namen vergeben -- Leuchten als Objektvariablen (Liste) in Leisten schreiben local lwa=layout:getEntitiesByKeyword("LW1") -- alle Leuchten $("LS1a").variables.LW={} -- Leiste 1 * $("LS1b").variables.LW={} -- Leiste 2 * for i,lw in ipairs(lwa) do -- alle Leuchten lw.state=0 -- Leuchte ausschalten lw.connection=nil -- eventuelle Verbindungen löschen lw.link=nil -- eventuelle Verknüpfung löschen if i%2==1 then -- ungerade Zahl (Leuchten für LS1a) lw.name=string.format("LW1a %02d",i//2+i%2) --** table.insert($("LS1a").variables.LW,lw) -- Leuchten Namen * else -- gerade Zahl (Leuchten für LS1b) lw.name=string.format("LW1b %02d",i//2+i%2) --** table.insert($("LS1b").variables.LW,lw) -- Leuchten Namen * end end -- Leuchtenpaare erzeugen -- Duch die Verbindung von LW1a xx zu LW1b xx braucht nur LW1a angesteuert werden for i,lw in ipairs($("LS1a").variables.LW) do -- alle LW1a * lw.connection=$("LS1b").variables.LW[i] -- Verbinden mit LW1b (Leuchtenpaar bilden) * end -- Objektvariablen in LS1a schreiben $("LS1a").variables.LWnr=1 -- Zähler aktuelle Leuchte (LWa) $("LS1a").variables.Farben={1,2,5} -- mögliche Farben für Farbwechsel $("LS1a").variables.Farbnr=1 -- aktuelle Farbnummer -- Leisten LS1b zu LS1a ausrichten (x- und z-Position) -- die y-Position von LS1b bestimmt den Abstand der Leisten local posb=$("LS1b").transformation.position -- Sollposition LS1b posb.x=$("LS1a").transformation.position.x -- Linksbündig zu LS1a $("LS1b").transformation.position=posb --LS1b positionieren $("LS1b").link=$("LS1a") -- "LS1b" mit "Ls1a" verknüpfen -- Leuchten auf Leiste ausrichten ausricht($("LS1a")) ausricht($("LS1b")) ... "Start"... --[[ --]] $("LS1a").variables.LWnr=1 -- Zähler aktuelle Leuchte (LWa) zurücksetzen $("LS1a").variables.Farbnr=1 -- aktuelle Farbnummer zurücksetzen if state==1 then $("Ereignisse").timers["LS1"]:start(0.15,true) -- Timer Starten else $("Ereignisse").timers["LS1"]:stop() -- Timer anhalten for i,lw in ipairs($("LS1a").variables.LW) do -- alle Leuchten LW1a lw.state=0 -- Leuchten ausschalten end end ... "Timer läuft ab"... --[[ --]] if $("LS1a").variables.LWnr>#$("LS1a").variables.LW then -- Letzte Leuchte war aktiv? $("LS1a").variables.LWnr=1 -- Zähler aktuelle Leuchte (LWa) zurücksetzen local fnr=$("LS1a").variables.Farbnr -- Farbnummer fnr=fnr+1 if fnr>#$("LS1a").variables.Farben then -- Hilfsvariable Farbnummer > Anzahl Farben fnr=1 -- Farbnummer zurücksetzen end $("LS1a").variables.Farbnr=fnr -- Variable mit Hilfsvariabe setzen else local farbe=$("LS1a").variables.Farben[$("LS1a").variables.Farbnr] local lw=$("LS1a").variables.LW[$("LS1a").variables.LWnr] $("Lampe LS1 ein aus"):invoke(farbe,lw) -- Leuchte ein/aus schalten $("LS1a").variables.LWnr=$("LS1a").variables.LWnr+1 -- nächte Leuchte end ... benuterdefiniertes Ereignis "Lampe LS1 ein aus"... --[[ * Hinweis: Ist die Verzögerung <= der Timerzeit leucht ein Leuchtenpaar. Bei kleiner Verzögerung "blitzt" das Leuchtenpaar auf Ist die Verzögerung ein ganzzahliges Vielfaches der Timerzeit leuchten die entsprechende Anzahl an Leuchtenpaaren --]] if not deferredCall then lw.state=farbe -- Leuchte einschalten (Farbe) defer(0.1,"vz1") elseif deferredCall=="vz1" then -- * lw.state=0 -- Leuchte ausschalten end Die prinzipielle Idee mit dem benuterdefiniertem Ereignis "Lampe LS1 ein aus" stammt von @Goetz, damit kann man mit geeignetem Verhältnis von Timer-Zeit und Verzögerung gewisse Leuchteffekte erzeugen (Leuchte blitzt kurz auf, mehrere Leuchten leuchten gleichzeitig...) Zum Schluß noch das Projekt... Lauflicht Liste EASY.mbp Gruß EASY Nachtrag: Bei "Init" werden jetzt noch die Leuchten mit den entsprechenden Leisten und "LS1b" mit "LS1a" verknüpft. Damit wird bei Bewegung oder Drehung von "LS1a" alles andere mit bewegt.
-
Hallo, danke für die Klicks. Wie es aussieht scheint diese Lösung auf Zustimmung zu stoßen (auch relativ einfache Modelle können Diskussion auslösen...). @Neo die "Gleissperre" 908FEA73-60D7-4850-B85E-F00983D422E7 ist mit dieser Variante überschrieben. Bitte erneut freigeben. Gruß EASY
-
Hallo, ... ich habe mich für die Animation entschieden. Es war einfacher als 16 Varianten (mit LODs) zu erzeugen... In der Beschreibung sind die Animationswerte zu finden... Die Schutzbohle ist bei Bedarf einblendbar... so kann jeder machen wie er will (intern / extern / gar nicht) P.S. Der Gleiskontakt ist zwar auf dem Bild nicht sichtbar (da im Simulationsmodus aufgenommen) aber noch vorhanden. Zuerst einmal als neuer Entwurf "Gleissperre Spur" hochgeladen 1298554C-69FF-470D-98B8-C043ED7EA0CA Wenn sich nichts mehr groß ergibt, werde ich die Tage das Original im Katalog ersetzen. Gruß EASY