-
Gesamte Inhalte
5797 -
Benutzer seit
-
Letzter Besuch
Alle erstellten Inhalte von Goetz
-
Gleiskontakt aktivieren / deaktivieren
Goetz antwortete auf h.w.stein-infos Thema in Fragen zur Planung
Hallo Hans, du kannst unter den Eigenschaften des Gleiskontakts die Verknüpfung ändern. Wenn du die auf "leer" setzt, dann deaktivierst du damit den Kontakt. Aber das ist kein guter Ansatz. Denn du kannst diese Verknüpfung leider nur auf einem Umweg wiederherstellen. Du müsstest dazu den Kontakt neu positionieren. Ein "verknüpfe mit Gleis" aktiviert den Kontakt nicht wieder. Deshalb würde ich dir einen anderen Weg vorschlagen: Erstelle eine Variable, die du auf true oder false setzt, je nachdem ob der zweite Kontakt schon überfahren wurde oder nicht. Und in der EV zum ersten Kontakt prüfst du den Zustand dieser Variablen. Ist sie true, dann hast du Fall 1, ist sie hingegen false, dann hast du Fall 2. Ein Gleiskontakt bezieht sich immer nur auf einen Punkt. Er kann keine Strecke markieren. Aber du kannst mit Lua beim Überfahren des Kontakts in der EV ermitteln, wie lang dein Zug ist oder aus wie vielen Einheiten er besteht. Und dann entsprechend der Länge unterschiedliche Verzögerungszeiten verwenden, um kurze und lange Züge jeweils an der gewünschten Stelle zu stoppen. Hilft dir das weiter? Götz -
Eigentlich ist es doch ganz einfach: Wenn ich etwas nicht verstehe, dann ist es nicht für mich. Egal, ob der Grund die Fremdsprache ist, die ich nicht beherrsche. Oder Eisenbahn-technische Gegebenheiten, mit denen ich nicht vertraut bin. Oder gestalterische Mittel, die ich nicht beherrsche ... Ist meine Neugier groß genug, dann reizt es mich vielleicht diese Hürde zu überwinden. Aber bislang hat niemand von mir verlangt, dass ich alles verstehe. Also erwarte ich auch nicht, dass alles in einer für mich verständlichen Form geschrieben wird. Wenn ein Mitglied hier in einer Sprache schreiben möchte, die mir fremd ist, dann darf es das tun. Warum auch nicht? Mir geht nichts verloren. Und wenn er/sie weniger Antworten bekommt, weil weniger Menschen sein Posting verstehen, dann ist das ausschließlich sein Problem. Ich habe damit keins.
-
my favoured translator? Well, Heineken of course scnr
-
Nicht, dass ich wüsste. Das sieht mir eher so aus, als würdest du dich im Englischen mit den Begriffen ähnlich verrennen wie auch im Deutschen. Sorry. Ich sehe nicht, warum das eindeutiger sein sollte
-
"Block" war der erste Begriff, über den ich bei dir gestolpert bin. Das nächste Beispiel steht genau vor dem Satz, den ich von dir zitiert hatte. Es ist nicht wichtig, was es für dich ist. Und es erleichtert auch nicht den Gedankenaustausch.
-
Doch, sind sie. Sprache ist dann besonders effektiv, wenn man sich auf gleiche Begriffe einigt. Und das geht am besten, indem man die Begriffe von denen übernimmt, die im Thema erfahren sind statt eigene zu erfinden oder Worte neu zuzuweisen. Dann hat man auch seltener das Problem missverstanden zu werden. Sorry, gmd - aber ein Teil deiner Verständnisprobleme rührt genau daher, dass du etablierte Begriffe einfach ignorierst.
-
Du meinst die Blickrichtung aufs Pult? Dann hast du das wirklich höchst unglücklich ausgedrückt. Und wenn du die Beschriftungen auf den Pulten ansiehst, dann ist doch eigentlich auf Anhieb klar, dass ein Pult (wie in der Realität) nur von einer Seite betrachtet wird. Wenn es Ausnahmen dazu gibt, dann sind sie mir zumindest noch nicht begegnet.
-
Hallo gmd, korrekt korrekt Nicht ganz korrekt. Diagonalen sollte man häufiger finden als Senkrechte. Nein, nicht ausschließlich. Sie können auch Streckenabschnitte repräsentieren, wenngleich seltener. Nein, definitiv nicht. Es gibt im Streckenverlauf Abschnitte, die nur in einer Richtung befahren werden und solche, die in beiden Richtungen befahren werden. Das ist individuell sehr verschieden und resultiert aus örtlichen Gegebenheiten. Im Pult kann man dann diese Fahrtrichtungen darstellen, um die Bedienung zu erleichtern. Ja, ganz bestimmt. Das ergibt sich einerseits aus der geglätteten und vereinfachten Abbildung des realen Gleisbildes und andererseits der Notwendigkeit, bestimmte Abschnitte miteinander korrekt zu verbinden. Nach nochmaligem Lesen deiner Fragen: Meinst du mit "Block" einen Blockabschnitt oder eine einzelne Kachel im Pult? Ich habe es oben als "Blockabschnitt" interpretiert. MBS Pulte unterscheiden sich oft von realen Stellpulten, weil sie größere Bereiche gemeinsam in einem Pult abbilden die Streckenverläufe anders sind als in der Realität (Oval, Acht, Hundeknochen) Erbauer manchmal weniger Erfahrung in der Abstrahierung des tatsächlichen Gleisverlaufs haben nicht die selben Sicherheitsanforderungen an die Pulte gestellt werden Deshalb wirst du zwei Typen von GBS beobachten Fantasiepulte, die unter anderem größere senkrechte Abschnitte zeigen und generell mehr Ähnlichkeit mit dem Layout einer Modellbahn haben realistische Abbildungen, die ähnlichen Gesetzmäßigkeiten folgen wie die großen Vorbilder. Viele Grüße Götz Nachtrag: Ich persönlich beginne mit einer Weiche, die gut zu identifizieren ist. Das hilft mir im weiteren Verlauf, die benachbarten Weichen und verbindenden Gleise richtig zu identifizieren. Im weiteren Verlauf ist das Design aber ständigen Änderungen unterworfen, weil ich z.B. die Längen mancher Abschnitte korrigiere um ein gefälligeres Gesamtbild zu bekommen. Dabei bevorzuge ich mehrere Pulte für die verschiedenen Abschnitte einer Anlage.
-
Du findest sie im Bereich Bahnfahrzeuge -> Schmalspur -> 1000 mm -> Straßenbahnen
-
Ein gutes Ziel, wie ich finde. Mit deiner Bemerkung zum TS triffst du es ganz genau. Drumherum passiert nichts. Vor allem nichts, was den Eindruck erweckt mich mit meinen individuellen Aktionen wahrzunehmen. Das auf meine Präsenz reagiert. Und es hat eine enorme Wirkung, wenn die Umwelt "lebendig" wird. Ich bin gespannt
-
Keine Meinung, nur nützliche Hintergrund Info: Als Modell gibt es solche Magneten im MBS. Sie können am Gleis andocken und besitzen dort Gleiskontakt-Funktion.
-
Das ist eine hübsche Idee. Rundet das Bild ab.
-
Great job @simonjackson1964
-
ja, finde ich auch Schönes Video. Und die Neuauflage der Module ist vielversprechend.
-
Hallo Gunther, In Ergänzung zum Hinweis des HaNNoveraNers. mit Lua geht es auch ganz ohne den Zwischenspeicher im Funktionsgleis: local condition = $("Kippschalter").state == 1 local vehicles = layout:getVehiclesOnTrack($("Funktionsgleis")) for _, vehicle in pairs(vehicles) do vehicle.variables["Status"] = condition end Anmerkung: Die erste Zeile des Skripts ist eine Alternative zur populären if ... then Verzweigung. Der Vergleich der Schalterstellung mit dem Wert 1 hat als Ergebnis entweder true oder false. Also genau das, was du für die Objektvariable benötigst. So kann man sich die Fallunterscheidung ganz sparen. Viele Grüße Götz
-
Beliebig oft. Kein einziges Mal. Wenn du das Alte überschreibst, dann ist es weg. Gleich beim ersten Mal! Stattdessen hast du nun das Neue. Wenn du im Neuen Mist gebaut hast, dann hast du jetzt nur noch Mist und nicht mehr das, was du zuvor hattest. Du speicherst immer die ganze EV. Komplett. So, wie sie gerade ist. Unabhängig davon, an welchen Stellen der EV du etwas geändert hast. Deshalb musst du, wie von Timba vorgeschlagen, die Anlage vor "riskanten" Veränderungen speichern und dann nach der Änderung den Namen der Anlage ändern, damit du die gute Anlage nicht beim nächsten Speichern überschreibst.
-
Vielen Dank, @gmd Hallo @Eisbär je mehr ich in deiner EV stöbere, desto bescheidener werde ich. Aber es reizt mich, ein paar Tricks beizusteuern, die dir gefallen könnten. Lua beherrscht beispielsweise folgenden Trick: Die Operatoren and und or liefern den ersten oder zweiten Ausdruck als Ergebnis. Das heißt: true or true -- ergibt true, weil der erste Wert true ist 1 or true -- ergibt 1, weil der erste Wert eine 1 ist, die als true gewertet wird true and 1 -- ergibt ebenfalls 1. Beim and wird der zweite Wert zurückgegeben, wenn der erste Wert true ist -- positiv oder negativ? Vorzeichen = x < 0 and -1 or 1 Wusstest du, dass du Objektlisten erstellen kannst, indem du die Objekte (mit Lasso oder Strg) auswählst, Strg+C für Copy drückst und dann die Liste in der EV mittels Paste einfügst? Wenn du deine Listen schon auf diesem Weg erstellt hattest - super! Wenn nicht, dann wirst du den Tipp sicher zu schätzen wissen Gruß Götz
-
In diesem Punkt (und einigen anderen) ist Lua "frech". Und ich kann jeden Programmierer verstehen, dem es widerstrebt diese Frechheiten auszunutzen. Du könntest für die individuellen Unterschiede Datensätze (am besten in Tabellenform) bereithalten und an deine generische Funktion übergeben. Du kannst Tabellen anlegen, die wiederum Wertepaare enthalten. Zum Beispiel Weichen und ihre Stellungen. Und dann deine generische Routine so anlegen, dass sie die Tabelle abklappert und jeder darin enthaltenen Weiche ihre Stellung zuweist, um einen bestimmten Weg zu schalten. Wenn du diese Routine später erweitern möchtest, um beispielsweise Konflikte auszuschließen, dann hast du dafür eine zentrale Stelle ... (sorry, das weißt du als Profi besser als ich ) Lua unterscheidet nicht zwischen Arrays, Tables, Dictionaries, Lists etc. - das ist in dieser Sprache alles dasselbe und obendrein kann man alles in einer Tabelle vermischt anwenden und nach Belieben nesten. Das macht Tabellen in Lua zu einem sehr mächtigen Werkzeug. Geradezu ideal für die Verwaltung von Bahnverkehr etc. Leider bringe ich aktuell nicht die nötige Konzentration auf um dir das anhand eines praktischen Beispiels richtig zu demonstrieren. Randnotiz: Du musst dabei bitte beachten, dass die Tabellen und Listen in Objektvariablen Elemente des MBS sind und an dieser Stelle noch nichts mit Lua zu tun haben. Dort werden Listen und Tabellen unterschieden.
-
Das ist ein beeindruckendes Erstlingswerk. Es ist nicht besonders pflegeleicht, weil es viel "Copy & Paste" Code enthält. Zum Beispiel sind die Skripte unter "Fahraktionen" sechs Mal nahezu identisch. Jede eventuelle Korrektur und Verbesserung müsstest du sechs Mal durchführen. Das finde ich insofern verblüffend, als du gleich darunter (im Ordner "Planmuster") generische Ereignisse hast, die du mit unterschiedlichen Argumenten aufrufst. Dir ist das Prinzip also eigentlich geläufig. Insgesamt ist die EV für das, was sie tut, sehr groß geraten. Deshalb überblicke ich auch noch nicht im Einzelnen, was du wo tust und warum. Man sieht einerseits, dass du eine Menge Werkzeuge kennst, wie z.B. die Verwendung einer namenlosen Funktion, die du an Ort und Stelle definierst. Und andererseits gehst du dann in dieser Funktion hin und prüfst exakt dieselbe Bedingung zweimal, um zwei Tabellen (für Fahrregler und für Loks) zu erstellen. Vorschlag: layout:enumEntities( function(entity) if (string.sub(entity.name, 1, 4) == "Fre_") then -- Fahrregler table.insert($("Skripte").variables["Fahrregler"], entity) -- Loks if (not (entity.connection == nil)) then table.insert($("Skripte").variables["Loks"], entity.connection) end end ) anstatt layout:enumEntities( function(entity) -- Fahrregler if (string.sub(entity.name, 1, 4) == "Fre_") then table.insert($("Skripte").variables["Fahrregler"], entity) end -- Loks if (string.sub(entity.name, 1, 4) == "Fre_") then if (not (entity.connection == nil)) then table.insert($("Skripte").variables["Loks"], entity.connection) end end ) aber das ist sicher Geschmacksache. In Lua gilt übrigens jeder Inhalt einer Variablen als true. Also im Gegensatz zu anderen Sprachen auch die 0 und ebenso ein leerer String. Du kannst also -- statt if (not (entity.connection == nil)) then -- einfach if entity.connection then schreiben. Sorry - das sind einfach nur ein paar beliebige Punkte, die ich spontan kommentiere. Ich hoffe, du kannst damit etwas anfangen. Ich will nicht an deinem Code rumnörgeln sondern nur schauen, ob ich ein paar Anregungen beisteuern kann. Nachtrag: if Bedingung == true then ist eine Zeile, die ich in sehr vielen Skripten lese. Meines Erachtens ist das weder sinnvoll, noch erhöht es die Lesbarkeit. Aber es ist ein Hinweis darauf, dass man Vergleichsoperatoren noch nicht vollends durchschaut hat. Jeder Vergleich kann nur entweder true oder false liefern. Sonst nichts. Und genau das sucht if: entweder ein true oder ein false. Sonst nichts. Wenn also in der Bedingung selbst schon true resp. false steht, dann ist if Bedingung then die bessere Schreibweise. Für die Lesbarkeit wählt man geeignete Variablennamen. -- beispielsweise if Besetzt then -- oder if Zug_ist_bereit then -- oder if habeAnmeldung then -- etc.
-
Hallo Wolfgang, möchtest du nicht lieber zuerst die Lösung für das Problem aus deinem ersten Posting finden, bevor du einer neuen Idee erlaubst in deinem Kopf herumzuschwirren? Die Lösung ist wirklich einfach: Darauf hatte dich Streitross aufmerksam gemacht. Und exakt dasselbe Prinzip findest du auch in fzonks Beispiel wieder. (Das hast du nur nicht genau genug studiert und deshalb für eine ganz andere Idee gehalten.) Gruß Götz
-
aber das kostenlose Gimp kann es. Und Photoshop natürlich auch.
-
Schau mal den von mir verlinkten Film an. Da steht (ziemlich zum Schluss) der Rangierer zwischen den Puffern des ersten Waggons um die Kupplung zu verbinden. Der muss sich also darauf verlassen können, dass sich da nichts verschiebt.
-
Da hast du recht, wie man in dieser Sendung mit der Maus gut sehen kann. Es ist beeindruckend, mit welcher Präzision eine Verschiebelok gefahren wird. Da das MBS aber keine Puffer hat, die sich zusammendrücken lassen, musst du hier ein wenig Spielraum zulassen um das zu kompensieren. Das entspricht dann mehr der Modellbahn und weniger dem realen Vorbild.
-
Das war mein subjektiver Eindruck, den ich mit dieser kleinen Testanlage gewonnen hatte: BremsProbe 02.mbp Der Eindruck kann also durchaus falsch gewesen sein. (Oder sogar meine Erinnerung an das Ergebnis dieser Versuche.) Nachtrag: Pardon, das war die falsche Testanlage. Denn hier wähle ich Geschwindigkeit und Verzögerung beide zufällig und wähle dann für den Bremsbefehl eine Verzögerung, die mich möglichst genau an der Rufsäule anhalten lässt. Beim eigentlichen Testaufbau (den ich erst wiederfinden muss) ging es mir auch hauptsächlich darum zu zeigen, wie gering diese Schwankungen sind. Man kann die Züge realistisch genau stoppen.
-
Das war dann wirklich nur ein subjektiver Eindruck. Tatsächlich werden die Ergebnisse geringfügig schwanken. Bei höheren Geschwindigkeiten stärker als bei niedrigen. Das schönste Ergebnis bekam ich, wenn ich in zwei Stufen gebremst habe. Am ersten Punkt bremse ich auf eine niedrige Geschwindigkeit (z.B. 40 km/h) herunter. Hier stelle ich die Bremskraft abhängig von der aktuellen Geschwindigkeit ein. Und ich bremse so, dass ich die 40 km/h kurz vor dem zweiten Kontakt erreiche. Mit dem zweiten Kontakt bremse ich dann auf 0 runter. Die Bremskraft kann ich an dieser Stelle fest vorgeben, da ich die gefahrene Geschwindigkeit kenne. Das ist erstens genau und zweitens auch realistisch.