Alle erstellten Inhalte von EASY
-
Kurzanleitung Bones in Blender - Anwendungsbeispiel Bahnschranke mit Gitter
Hallo, Du kannst nicht verbundene Teilobjekte (in Deinem Fall das applied Array) eines Objekts... ... im Edit-Mode mit "P" -> "By loose Parts" auswählen... ... in Eineinzelobjekte auflösen lassen... Du kannst das Aussehen der Knochen eines Skeletts... ... hier unter "Ansichtsfenster-Anzeige" -> "Anzeigen als" ändern... ... z.B. Anzeigen als "einzelner Knochen" (und die Namen anzeigen lassen) Gruß EASY
-
How to change the track name to use as sensor in RocRail?
in V9 you can edit the name in the lower menu bar here... ... Eigenschaften / Properties... ... Position... Greetings EASY
-
Erweiterung von vehicle:isHeadingTowards(object) um die Strecke
Hallo @Hawkeye , danke für die Erklärung. Eine interessante Aufgabenstellung. ... wäre schön, denn es würde sich auch gut dazu eignen Anfangssituationen (Startparameter, wenn eine Anlage anläuft) genauer zu erfassen... Gruß EASY
-
Erweiterung von vehicle:isHeadingTowards(object) um die Strecke
Hallo, ... da ich neugierig bin, was möchtest Du mit der Information über den Abstand machen? ... es wird nur ein Übergabeparameter erwartet und ausgewertet, weitere Parameter werden einfach ignoriert. Gruß EASY
-
Automatikbetrieb gesteuert durch die Zeit
Hallo, da mir das Ausfüllen der Fahrplan - Variablen etwas aufwendig erschien (viele Klicks für einen Eintrag) habe ich für die Vereinfachung der Eingabe eine Ereignisauswertung geschrieben, die den Fahrplan aus einem Textfeld ("TF Fahrplan") ausliest... (betätigen des Tasters "FP auslesen") P.S. die Modulvariable "Fahrplan" für den Fahrplan wird automatisch angelegt. -[[ - Fahrplan in ein Textfeld eintragen Formatierung Textzeile: HH:MM; Auflistung Fahrstraße(n mit , getrennt) z.B. 08:45; Fahrstraße 1 10:03; Fahrstraße 2, Fahrstraße 3 11:56; Fahrstraße 4 (Führende 0 in der Zeit kann auch weggelassen werden)) --* ={""} Einträge sind eine Liste (nicht ={} -> wird zu Tabelle! -> Adressierung über Name ["x"] ungünstig!) --* -> z.B.print($("Ereignisse").variables.Fahrplan[2]["2"][1]) --* [Liste][Tabelle][Liste] --* einfacher -> z.B.print($("Ereignisse").variables.Fahrplan[2][2][1]) --* [Liste][Liste][Liste] --** Fahrstraßen mit gleichem Namen werden einzeln aufgenommen --*** Schreibweise $("Ereignisse").variables.Fahrplan geht nur, wenn Name ohne Leerzeichen! --*** -> sonst z.B. $("Ereignisse").variables["Fahrplan 01"] --]] $("Ereignisse").variables.Fahrplan={""} --*** Liste anlegen (--*) local text = $("TF Fahrplan").text local lines = {} -- Zeilen text:gsub("[^\n]+",function(c) table.insert(lines,c) end) -- Text in Zeilen auflösen local zeit="" -- Abfahrtszeit local fs="" -- Fahrstraße(n) aus Text local n=0 -- Hilfsvariable local tf={} -- Hilfsliste Fahrstraßennamen local te={} -- Hilfsliste Fahrstraßen for i, line in ipairs(lines) do line:gsub("[^;]+",function(c) zeit=c end,1) -- Zeit extrahieren fs,n=line:gsub(zeit..";","") -- Zeit in Linie Löschen tf={} -- Hilfsliste leeren te={} -- Fahrstraßen extrahieren, Leerstellen vor dem Namen löschen fs:gsub("[^,]+",function(c,a,b) a,b=string.gsub(c, "^%s+", "") table.insert(tf,a) end) $("Ereignisse").variables.Fahrplan[i]={""} --* for i,v in ipairs(tf) do -- Liste Fahrstraßennamen umwandeln in... for k,w in ipairs(layout:getRoutesByName(v)) do --** Liste mit Fahrstraßen table.insert(te,w) end end $("Ereignisse").variables.Fahrplan[i][1]=zeit --*** Abfahrtszeit eintragen $("Ereignisse").variables.Fahrplan[i][2]=te --*** Fahrstraßen eintragen end... in dem Beispiel ist (zu Demonstrationszwecken) noch der Fall mit berücksichtigt, daß 2 Fahrstraßen den gleichen Namen haben. Zur prinzipiellen Funktionsweise hat sich sonst nichts gegenüber dem vorherigen Beispiel geändert. ... zum Ausprobieren und Spielen noch das Projekt... Zeitsteuerung 02b.mbp Gruß EASY
-
Neue Foren-Softwareversion
Hallo @Neo, ich fände es praktisch, wenn bei der Vorschau "letzter Beitrag"... ... durch einen (Doppel-) Klick das Thema geöffnet und zum letzten Beitrag gesprungen würde. Gruß EASY
-
Verkehr starten
Hallo, Prinzipiell brauchst Du ja nur, wenn der Schalter 'ein' geschaltet wird (alles anhalten) zuerst die aktuelle Geschwindigkeit in einer Objektvariablen im Fahrzeug speichern und die Geschwindigkeit dann auf 0 setzen. Wenn der Schalter auf 'aus' (alles weiterfahren) geschaltet wird, dann weist du den Fahrzeugen die Geschwindigkeit der Objektvariablen wieder zu. (für beides würde sich die Ist-Geschwindigkeit anbieten, da es sonst durch unterschiedliche Beschleunigungs- und Bremswerte zu "Verschiebungen" der Fahrzeuge beim Umschalten des Schalters geben könnte.) ... Du hast es ja schon vorbereitet, daß dies in einer Wiederholung (für alle Objekte mit dem Schlagwort "Verkehr") realisieren läßt. das beschreibt aber einen erweiterten Sachverhalt als die ursprüngliche Anfrage... ... vielleicht magst Du noch näher erklären, was Du mit dem Schalter bezwecken möchtest. Gruß EASY
-
Neue Foren-Softwareversion
Hallo, Eine Diskussion über den optional einstellbaren "Dark Mode" finde ich höchst "interessant" . Die Option gegebenenfalls einfach nicht nutzen Gruß EASY
-
Animationen
Hallo, ... ich finde es ist die schnellste Möglichkeit (wenn man es "richtig" macht) Zuerst bei den Segmenten, die Du bearbeiten möchtest die Schlüsselbilder wie oben beschrieben, gegebenenfalls entsperren! Zuerst 01.008 und das Kind "Fenster" markieren und mit Shift+D kopieren und mit Enter bestätigen... ... so entsteht 01.011 mit dem Kind "Fenster"... die Kopie nicht bewegen... Das Segment, das ersetzt werden soll 01.006 markieren, den Cursor in die Zeitleiste setzen und die Schlüsselbilder mit Strg+C kopieren... (Wichtig! Die Schlüsselbilder müssen vor dem Kopieren als markiert erkennbar sein (alle gelb). Wenn sie weiß sind, sind sie nicht markiert -> mit "a" alle auf markiert setzen) ... das kopierte Segment 01.011 markieren und den Cursor wieder in die Zeitleiste setzen und die Schlüsselbilder mit Strg+V einfügen. (Wichtig! Die Schlüsselbilder müssen vor dem Einfügen als markiert erkennbar sein (alle gelb). ... 01.006 nun löschen... ... 01.011 umbenennen in 01.006... dann stimmt auch optisch wieder die Reihenfolge... ... für weitere "Fenstersegmente" ähnlich verfahren... Gruß EASY
-
Animationen
Hallo, Die Meldung sagt, daß die Schlüsselbilder für die Bearbeitung gesperrt sind. Beispiel an Segment 01.006 Dies sieht zwar auf den ersten Blick nicht so aus, da bei "Action Bake" das Schloß offen ist... ... wenn Du jedoch den Baum öffnest, dann siehst Du, daß alle Animationen gesperrt sind (Schlösser geschlossen)... Bei "Action Bake"einmal auf das Schloß klicken, so daß es geschlossen ist... ... dann noch einmal bei "Action Bake" auf das Schloß klicken, dies öffnet alle anderen Schlösser... ... und die Schlüsselbilder können bearbeitet werden. (... entsprechend für andere Segmente, die Du bearbeiten möchtest) Gruß EASY
-
Automatikbetrieb gesteuert durch die Zeit
Hallo, ... ich habe ein Beispiel gebaut... Der Fahrplan ist folgendermaßen aufgebaut... ... der Fahrplan ist eine Liste... ... jedes Element ist wiederum eine Liste... ... das erste Element dieser Liste ist die Abfahrtszeit... ... das 2. Element dieser Liste sind die Fahrstraße(n) als Liste... ... mit einer Fahrstraße... ... mit zwei Fahrstraßen... Mit dem Ereignis "Zeitpunkt erreicht" -> "jede Minute" wird abgefragt, ob eine Fahrplanzeit erreicht wurde... ... das ganze ist in lua, da die grafische EV nur die Bedingung "Zeitpunkt überschritten" kennt und ich nicht weiß, wie man damit einen einen genauen Vergleich auf nur eine bestimmte Zeit machen kann... --[[ Ungenauigkeiten von Zeitsekunden eliminieren --]] $("Textfeld 1").text=layout.time for i,v in ipairs($("Ereignisse").variables.Fahrplan) do local t=toTime(v[1]) -- Abfahrtszeit if layout.time >= t and layout.time < (t+toTime("00:01")) then --* local text="" for k,w in ipairs(v[2]) do -- Fahrstraßen text=text .. w.name .. " aktiviert " .. tostring(layout.time).."\n" w.active=true end $("Textfeld 2").text=text end end Hier noch die Demoanlage... Zeitsteuerung 02a.mbp Da der Fahrplan zwischen 12:00 und 13:00 abläuft, kann mit dem Taster die Zeit auf 12:00 zurückgesetzt werden (Simulationszeit auf "Virtuell" auf 20 Minuten / 24 Stunden gesetzt) Gruß EASY
-
Funktion isHeadingToward
Hallo @Hawkeye, noch ein kleiner Hinweis... "isHeadingToward" ist in seiner Reichweite beschränkt. Bei Reichweitenüberschreitung wird "false" zurückgegeben. Soweit ich mich erinnere sollten es 150m (1:1) sein. In der Praxis kann es allerdings ab 135m auch schon einmal kritisch werden. Gruß EASY
-
Animationen
Hallo, ... danke für das Lob, das ich jedoch (noch?) nicht verdient habe. Momentan bin ich nur ein "Meister der Korrektur", ... nach dem backen Gruß EASY
-
Animationen
Hallo @Thomas_103, anbei noch ein Rolltor ohne Hüpfen, Klappen, "richtige" Endposition, mit Dichtung und 3-mal langsamer... Rolltor 3b.zip ... in der .zip ist die .blend, .glb, .anim, .mbe und die Texturen. Gruß EASY
-
Animationen
Hallo, so ganz verstehen kann ich es noch nicht aber... ... wenn ich Deine Rolltror 3aa.glb ins MBS importiere, dann sind die Fenster durchsichtig... Wenn ich Deine Rolltor 3aa.blend in Blender 4.1 öffne und dann gleich als Rolltror 3aa.glb exportiere ind diese im MBS importiere... ... dann habe ich dieses Ergebnis... Wie gesagt eine logische Erklärung hierfür habe ich nicht aber zweifelsohne ist etwas anders Anmerkung: Persönlich würde ich nicht mit einer fenster_alpha.dds arbeiten, sondern die Transparenz direkt in die fenster.dds bringen... Gruß EASY
-
Sichtbarkeit / Unsichtbarkeit in Dauerschleife
Hallo, ... das Skript für diese Variante... --[[ * nicht erforderlich, wenn beim Anlegen der Objekte die Sichtbarkeit schon richtig gesetzt wurde! --]] if controller.state==0 then -- definierte Endbedingungen schaffen ! for _,h in ipairs(layout:getEntitiesByKeyword("hell")) do h.visible=false end for _,d in ipairs(layout:getEntitiesByKeyword("dunkel")) do d.visible=true end else if not deferredCall then -- definierte Anfangsbedingungen schaffen ! * for _,h in ipairs(layout:getEntitiesByKeyword("hell")) do --* h.visible=false --* end for _,d in ipairs(layout:getEntitiesByKeyword("dunkel")) do --* d.visible=true --* end -- defer(0.1,"vz1") -- Verzögerung bis zum 1. Umschalten in Sekunden elseif deferredCall=="vz1" then -- Sichtbarkeit umschalten local th=1.5 -- Zeit für Zustand "hell" in Sekunden local td=0.5 -- Zeit für Zustand "dunkel" in Sekunden local hell=layout:getEntitiesByKeyword("hell") for _,h in ipairs(hell) do h.visible= not h.visible end for _,d in ipairs(layout:getEntitiesByKeyword("dunkel")) do d.visible= not d.visible end if hell[1].visible then defer(th,"vz1") -- Schleife erzeugen für Zustand "hell" else defer(td,"vz1") -- Schleife erzeugen für Zustand "dunkel" end end end ... und das Projekt dazu.... 2025-07-12-Objekte blinken 02.mbp Gruß EASY
-
Sichtbarkeit / Unsichtbarkeit in Dauerschleife
Hallo, Ich habe ein kleines Beispiel gebastelt, ist allerdings in lua... ... da mit Schlagworten gearbeitet wird, spielt die Anzahl der Objekte keine Rolle... Das Ereignis, wenn der Schalter betätigt wird... --[[ * nicht erforderlich, wenn beim Anlegen der Objekte die Sichtbarkeit schon richtig gesetzt wurde! --]] if controller.state==0 then -- definierte Endbedingungen schaffen ! for _,h in ipairs(layout:getEntitiesByKeyword("hell")) do h.visible=false end for _,d in ipairs(layout:getEntitiesByKeyword("dunkel")) do d.visible=true end else if not deferredCall then -- definierte Anfangsbedingungen schaffen ! * for _,h in ipairs(layout:getEntitiesByKeyword("hell")) do --* h.visible=false --* end for _,d in ipairs(layout:getEntitiesByKeyword("dunkel")) do --* d.visible=true --* end -- defer(1,"vz1") elseif deferredCall=="vz1" then -- Sichtbarkeit umschalten for _,h in ipairs(layout:getEntitiesByKeyword("hell")) do h.visible= not h.visible end for _,d in ipairs(layout:getEntitiesByKeyword("dunkel")) do d.visible= not d.visible end defer(1,"vz1") -- Schleife erzeugen end end Noch das Projekt zum ausprobieren... 2025-07-12-Objekte blinken 01.mbp Gruß EASY
-
Walters Modellbau
Hallo, ... da die Häuser ja tatsächlich existieren, kann man ja mit z.B. der Satellitenansicht von Google Maps einfach mal einen Blick auf das Dach werfen... (... wenn man weiß wo...) Gruß EASY
-
Straßenlampe
Hallo, ... kannst Du die .blend Datei und die beiden Texturen (Grundtextur und Emissive-Textur) in eine .zip Datei packen und hier mit einstellen, oder mir als PN schicken. Ich habe eine Vermutung war Dir noch fehlt und so könnte ich es Dir am Modell erklären. Gruß EASY
-
Karls Modellbau
-
Einige Fragen zum Modellbau
Hallo, The interiors are represented by textures of the window panes... Die Innenräume werden durch Texturen der Fensterscheiben dargestellt... EASY
-
Straßenlampe
Hallo, ... in der .zip Datei "Blender Lichtkonfiguration" gibt es dazu auch eine .pdf (Blender MeshLight.pdf)... Gruß EASY
-
Straßenlampe
Hallo Prinzipiell stimmt diese Aussage nicht ganz. Von der Definition her ist es eine Lichtquelle... allerdings mit zu kleinen Abmessungen und somit Reichweite ja, und du kannst jedes beliebige Objekt verwenden (da es nicht im Modell im MBS angezeigt wird und auch nicht zur Polygonzahl beiträgt) (oder das Blendereigene "Hinzufügen" -> "Licht" -> "Punkt") @Neo ... hier fehlt (vielleicht) noch der Hinweis, daß es ein Hilfsobjekt ist, das im MBS nicht angezeigt wird... Gruß EASY
-
Straßenlampe
Hallo, Kennst du schon die .zip Datei "Blender Lichtkonfiguration" in der wiki Modellbau -> Grundbegriffe -> Lichter? Dort habe ich versucht die unterschiedlichen Konfigurationen für Lichter in Blender zu beschreiben. Das _PointLight Objekt ist ein virtuelles Objekt, das im Modell im MBS nicht angezeigt wird. Seine Abmessung in z-Richtung beschreibt den Durchmesser einer Kugel, die die Reichweite des Lichtes darstellt. Dabei ist allerdings zu beachten, daß die Lichtstärke mit dem Abstand vom Mittelpunkt abnimmt und an der Kugeloberfläche 0 ist. Ist deine Lichtquelle bei der Laterne z.B. 2,5 m über dem Boden, so muß das _PointLight Objekt in der z-Ausdehnung > 5m haben, damit der Lichtschein auf dem Boden sichtbar ist. Zu beachten ist, daß das _PointLight vom Mittelpunkt aus gesehen in alle Richtungen Licht abstrahlt. Es entspricht zwar nicht ganz deiner Konstruktion, aber vielleicht bist du für die Darstellung mit einem Spotlicht besser bedient. P.S. Für Versuche kannst du auch zuerst das Modell ohne Lichtquelle in das MBS bringen. Positioniere dann die "Lichtquelle" aus dem Katalog 40F62DD2-BC17-44C1-BF50-CC8CB7F9D5B0 an die Position der gewünschten Lichtquelle im Modell. In den Eigenschaften, kannst die dann die unterschiedliche Lichtquellen und deren Parameter auswählen und einstellen und deren Wirkung im MBS ausprobieren. Dann hast du für das Blendermodell schon einmal Anhaltspunkte für die Parameter das Lichtobjektes. Gruß EASY
-
Einige Fragen zum Modellbau
Hallo, Dein Beispiel ist zwar auch eine Lösung... ... die einfachere Lösung zum Merken ist allerdings diese... ... weiße Spitze nach außen. (Welche Lösung man wählt, hängt noch davon ab, ob und wie man die Objekte gegeneinander verdrehen möchte...) Gruß EASY