Jump to content

Goetz

Mitglieder
  • Gesamte Inhalte

    4902
  • Benutzer seit

  • Letzter Besuch

Alle erstellten Inhalte von Goetz

  1. Du benötigst zuerst ein Ereignis, welches einen Countdown auslöst. Beispielsweise einen Schalter. Dann kannst du als Aktion einen Countdown starten. Diesem gibst du dann einen Namen deiner Wahl, eine Zeit und setzt bei Bedarf noch das Häkchen für den automatischen Neustart.   Jetzt kannst du ein weiteres Ereignis anlegen, welches bei Ablauf des Countdowns auslösen soll. Wähl den zuvor erzeugten Countdown als Ereignisauslöser und als Aktion dann die Übertragung der Lokgeschwindigkeit ins Textfeld.
  2. ZitatMaste, Schilder usw kann ich ja als "Strasse" einstellen Tu so etwas bitte nicht. Was auf den ersten Blicl clebver wirken mag, hat letztlich ein böses Durcheinander zur Folge. Ich habe da bei EEP sehr schlechte Erfahrungen mit solchem Missbrauch gemacht. Und ist der erstmal etabliert, dann wird man ihn kaum wieder los. Den Programmierern hinter EEP bereitet das zunehmend Kopfzerbrechen.
  3. Das einzige, was einem Textfeld einen neuen Text zuweisen kann, ist die Ereignisverwaltung. Und die reagiert nur, wenn ein zuvor festgelegtes Ereignis stattgefunden hat. Die Änderung einer Lokgeschwindigkeit ist kein Ereignis, auf das die EV reagieren kann. Deshalb lässt sich die aktuelle Geschwindigkeit nicht kontinuierlich in das Textfeld übertragen. Es bleibt dir also nur, jeweils bei Eintritt eines bestimmten Ereignisses die aktuelle Geschwindigkeit auszulesen und ins Textfeld zu übertragen. Ein Countdown mit kurzer Ablaufzeit, der sich nach Ablauf selbst neu startet, gäbe dir die Möglichkeit in einem von dir bestimmten Intervall die Geschwindigkeit auszulesen und ins Textfeld zu schreiben.   Zitat... dann denke ich, dass ich mich in meiner Frage vielleicht falsch ausgedrückt habe. Ja, das hatte mich zunächst auf die falsche Fährte geführt.   Zitat... ständig ...  war das entscheidende Wort, dass in der ursprünglichen Frage fehlte.
  4. Du wählst in der EV (Ereignisverwaltung) als Aktion "Beschriftung setzen". In das Feld "Text" schreibst du dann: $_Trigger1._CurrentSpeed   Schau mal in diesen Thread: https://www.3d-modellbahn.de/forum/thema/8418 Da findest du ein wenig Hintergrundinformation zum Thema
  5. Ich glaube, dass die Taktik "Gerät -> Ladegut -> Zielort" genau die richtige für das MBS ist. Sie lässt sich bequem bedienen, enthält viele Möglichkeiten (einschließlich Stapeln, Beladung von Containern etc.) und dürfte so eine Menge Spaß bieten. Eine manuelle Bedienung von Kränen, Gabelstaplern etc. wäre wesentlich umständlicher zu handhaben, aufwendiger zu realisieren und würde den Spaß nicht signifikant erhöhen. Zudem könnten die Unterschiede zwischen all den Krantypen, Gabelstaplern und anderen Geräten für die Verladung so in den Modellen und der zugehörigen Software berücksichtigt werden und die Bedienung wäre für den Spieler stets die selbe. Ich finde den Ansatz sehr clever!
  6. ZitatAnlage exportieren findest du im Fenster von "Speichern unter", ganz unten links in der Ecke
  7. ZitatWie kann ich erreichen, dass das Ereignis nur für eine Richtung gilt? Indem du prüfst, auf welchem anderen Gleis die Lok bei Betreten des Gleises noch steht. Denn sie kann in diesem Moment nur entweder auf dem Gleis vor oder dem Gleis nach dem Bremsgleis stehen.
  8. Zitatwie ist das mit den variablen ... Solche Dinge musst du selbst ganz gezielt testen, Schlagerfuzzi. Dann lernst du es am schnellsten. Weil alles Wissen, das du dir selbst erarbeitest, am längsten im Gedächtnis haften bleibt. Probier aus, was passiert wenn die Namen gleich sind. Probier aus, was bei verschiedenen Namen passiert. Probier unterschiedliche Schreibweisen bei den Namen aus. Stell so viele Versuche an wie du brauchst bis dir alles klar ist.
  9. Du weißt jetzt, wie du Variablen erzeugen kannst um darin etwas zu speichern. Das 3D-Modellbahn Studio erstellt aber auch selbst Variablen. Beispielsweise dann, wenn ein Gleis betreten wird. Damit man in der EV abfragen kann, wer das Gleis betreten hat. Solche Variablen haben fest vergebene Namen, weil diese Namen vom MBS erzeugt werden. Jeden Variablennamen darf es nur einmal geben. Also darf man selbst keinen Variablennamen verwenden, den das 3D-Modellbahn Studio schon benutzt. Alle Variablen, die das 3D-Modellbahn Studio erstellt, beginnen deshalb mit einem Unterstrich vor dem Namen. So sind Verwechslungen ausgeschlossen.   In der Variablen _Trigger1 steht, wer das Gleis betreten hat. Genau genommen stehen da vier Informationen in vier Variablen. Und alle vier beginnen im Namen mit _Trigger 1. Dann folgt ein Punkt. Und danach _Name für den Namen des Zuges. oder _CurrentSpeed für die aktuelle Geschwindigkeit. ("current" ist das englische Wort für "aktuell" und "speed" das englische Wort für Geschwindigkeit) oder _TargetSpeed für die eingestellte Geschwindigkeit. ("target" ist das englische Wort für "Ziel") oder _Visible für die Sichtbarkeit des Objekts ("visible" ist englisch für "sichtbar") Jetzt musst du dich noch erinnern, dass vor dem Variablennamen ein $ stehen muss damit du an die Information kommst, die in der Variablen gespeichert ist. Dann kannst du dir zusammenreimen, wie du an den Namen des Zuges kommst, der gerade ein Gleis betreten hat. Nämlich mit $_Trigger1._NameEs ist nicht leicht zu erkennen, dass nach _Trigger1 ein Punkt kommt bevor es mit _Name weiter geht. Deshalb habe ich diese übergroße Schrift gewählt. Probier es aus. Bau wieder ein Oval. Such dir ein Gleis aus, welches bei Betreten ein Ereignis auslöst. Setz ein Beschriftungsfeld daneben Ereignis: Zug betritt Gleis Lok: alle Loks Gleis: Das welches du ausgesucht hast   Aktion: Beschriftung setzen Beschriftung: Beschriftung Text: $_Trigger1._Name Jetzt müsste im Beschriftungsfeld der Name der Lok stehen, sobald du das ausgesuchte Gleis überfährst. Ändere anschließend mal den Namen der Lok. Bei der nächsten Runde wird der neue Namen angezeigt. Und wenn das alles klappt und du verstanden hast, wie es funktioniert, dann könntest du versuchen statt des Namens mal die aktuelle Geschwindigkeit anzuzeigen.
  10. Zitatgibt's da evtl noch weitere Möglichkeiten mit dem wort signal? Nein, da gibt es keine besonderen Möglichkeiten. Gib mir bitte noch ein wenig Zeit für die nächste Lektion. Ich muss mir zuvor ein paar Gedanken machen. Wahrscheinlich werde ich wieder das erste Beispiel (mit dem Bahnhofsaufenthalt) aufgreifen. Vielleicht mit einem Zwischenschritt, um die einzelnen Lektionen überschaubar zu halten.  
  11. Zitatmein 1. versuch ... ... sieht schon sehr gut aus. Vor allem freut mich deine Experimentierfreude. Du hast z.B. sowohl +1 als auch -1 ausprobiert. In der Variablen "Signal" speicherst du das Wort "Signal". Wolltest du damit nur probieren, ob das geht? Oder hattest du damit etwas anderes vor? Etwas, bei dem ich dir helfen könnte?
  12. Zitatich nehme gerne noch weitere (...) ratschläge an. Dann möchte ich dir gerne einen ganz allgemeinen Ratschlag fürs Lernen mitgeben, Schlagerfuzzi: Lern Fehler lieben! Ehrlich. Fehler sind nützlich, weil sie immer wertvolle Informationen enthalten. Wenn nicht das passiert, was du erwartet hast, dann ist das ein Hinweis darauf, dass noch ein Missverständnis vorliegt. Und wenn stattdessen etwas anderes passiert, dann steckt darin manchmal sogar die Erklärung, was man wie verstehen muss. Denn die EV macht immer "das richtige". Nämlich ganz exakt das, was man reinprogrammiert hat. Unsere Eltern und unsere Schulen bringen uns jahrelang bei, dass Fehler schlimm seien. Wir kriegen beigebracht Fehler zu vermeiden. Deshalb entschuldigen wir uns für Fehler oder versuchen sie zu verbergen. Oder wir rechtfertigen unsere Fehler. Und das ist ein ganz schlechter Weg, wenn man lernen möchte.  Ich lerne selber sehr schnell, weil ich keine Angst vor Fehlern habe. Und weil mich kein Fehler ärgert. Wer sich nämlich über einen Fehler ärgert, der verliert damit den Blick für die nützliche Information, die in Fehlern steckt. Das bringt einem leider kein Lehrer bei. Also: Schüttel die Angst vor Fehlern ab. Entschuldige dich niemals für einen Fehler. Weil eine Fehler nichts mit Schuld zu tun hat. Freu dich auf die nächsten Fehler. Wirklich. Sie bringen dich sehr schnell weiter, wenn du sie dir genau anschaust. Wer sich für Fehler entschuldigt, der schaut leider nie hin, sondern immer weg. Und verpasst damit genau das, was ihm helfen würde. Viel Spaß beim weiteren Lernen. Und ich werde dich gerne mit mehr Lernstoff füttern. @Admins Danke fürs Verschieben und Umbenennen des Threads
  13. Zitatmuß ich da für alle züge jeweils so eine Beschriftung setzen Die Beschriftung hat nichts mit Variablen zu tun. Sie sollte dir nur eine Möglichkeit zeigen, wie man Variablen benutzen kann.   Zitatfür was die variablen gut sein sollen... Sie sind der Platz, an dem ein Computer sich etwas merkt. Das kann alles mögliche sein: Ein Zugname Eine Anzahl Eine Geschwindigkeit und alles andere, was einem so einfällt.   Weil in einer Variablen immer nur eine Information stehen kann, benötigt man viele Variablen. Für jede Information, die man sich merken möchte, eine neue. Und damit man diese Variablen unterscheiden kann, müssen sie alle unterschiedliche Namen bekommen. Wenn mein Bahnhof zum Beispiel drei Gleise hat und ich mir merken möchte, welcher Zug auf welchem Gleis steht, dann brauche ich drei Variablen. Für jedes Gleis eine. Und jede muss einen anderen Namen bekommen.
  14. Zitatich wollte dich weder ärgern noch kränken Das hast du auch nicht, Schlagerfuzzi. Keine Bange. Ich muss jetzt nur überlegen, wie ich es besser erklären kann. ...
  15. Wenn du diese Frage stellst, Schlagerfuzzi, dann habe ich etwas grundsätzlich falsch gemacht. Denn meine Erklärung sollte eigentlich genau das beantworten. Und das ist mir offensichtlich nicht gelungen.
  16. Lass mich mal versuchen dir zu erläutern, was Variablen sind. Wenn es mir gelingt, das in für Laien verständlicher Form zu vermitteln, dann denke ich über weitere Themen nach.   Im normalen Sprachgebrauch bedeutet variabel, dass etwas veränderbar ist. Und daraus leitet sich das Wort Variable in der Programmierung ab. In Programmen muss man sich oft etwas für eine kurze Zeit merken, damit man später Bezug darauf nehmen kann.  Beispiel: Im Bahnhof können verschiedene Züge ankommen Ich stoppe den eintreffenden Zug Ich merke mir den Namen dieses Zuges Jetzt kann ich den richtigen Zug wieder in Bewegung setzen, wenn das Signal umschaltet. Hätte ich mir den Namen nicht gemerkt, dann wüsste ich jetzt nicht, welcher Zug losfahren soll. Deshalb benötigt man einen Platz, an dem man Informationen ablegen kann, die man sich merken möchte. Du kannst dir eine Variable wie ein kleines Kästchen vorstellen, in das ich einen Zettel hinein lege. Außen schreibe ich einen Namen auf das Kästchen, damit ich es später wiederfinde. Ich kann den Zettel im Kästchen jederzeit austauschen. Aber es kann in jedem Kästchen immer nur ein Zettel liegen. Im Beispiel oben würde ich außen auf das Kästchen Gleis1 schreiben. Und für die übrigen Gleise im Bahnhof weitere Kästchen mit den Namen Gleis2, Gleis3 ... anlegen. Wenn ein Zug auf Gleis 1 ankommt, dann fährt er auf ein Gleisstück, das ein Ereignis auslöst als Aktion wähle ich Variable setzen Der Name der Variablen ist Gleis1 Mit dem Wert ist bei der Variablen das gemeint, was in das Kästchen gelegt werden soll. (Das sind meistens Zahlen, deshalb "Wert") Als Wert trage ich in diesem Beispiel den Zugnamen ein  (Wie das genau geht, erkläre ich später.) Das erste Beispiel sollte dir verständlich machen, was eine Variable ist. Aber es eignet sich nicht für eigene Versuche, weil es noch unvollständig ist. Deshalb möchte ich dir ein zweites Beispiel geben, welches du leicht nachbauen kannst. Ein Oval mit einem Textfeld, dass die gefahrenen Runden anzeigt. Lege ein kleines Oval Setz ein Textfeld neben das Oval Wähle in der EV ein neues Ereignis Ereignis ist "Zug betritt Gleis" Als Gleis wählst du eins in der Nähe des Textfeldes Bei Lok lässt du "jede Lok" stehen. Unter Aktionen wählst du ganz unten in der Liste "Variable setzen" Denk dir einen Namen für die Variable aus. Das kann Runde sein. Oder Schlagerfuzzi. Oder Test. Völlig egal Bei Wert trägst du ein:  +1 Die zweite Aktion im selben Ereignis ist "Beschriftung setzen" (findest du unter "spezifische Aktionen")​ Als Modell wählst du Beschriftung (so heißt das Textfeld auf der Anlage) Als Text gibst du das selbe Wort ein, welches du dir als Namen für die Variable ausgedacht hast. Jetzt setz eine Lok auf das Oval und lass sie ihre Runden drehen. Im Textfeld wird der Name stehen, den du unter "Beschriftung setzen" eingegeben hast. Die EV nimmt das Wort also als Text und versteht noch nicht, dass du eigentlich etwas anderes willst. Nämlich die Zahl, welche in deiner Variablen gespeichert ist. Deshalb musst du die EV noch einmal öffnen und folgende Änderung vornehmen Such unter Aktionen "Beschriftung setzen". Schreib vor das Wort unter Text ein Dollar Zeichen $ (Direkt davor, ohne Leerzeichen dazwischen!) Am $ Zeichen erkennt die EV, dass dieses Wort der Name einer Variablen ist und du nicht den Namen, sondern den Wert der Variablen benutzen möchtest. Die EV guckt jetzt, was in dem Kästchen liegt. Und das benutzt sie. Lass die Lok erneut ihre Runden drehen und du siehst, dass jetzt im Textfeld eine Zahl steht, die bei jeder Runde eins weiter gezählt wird. Denn das +1 als Wert bedeutet, dass zum alten Wert 1 addiert wird und das dann der neue Wert ist. Wenn du für einen weiteren Versuch das + entfernst und nur die 1 im Feld "Wert" stehen lässt, dann steht im Textfeld bei jeder Runde die Zahl 1. Wenn du sejr experimentierfreudig bist, dann kannst du zum Schluss versuchen einen Taster neben das Textfeld zu setzen, der die Variable per EV wieder auf 0 zurück setzt. Sozusagen einen Reset-Schalter.   Lass mich wissen, wie du bis hierhin zurecht kommst und dann schauen wir weiter, okay?
  17. Ja, die Kupplungen lassen sich meines Wissens auch per EV ansprechen. Ich kann es gerade nicht prüfen, meine aber, dass sie unter den spezifischen Aktionen zu finden sind.
  18. ZitatIch glaube das die abgespeckten Modelle vollkommen ausreichend sind Ganz ehrlich? Ich finde die unansehnlich ...
  19. Vielen Dank für deine Version, Easy. Ich habe gleich mehrere interessante Dinge daraus lernen können. Zum einen natürlich die Zahlen als Modellnamen. Aber auch die Prüfung "Wert = $Var1", wenn das Setzen von Var1 bei jedem beliebigen Wert als Ereignis gelten soll. Nach diesem Kniff hatte ich schon länger gesucht.  Die Idee, statt eines Countdowns zunächst einen Schalter einzusetzen damit man die Abfolge schrittweise überprüfen kann, ist auch pfiffig.
  20. ZitatVielleicht interessiert es ja auch eingefleischte User. Ja, sischa datt ;-)
  21. Zitatirgendwie machbar Also als Übergangslösung, um sich zu behelfen, könnte ich mir folgenden (ungetesteten) Weg vorstellen: Kopie der Anlage mit gewünschter Straßenunterführung erstellen Auf der Kopie gründlich aufräumen (damit man bei den folgenden Schritten nicht zu viel Ballast mitschleppt.) Abspeichern Neue Anlage öffnen, welche die Unterführung bekommen soll Dort die abgespeckte Kopie der alten Anlage importieren (Bearbeiten -> Einfügen aus -> Anlage) Unterführung mit allem Zubehör an neuen Platz verschieben. Verbleibenden Rest der importierten Anlage einschl. Bodenplatte löschen Nicht gerade bequem. Aber zumindest "irgendwie machbar"
  22. Es ist schon relativ klar geworden, was du sagen möchtest. Aber was in der EV passieren muss hängt von vielen weiteren Faktoren ab: Kommt der zweite Zug immer aus der Gegenrichtung? Kommt garantiert ein zweiter Zug oder nur manchmal? Gibt es im Anschluss weitere Bahnhöfe mit Ausweichgleisen? (Dann muss geprüft werden, ob im folgenden Bahnhof ein Patz frei ist, bevor ein Zug auf die Reise geht) Soll ein Zug einen anderen überholen können? Kurz gesagt: Ein Screenshot oder die Anlage als Anhang würde die Beantwortung deiner Frage erleichtern.  
  23. Hier ist ein zweiter Versuch. Dank Quacksters Vorschlag, mittels ständig laufendem Countdown eine Variable hochzuzählen, benötigt diese Version nur einen Eintrag mehr in der EV als die letzte. Außerdem habe ich einen Schalter hinzugefügt, mit dem man das Lauflicht ein- und ausschalten kann. Die EV zur Anlage sieht so aus: EreignisseRabbit on/off Schalter wird betätigt: Schalter: Lauflicht an/aus || Position: Jede Position Bedingungen - Alle Bedingungen müssen erfüllt sein (UND) Schalter steht auf Position: Schalter: Lauflicht an/aus || Position: An || Negieren: 0 Aktionen Countdown starten: Name: Takt || Dauer: $Frequency || Automatischer Neustart: 1 Alternative Aktionen Countdown stoppen: Name: Takt   Rabbit Count Countdown läuft ab: Name: Takt Bedingungen - Alle Bedingungen müssen erfüllt sein (UND) Variable besitzt den Wert: Name: Rabbit Nr || Wert: 20 || Negieren: 0 Aktionen Variable setzen: Name: Rabbit Nr || Wert: 1 Alternative Aktionen Variable setzen: Name: Rabbit Nr || Wert: +1   Rabbit 01 Variable wird gesetzt: Name: Rabbit Nr || Wert: 1 Aktionen Schalter betätigen: Schalter: Rabbit 20 || Position: An Schalter betätigen: Schalter: Rabbit 01 || Position: Aus   Rabbit 02 Variable wird gesetzt: Name: Rabbit Nr || Wert: 2 Aktionen Schalter betätigen: Schalter: Rabbit 01 || Position: An Schalter betätigen: Schalter: Rabbit 02 || Position: Aus   ... entsprechend für alle weiteren Rabbits bis ...   Rabbit 20 Variable wird gesetzt: Name: Rabbit Nr || Wert: 20 Aktionen Schalter betätigen: Schalter: Rabbit 19 || Position: An Schalter betätigen: Schalter: Rabbit 20 || Position: Aus   Variablen Frequency: 0,05 Rabbit Nr: 0 Als_lauflicht_demo_2.mbp
  24. Im Screenshot sieht die Positionierung der Lampen schon gut und richtig aus. Aber der Hangar am Ende der Start- und Landebahn ist völlig verkehrt. Beide Enden der Bahn müssen frei von Gebäuden sein.  ZitatNach Deinen Informationen Goetz, nehme ich an, dass Du ein Aerport-Spezialist bist. Allerhöchstens virtuell. Weil ich früher gerne mit dem Sublogic/Microsoft Flight Simulator gespielt habe. Deshalb wusste ich zumindest, dass deine ursprüngliche Vorstellung blinkender Lampen falsch war und auch, dass Starts und Landungen in der selben Richtung geschehen müssen. Das restliche Wissen zu den verschiedenen Landebahn- und Anflugbefeuerungen habe ich mir heute früh per Internet angeeignet. ZitatHabe Deine Animation gesehen und frage mich, warum das Blinklicht je nach Höhe langsamer bzw. schneller wird und warum es ab einem bestimmten Winkel rückwärts läuft? Die Erklärung dafür hatte Neo in seiner Kritik an meiner Methode geschrieben. Je nachdem, wie schnell der Rechner die Bilder aufbauen kann, wird auch die EV mehr oder weniger schnell abgearbeitet. Und im Extremfall kann es dabei wohl zu dem kommen, was man in der Filmbranche den "Wagenrad-Effekt" nennt. Speichenräder drehen sich bei bestimmten Geschwindigkeiten scheinbar rückwärts. Wenn ich die Zeit finde, dann experimentiere ich noch ein wenig mit dem Lauflicht und versuche eine bessere Lösung.
  25. I cannot find any "snap to grid" function at all. The only snap funtion I'm aware of is the one, which automatically attaches one track piece to another, one wall section to another (if both have built-in snap points), one GBS tile to another etc.
×
×
  • Neu erstellen...