Jump to content

Goetz

Mitglieder
  • Gesamte Inhalte

    5763
  • Benutzer seit

  • Letzter Besuch

Alle erstellten Inhalte von Goetz

  1. Hallo Leihe, unter dieser Content-ID findest du meinen Alternativvorschlag zu deiner Fahrstraßenschule: FABBABBD-C29E-402A-B337-674B8AB5572F Ich habe ... die blauen Kontakte alle entfernt die Signalkontakte weiter vorgezogen (in etwa dorthin, wo zuvor die blauen Kontakte saßen) in den Kehrschleifen anstelle der Kontakte je ein weiteres Signal eingesetzt. in allen Signalen die Fahrstraße, welche dort beginnt, in einer Variablen namens "FS" gespeichert Damit ist die EV jetzt auf einen einzelnen, sehr simplen Eintrag reduziert: Wenn irgendein Kontakt betreten wird, dann prüfe, ob in diesem Kontakt eine Variable namens "FS" existiert. Falls ja, dann warte 5 Sekunden und aktiviere dann die Fahrstraße, welche du in der Variablen findest. Das reicht, um sechs (und mehr) Züge ständig fahren zu lassen. Schau mal bitte, ob dir das zu einem besseren Verständnis hilft. Viele Grüße Götz
  2. grundsätzlich schon. Aber den Entwurf finde ich nur, wenn du mir bitte die Content-ID dieser Anlage mitteilst. (Das ist das besondere an Entwürfen: Sie tauchen nicht in der Übersicht veröffentlichter Anlagen auf.)
  3. Hallo Walter, im Schleifenkopf (= der Zeile mit dem for ... do) werden nacheinander alle Elemente aus der Liste einzeln entnommen und an eine temporäre Variable (mit Namen Wdh) übergeben. Im nachfolgenden Block werden dann eine oder mehrere Aktionen auf dieses Element angewandt, welches du aus der Liste entnommen und an die temporäre Variable übergeben hast. (Das ist keine Lua Spezialität. Das funktioniert in allen Programmiersprachen gleich.) Wenn die Behandlung des Elements erledigt ist, kehrt die Wiederholung an den Anfang zurück, entnimmt der Liste das nächste Objekt, übergibt es an die temporäre Variable und so weiter ... Bis alle Elemente der Liste behandelt wurden. Hier ein ganz einfaches Beispiel, welches das Prinzip besser verdeutlicht: Beatles = {"John", "Paul", "George", "Ringo"} -- Liste for index, wert in ipairs(Beatles) do -- für jedes Element der Liste print(wert) -- schreib das Wort ins Ausgabefenster end Auf dieser Seite kannst du solche kleinen Experimente bequem testen: Lua: demo Viele Grüße Götz
  4. Das erklärt leider nicht deine umständliche Herangehensweise. Weder die Anzahl der Züge, noch die Gleislängen. Wie gesagt: Wenn du mir deine Beispielanlage zur Verfügung stellst, zeige ich dir gerne wie es geht.
  5. Folgenden Fehler habe ich in meinem Beispiel entdeckt: Die Zeile 3 des Skripts "Zielwechsel" muss lauten: local Anzeigen = {} Ich hatte den Namen mehrfach geändert (weil ich mich nicht entscheiden konnte). Zum Schluss hatte ich dann eine Anpassung in Zeile 3 vergessen. Sorry. Ich habe die Beispielanlage aus dem vorherigen Posting korrigiert und ausgetauscht.
  6. Goetz

    Menü Ebenen

    Die Anzeige der Gleisnummern/-namen in der Darstellung "technische Zeichnung":
  7. Probier mal bitte diese Alternative aus: Texttestanlage Alternativvorschlag.mbp korrigiert! Anders als im obigen Beispiel lege ich hier zunächst eine Liste der Textfelder an, die beschriftet werden sollen. Damit entfällt die Prüfung, ob ein Feld überhaupt existiert. Denn die erste Schleife fügt in dem Fall einfach ein nil in die Tabelle ein. Also gar nichts. In einer zweiten Wiederholung weise ich dann allen Feldern aus dieser Liste den Text zu. local t = layout:getVehicleGroup(vehicle) local Felder = {} local Ziel = "Hauptbahnhof" if contact == $("GK 01") then Ziel = "Universität" end for i, Zugteil in ipairs(t) do table.insert(Anzeigen, Zugteil.labels["Zielbahnhof vorn"]) table.insert(Anzeigen, Zugteil.labels["Zielbahnhof Seite"]) table.insert(Anzeigen, Zugteil.labels["Zielbahnhof hinten"]) end for i, Textfeld in ipairs(Anzeigen) do Textfeld.text = Ziel end Dieser Code ist für beide Kontakte (Mehrfachauswahl!) geeignet, da im Code selbst unterschieden wird, welcher Kontakt ausgelöst wurde und welches Ziel deshalb angezeigt werden soll. (Noch schöner wäre es, das jeweilige Fahrziel in einer Objektvariable des Kontakts bereitzuhalten.) Beim Türöffner Code habe ich ebenfalls die Prüfungen entfernt, ob die jeweilige Tür existiert. Auch hier gilt: Was es nicht gibt, wird nicht in die Tabelle eingefügt. Viel Spaß beim Studium der Anlage Götz
  8. Hallo Walter, leider können wir das Verhalten nicht beobachten, denn im Katalog sind deine Straßenbahnmodelle noch in der Form ohne variable Beschriftung. Aber ich kann dem Skript auch so ansehen, warum da einiges schief geht: Du änderst hier die Beschriftung an beiden Zügen. Und die Elemente aus der Wiederholung ignorierst du einfach. Weil die Wiederholung für alle Zugteile durchgeführt wird, änderst du hier die Beschriftung auf beiden Zügen dreimal! Eigentlich willst du die Beschriftung aber nur auf den Fahrzeugen ändern, die du aus der Wiederholung bekommst. Dazu müsstest du bei Beschriftung für das Zielobjekt "Wiederholung" in der Auswahl finden. Und das gibt es für Beschriftungen noch nicht. ( @Neo?) Aber im Lua Code kannst du es verwenden: local t = layout:getVehicleGroup(vehicle) for i, Wdh in ipairs(t) do Wdh.labels["Zielbahnhof vorn"].text = "Hauptbahnhof" Wdh.labels["Zielbahnhof Seite"].text = "Hauptbahnhof" Wdh.labels["Zielbahnhof hinten"].text = "Hauptbahnhof" end Beachte die Variable Wdh anstelle der Objektangabe. Sie enthält das Fahrzeug, welches dir die Wiederholung aus dem Zugverband "rausgfischt". Eins nach dem anderen, bis alle Fahrzeuge behandelt wurden. Wdh (für Wiederholung) ist nur ein Namensvorschlag vom Studio Du kannst auch einen anderen Namen wählen: local t = layout:getVehicleGroup(vehicle) for i, Zugteil in ipairs(t) do Zugteil.labels["Zielbahnhof vorn"].text = "Hauptbahnhof" Zugteil.labels["Zielbahnhof Seite"].text = "Hauptbahnhof" Zugteil.labels["Zielbahnhof hinten"].text = "Hauptbahnhof" end Beachte dabei, dass du in der Zeile, die mit for beginnt, denselben Variablennamen wählen musst. Der gezeigte Code ist noch unvollständig. Er versucht jetzt in jedem Zugteil alle drei Beschriftungen zu ändern, ohne Rücksicht darauf, ob es die jeweiligen Felder überhaupt gibt. Das führt bei geöffnetem Protokollfenster zu einer Fehlermeldung und zum Abbruch. Denn das vordere Fahrzeug hat kein Textfeld "Zielbahnhof hinten". Du wirst also für jedes Feld prüfen müssen, ob es überhaupt existiert: local t = layout:getVehicleGroup(vehicle) for i, Zugteil in ipairs(t) do if Zugteil.labels["Zielbahnhof vorn"] then Zugteil.labels["Zielbahnhof vorn"].text = "Hauptbahnhof" end if Zugteil.labels["Zielbahnhof Seite"] then Zugteil.labels["Zielbahnhof Seite"].text = "Hauptbahnhof" end if Zugteil.labels["Zielbahnhof hinten"] then Zugteil.labels["Zielbahnhof hinten"].text = "Hauptbahnhof" end end Bei der Türsteuerung auf derselben Anlage benutzt du übrigens schon die Prinzipien, die ich hier vorgeschlagen habe. Aber das ist dir vermutlich gar nicht bewusst?
  9. Nein, ein Modell aus dem Sortiment des Studios kannst du nicht verändern. Aber die Modelle sind kostenlose Beigaben von engagierten Usern. Du kannst also den Erbauer eines Modells ansprechen und fragen, ob er dir sein Objekt für Umbauten zur Verfügung stellt. Und du kannst eigene Modellkreationen ins Studio aufnehmen.
  10. Per utilizzare il software senza connessione a Internet, scaricare il catalogo dei modelli sul proprio laptop. Ho contrassegnato il pulsante per questo nell'immagine con un cerchio rosso: [google translate] Um die Software ohne Internetverbindung zu benutzen, musst du bitte den Modellkatalog auf deinen Laptop herunterladen. Ich habe den Knopf dafür im Bild mit einem roten Kreis markiert:
  11. Ja, auf jeden Fall. Leihe. Du gehst es zu umständlich an. Und wozu dient jetzt die Wiederholung über eine Liste mit nur einem Element? Innerhalb dieser Schleife benutzt du das Element aus der Wiederholung überhaupt nicht. Wenn du die Testanlage zur Verfügung stellst (= veröffentlichst), kann ich dir ein Beispiel dazu entwerfen. Aus deiner Bildersammlung alleine kann ich nicht alle benötigten Informationen entnehmen. Viele Grüße Götz
  12. Hallo @Leihe, dein Fehler steckt hier: Wenn die Fahrstraße aktiv ist, dann ist sie niemals frei und kann auch nicht aktiviert werden. Deine innere Bedingung wird niemals erfüllt. Denn wenn sie erfüllbar ist, dann wird die äußere Bedingung nicht erfüllt. Und somit die innere Bedingung gar nicht geprüft. Viele Grüße Götz
  13. Du kennst Objektvariablen! Das sind diese hier (im Kontextmenü zum Objekt): Und wie du sie verwendest, weißt du auch.
  14. Aaaahhhh - das ist ein ganz anderer Fall. Du willst in einem Rutsch mehrere Fahrzeuge in einem Verbund ansprechen. Das geht so: local t = layout:getVehicleGroup(vehicle) -- vehicle ist das auslösende Fahrzeug im Verbund for i, Wdh in ipairs(t) do -- t ist die oben erzeugte Liste und enthält alle Zugteile Wdh.labels["Zielbahnhof vorn"].text = "Hauptbahnhof" end Erläuterung: Wenn ein Zug einen Kontakt betritt (oder verlässt), dann ist immer genau ein Fahrzeug im Verbund der "Repräsentant" dieses Zuges. Dieses Fahrzeug muss nicht zwingend das Fahrzeug sein, welches den Kontakt berührt hat. Man möchte ja zum Beispiel erreichen, dass derselbe Zug einen Kontakt sowohl betreten als auch verlassen kann. Deshalb muss das Referenzfahrzeug immer dasselbe bleiben, auch wenn der Zuganfang den Kontakt betritt, aber das Zugende ihn verlässt. In aller Regel ist das angetriebene Fahrzeug im Verbund der Ansprechpartner. Der "Auslöser".
  15. Nein, du musst in der EV das auslösende Fahrzeug ansprechen. vehicle.labels["Zielbahnhof vorn"].text = "Hauptbahnhof"
  16. Ja, selbstverständlich. Dafür gibt es die rechteckigen Klammern. Die können entweder einen Platzhalter (ohne Anführungszeichen!) aufnehmen. Oder einen Bezeichner (mit Anführungszeichen, weil der Bezeichner ein String ist) fu = "bar" object.variables[fu] == object.variables["bar"] Mit Zahlenwerten geht es so: fu = 42 object.variables[fu] == object.variables[42] Die Zahl darf nicht in Anführungsstrichen stehen
  17. Stimmt. In Lua sind beide Schreibweisen erlaubt. Und sie sind gleichbedeutend, also auch austauschbar. Tabelle["Untertabelle"]["Element"] == Tabelle.Untertabelle.Element Die Schreibweise mit eckigen Klammern und Anführungszeichen erlaubt mehr Zeichen (z.B. Sonderzeichen), die bei der anderen Schreibweise unzulässig sind. Deshalb wählt das Studio automatisch die Schreibweise mit Klammern und Anführungszeichen, wenn ein Teil der grafischen EV in Lua gewandelt wird.
  18. mit diesem kleinen Pfeil öffnest du ein Untermenü zum Punkt "Einfügen". Dort sind die beiden Import Funktionen aufgelistet. Viele Grüße Götz
  19. Hallo @rumech, du kannst eine Anlage in eine andere importieren. Dabei wird auch die komplette EV mit importiert und in der neuen Anlage zur besseren Unterscheidung in einem Unterordner zusammengefasst. Da Einträge in der EV fast immer konkrete Bezüge zu Objekten auf der Anlage haben, ist das meines Erachtens der sinnvolle Weg. Viele Grüße Götz
  20. Hallo Volker, Im "Positionierung" Menu kannst du festlegen, ob beim Einsetzen oder Verschieben von Objekten eine Höhenanpassung erfolgen soll oder nicht. Diese Einstellung gilt für das freihändige Verschieben. Wenn du eine der Gimso Achsen verwendest um das Objekt zu verschieben, dann hat diese Einstellung keine Auswirkung. Dann gilt ausschließlich die Pfeilrichtung. Viele Grüße Götz
  21. Goetz

    Ronis Projekte

    Wenn @Roter Brummer dir Tipps zum richtigen Aufbau eines Fachwerkhauses gibt, dann sind seine Modelle sicher ein guter Anfang:
  22. Goetz

    Ronis Projekte

    Das finde ich sehr schade, Roni - habe ich aber nicht anders erwartet. Das ist weniger das Problem. Schade, dass du das nicht richtig verstanden hast. Vielmehr ist es so kein Fachwerk, weil es seinen Zweck nicht erfüllen kann. Es trägt nicht. Es sieht eben nur noch oberflächlich ein bisschen so aus, wie Fachwerk. Das ist so, als hätte ein Gleis nur eine Schiene in der Mitte. Oder nur eine Schwelle alle 10 Meter. Das sähe ein bisschen so aus wie ein Gleis und ein Zug könnte im MBS darauf auch fahren. Aber seinen realen Zweck könnte dieses Gleis nicht mehr erfüllen. Das soll deine Meinung nicht ändern. Es soll dir nur verständlicher machen, warum sich ein oder zwei Nutzer über ein realistischeres Fachwerkkonstrukt gefreut hätten. Viele Grüße Götz
  23. Hello @Bas, may I suggest that you study the layout "Historische Anlage 07" from @Roter Brummer? Content ID: 840C1343-D390-4991-8075-B03F08EB6C95 enter the ID here: It is a prime "how to" example. Kind regards Goetz
  24. Schalte beim Textfeld (oder mehreren Textfeldern) den Hintergrund aus, lege ein neues Feld (z.B. "Ebene" aus den Grundkörpern) in der Größe deiner Wahl darunter ... Fertig!
  25. Neee, ist nicht der Zweck meiner Ausführungen. Es soll @Neo bei der Ursachenforschung helfen. Die "Bauanleitung" ist für ihn. Als Bestätigung, dass es da einen Zusammenhang gibt. Und für all diejenigen, die sich für technische Zusammenhänge interessieren.
×
×
  • Neu erstellen...