-
Gesamte Inhalte
5797 -
Benutzer seit
-
Letzter Besuch
Alle erstellten Inhalte von Goetz
-
Das folgende Video ist ein Versuch, Einsteigern anhand eines sehr kleinen Beispiels zu zeigen wie ein Lua Skript funktioniert. Ich habe dabei bewusst auf jeglichen Bezug zum MBS verzichtet. Denn ich bin überzeugt, dass man zuerst das Prinzip in seinen Grundzügen verstehen sollte, bevor man sich an konkrete Aufgaben wagt. Außerdem birgt ein MBS-Bezug immer die Gefahr, dass man sich gedanklich zu sehr mit Detailfragen beschäftigt und dem Prinzip, nach dem alle Programm-Codes aufgebaut sind, zu wenig Aufmerksamkeit schenkt. Das Video setzt keinerlei Vorkenntnisse voraus. Aber einfach ist es trotzdem nicht. Ich meine nämlich, dass man Einsteigern durchaus Denkarbeit zumuten kann. Man muss nur darauf achten, dass man keine Vorkenntnisse voraussetzt. Ich würde mich freuen wenn das Video denen, die sich noch nicht viel unter "Programmieren" vorstellen können, eine Idee vermittelt was eigentlich dahinter steckt. https://www.youtube.com/watch?v=y_vsDTQYP7c
-
Das stimmt so nur im Idealfall. Nämlich dann, wenn die beiden Gleisenden in einer Position sind, die sich mit nur einem Kreisbogen perfekt verbinden lässt. Wenn du das Beispielbild vom HaNNoveraNer betrachtest, dann findest du dort die häufigere Variante: Zwei Gleisenden, die so zueinander liegen, dass man genau ein Kreissegment und eine Gerade (auf einer der beiden Seiten) benötigt, um eine Verbindung herzustellen. Und für diesen Fall möchte er den richtigen Kreisbogen (bzw. dessen Radius) berechnen. Das geht, ist aber weit weniger trivial.
-
I'm sorry, Ger - I somehow missed that part. But a clean example doesn't help me to help you. With the clean example I can only repeat what I did before and you wouldn't learn anything new from that. You're failed attempts are more useful because I may (with luck) recognise where your knowledge gaps are. Equally, a sentence like "I don't understand it anymore" is of very little use to me. You must be a lot more specific about what it is that you don't understand. I can't look into your head. So it's your duty to describe to me in detail what's going on inside. (And please refrain from humorous descriptions at this point if you want help and not just entertainment!) And now I'll see if I can figure out what your difficulties are by studying your example No 5 After a quick check of your example 5: Everything seems to work fine except for the switch at the entrance side not being set at all.
-
I would, Ger But your duplicate circle is completely bare. The contacts have no variables and no keywords. Nor do the signals. Nor do I find anything in the EV related to your half of the layout. Is this - maybe - the wrong layout? greets Goetz
-
Nein, für mich leider nicht.
-
Die Namen sind nicht die Identifier, wenn du Objekte, Ereignisse oder Module mit Hilfe des $-Zeichens adressierst. Sie stehen nur zur besseren Orientierung im Skript. Tatsächlich werden (für dich unsichtbar) die eindeutigen Adressen dieser Objekte im Skript gespeichert. Wenn du später den Namen von einem Objekt oder einem Ereignis/Modul änderst, dann wirst du sehen, dass er automatisch auch im Skript geändert wird. Wichtig ist nur, dass du die Objekte/Ereignisse/Module ins Skript einfügst, indem du nur das $-Zeichen schreibst und dann das gewünschte Element aus der Liste auswählst. Nein, es ist viel einfacher: Der Name des contacts, mit dem du ein Ereignis ausgelöst hast, heißt einfach contact. Und das auslösende Fahrzeug heißt vehicle. Kennst du diesen Thread zur Straßenbahn-Steuerung? Da werden diese Zusammenhänge erläutert.
-
Nein, eigentlich nicht. Denn ein Programm entscheidet dann nicht nach Gutdünken, sondern nach einem klar definierten Muster. Es wäre dann also bei genau 90° Versatz entweder immer richtig oder immer falsch. Unregelmäßigkeiten entstehen nur, wenn in der Ausgangslage Unregelmäßigkeiten stecken. MBS: 5.1.0.0 (64 bit), Windows 10
-
Das deckt sich mit der Aussage von EASY Vielen Dank, Frank
-
Nein, ganz und gar nicht. Das ist kein Streitthema sondern etwas, das man genauer untersuchen sollte. Wenn sich die exakt gleiche Anlage bei dir und mir nicht identisch verhält, dann macht mich das sehr neugierig. In welchem Punkt unterscheiden "wir" uns? Außerdem wäre ich interessiert daran zu erfahren, wie sich diese Anlage bei anderen Usern verhält. Vielleicht hilft auch das, die Ursache einzukreisen? Mir kommt gerade noch etwas in den Sinn: Ich habe auf der Ostseite den Kontakt gedreht (damit er in Fahrtrichtung zeigt) aber nicht die Straße darunter. Die hat als Objekt dieselbe Ausrichtung wie am westlichen Ende. Vielleicht beeinflusst das die Ausrichtung der Fahrzeuge? Denn wenn ich ein Auto manuell auf eine Straße ziehe, dann nimmt es automatisch die Orientierung dieser Straße an. Das erklärt zwar noch nicht das unterschiedliche Verhalten bei dir und mir, aber es könnte zumindest einen Zusammenhang geben ..?
-
Okay, das klingt gut
-
Genau - bei Faller wird man aus ökonomischen Gründen diese vereinfachte Treppe entworfen haben. Ich finde es aber schön, dass sie im MBS Modell jetzt eine realistische Form hat. Und insgesamt ist das ein toller Schuppen, auf den ich mich schon freue.
-
You must have misread. I don't think anyone here ever claimed that they are unavailable. That aside, your entire concept (as far as I can follow your description) seems to be needlessly complicated. But it's difficult to point out the exact points where your approach is less than ideal. Still - here's something which may helpful to know: When you select and copy multiple objects, you can insert them all into a list of objects by pressing ctrl-v while you're building that list.
-
Das erstaunt mich, weil das hier definitiv nicht der Fall ist. Die von mir eingesetzten Fahrzeuge verhalten sich anständig. Die "Troublemaker" hatte ich vorher aussortiert.
-
Das ist das Problem mit allen Gemeinschaften, Adolar. Sie sind nicht homogen. Sie bestehen aus Individuen mit individuell sehr unterschiedlichen Bedürfnissen. Während der Eine die Ziegel ausmisst (weil er Wert auf Realismus legt) stört den Anderen nicht einmal eine Tür, die so niedrig ist dass niemand hindurch gehen könnte (weil er vor allem Vielfalt schätzt und sich über alles freut, was das Sortiment bereichert.) Und das wird immer so sein, weil du keinem von beiden abverlangen kannst, dass er sich den Maßstab des anderen zu Eigen macht. Aber du bist mit deiner Sichtweise nicht alleine. Modellkonstrukteure reagieren hier auch des Öfteren auf eine einzelne Kritik so, als hätte sich die ganze Gemeinschaft gegen sie gewendet. Scheint so'n menschliches Ding zu sein, dass wir dazu neigen alle über einen Kamm zu scheren. Ich fand deinen Einwand übrigens vollkommen berechtigt. Und Brummi ist kleine Mimose. Der pickt sich aus Vorschlägen das raus, was in sein Konzept passt.
-
Du kannst Ereignisse aktivieren und deaktivieren, aber keine neuen Ereignisse erzeugen. Kannst du beschreiben, was du genau vorhast? Vielleicht gibt es einen anderen Weg um zu erreichen, was du möchtest
-
Hallo Easy, das ist offenbar eins dieser Fahrzeuge mit dem konstruktionsbedingten Fehlverhalten. Schmeiß den LKW bitte raus. Ich übernehme beim Einsetzen der Fahrzeuge die Position und die Ausrichtung des Ausfahrt-Kontakts. (Das sind die mit der weißen Spitze.) Genau genommen dienen die Ausfahrt-Kontakte sogar nur als Positionsreferenz und gar nicht als Kontakt. Aber ein paar wenige Fahrzeuge stehen nicht in Fahrtrichtung, wenn man die Rotationswerte des Kontakts übergibt. Der LKW ist wohl einer, bei dem das der Fall ist. Wäre die Umkehr aktiviert, dann würde er in der Kolonne rückwärts mitfahren. Ich hatte früher schon einen Versuch unternommen, in diesen speziellen Fahrzeugen intern einen Offset zu hinterlegen und den beim Einsetzen mit zu berücksichtigen. Aber das wollte nicht so recht klappen und dann war es mir nicht wichtig genug um mich tiefer reinzuknien. Mir ist nämlich - wie du ganz richtig erkannt hast - sehr an Einfachheit gelegen. Erstens ist das meines Erachtens der bessere Weg um Prinzipien zu erklären. Und zweitens habe ich eine ganz persönliche Abneigung gegen lange if-Staffeln und übermäßige individuelle Fallbehandlungen. Ich suche am liebsten nach generischen Strukturen.
-
Ich habe das Skript gerade noch ein wenig geputzt. Erstens übergebe ich jetzt die lange Adresse zur Fahrzeugtabelle einmalig beim Anlagenstart an eine Variable "DepotListe". Das macht den Code an anderer Stelle lesbarer. (Eigentlich sollte ich das für die Positions- und Rotationswerte auch tun. Diese Pakete sind ebenfalls Fixwerte, die man einmalig unter einem kurzen Namen ablegen könnte.) Und zweitens habe ich den Takt für die Depotausfahrten jetzt auf eine Sekunde verringert und dafür der Zufallszahl eine größere Spanne gegeben. Das macht die Abstände zwischen den Fahrzeugen noch etwas realistischer (sprich: unregelmäßiger).
-
Es ist schon laaange her, dass ich eine kleine Demo für die virtuellen Depots versprochen hatte. Heute habe ich sie endlich erstellt. Ich habe leider kein Geschick für ansehnlichen Anlagenbau. Aber auf nackter Platte war mir die Demo zu langweilig. Deshalb habe ich Jans Anlage "Module 270 x 135 cm_BRAUEREI" benutzt und die Straßenstücke gegen solche eingetauscht, die Fahrspuren haben. Die Autos im Depot parke ich unten vor der Anlage, weil das Beobachtungen und eigene Tests einfacher macht. Die kann man natürlich auch an anderer Stelle verstecken. Und weil ich das Namensschildchen als Zielort verwende genügt es, dieses Beschriftungsfeld zu verschieben um die unsichtbar geparkten Autos an anderer Position bereitzuhalten. Anlage: Jans Brauerei-Modul mit virtuellem Depot.mbp Es gibt einzelne Fahrzeuge, die sich konstruktionsbedingt nicht für diesen Trick eignen. Sie werden falsch herum auf die Straße gesetzt und stören dann als Geisterfahrer das System. Ich hoffe, dass ich im Depot nur noch Fahrzeuge habe, die sich "anständig" verhalten. Falls ihr noch einen Störenfried entdeckt, könnt ihr ihn einfach löschen. Das bringt die Abläufe nicht durcheinander weil Fahrzeuge, die auf der Straße unterwegs sind, aus dem Depot gelöscht werden. Am Ende der Straße werden Fahrzeuge wieder in das Depot eingegliedert. Das System eignet sich nicht für Gespanne und auch nicht für den Gütertransport. Aber ich finde diese einfache Version für den Einstieg sinnvoller. Sie ist überschaubar und leicht nachzuvollziehen. Viele Grüße und viel Spaß bei eigenen Experimenten Götz
-
Der Schuppen wird wieder was richtig feines, Brummi.
-
Jetzt habe ich es verstanden und gerade hier im Posting ausprobiert. Kannte ich noch nicht. Ist wirklich praktisch. Das sehe ich eh als ratsam an. Darin liegt für mich der eigentliche Vorteil der neuen EV. Aber natürlich sind die Bedürfnisse da individuell verschieden. Danke für dein schnelles Feedback auf meine Vorschläge. Ja, das würde mir auch gut gefallen.
-
Hallo gmd, auf die Gefahr hin, dass ich deine Anmerkungen stellenweise missverstanden habe ... funktioniert. Beim "drag" zeigt ein klitzekleiner Punkt in der Nähe des Mauszeigers, wo eingefügt wird. Und den markierten Text muss man irgendwo in der Mitte anfassen um nicht erneut zu markieren sondern zu greifen. Ja, das irritiert mich auch. Aber die Taste "end" hilft. Mit einem Rechtsklick auf ein Ereignis im EV Baum findest du im Kontextmenü die Möglichkeit, dieses Ereignis zu deaktivieren. per Lua kannst du alle Fahrzeuge ermitteln, die im Zugverband stecken und auch herausfinden, welche dieser Fahrzeuge motorisiert sind. Viele Grüße nach Australien Götz
-
And it works very well. The on/off switch is a nice addition
-
Korrekt. was passiert, wenn du unter einem Zug eine Weiche umstellst? Er wird an der nächsten Kupplung aufgetrennt. Das macht man sich bei diesen Kupplungsgleisen zunutze. Technisch sind es Weichen. Und deshalb muss man sie auch überfahren, um eine Kupplung aufzutrennen.
-
Doch, das tun sie. Und zwar in dem Augenblick, in dem die Kupplung zwischen zwei Waggons diesen Punkt überfährt. mit den Rangierspielen aus der Billerbahn Serie kannst du das gut ausprobieren.
-
Das ist kein guter Ansatz, Baki Zwei Bedingungen müssen erfüllt sein, damit dein Zug fahren darf Die Mindestzeit muss abgelaufen sein Es darf kein Zug kreuzen. Stopp den Timer (besser: die verzögerte Ausführung) nicht. Sondern setz nach Ablauf der Zeit eine Variable auf true. Sie steht dafür, dass die Wartezeit um ist. Ein kreuzender Zug setzt eine zweite Variable auf false. Ist er durch, dann wird diese Variable wieder auf true gesetzt. Wenn sich eine der beiden Variablen auf true ändert, dann prüf ob die zweite Variable auch auf true steht. Falls ja, dann darf der Zug abfahren.