Posts by Benny (BH2)

    Ach ja, mit BAHN habe ich auch mal für einige Zeit herumprobiert.

    Was mir davon noch in Erinnerung geblieben ist, was auch in EEP manchmal wünschenswert wäre:

    An Weichen kann man für jede Route die gewünschte Fahrtrichtung eintragen, oder genauer gesagt: Die vorhandenen Routen auf die möglichen Fahrtrichtungen verteilen.

    In EEP gibt es Kontaktpunkte, mit denen man Weichen schalten kann. Dazu braucht man aber pro Route einen eigenen Kontaktpunkt, was bei vielen Routen schnell unübersichtlich werden kann. Man bekommt auch keine Übersicht (welche Route fährt wohin?), sondern kann immer nur in einen einzelnen KP reinschauen, für welche Route er gilt, und welchen Effekt er hat.

    Und bei KPs gibt es das Risiko, dass die Weiche im falschen Moment durch ein anderes Fahrzeug umgestellt wird.

    Das ist (bzw. war) besonders bei zweispurigen Straßen gefährlich, wo der Gegenverkehr die Weiche im letzten Moment wieder umstellen konnte. Bei BAHN ist das kein Problem. Dort kann in der Weiche eingestellt werden, dass jedes Fahrzeug nach rechts fährt.


    Viele Grüße

    Benny

    Auch ich kriege im FF nur eine leere png-Grafik. Ich habe hier allerdings den Hinweis auf eine Lösung gefunden. Kurz: Im SVG-Element müssen Höhe und Breite als Attribut eingetragen sein. Ich habe es bei mir getestet, und damit funktioniert es.

    Wenn Frank nicht schneller ist, werde ich bald einen entsprechenden Pull-Request aufmachen.


    Viele Grüße

    Benny

    Zu setmetatable und einer präzisen Ausdrucksweise hatte ich schon was geschrieben, das will ich nicht nochmal wiederholen.


    Und auch zu

    Es ist extern nicht möglich auf deine Variable zu zugreifen.

    hatte ich eigentlich schon etwas geschrieben. Ja, das stimmt, außerhalb des Kontaktpunktaufrufs kann man nicht mehr auf den Zugnamen zugreifen. Aber während des Kontaktpunktaufrufs ist Zugname eine globale Variable. Punkt.


    Irgendwie habe ich eh das Gefühl, wir reden aneinander vorbei. Ich verstehe nicht so ganz, was du willst, und du verstehst wohl auch nicht so ganz, was ich will.

    Solange sich das so bleibt, halte ich eine weitere Diskussion für sinnlos.


    Viele Grüße

    Benny


    PS: Aus deinem PS werde ich auch nicht schlau. Was für eine "bestehende Sitzung"? Was bedeutet hier "statisch"? Welche Tabelle? (Musst du jetzt nicht beantworten. Ich will nur erklären, warum ich darauf nichts antworten kann)

    Doch, Zugname ist global. Ich habe zwar versucht, die Auswirkungen der "Globalität" abzumildern, indem ich die Variable nach dem Ausführen des KP-Codes wieder zurücksetze. Aber während der KP-Code ausgeführt wird, ist Zugname global.

    Wäre Zugname nicht global, könntest du in anderen Funktionen nicht darauf zugreifen, ohne den Zugnamen als Parameter mitzugeben.


    Viele Grüße

    Benny

    Hallo Dieter,

    leider verstehe ich nicht ganz, was du meinst (oder willst).

    Nein, ich mache nichts "in der Funktion setmetatable". Diese Funktion ist von Lua bereits fertig implementiert, ich rufe diese Funktion nur auf. Als Parameter übergebe ich der Funktion setmetatable (irgendwo verschachtelt) eine andere (namenlose) Funktion, in der das von dir beschriebene funktioniert.

    Das klingt jetzt vielleicht etwas kleinlich, und ist mir eigentlich auch egal, aber solche "unpräzisen Ausdrucksweisen" führen sehr schnell zu Missverständnissen.


    Hierbei ist es absolut egal, ob der Zugnamen per Argument oder per Variable innerhalb deiner Funktion erfolgt.

    Ich weiß nicht genau, was du damit (insbesondere mit "egal") meinst, deshalb weiß ich auch nicht, ob ich dir da wiedersprechen muss.


    Aber ich bleibe dabei: Globale Variablen sind böse.

    Wenn ich den Aufruf MeineFunktion() in einem Kontaktpunkt sehe, dann erwarte ich, dass beim Aufruf von MeineFunktion() in der EEPMain oder sonstwo im Skript das gleiche passiert. Wenn die Funktion MeineFunktion auf die globale Variable Zugname zugreift, ist das nicht mehr gegeben. Solche unerfüllten Erwartungen ("sieht aus als ob, ist aber doch nicht") können zu sehr schwer zu findenden Fehlern führen.


    Viele Grüße

    Benny

    Da auch Birnen-Vergleiche erlaubt sind, picke ich mir mal Blender heraus. Insgesamt sind EEP und Blender natürlich nicht vergleichbar, in Teilaspekten aber doch.

    Was bei Blender besser ist

    • Der 3D-Editor
      Gizmos in einer brauchbaren Größe, die nicht von anderen Objekten verdeckt werden; Tastenkürzel zum Verschieben, Rotieren, Skalieren, optional mit numerischer Eingabe der Werte, optional beschränkbar auf einzelne Achsen: Nach ein bisschen EIngewöhnungszeit lassen sich Objekte in Blender wesentlichen schneller und präziser manipulieren als im EEP-3D-Editor.
    • Die Erweiterbarkeit
      Blender selbst ist Open Source, und darüber hinaus kann mit Python so gut wie alles automatisiert und geändert werden. Selbst die Benutzeroberfläche kann per Python angepasst werden.
      In EEP gibt es mit Lua auch eine Skriptsprache, mit der sich aber nur einige wenige gezielt "freigegebene" Dinge beeinflussen lassen. Eine lange Reihe Häuser mittels einer schnell geskripteten Schleife aufstellen? Fehlanzeige.

    Was bei EEP besser ist:

    • Die Performance
      Ich habe es nur einmal vor langer Zeit mit meinem Strandbahnhof getestet, aber das Ergebnis ist mir in Erinnerung geblieben.
      100 Strandbahnhöfe auf einer leeren EEP-Anlage: Kein Problem, Framerate immer noch im grünen Bereich.
      Strandbahnhof in Blender 100x dupliziert: Kaum noch bedienbar, eine Diashow wirkt dagegen noch flüssig.

    Viele Grüße

    Benny

    Ein Lesezeichen ist doch nur ein statischer Link, der sich nicht ändert. Den kannst du dir auch im Browser speichern. Beitragsgenau geht das mit einem Rechtsklick auf die Beitragsnummer oben rechts, und dann "Lesezeichen für diesen Link hinzufügen" (so heißt es in Firefox).


    Um Benachrichtigungen über neue Beiträge zu bekommen, kann man das Thema abonnieren, wie von Ingo gezeigt. Das hat in meinen Augen aber nur wenig mit Lesezeichen zu tun.


    Viele Grüße

    Benny

    Routen gelten immer für den gesamten Zugverband. Die kannst du also frühestens am Ablaufberg zuweisen, wenn die Waggons schon auseinandergekuppelt sind.

    Mit Lua kannst du jedem Fahrzeug einen Tag-Text zuweisen und wieder auslesen. Leider kann man den Tag-Text nicht von Hand eingeben.


    Viele Grüße

    Benny

    Wenn du das erste Bild vergrößerst, siehst du am Führerhaus die Beschriftung "Braud 9090". Damit findest du dann auch bei Google was.

    Vermutlich ist es dir schon längst bewusst, zur Sicherheit erwähne ich es aber nochmal:

    Über einen Rechtsklick gelangst du an die Objekteigenschaften, dort kannst du die Position als Zahl eingeben. Damit bist du nicht darauf angewiesen, alles "nach Augenmaß" umherzuschieben.

    Das hilft dir natürlich nur etwas, wenn du die benötigten Zahlen kennst (oder ermitteln kannst).


    Viele Grüße

    Benny

    Gibt zu den Feldern, denn auch einen farblich passenden Spline? Nicht so wie bei den Weizenfeldern, wo es nur das Gleisobjekt gibt!

    Du kannst die Splines aus den Gleisobjekten heraus vervielfältigen. Die lassen sich zwar nicht mehr abernten, dafür sind beliebige Formen möglich.


    Nachtrag: Diesen Beitrag hätte ich in eine Tipps&Tricks-Rubrik eingestellt, wenn es sie gäbe (und ich rechtzeitig dran gedacht hätte). So gibt es halt hier einen weiteren Offtopic-Beitrag.

    [...] wenn das Skript neu gestartet wird. Und das passiert ja alle Nase lang, wenn man zum Beispiel in den Editor oder das Planfenster und zurück gewechselt hat.

    Nein, beim Wechsel von 3D zu 2D und zurück wird das Skript nicht neugestartet, nur "angehalten" (die EEPMain wird nicht mehr aufgerufen). Neu gestartet (sodass alle globalen Variablen verloren gehen) wird das Skript nur, wenn man den entsprechenden Knopf im Lua-Editor klickt oder die Anlage neu lädt.


    Mein Rat zu den beiden Knöpfen "Lua Skript laden" und "... speichern": Ignoriere sie einfach.

    Benutze sie vor allem nicht, um damit die originale Lua-Datei der Anlage zu laden und zu speichern. Dort stehen nämlich noch die Slot-Inhalte [EEPLuaData] drin, die nicht ins Skript reingehören (den Syntaxfehler hast du ja schon bemerkt). Beim Laden und Speichern der Anlage berücksichtigt EEP das. Bei den beiden genannten Knöpfen nicht.


    Viele Grüße

    Benny

    und wer soll das alles dort einsortieren?

    Wenn nahezu alle tollen Tipps Antworten auf Fragen wie die von Ulrich selbst sind, die an ganz anderer Stelle gestellt wurden?

    Jeder selbst, der einen Trick zum Besten geben will.

    Ich erwarte keine vollständige Tipps-und-Tricks-Sammlung.

    Mir (und wenn ich ihn richtig verstanden habe, auch Ulli) geht es nur darum, dass Tipps ohne Frage nicht zwischen all den Fragen untergehen. Wer einen tollen Tipp als Antwort auf eine Frage gibt, darf seinen Tipp auch gerne nochmal separat in dieser Rubrik posten (oder natürlich auch jeder andere, der den Tipp heraushebenswert findet).


    Es soll ja auch Tipps geben können, ohne dass eine Frage dazu gestellt wurde:

    Mir fallen da eine Reihe von Ideen ein die sicherlich auch andere Interessieren könnten, die ich z.B. nicht unbedingt für mich behalten möchte und auch anderen zur Verfügung stellen würde.



    wenn diese Tipps an zentraler Stelle zu finden sein sollen.

    Mir geht es nicht um eine Stelle, an der alle Tipps versammelt sind. Sondern um eine Stelle, an der die Tipps nicht zwischen den ganzen Fragen untergehen.


    Daher befürworte ich Ullis Vorschlag.

    Aber ich werde nicht dafür kämpfen. So wichtig ist es mir nicht.


    Viele Grüße

    Benny

    Einen langen Text kann ich immerhin noch überfliegen...

    Bei einem 10-Minuten-Video klicke ich gleich weiter, und reime mir dann später aus den Antworten zusammen, worum es überhaupt ging.


    Nachtrag: Ich habe nichts gegen Videos. Aber ich würde mir wünschen, dass es im Text zumindest eine grobe Beschreibung gibt, worum es im Video geht.