Jump to content

Goetz

Mitglieder
  • Gesamte Inhalte

    5986
  • Benutzer seit

  • Letzter Besuch

Alle erstellten Inhalte von Goetz

  1. Hallo Hans-Jürgen, ein wirklicher Bösewicht ist mir beim Durchsehen deiner EV aufgefallen: Wenn das Signal H/V Sperrsignal 1969 Gleis 09 schaltet, dann löst es ein Ereignis aus, in dem sofort genau dieses Signal H/V Sperrsignal 1969 Gleis 09 auf 1- Sh1 geschaltet wird. Damit wird dasselbe Ereignis gleich wieder aufgerufen. Und schaltet erneut das Signal H/V Sperrsignal 1969 Gleis 09. Und weil es immer gleich zu Beginn auf 1 - Sh1 geschaltet wird, ist es unmöglich dieses Signal auf 0 -Sh0 zuschalten. Das versuchst du zwar mit deiner EV 20 Sekunden später. Aber dieses Umschalten bewirkt natürlich gleich wieder, dass dieses Ereignis aufgerufen wird und das Signal als erstes auf 1 - Sh1 schaltet. Womit der ganze Zirkus wieder von vorne los geht. Endlos! Was auch immer du mit diesem Ereignis erreichen wolltest - so kann es nicht funktionieren. Viele Grüße Götz
  2. Leider nein. Du kannst Punkte angeben, die den Zug bei Betreten stoppen. Aber nicht bei Verlassen (= nach dem Überfahren), wie von dir gewünscht. Wenn du dir die "Wachsende Anlage" von @Roter Brummer anschaust, dann hast du ein wunderbares Beispiel dafür, wie du einen Zug im Bahnhof umkehren lassen kannst. Die Content ID ist: F5522572-285D-4C59-92A0-7CB01821E3C5 Viele Grüße Götz
  3. Vielen Dank, Axel Das hilft Man stemmt die Hebel aufwärts, um die Flügel nach unten zu drücken. Deshalb greift man von unten. Weil man für die Aufwärtsbewegung (= Abwärtsbewegung der Flügel!) Kraft braucht.
  4. Nimm es mir bitte nicht übel, Marko, aber das hier ist genau der Grund, warum du dich mit der EV so schwer tust. Du kannst dich nicht darauf konzentrieren, das Handwerkszeug zu erlernen. Du hast das Ziel vor Augen und nicht den Lerninhalt. Deshalb bleibt auch so wenig hängen. Weil du den Erfolg daran misst, ob dein Zug tut, was er soll. Du solltest ihn lieber daran messen, wie gut du einen Mechanismus durchschaut hast. Deshalb predige ich, nicht mit der Lieblingsanlage zu lernen. Schau dir an, was z.B. ein junger Hund tut. Der spielt "Jagen". Dabei jagt er nicht, sondern spielt alle erdenklichen Handlungsabläufe durch. Kreuz und quer und oftmals albern. Aber immer darum bemüht, diese Bewegungsabläufe zu perfektionieren. Später, wenn er wirklich Beute jagt, hat er keine Zeit zum Lernen. Weil er auf die Beute fokussiert. Der Kopf kann nicht beides zugleich tun. Kinder machen dasselbe, wenn sie toben. Sie probieren jeden Weg, den man über das Sofa oder drumherum nehmen kann. Sie fragen nicht danach, wofür man das tut. Sie sind ganz darauf konzentriert, diese Bewegungen ständig zu verbessern. Zu verfeinern. Wir können so gut wie Kinder lernen, wenn wir uns klar machen wie Kinder lernen. Viele Grüße Götz Folgendes ist mir noch wichtig: Du musst bitte nicht rechtfertigen, wie du lernst. Und ich kritisiere es auch nicht. Ich will dir etwas verdeutlichen, was dir eventuell nicht bewusst ist. Und dann entscheidest du, was du davon annehmen möchtest.
  5. Mit der grafischen EV geht es nicht (oder nur sehr umständlich). Mit Lua ist es ganz einfach. Um mehrere Strings zu einem zusammenzufügen, benutzt man als Operator zwei Punkte: String1 = "Hallo" String2 = " " Strint3 = "Welt" print(String1..String2..String3) Aber du solltest auf deine Aufgabenliste nicht immer mehr obendrauf packen, solange du die Basics noch nicht wirklich durchschaust. Du hast viel zu viele Baustellen gleichzeitig. Eins nach dem anderen ist der Weg, der zum Verständnis führt, Marko
  6. Die Fehlerursache liegt hier: An dieser Stele musst du bitte den Auslöser "Zeit" angeben. Das ist in der Tat sehr schwer zu unterscheiden.
  7. Die ist in dem Beispiel, das du mir zuerst geschickt hattest, komplett leer gewesen. Deshalb hatte ich mich auf die Tabelle konzentriert, die wenigstens einen Inhalt hatte ...
  8. Tut mir leid, Marko, aber das ist es nicht. Deine Tabelle ist nicht nach dem Muster organisiert, welches ich dir vorgeschlagen habe: Du verwendest nicht, wie von mir empfohlen, die Uhrzeit als Bezeichner. Siehst du den Unterschied? Dieses Ereignis hat auch nur wenig Ähnlichkeit mit dem, was ich dir vorgeschlagen habe. Außerdem würde ich dir dringend empfehlen, deine große Anlage beiseite zu legen und das ganze Prinzip mit Minibeispielen zu erforschen. Viele Grüße Götz
  9. Ja, du kannst sie exportieren und hier an dein Posting anhängen. Aber was spricht gegen die Veröffentlichung?
  10. Jedes Ereignis bringt - wie ein Funktionsaufruf - Argumente mit. Also einen oder mehrere Parameter. Das Ereignis "Zeitpunkt erreicht" stellt unter "Auslöser" den Parameter "Zeit" zur Verfügung. Er enthält die aktuelle MBS-Uhrzeit als Text in der Form "hh:mm", also Stunde und Minute jeweils zweistellig geschrieben, mit einem Doppelpunkt dazwischen.
  11. Hallo @MarkoP unter der Content-ID E57B44BC-28BC-473C-8330-04985D6473B2 findest du jetzt eine kleine Beispielanlage. Schau mal bitte, ob sie dir weiterhilft. Viele Grüße Götz
  12. Du musst gar nichts gestehen, EASY. Oder rechtfertigen. Ich steuere solche Ideen nur bei, weil sie mir persönlich Spaß machen. Viele Grüße Götz
  13. Ja, das ist es. Und die Antwort ist: Du musst immer zuerst das Objekt nennen und dann die Variable in diesem Objekt. Wenn es sich um eine Lok handelt, die einen Gleiskontakt betritt, dann bringt dieses Ereignis zwei Argumente mit: den Kontakt, der betreten wurde die Lok, welche den Kontakt betreten hat Deshalb musst du als Objekt "Auslöser" wählen und dann aus der Liste von Auslösern das "Fahrzeug" nehmen. Der Weg zur Variable im auslösenden Fahrzeug führt über die "erweiterte Variable". Die bietet dir zwei Felder, damit du im oberen Feld das auslösende Fahrzeug angeben kannst und im unteren dann den Namen der Variablen, die in diesem Fahrzeug gefunden werden soll: Das kannst du im obigen Beispiel sehen. In meinem Fall ist der Inhalt nur ein Text. Aber das Prinzip ist immer gleich: Du wählst unter dem Zahnrad den letzten Punkt "Variable (Liste/Tabelle)". Das ist dein Zugriff auf den Inhalt dieser Zelle. Wenn der wiederum eine Tabelle mit mehreren Einträgen ist, dann musst du dasselbe Prinzip noch einmal anwenden, um an die Untertabellen zu gelangen. Viele Grüße Götz
  14. Hallo Marko, das kannst du theoretisch zwar machen, aber es erzeugt eine gigantische Rechnerlast, die nicht notwendig ist. Denn du müsstest bei diesem System alle Tabelleneinträge durchforsten, bis du den passenden gefunden hast. Wenn du stattdessen die Uhrzeiten als Bezeichner für Tabellenplätze verwendest, dann kannst du jede Minute ganz einfach prüfen, ob ein Tabellenplatz existiert, der die aktuelle Uhrzeit als Bezeichner hat. Und wenn es den Platz gibt, dann nutzt du den Inhalt dieses Tabellenplatzes um z.B. eine Fahrstraße zu schalten. Die Tabelle sieht in dem Fall so aus: Und die EV für das Ereignis "Zeitpunkt erreicht" sieht so aus: In diesem sehr einfachen Beispiel wird nur jede Minute ein neuer Text in ein Textfeld geschrieben. Wenn die Uhrzeit in der Tabelle gefunden wird, dann wird der Text aus der "Fahrplan" Tabelle genommen. Andernfalls wird einfach die Uhrzeit auf das Textfeld geschrieben. Jedes Ereignis bringt in dem Moment, wo es ausgelöst wird, eine oder mehrere Variablen mit. Das sind Werte, die individuell zu diesem Ereignis gehören. Beim Ereignis "Zeitpunkt erreicht" ist es eine einzelne Variable. Sie enthält die Uhrzeit in Form eines Strings (sprich: in Textform). Die individuellen Parameter, die vom Ereignis selbst mitgegeben werden, findet man stets über das Zahnrad mit dem Begriff "Auslöser" Deshalb bekomme ich im obigen Beispiel jede Minute mit "Auslöser" die Zeit zu fassen, um die das Ereignis ausgelöst wurde. Und kann prüfen, ob es einen Tabellenplatz mit diesem Namen gibt. Weil das MBS wirklich sehr gut durchstrukturiert ist, funktioniert die oben beschriebene Methode bei jeder Geschwindigkeit, egal ob ich in den Anlageneinstellungen die Dauer eines Tages ändere ... oder oben in der Kopfleiste eine höhere Abspielgeschwindigkeit wähle. Referenz bleibt in jedem Fall die unten angezeigte Uhrzeit. Vielleicht müssten wir zunächst hier ansetzen, bevor wir eine komplexe Fahrplansteuerung mit Anzeigetafeln und vielerlei mehr angehen? Ich weiß nur leider nicht, wo genau deine Verständnisprobleme sitzen. Deshalb kann ich dir noch nicht die entscheidenden Hinweise geben. Viele Grüße Götz
  15. Dafür habe ich ein neues Alternativbeispiel, dass dir eventuell gut gefällt: Original: if einaus==false then for i,v in ipairs(Wagen) do if nicht~=v then v.couplers[0].enabled=false v.couplers[1].enabled=false else v.couplers[0].enabled=true v.couplers[1].enabled=true end end else for i,v in ipairs(Wagen) do v.couplers[0].enabled=true v.couplers[1].enabled=true end end Alternative: for i,v in ipairs(Wagen) do local state = einaus or nicht == v v.couplers[0].enabled = state v.couplers[1].enabled = state end Ich glaube, dass die boolsche Verknüpfung in der ersten Zeile alle Kombinationen aus dem obigen Skript richtig abbildet. Viele Grüße Götz
  16. Oh, das freut mich sehr, EASY. Danke. Mir wurde nur bewusst, dass hier der falsche Platz für solch ein Mini Tutorial ist. Weil du bestens kennst, was ich hier erläutert hatte. Drum wurde mir das sofort peinlich, als ich die nächsten Codezeilen in deinem Script las. Im Übrigen finde ich beide Hanoi Versionen köstlich. Neben der guten Umsetzung zeugen sie auch von cleverem Humor. Viele Grüße Götz
  17. Entschuldigung - ich musste mein Posting wieder löschen, weil ich im Übereifer nicht richtig hingeschaut hatte. Ich habe hier ziemlich peinlich "geschlaumeiert" @Neo - magst du das bitte löschen?
  18. Hallo Axel, dann habe ich eine falsche Vorstellung vom Bewegungsablauf. Auch jetzt, nach deiner Beschreibung. Ich muss mir das in der fertigen Animation anschauen um zu verstehen, warum diese Haltung die richtige ist. Danke für deine Rückmeldung Götz
  19. Hallo Axel, dann möchte ich gerne einwerfen, dass ich rein intuitiv diese Griffe nicht von unten, sondern von oben greifen würde. Also so, dass sich der Handrücken über dem Griff befindet. Ich weiß aber nicht, wie man dieses Fluggerät tatsächlich bedient (hat). Es ist nur mein persönliches Gefühl beim Anblick der Figur. Viele Grüße Götz
  20. Das ist richtig, EASY
  21. Yes, it does. It always copies the related main signal. Confusion is impossible in this case, because no further train can enter this section until the current train has passed the maIn signal and vacated the block. Kind regards Goetz
  22. Hallo Marko Wenn du noch ein paar Tage Geduld hast (bis ich wieder zuhause bin), dann versuche ich gerne ein Beispiel für dich zu erstellen. Viele Grüße Götz
  23. Stimmt, Andy. Dieselben Begriffe werden in den verschiedenen Programmiersprachen sehr unterschiedlich verwendet. Man muss sich da jeweils anpassen und umdenken. Meine Beschreibung bezieht sich auf die Bedeutung von Listen und Tabellen im MBS. Weil die (und nur die) relevant ist, wenn man im Studio Listen oder Tabellen verwendet. Viele Grüße Götz
  24. Hallo Bertram-Willi, Da ich derzeit unterwegs bin und nur ein Tablett, aber keinen PC zur Verfügung habe, kann ich es mir erst in ein paar Tagen anschauen. Das soll natürlich niemanden anders davon abhalten, dir zu helfen ich gebe nur Bescheid weil du mich persönlich angesprochen hast. Viele Grüße Götz
  25. Hallo Andy, Der Bezeichner kann wahlweise eine Zahl oder ein String sein. Zahlen als Index ergeben eine Liste Strings als Index ergeben eine Tabelle. Den "NeunUhrFünften" Eintrag gibt es in dieser Form nicht, weil in einer Tabelle nichr durchgezählt wird. Strings als Bezeichner kannst du besser mit Sprungadressen vergleichen. Viele Grüße Götz
×
×
  • Neu erstellen...