Jump to content

Goetz

Mitglieder
  • Gesamte Inhalte

    4934
  • Benutzer seit

  • Letzter Besuch

Beiträge erstellt von Goetz

  1. Zitat

    Die Reihenfolge ergibt sich dabei aus der Gruppenhierarchie im 3D-Modell

    Das genügt vielleicht nicht.

    Was wann bewegt werden muss kann von vielen Faktoren abhängen. Beispielsweise auch von Hindernissen, die auf dem Weg überwunden werden müssen. Ich gestehe, dass ich gerade versuche ein Beispiel zu konstruieren und dabei scheitere. Und der kürzeste Weg ist auch nicht immer der richtige. So kann z.B. eine nahe Wand den Kran zwingen eine 270° statt einer 90° Drehung auszuführen.

    Für mein Empfinden wäre es okay, wenn Animationen nacheinander ablaufen müssen. Es sieht zwar noch lebendiger und realistischer aus, wenn sich zwei Animationen zeitlich überlappen können. Aber essenziell wichtig ist das nicht. Und da jede Animation das Koordinatensystem für die hierarchisch darunter angeordnete Animation verschiebt verstehe ich, dass sequenzielles Abarbeiten der Bewegungen einfacher zu realisieren ist.

  2. Das Prinzip sieht sehr flexibel und leistungsfähig aus, Neo.

    Wenn ich dich richtig verstanden habe, dann können damit komplexe Gebilde gebaut werden.

    Kohlebagger im BW

    1. fahrbares Gestell (Translation)
    2. Traverse (Translation)
    3. Drehkran (Drehung)
    4. hebbarer Ausleger (Drehung)
    5. Haken heben/senken (Translation)
    6. Haken ausrichten (Drehung)

    oder Baustellenkran

    1. fahrbares Gestell (Translation)
    2. Drehkran (Drehung)
    3. Laufkatze (Translation)
    4. Haken heben/senken (Translation)
    5. Haken ausrichten (Drehung)

    oder moderne Hebebühne

    1. fahrbares Gestell (Translation)
    2. drehbare Basis (Drehung)
    3. klappbarer unterer Arm (Drehung)
    4. klappbarer oberer Arm (Drehung)
    5. Arm ausfahren (Translation)
    6. Gegendrehung des Korbs, um in der Horizontalen zu bleiben (Drehung)

    etc.

    Bei Betrachten des Videos fiel mir auf, dass nicht immer alle Animationen gleichzeitig angestoßen werden dürfen, die vom Start zum Zielpunkt führen. Sonst kann es (wie im Video) passieren, dass ein tief hängender Haken in einen Container geschwenkt und dann durch die Kiste nach oben gezogen wird.

    Zusätzlich zu den Punkten für die Aufnahme / das Absetzen von Gütern muss ein User deshalb später auch "leere" Positionen anfahren können. Beziehungsweise einen Zielpunkt über ein oder zwei Wegpunkte anfahren.

    Ich vermute aber, dass dein Ansatz das prinzipiell schon zulässt.

    Jedenfalls freue ich mich sehr zu sehen, wie schnell du einen vielversprechenden Ansatz entwickelt hast.

  3. Zitat

    habe in den 3 Tagen nichts anderes gemacht

    Dann trink jetzt mal 'mnen Schluck. Länger als drei Tage kommt der Körper nicht ohne Wasser aus.
    Und falls du den Modellbau inzwischen schon im Schlaf beherrscht, dann darfst du dich jetzt auch mel ein Stündchen auf's Ohr legen. :-D

  4. Zitat

    wieso kann ich die Anleitung testanlage nicht öfnen 

    Die Anleitung ist eine Datei im pdf Fprmat. Um sie zu öffnen, brauchst du den Adobe Acrobat Reader oder eine alternative Software, die pdf Dateien darstellen kann. Und das Datei-Suffix pdf muss mit dem Reader verknüpft sein, damit ein Doppelklick auf die Datei den Reader startet.

    Je nach System musst du die rar Datei, welche du hier heruntergeladen hast, erst entpacken bevor du die Anleitung daraus mit einem pdf Reader lesen kannst.

  5. 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.

  6. Zitat

    Maste, 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.

  7. 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.

  8. 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!

  9. Zitat

    Wie 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.

  10. Zitat

    wie 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.

  11. 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._Name

    Es 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.

    1. Bau wieder ein Oval.
    2. Such dir ein Gleis aus, welches bei Betreten ein Ereignis auslöst.
    3. 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.

  12. Zitat

    gibt'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.

     

  13. Zitat

    mein 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?

  14. Zitat

    ich 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

  15. Zitat

    muß 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.

     

    Zitat

    fü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.

  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:

    1. Im Bahnhof können verschiedene Züge ankommen
    2. Ich stoppe den eintreffenden Zug
    3. Ich merke mir den Namen dieses Zuges
    4. Jetzt kann ich den richtigen Zug wieder in Bewegung setzen, wenn das Signal umschaltet.
    5. 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

    1. fährt er auf ein Gleisstück, das ein Ereignis auslöst
    2. als Aktion wähle ich Variable setzen
    3. Der Name der Variablen ist Gleis1
    4. Mit dem Wert ist bei der Variablen das gemeint, was in das Kästchen gelegt werden soll. (Das sind meistens Zahlen, deshalb "Wert")
    5. 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.

    1. Lege ein kleines Oval
    2. Setz ein Textfeld neben das Oval
    3. Wähle in der EV ein neues Ereignis
    4. Ereignis ist "Zug betritt Gleis"
    5. Als Gleis wählst du eins in der Nähe des Textfeldes
    6. Bei Lok lässt du "jede Lok" stehen.
    7. Unter Aktionen wählst du ganz unten in der Liste "Variable setzen"
    8. Denk dir einen Namen für die Variable aus. Das kann Runde sein. Oder Schlagerfuzzi. Oder Test. Völlig egal
    9. Bei Wert trägst du ein:  +1
    10. Die zweite Aktion im selben Ereignis ist "Beschriftung setzen" (findest du unter "spezifische Aktionen")​
    11. Als Modell wählst du Beschriftung (so heißt das Textfeld auf der Anlage)
    12. 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

    1. Such unter Aktionen "Beschriftung setzen".
    2. 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?

×
×
  • Neu erstellen...