Jump to content

Goetz

Mitglieder
  • Gesamte Inhalte

    5984
  • Benutzer seit

  • Letzter Besuch

Alle erstellten Inhalte von Goetz

  1. es gibt Eigenschaften, die du per EV ändern kannst. Die Beschriftungen gehören nicht dazu. Aber es gibt eine frei beschriftbare Texttafel. Und der kannst du per EV neue Texte geben. Für Objekte wie Zugzielanzeigen ist das perfekt, weil du die Texttafeln einfach vor das Objekt platzieren kannst. Eine Tafel je Textfeld.
  2. Ja, das ist wahr. Wenn man sich dabei auf die Entdeckung der Prinzipien konzentriert und die angestrebte Problemlösung nicht in den Vordergrund stellt. Die meisten geben sich zufrieden, wenn ihr Problem gelöst ist und machen sich dann nicht mehr die Mühe zu untersuchen, warum etwas funktioniert. Und dann bleibt das Verständnis auf der Strecke und sie fangen bei jedem neuen Problem wieder ganz von vorne an. Was ich meine ist: Problemstellungen sind eine gute Motivation etwas zu untersuchen, aber die Problemlösungen sind kein gutes Ziel. Wenn du dich über die neu gewonnenen Erkenntnisse freuen kannst, dann bleiben sie im Gedächtnis. Wenn nur die gelöste Aufgabe die Freude bringt, dann bleibt im Gedächtnis nur haften, dass sie gelöst wurde, aber nicht wie.
  3. Aber du hattest dir doch mein erstes Beispiel zu den Schlagworten angesehen. Und da kommt genau das zum Einsatz. Vier der Kontakte haben ein gemeinsames Schlagwort, vier weitere ein anderes und die Signale (welche einen unsichtbare Gleiskontakt beinhalten) haben ein weiteres Schlagwort.. Und diese Schlagworte beschreiben die Auslöser für drei verschiedene Aktionen. Also alles genau so, wie du es jetzt auch für den Bahnübergang benutzt. Keine Bange. Ich bin nicht beleidigt oder so. Mir geht es vielmehr darum, dass du das zugrundeliegende Prinzip wiedererkennst. Denn das ist der Schlüssel zu allem: Prinzipien durchschauen. Es sind nur wenige, aber die Kombinationsmöglichkeiten sind nahezu unendlich. Wenn du die wenigen Prinzipien begreifst (also z.B. Auslöser von Zielen unterscheiden kannst), kannst du alles machen. Wenn du hingegen versuchst dir für jedes individuelle Problem die passende Lösung zu merken, dann wirst es dir schnell zu viel werden. Du fragtest und die Antwort darauf ist: Das ist kein Wissen, sondern Durchblick.
  4. Das wäre die Reihenfolge, wenn die Schlagworte das Ziel einer Aktion sind. (mein zweites Beispiel) Die BÜ-Kontakte sind - wie die Halt-Kontakte in meinem ersten Beispiel - eine Kennzeichnung der Auslöser. Alle Kontakte sind Auslöser. Das ist ihr einziger Zweck. Du musst also - wie in meinem ersten Beispiel - das Schlagwort bei "Wann wird das Ereignis ausgelöst" angeben. Wenn du mehrere BÜs hast, dann willst du außerdem unterscheiden, welcher Kontakt zu welcher Schranke gehört. Das machst du am besten mit Variablen oder Listen im Kontakt selbst. (Liste deshalb, weil es vermutlich zwei oder mehr Schranken sein werden.) Du könntest den passenden Bahnübergang auf über ein weiteres Schlagwort adressieren. Aber das wird dann eine unnötige Schnitzeljagd, weil du das Schlagwort wiederum in einer Variablen im Kontakt hinterlegen müsstest. Ich versuche im laufe des Tages, ein Beispiel dafür zu bauen.
  5. Well then, many happy returns, sweet J.
  6. perfekt verstanden genau so ist es
  7. Mit einem Klick auf "Bearbeiten" in der Wiederholung öffnet sich ein Feld, in dem du eine Liste von Werten zusammenstellen kannst. Das können Zahlen, Texte oder auch Objektadressen sein. Je nach Bedarf. Mit dem + oben links kannst du einzelne Elemente hinzufügen und so eine individuelle Liste zusammenstellen. Wenn du eine Objektliste erstellen willst, dann ist es besonders bequem: Markiere zunächst alle Objekte auf der Anlage und drücke Strg-C (für "Kopieren") Wenn du anschließend in die Ereignisverwaltung gehst und dort für die Wiederholung eine Liste erzeugst, dann kannst du auf den "Einfügen"-Knopf klicken und hast mit einem Schlag die ganze Objektliste drin. Die Reihenfolge der einzelnen Elemente ist in diesem Fall zufällig! Da du anschließend in der Wiederholung sowieso alle Elemente aus der Liste ansprichst, ist die Reihenfolge nicht wichtig. Anbei deine Testanlage mit einer Liste für die Wiederholung. Liste Beispiel 01.mbp
  8. Die Verwendung eines Schlagwortes als Ziel einer Aktion kannst du in folgendem Beispiel sehen. Schlagwort Beispiel 02.mbp In diesem Fall ist eine Wiederholung erforderlich, weil du mehrere Objekte zugleich ansprechen willst. Für die Wiederholung gibst du das Schlagwort an. Das MBS stellt damit eine Liste aller Objekte mit diesem Schlagwort zusammen und schickt dann allen Objekten aus dieser Liste nacheinander die Befehle, die in der Klammer "Wiederholung" stehen. Nacheinander deshalb, weil Computer immer nur eins nach dem anderen tun können. Sie können das aber so rasend schnell, dass wir den Eindruck haben, es würden viele Dinge gleichzeitig geschehen.
  9. Schlagworte sind nützlich, wenn mehrere Objekte in der Ereignisverwaltung dasselbe Verhalten bekommen sollen. Ein klassisches Beispiel sind Gleiskontakte mit einer bestimmten Aufgabe. Du hast vielleicht mehrere Gleiskontakte, die alle einen Zug im Bahnhof anhalten sollen. Darüber hinaus hast du weitere Gleiskontakte, die anderen Zwecken dienen. Wenn du allen Kontakten, die den Zug anhalten sollen, dasselbe Schlagwort gibst, dann kannst du in der Ereignisverwaltung als Auslöser "Gleiskontakt mit Schlagwort xy wird betreten" auswählen. So musst du die Aktionsliste für alle "Bahnhofshalt"-Kontakte nur ein einziges Mal schreiben. Das ist etwas anderes. In deinem Beispiel sind die mit Schlagwort bezeichneten Objekte die Ziele bestimmter Aktionen. In Toms Beschreibung und auch in meiner sind sie die Auslöser Um per Schlagwort mehrere Objekte als Ziel anzugeben, musst du in der EV die Wiederholung verwenden. Ich empfehle aber vorab einen Blick auf die angehängte Beispielanlage, in der Schagworte die Auslöser kategorisieren. Das ist für den Einstieg einfacher. Schlagwort Beispiel 01.mbp Beachte bitte, dass die EV in diesem Beispiel den Zug im Bahnhof nur stoppt, aber nicht wieder startet. Das kannst du leicht ändern. Such das Ereignis "Zugmitte überfährt Haltkontakt" und füge dort zwei weitere Aktionen hinzu: Aktionen - Zeitsteuerung - Ausführung verzögern Aktionen - Fahrzeuge - Fahrzeuggeschwindigkeit setzen Wie du siehst, musst du diese Änderung nur einmal vornehmen. Sie gilt dann für alle Kontakte mit dem angegebenen Schlagwort.
  10. Ich habe mich weiter in das Thema "Weichenbau" eingelesen und dabei festgestellt, dass die 6,4° für den Abzweig ein Näherungswert sind. Tatsächlich wird die Schräge als Verhältnis von Gegen- zu Ankathete angegeben. Das wäre in diesem Fall das Verhältnis 1:9. Der tatsächliche Winkel beträgt dann ca. 6,34° Um mir den Bau weiterer Weichen zu erleichtern, habe ich meine Funktion zur Berechnung der benötigten Werte umgeschrieben. Statt wie bisher die Gradzahl anzugeben arbeite ich jetzt mit dem Verhältnis. So kann ich leichter weitere Weichen wie z.B. eine 500er im Verhältnis 1:12 bauen. Ich ändere die schon veröffentlichten Weichen im Laufe des Tages in 1:9 Weichen um, damit das einheitlich wird.
  11. The double slip switches follow the same switching order that the preexisting and matching lanterns made by seehund have. normal switch point match the lantern order too, of course. But the dss was a bit more of a challenge, with all its different track groupings
  12. Hallo zusammen, an den letzten beiden Tagen hab ich ein paar Standardweichen gebaut, wie man sie für den Maßstab 1:1 recht häufig benötigt. Sie haben die beiden gängigen Radien 190 Meter und 300 Meter. Der Abzweig hat einen Winkel von 6,4° (Verhältnis 1:9) Und die Abmessungen sind so gewählt, dass man sie beliebig zusammenstöpseln kann und dabei immer einen Gleisabstand von 4,5 Metern erhält. Es wird nur wenige unter euch geben, die solche Weichen nutzen können. Weil das keine Modellbahn Maße sind. Aber reale Gleisfelder mit Kreuzungen, Spurwechseln, Gleisharfen etc. lassen sich damit flott bauen. Ihr findet die sechs Objekte in der Kategorie "Gleise, Vorbild-orientiert, Standardgleis". (Danke für die Freigabe, Neo ) Es gibt (zunächst) zwei DKWs und vier Weichen. Wenn der Bedarf da ist, kann ich weitere Weichen z.B. mit Radius 500 und einem Abzweig in 1:12 bauen. Beispiel für ein Gleisfeld mit 4,5 Meter Gleisabstand in den Geraden und Diagonalen
  13. Weil du sie im MBS als Tabelle angelegt hast. Und deine Zellen damit Namen haben. Keine Nummern. Deshalb steht auch oben über der ersten Spalte "Namen"
  14. Wollt ihr mich mit Gewalt missverstehen? Ich zwinge niemanden. Und ich habe auch nicht gesagt, dass es ohne diesen Effekt besser aussähe. Ich meinte nur, dass es schöner wäre den Effekt in der Stärke zu reduzieren. Damit er noch natürlicher wirkt. Ihr müsst bitte sein Bild vom Fachwerkhaus mit Terrasse einmal anklicken, um es in voller Größe zu betrachten. Und dann schaut auf den Saum unten und auf die Eingangstür. An den beiden Stellen sieht man besonders deutlich, dass der Effekt seine eigentliche Wirkung verfehlt, weil er zu stark aufgetragen wurde. Ich denke, dass ist "konstruktive Kritik". Oder nicht?
  15. Nein, damit funktioniert es leider nicht. Eine Tabelle muss "iterable" - also lückenlos nummeriert - sein, damit table.remove() wie von dir gewünscht funktioniert. In einer Liste ist der Index eine Zahl. Eine Tabelle hat Namen als Bezeichner. Auch dann, wenn du als Namen eine Zahl verwendest. Deine 1 ist bei der Tabelle eine "1", also ein String.
  16. Der Unterschied ist enorm, Feuerfighter. Wirklich lohnenswert Aber wärst du bereit, bei deinem Haus den Effekt vorsichtiger zu dosieren? 30% von deiner aktuellen Einstellung wären meines Erachtens genug. Vielleicht noch weniger ... Im Augenblick ist der Effekt so krass, dass die eigentlich tolle Wirkung verpufft. Viele Grüße Götz
  17. Das geht hiermit sehr bequem: Mit der oben genannten Methode kann der GK an seinem Platz bleiben: ohne Relocaten.mbp
  18. Doch, das gibt es. Und dazu noch genau dort, wo man es benötigt: Ich habe mir erlaubt die Aufzählung zu formatieren. Das ist nicht nur nennenswert, sondern sogar besonders gut umgesetzt. Davon können EEPler nur träumen!
  19. würde ich - V5 vorausgesetzt - durch einen Gleiskontakt ersetzen. Den kannst du besser positionieren. Und dann merkst du dir - wie von Tom schon vorgeschlagen - das auslösende Fahrzeug in einer Objektvariablen. Beim Stopp an einem Signal würde ich dieses Signal als Speicherort empfehlen, weil nur in Abhängigkeit von diesem Signal weitergefahren werden darf. Ab der verlinkten Position (47:43) siehst du in diesem Video ein Beispiel dafür, wie man es handhaben kann.
  20. Hallo Frank, mit Lua kannst du es so schreiben: for i, Wdh in ipairs({1, 3, 5}) do $("Kippschalter").variables["Lampen"][Wdh].state = state end ipairs nimmt Wertepaare aus einer Tabelle und weist sie den beiden Variablen links vom in zu. Traditionell heißen diese Variablen k und v für key (Schlüssel, also der Name der Zelle) und value (Wert, also der Zelleninhalt). Das MBS nennt die Variablen i (für Index) und Wdh (für Wiederholung), wenn man eine grafische EV umwandelt. Und im konkreten Beispiel spielt der Index i anschließend keine Rolle. Als Funktionsargument übergibt man an ipairs eine Tabelle. Meistens den Tabellennamen. Aber man kann auch direkt die Tabelle einfügen. Die runden Klammern gehören also zu ipairs und kennzeichnen das Funktionsargument. Die geschweiften Klammern darin deklarieren die Aufzählung als Tabelle. for ... in bewirkt, dass der Reihe nach alle Wertepaare aus der Tabelle ausgelesen und an die Variablen übergeben werden. Demo-Anlage: Liste abrufen (Lua).mbp Viele Grüße Götz __________________________________________________________________________ Nachtrag zu and und or: Timba hat es schon angedeutet: Bei and bekommst du nur den letzten, bei or den ersten Wert zurück, weil beides logische Operatoren sind. Sie haben nichts mit Aufzählungen zu tun. Gedacht sind sie für Konstrukte wie if Bedingung_1 == 17 and Bedingung_2 == 4 then Der Vergleich mit == liefert ein true (wahr) oder false (falsch) zurück. Und genau das benötigt if für seine Entscheidung, entweder true oder false. Bei and müssen alle Bedingungen erfüllt sein. Und das bedeutet: Wenn die erste Bedingung nicht erfüllt ist, dann hat sich die Sache schon erledigt. Ist das erste Ergebnis false, dann bekommt das if ein false und der Rest wird nicht mehr geprüft. Eventuelle Funktionen in den nachfolgenden Bedingungen werden nicht ausgeführt! Dasselbe gilt für alle weiteren verknüpften Verbindungen: Sobald eine Bedingung nicht erfüllt ist, bekommt das if ein false gemeldet und die Prüfung wird abgebrochen. Sind alle Bedingungen bis auf die letzte erfüllt gewesen, dann gibt Lua das Ergebnis des letzten Vergleichs ungeprüft an das if weiter. Denn jetzt hängt alles alleine von dieser Bedingung ab. Sie enthält also jetzt in jedem Fall das, was das if bekommen muss. Beim or kehren sich die Verhältnisse um, aber das Prinzip bleibt dasselbe. Diesmal reicht ja eine einzelne erfüllte Bedingung. Also wird das erste wahre Resultat direkt an das if weitergegeben. Und wenn alle vorherigen Bedingungen nicht erfüllt waren, dann gibt Lua die letzte Bedingung ungeprüft an das if weiter, denn sie enthält jetzt die richtige Antwort. Der Empfänger dieser boolschen Verknüpfungen muss nicht zwingend die if-Verzweigung sein. Man kann das Ergebnis ebenso gut an eine Variable übergeben. v = Bedingung > 42 or Bedingung < 1 Die einzelnen Operanden müssen nicht zwingend Vergleiche sein. Jede Zahl und jeder String haben in Lua den boolschen Wert true. Auch die Zahl 0 und der leere String "" Ein fehlender Wert wird in Lua durch nil repräsentiert und als false gewertet. Das erlaubt Tricks wie diesen hier a = (a or 0) + 1 Wenn a existiert, dann ist der Wert links vom or true und wird verwendet. Existiert a (noch) nicht, dann wird es durch die 0 rechts vom or ersetzt. Aus diesen Erläuterungen kannst du ableiten, warum du bei and (nur) den ersten und bei or (nur) den letzten Wert bekommst.
  21. Hallo Frank, dein Posting hatte ich leider durch das nachfolgende von Tesla übersehen. Sorry! Ja, die gibt es. Leg nur bestimmte Bestandteile in die Liste. (Das wäre der einfachste Weg) Die Frage ist: Wie möchtest du unterscheiden, welche Dinge aus der Liste verwendet werden sollen und welche nicht? Du willst nicht alle einzeln ansprechen. Okay. Aber dann musst du doch auf andere Weise festlegen, welche Elemente betroffen sein sollen. Sag du mir, woran die Elemente erkennbar sind und ich sage dir, wie du sie in der Wiederholung identifizierst. Wenn sie z.B. ein bestimmtes Schlagwort haben, dann kann ich dir zeigen, wie du diese Elemente in der Wiederholung rausfilterst. Wenn es der Name ist, dann kann ich dir zeigen, wie du den (mittels Lua) zerlegst und nach einem bestimmten Namensteil suchst. Wenn es der Index in der Liste ist, dann zeige ich dir, wie du eine zweite Liste mit den Indexen erstellst und auf die erste anwendest. Zur dritten Version (die deiner Eingangsfrage am nächsten kommt) habe ich hier eine weitere Demoanlage für dich: Liste abrufen (Auswahl).mbp
  22. Nein, das siehst du falsch. Pardon. Ich hatte fälschlich Ereignisverwaltung gelesen und nicht Ereignisprotokollierung Die Liste bearbeitest du (wie eine Variable) dort, wo sie steht. Im Fall von Franks Beispiel steht sie im Kippschalter. Es gibt mehrere Wege zu dieser Liste. Das Ereignisprotokoll ist einer davon (wenn dort in der rechten Spalte das Objekt steht) Ein Rechtsklick auf das Objekt mit anschließendem "Schlagwort/Variable bearbeiten" ist ein zweiter. Ein Klick auf das Symbol mit den drei waagerechten Strichen im Eigenschaftsfenster ist ein dritter. ...
  23. Hallo Frank, hier ist zunächst eine Version in der alle (und nicht nur ausgesuchte) Elemente der Liste angesprochen werden. Sie kommt außerdem ohne eine Bedingung aus, weil einfach die Schalterstellung an die 5 Lampen übertragen wird. Damit hast du schon zwei Dinge hinzugelernt. Den Einsatz von Wiederholungen und eine Alternative zur Bedingung. Um jetzt gezielt nur einen Teil der Liste anzusprechen, müsstest du diesen Teil irgendwie vom Rest unterscheiden. Und da wäre es doch das einfachste, dass du nur diesen Teil in die Liste packst. Alternativ kannst du es natürlich auch mit einem Schlagwort in manchen Objekten hinkriegen oder anhand des Namens und per Lua ausbaldowern, wer nun umschalten darf und wer nicht. Aber warum willst du dir das Leben schwerer machen als nötig? Demo-Anlage: Liste abrufen (alle).mbp
  24. Das wäre eine "oda abba" Verknüpfung Oppa abba üba Obaammagau oda abba üba Untaammagau oda abba übahaupnich kommp kanna dann im Aeignisprotokoll lesen. scnr
×
×
  • Neu erstellen...