Alle erstellten Inhalte von Neo
-
Waren-Rücktransport in V5
Hallo, ja, ohne Lua geht es leider nicht, aber wie in Andys Beispiel zu sehen, kannst du Lua und die grafische EV beliebig kombinieren. Das einfachste Beispiel wären folgende wenige Zeilen: local Quelle = $("Transportgut") local Ziel = $("Abstellfläche") Quelle.transformation.position = Ziel.transformation.position Quelle.transformation.rotation = Ziel.transformation.rotation Dabei übernimmt ein Objekt "Quelle" die Koordinaten eines Objekts "Ziel". Das genügt schon, um ein Objekt zu beamen. Viele Grüße, Neo
-
Versuche MBS-V5 von EASY
Hallo, hast du dafür ein konkretes Beispiel? Für den eigentlichen Warentransport hat die Grundposition keine Bedeutung, d.h. der Kran kann aus jeder Position heraus jede andere valide Position ansteuern, ein Reset ist dafür nicht notwendig (ein Reset dient eher dazu, eine aktuelle Operation abzubrechen). Viele Grüße, Neo
-
Polygonzahl anzeigen
Hallo Andy, dieser Wunsch wurde schon mehrfach geäußert, allerdings halte ich davon nicht viel. Die Mehrheit der Leute wissen nichts mit einer Polygonanzahl anzufangen. Auch nicht mit einer abstrakteren "Komplexität". Es ist nicht Aufgabe des Users, sich über solche Dinge Gedanken machen zu müssen. Wenn ein Modell in den Katalog aufgenommen wird, dann ist es für eine Anlage geeignet. Den Rest erledigt die 3D-Engine. Wenn die Anlage zu langsam läuft, dann die Grafikeinstellungen reduzieren. Unabhängig davon wird es mit V6 wieder größere Optimierungen an der 3D-Engine geben, sodass die Performance deutlich verbessert werden kann. Viele Grüße, Neo
-
Anzeigeproblem
Hallo Alfredo, die installierte DirectX-Version hat nichts mit den Hardware-Fähigkeiten deiner Grafikkarte zu tun. Wie schon von dir erwähnt ist dein Rechner 13 Jahre alt und unterstützt leider kein DirectX 10 oder 11 mehr, sondern nur noch das ebenfalls bereits in die Jahre gekommene DirectX 9. Die alte Schnittstelle unterstützt Version V5 nicht mehr, zu Gunsten einer einfacheren Weiterentwicklung der 3D-Engine, was die neuen Schatten erst ermöglichte. Du hast daher nur noch die Wahl, mit der Software-Variante von DirectX 11 zu arbeiten (WARP), was zwar funktioniert, aber nicht besonders schnell ist (wobei ein 13 Jahre alter PC auch so nicht besonders gut für das 3D-Modellbahn Studio geeignet ist). Viele Grüße, Neo
-
Ereignis-Protokoll
Hallo Stephan, die 3 Ereignisse "Gleiskontakt wird ausgelöst" entsprechen der Auslösung für den Anfang, Mitte und Ende des Zugs. Das wird aus dem Protokoll nicht ersichtlich, was ich verbessern werde. Danke für den Hinweis. Viele Grüße, Neo
-
Neue Beta-Version V5
Hallo, ich habe auf diese Frage gewartet, auch weil die jetzige Implementierung noch nicht final sein muss. Ich denke, es wird hier noch Änderungen geben, sodass mindestens $ beim Laden von Modulskripten zur Verfügung steht. Auf jeden Fall wird das Verhalten am Ende im Wiki dokumentiert. Yes, but only in Lua. Viele Grüße, Neo
-
Lua-Tables in V5
Hallo, Seiteneffekte bezeichnen ungewollte Änderungen von globalen Variablen, die so nicht beabsichtigt waren. Zum Beispiel: objekte = {} function InitObjekte() objekte['ABC'] = 'Mein Gleis' end function ClearObjekte() objekte = {} end function VerarbeiteObjekte(modus) objekte['ABC'].verarbeite(modus) ClearObjekte() end VerarbeiteObjekte(1) VerarbeiteObjekte(2) -- Peng! Dieses konstruierte und sinnlose Beispiel soll verdeutlichen, wie schnell eine globale Variable unbeabsichtigt geändert wird. Weil in VerarbeiteObjekte nach der Verarbeitung ein ClearObjekte steht, ist die Tabelle beim zweiten VerarbeiteObjekte-Aufruf leer. Für jemanden, der dein Skript nur schnell überfliegt, könnte es nicht ersichtlich sein, dass ein VerarbeiteObjekte nach dem Verarbeiten die Objekte löscht. Man provoziert so also schnell riskante Situationen, die speziell bei "Modulen", die anderen zur Verfügung gestellt werden sollen, zu Fehlern führen. Daher mein Tipp, auf so viele globale Variablen wie möglich zu verzichten. Viele Grüße, Neo
-
Neue Beta-Version V5
Hallo, das gilt für jede transparente Grundplatte, die automatische Höhenanpassung funktioniert dort nicht. Das ist jetzt nicht explizit so gewollt, ergibt sich eher aus den technischen Interna. Führt das zu einem bestimmten Problem? @Andy und @Goetz Alle Skripte, egal ob Modulskript oder Ereignisskript, landen am Ende in einer "Datei", die von Lua kompiliert wird. Somit arbeiten alle Bereiche der EV im gleichen Environment. Wird also irgendwo ein Variable ohne local gesetzt, ist sie anschließend Teil des globalen Environments und steht überall zur Verfügung. Ausgeführt wird die zusammengesetzte Lua-Datei beim Kompilieren. Das geschieht sowohl beim Laden der Anlage sowie nach einer Änderung der EV. Mit dem Play-Button hat das nichts zu tun, dieser steuert nur die Animationen. Alles, was nicht in einer Funktion steht, wird beim Kompilieren von Lua ausgeführt. Ereignisskripte stehen immer in einer Funktion, die vom Studio generiert wird, somit werden also nur die Modulskripte direkt beim Kompilieren ausgeführt, die Ereignisskripte immer dann, wenn das Ereignis eintritt. Die Library-Funktionen des Studios stehen zur Kompilierung noch nicht zur Verfügung, weil ich vermeiden möchte, dass während der Kompilierung Anlagenzustände geändert oder sogar Ereignisse aufgerufen werden. Und da die Kompilierung nach jeder EV-Änderung durchgeführt wird (und später vielleicht auch in anderen Situationen), kann sich ein Anlagenplaner nie genau darauf verlassen, wann und wie oft seine Skripte kompiliert/ausgeführt werden. Das ist auch der Grund, warum die $-Funktion noch nicht funktioniert, weil es beim Kompilieren noch keine Verbindung zur Anlage und den Objekten darin gibt. In welcher Situation wird so etwas benötigt? Für explizite Initialisierungen gibt es Möglichkeiten, z.B. ein Ereignis, was nur beim Laden einer Anlage einmalig aufgerufen wird. In so einem Ereignis könnte man dann seine One-Time-Initialisierungen vornehmen. Zuvor würde mich aber interessieren, was das für Initialisierungen typischerweise sind. Einen EV-Export wird es mit V5 noch geben, wobei ich aber auch gern Suchen und Ersetzen im Skript-Editor noch mit einbauen kann. Viele Grüße, Neo
-
V5
Hallo kutscher, die 32-Bit-Version findest du hier. Viele Grüße, Neo
-
Neue Beta-Version V5
Hallo, mit Verwindungen hat das Rotationsupdate nichts zu tun, hier geht es darum, Gleise schon im 3D-Modell anstellen zu können, z.B. für echte Rampen, wie man sie z.B. bei Holzeisenbahnen kennt. Das Thema Verwindungen bei Gleisen wird mal ein eigenes Thema werden, hab ich aber auf dem Schirm. Viele Grüße, Neo
-
Erste Versuche mit V5
Hallo, mich wundern diese Aussagen etwas, auch weil an anderen Stellen mitunter erwähnt wird, dass man bei der neuen EV "von vorne anfangen muss". Klar sieht sie anders aus und die Bedienung ist zunächst ungewohnt im Vergleich zu V4, aber das grundlegende Konzept dahinter ist doch identisch, die meisten Ereignisse, Aktionen und Bedingungen besitzen die gleichen Eigenschaften und verhalten sich wie gewohnt. Woher kommt dieser "Neuanfang"? Oder bezieht sich dieser auf die Tatsache, dass mit der neuen EV vorhandene Steuerungen deutlich effizienter umgesetzt werden können, und dafür aber die neu hinzugefügten Funktionen und Konzepte erst verstanden werden müssen? Viele Grüße, Neo
-
Neue Beta-Version V5
Hallo, ich habe eine neue Version 5.0.3.0 online gestellt, die einige Fehler beseitigt und weitere Verbesserungen enthält. Eine Übersicht erhaltet ihr im ersten Beitrag. Viele Grüße, Neo
-
Lua-Tables in V5
Hallo, bitte Hat es einen bestimmten Grund, warum du ein benutzerdefiniertes Ereignis "Kraninit" verwendest, um die Kräne zu initialisieren? Da du komplett auf Lua setzt, hätte ich erwartet, dass du einfach eine Funktion in deinem Modulskript aufrufst. Das Konzept hinter den globalen Tabellen "objekte" und "ziele" finde ich persönlich nicht so schön. Die einzelnen Funktionen in "AblaufTable" besitzen eine hohe Redundanz und unterscheiden sich oft nur in wenigen Details. Hinzu kommt, dass du erst die Funktion aufrufst, um globale Tabellen zu befüllen, um anschließend direkt wieder auf den Tabellen zu arbeiten. Das ist sehr anfällig für Seiteneffekte. Besser wäre es, wenn du eine Funktion schreibst, die die Daten über return zurück gibt, und du so nicht mit globalen Daten arbeiten musst. Prototypisches Beispiel: -- Modulskript Kran10 = function() local objekte = {} local ziele = {} for i = 1, 4 do objekte[i] = "Fass1"..i ziele[i] = "k1"..i end return objekte, ziele end function Kraninit(kran, objekte, ziele) if not kran.variables["buzzy"] then ... end end -- Ereignis if controller.state == 1 then local objekte, ziele = Kran10() Kraninit($("Kran1"), AblaufTable["objekte"], AblaufTable["ziele"]) else ... end Der nächste Schritt wäre dann die KranXX-Funktionen zu vereinheitlichen. Aber das kannst du dir vermutlich sparen. Es wird (wenn auch nicht sofort) Arrays als Objektvariablen geben, wodurch du die Objekte und Ziele eines Krans direkt beim Kran definieren kannst und nicht über eine Funktion initialisieren musst. StartK1 bis StartK3 kannst du dann auch zu einem Ereignis zusammenfassen, da du im Schalter eine Referenz zum entsprechenden Kran hinterlegen kannst. Gibt bestimmt noch weitere Tipps, ich freue mich auf die nächste Iteration Viele Grüße, Neo
-
Erste Versuche mit V5
Hallo, von welchem Radlader sprichst du? Der von @fmkberlin neu in V5 hochgeladene Radlader ist der erste Radlader mit mehreren Animationen, in V4 hatte er schon immer nur eine Animation. Beziehst du dich eventuell auf ein Test-Modell, welches mittlerweile ausgelaufen ist (was auch das Fragezeichen erklären könnte)? Für deine Demo empfehle ich dir noch, dir die neue Aktion "Ausführung verzögern" anzuschauen. Damit kannst du einige Timer durch einen linearen Ablauf ersetzen und reduziert somit die Ereignisse und Komplexität. Viele Grüße, Neo
-
Neue Beta-Version V5
Hallo, das ist normal, weiter entfernte Schatten verwenden aus Performance-Gründen eine niedrigere Auflösung, was bei solchen synthetischen Anlagen (Zug auf Holzplatte) deutlicher sichtbar wird als bei richtigen Landschaften. Kannst du mir bitte einen Gefallen tun und ein Testmodell zukommen lassen, bei dem du ein Wagon aufs Minimum reduziert hast, also alles entfernen, außer der Hülle? Ich kann dein Problem zwar reproduzieren, möchte aber genauer testen, ob das an dem Schattenalgorithmus oder an der besonderen Modellkonstruktion (mit der Innenbeleuchtung) liegt. Was meinst du damit? Werden Objekte gruppiert, wird daraus eine Gruppe. Es gibt hier keinen Bezug zu einer eventuell früher vorhandenen Gruppe, diese wurde ja gelöscht. Nein, hier gibt es keine Reihenfolge, diese kann als zufällig betrachtet werden. Worauf genau beziehst du dich? Es gibt in V5 ja keine globalen Variablen mehr, jede Variable ist Teil eines Ereignismoduls. Wenn du $ eingibst, erhältst du anschließend die Wahl zwischen einem Objekt und einem Ereignismodul. Wählst du dort das Modul, kannst du anschließend auf die Variablen oder andere Eigenschaften/Funktionen zugreifen. Eine direkte Auswahl der Variablen aus einer Liste gibt es in Lua noch nicht, das habe ich mir noch als Verbesserungsmöglichkeit notiert. Viele Grüße, Neo
-
Texturgröße bei den Modellen
Hallo Axel, die maximale Texturgröße leitet sich von den maximal Abmessungen deines Modells ab. Vermutlich haben sich diese durch das Kopftuch verändert, konkrete Aussagen kann ich aber nur mit Beispieldaten treffen. Viele Grüße, Neo
-
V5
Hallo kutscher, herunterladen und installieren. Viele Grüße, Neo
-
Lua-Tables in V5
Hallo, im Großen und Ganzen ist das korrekt. Ob eine Tabelle im Hauptmodul oder einem Untermodul erzeugt wird, spielt keine Rolle, weil alle Skripte aller Module beim Speichern der EV zusammengesetzt werden. Hat sich die EV geändert, werden alle Skripte einmalig kompiliert. Dabei werden auch die Tabellen erzeugt. Anders ausgedrückt, globale Tabellen werde nur einmal erzeugt, da spielt die Performance keine nennenswerte Rolle. Etwas anders sieht es aus, wenn Tabellen in Funktionen erzeugt werden, und diese Funktionen sehr häufig aufgerufen werden. Dann werden die Tabellen nämlich bei jedem Aufruf neu erzeugt. Viele Grüße, Neo
-
Maxweis Modellbau-Werkstatt
Hallo, ich habe das soeben erledigt, danke für den Hinweis. Viele Grüße, Neo
-
Maßstabs-Umstellung im 3D-Modelleditor funktioniert nicht
Hallo, dem ist leider nicht so. Die Auswahlliste sagt nur aus, in welchem Maßstab ein Gleis angelegt wird, wenn es erstmalig auf die Platte gezogen wird. Der eigentliche Fehler besteht daher darin, dass im Editor eine Auswahl getroffen werden kann, die gar keinen Einfluss mehr hat. Ich kann jedoch gern die vordefinierten Skalierungsfaktoren auf der Transformationsseite aus V3 wieder reaktivieren, die ein schnelles Umskalieren beliebiger Objekte in andere Maßstäbe erlauben. Viele Grüße, Neo
-
Modelle von HWB
Hallo Hermann, bitte schick mir die Dateien per E-Mail, da sonst das Forum mit Daten belastet wird, die nie mehr benötigt werden (die Modelle erscheinen ja im Online-Katalog). Viele Grüße, Neo
-
Neue Beta-Version V5
Hallo Andy, während das für die grafische EV noch machbar ist, wird das in Lua nichts mehr. Dort können Variablennamen beliebig zusammengebaut werden, das kann das Studio nicht selber entscheiden. Dir bleibt in diesem Fall nur die Suche nach Zeichenketten (die noch implementiert wird) und ein manuelles Ersetzen. Viele Grüße, Neo
-
Modelle von HWB
Hallo Hermann, ich habe deine Variationen zum Online-Katalog hinzugefügt, außer: MaK 1206 BE - Hier fehlt mir die Datei BR 211 MaK 1000233 - DB 212 097-0 EP VI - Handelt es sich hierbei um ein neues Modell oder eine Erweiterung eines vorhandenen? MaK 1000387 - DB 213 340-3 EP VI - Handelt es sich hierbei um ein neues Modell oder eine Erweiterung eines vorhandenen? Viele Grüße, Neo
-
Schmalspur Test
Hallo Henry, die fehlerhaften Koordinatenursprünge der Gleise der "Maßstab II"-Kategorie habe ich korrigiert. Viele Grüße, Neo
-
Neue Beta-Version V5
Hallo, einfach noch die ENDE-Taste drücken, wie beim Standard Windows-Texteditor. Viele Grüße, Neo