Jump to content
Zum Start hinzufügen

Weitere Informationen

3D-Modellbahn Studio

Eine Vollbild-App auf Ihrem Startbildschirm mit Push-Benachrichtigungen und mehr.

So installieren Sie diese App auf iOS und iPadOS
  1. Tippen Sie auf das Teilen-Symbol in Safari
  2. Scrollen Sie durch das Menü und tippen Sie auf Zum Startbildschirm hinzufügen.
  3. Tippen Sie oben rechts auf Hinzufügen.
So installieren Sie diese App auf Android
  1. Tippen Sie auf das 3-Punkte-Menü (⋮) in der oberen rechten Ecke des Browsers.
  2. Tippen Sie auf Zum Startbildschirm hinzufügen oder App installieren.
  3. Bestätigen Sie durch Tippen auf Installieren.

Goetz

Mitglieder
  • Benutzer seit

  • Letzter Besuch

Alle erstellten Inhalte von Goetz

  1. Es wäre wirklich hilfreich, wenn du die betroffene Anlage samt Schalter in dem Zustand speicherst und hier anfügst, den sie hat bevor du den Schalter "verbindest oder in die EV einträgst". Und dann möglichst detailliert die Schritte beschreibst die du durchführst, um den Schalter zu verbinden bzw. in der EV einzutragen. Dann könnten wir deine einzelnen Schritte einen nach dem anderen genau so durchführen und schauen, an welcher Stelle sich das MBS aufhängt.
  2. hihihi - das trifft es gut
  3. That has no relation to your particular problem. A variable may be use as a counter when multiple tracks are crossed. It's to ensure that all trains have passed before the barrier opens again. It has nothing to do with stopping road traffic at a barrier or traffic light (which is what you're struggling with at the moment.) To stop any traffic, you need to use a track (in version 4) or a contact (in version 5) on the road at a distance to the actual signal or barrier. Use the event of a vehicle treading on that track element or contact to trigger the following: Make the status of the signal or barrier your condition. State that when the condition is met (i.e. the state is "stop", "close" or similar), the triggering vehicle has it's target speed set to 0.
  4. Nein, das heißt es nicht. Ein Ereignis löst einen Funktionsaufruf aus. All das, was du einem Ereignis zuweist, ist also zusammen der Body einer Funktion. Und es ist nicht sinnvoll in einem Funktionsbody eine weitere Funktion zu definieren. Es ist nur sinnvoll innerhalb dieser Funktion weitere Funktionen aufzurufen. Den Rest später, wenn ich den Kopf richtig frei habe. Aber deine Funktionsdefinition innerhalb einer Funktionsdefinition ist schon Teil des "Pferd von hinten aufzäumen" Problems.
  5. Du auch, Andy Wenn du deinen Versuch ausgeschlafen und bei Tage betrachtest. Zum Beispiel gehört die Funktionsdefinition nicht in das Schalterereignis, sondern nur ein Funktionsaufruf. Du willst doch die Funktion nicht jedes Mal, wenn der Schalter betätigt wird, neu bauen sondern nur erneut ausführen. Tabellen sind auch nicht "hartnäckig read only", wenn du das Pferd nicht von hinten aufzäumst.
  6. Zweiter Ansatz: Tausche zwei beliebige Positionen. Tausche von den verbliebenen drei wieder zwei Positionen. Tausche dann den letzten der fünf Klötze mit einem beliebigen der anderen vier. Das ergäbe langfristig alle verfügbaren Muster und für den nächsten Wurf wäre garantiert, dass keiner der fünf Klötze an seinem Platz verbleibt. Aber für jeden Wurf stünde mit dieser Methode nur ein Teil der denkbaren Ergebnisse zur Verfügung. Deshalb finde ich es unbefriedigend und steuere es nur als Denkansatz bei.
  7. Goetz antwortete auf pfjohs Thema in Fragen zur Steuerung
    Ich habe meine erste Antwort mehrfach ergänzt und dabei nicht bedacht, dass du dann vielleicht nach Lesen der ersten Fassung keine Nachricht mehr bekommen hast, dass ich den Fehler lokalisieren und beheben konnte ... Sorry
  8. Kurz ein erster Einfall dazu: Es gibt insgesamt nur 120 mögliche Stellungen. (5 x 4 x 3 x 2 x 1) Die kann man alle in einer Tabelle auflisten und dann jeweils die ausschließen, die eine oder mehrere Positionen mit der aktuellen Stellung gemeinsam haben. Aus den verbliebenen würfelt man dann die neue Stellung. So sind Zufall und fünf neue Positionen immer garantiert. Das ist auf jeden Fall besser, als beliebige Zufallsergebnisse zu prüfen, ob sie eine gleiche Position enthalten und gegebenenfalls neu zu würfeln, bis man "Glück" hat.
  9. Okay, dann ist das natürlich richtig. Aber für die "kein Klotz darf an seiner alten Position verbleiben" Anforderung (die natürlich sinnvoll ist!) muss ich mir noch etwas überlegen. Das leistet meine "Lottoziehung" nicht. Die von dir vorgeschlagene Änderung kann das auch nicht. Wir müssen da eine grundsätzlich andere Methode stricken. Leider habe ich für die nächsten 8 Tage nur sporadisch Zeit, weil ich hier (zuhause) sehr in Anspruch genommen werde. Aber falls mir da in einer ruhigen Minute etwas einfällt, lasse ich es dich wissen.
  10. Okay, der Kern der Geschichte ist folgender: Alle 8 Möglichkeiten stehen in einer Tabelle. Da wir daraus fünf verschiedene haben wollen, müssen wir wie bei der Ziehung der Lottozahlen vorgehen. Wir spielen also 5 aus 8 statt 6 aus 49. Wir erzeugen eine Zufallszahl zwischen 1 und 8 und nehmen das Element aus der Tabelle. Jetzt sind nur noch 7 Elemente übrig. Also würfeln wir eine Zahl zwischen 1 und 7 und nehmen das Elemente ebenfalls raus. Dann würfeln wir eine Zahl zwischen 1 und 6 … Die aussortierten Elemente müssen wir der Reihe nach irgendwo aufbewahren. Und weil wir beim nächsten Spiel wieder die ganze Tabelle als Anfangsstadium nutzen wollen, ist es praktisch die gewürfelten Elemente der Reihe nach hinten an die selbe Tabelle anzuhängen. Die Zeile for i = #Tabelle, 2, -1 do erzeugt der Reihe nach Zahlen von 8 (#Tabelle enthält die Anzahl der Elemente in der Tabelle) runter bis 2. Das -1 an dritter Stelle sorgt dafür, dass bei jedem Durchgang eins runter gezählt wird und nicht - wie sonst üblich - rauf. Beim ersten Durchlauf der Schleife steht in i also eine 8. math.random(8) erzeugt eine zufällige ganze Zahl zwischen 1 und 8. table.remove() entnimmt der Tabelle, die im ersten Argument genannt wird, das Element, welches im zweiten Argument genannt wird. table.remove(Tabelle, math.random(8)) nimmt also ein zufälliges Element zwischen 1 und 8 aus der Tabelle namens "Tabelle". table.insert() setzt in der Tabelle, die als erstes Argument genannt wird, das ans Ende, was als zweites Argument genannt wird. Und an zweiter Stelle steht die Funktion table.remove(). Damit wird das zufällige Element, welches table.remove rausholt, am Ende derselben Tabelle wieder angehängt. Das 8. Element der Tabelle ist jetzt nicht mehr wichtig. Zur Auswahl stehen nur noch die ersten 7 Elemente der Tabelle. Beim zweiten Schleifendurchlauf steht deshalb in i eine 7. Wir würfeln eine zufällige Zahl zwischen 1 und 7, picken dieses Element aus der Tabelle und hängen es wieder hinten an. Dann machen wir das Spiel mit den ersten 6 Elementen der Tabelle noch einmal. Und so weiter, bis wir alle 8 Elemente in zufälliger Reihenfolge in der Tabelle stehen haben. Jetzt können wir die ersten 5 Elemente dieser Tabelle als unsere "Ziehung" präsentieren. (Wer genau verstanden hat, was passiert, der erkennt dass ich vergessen habe zum Schluss das erste Element nach hinten zu schieben. Da dieses Element aber jedes der 8 ursprünglichen Elemente sein kann, macht es für das Ergebnis keinen Unterschied.) Die 8 Elemente der Tabelle sind in diesem Fall selber kleine Tabellen, welche die x, y und z Koordinaten enthalten. Deshalb muss die Liste 8 Koordinatengruppen enthalten. Du musst auch den 3 Würfeln einen (versteckten) Platz zuweisen, die diesmal am Ende der Auswahl gelandet sind und somit nicht mitspielen. Bitte, lass mich wissen wie weit dir das hilft und wo du weiteren Erklärungsbedarf hast.
  11. Goetz antwortete auf Neos Thema in Beta-Bereich
    Genau richtig. Aber im von dir zitierten Wiki-Auszug ist von einem Kontakt in der Mitte der Drehscheibe die Rede. Und wenn man den verwendet, dann muss man ihn mit der Spitze auslösen, per Lua nachschauen, wie lang die Lok (samt Tender) ist und dann die Bremsen entsprechend so einstellen, dass der Bremsweg der halben Länge des Gespanns entspricht. Oder eben mit der Mitte des Gespanns den Kontakt auslösen und in Kauf nehmen, dass es nicht ganz mittig anhält. (Was in sehr vielen Fällen wahrscheinlich schon ausreicht.)
  12. Goetz antwortete auf pfjohs Thema in Fragen zur Steuerung
    Du hast bei beiden Loks den Regler "Verzögerung" ganz nach links geschoben. Damit haben sie praktisch keine Bremskraft mehr. Deshalb halten sie nicht an. Dein Ereignis "Gleiskontakt 04 wird ausgelöst" reagiert auf einen beliebigen Kontakt. Also auf alle und nicht nur auf den Kontakt 04 Punkt 2 war der Verursacher deiner Probleme. Den habe ich korrigiert und damit läuft deine Anlage jetzt. Beschleunigung und Verzögerung habe ich auch etwas höher eingestellt. Aber wahrscheinlich würde es jetzt nach Korrektur des besagten Fehlers auch mit deinen Einstellungen funktionieren. H0 H0e Korrektur.mbp
  13. Goetz antwortete auf Neos Thema in Beta-Bereich
    Und ich wollte dich dahingehend korrigieren, dass es eben doch der richtige Zeitpunkt ist. Wenn die Lokspitze den Kontakt berührt muss man reagieren und sie so abbremsen, dass sie mittig auf der Drehscheibe stoppt. Alternativ kann man den Kontakt (auf beiden Seiten) an den Anfang der Drehscheibe setzen und auf die Lokmitte reagieren. Dann ebenfalls so abbremsen, dass die Lok mittig auf der Drehscheibe stoppt. In dieser variante zahlt sich "Lok-/Zugmitte berührt den Kontakt" aus, weil man nicht ermitteln muss, wie lang die Lok (samt Tender) ist. Der Bremsweg von der Kante bis zum mittigen Halt auf der Drehscheibe ist immer gleich lang, wenn der Kontakt auf die Lok-/Zugmitte reagiert. Nachtrag: Mit der Anmerkung hast du allerdings recht. Für das Wiki reicht vermutlich die von dir vorgeschlagene Version, weil die Lok eh langsam fährt und mit der normalen Bremskraft sehr schnell stoppt. Sorry, ich hätte dein Posting erst zu Ende lesen sollen.
  14. Goetz antwortete auf Neos Thema in Beta-Bereich
    Nein, das würde nicht funktionieren. Denn die Lok stoppt ja nicht abrupt, sondern verlangsamt bis zum Stillstand. Wenn eine Kontakt in der Mitte der Drehscheibe auf die Lokmitte reagiert, dann steht die Lok letztlich nicht mittig auf der Drehscheibe.
  15. Korrekt. So ist es besser, weil realistischer. Der Zug entgleist zwar nicht bei Andys Lösung, weil die Weiche schon in dem Augenblick umschaltet, wenn die Zugspitze die Weiche berührt. (Das ist im MBS mit "Betreten" gemeint.) Also nicht "unter dem Zug". Aber wenn z.B. eine Weichenlaterne dazu käme, welche die Weichenstellung anzeigt, dann sähe das doch sehr unrealistisch aus.
  16. Hast du Windows-Einstellungen für die Anzeige auf einem anderen Wert als 100%? Falls ja - probier mal bitte ob das die Ursache ist.
  17. Ja, @pfjoh - dann ist es eine Multiplikation. Das kennst du aus Formeln wie z.B. y = 5x in der Syntax von Programmiersprachen sind diese verkürzten Schreibweisen aber nicht zulässig und führen deshalb zum Syntax Error.
  18. Dann hast du eine elementare Rechenregel verpasst! Gleichwertige Rechenoperationen ( wie z.B. Multiplizieren und Dividieren) werden immer der Reihe nach von links nach rechts durchgeführt Grundsätzlich gibt es keine Schreibweisen für Rechenoperationen, die ungenau (= nicht eindeutig) wären.
  19. Die Koordinaten stehen gut lesbar in diesem Teil des Skripts und können leicht angepasst werden. Die Beispielanlage ist eine H0 Anlage. Daher muss man die angezeigten Positionswerte mit 0,87 multiplizieren um die tatsächlichen Positionswerte für die Tabelle zu bekommen. Alternativ kann man die Liste auch aus der Anfangsposition der Würfel bilden. Also die gegebenen Positionen der Würfel auf der Anlage einmal zu Beginn auslesen und in diese Tabelle übertragen.
  20. Es ist ein gutes Beispiel für die Möglichkeiten, die Lua eröffnet. Und dafür, warum auch diejenigen von Lua profitieren werden, die selber nicht programmieren. Denn sie werden zukünftig mehr interessante Anlagen wie dein Rangierspiel bekommen. Und du kannst mittels Lua sogar überprüfen, ob die Aufgabe gelöst wurde.
  21. Es hat mir dann doch keine Ruhe gelassen. Und der Enkelsohn sitzt neben mir und schaut zu. Anmerkung: Die erste Fassung hatte noch einen Fehler, weil meine Routine in eine Endlosschleife geriet, die nur dank Neos Limitierung bei Schleifen nach 25 Durchgängen verlassen wurde. Dieser Fehler ist jetzt behoben. Wuerfeln.mbp
  22. Auf die Schnelle und nur mit Zahlen: Quader = {1, 2, 3, 4, 5, 6, 7, 8} function newOrder() for i = #Quader, 2, -1 do table.insert(Quader, table.remove(Quader, math.random(i))) end print(Quader[1], Quader[2], Quader[3], Quader[4], Quader[5]) end newOrder() Die Funktion newOrder wäre die Aktion, die man per Knopfdruck aufruft. table.remove entfernt ein Element aus der Tabelle und gibt dieses Element zurück. Nimmt man den Rückgabewert als zweites Argument für table.insert, dann setzt table.insert das Element ans Ende der Tabelle, dass table.remove entfernt hat. Weil die Tabelle bunt verwürfelt wird, kann man anschließend die ersten fünf Elemente anzeigen und hat so garantiert fünf verschiedene und zufällige Elemente. Mangels Zeit muss ich es dir überlassen die Sache mit Klötzen umzusetzen. Sorry. Vorschlag: Ich würde in der Tabelle nicht die Bauklötze, sondern ihre Positionen und ihre Sichtbarkeit verwalten. Und dann nach dem "Würfeln" allen 8 Klötzen aus dieser Tabelle einen Platz und ein sichtbar/unsichtbar zuweisen. So benötigt man nur 8 Klötze.
  23. Das "sie" war für die Mehrzahl, weil ich von allen sprach, die solch eine Frage stellen. Drum war es auch klein geschrieben. Die entscheidende Info fehlt übrigens noch immer: was tust du, nachdem du die Anlage geladen und gestartet hast? Setzt du den Zug in Bewegung, indem du den Triebwagen auswählst und dann unten rechts den Geschwindigkeitsregler verschiebst? Denn das müsstest du bitte tun ... Es tut mir leid, dass mein Hinweis falsch bei dir angekommen ist. Aber es ist wirklich so: Wenn du nicht detailliert beschreibst, welche Schritte du im Einzelnen durchgeführt hast, dann kann niemand wissen welchen Fehler du dabei gemacht hast.
  24. ist eine Frage, die ich liebe! Denn all diejenigen, die diese Frage stellen beschreiben nie, was sie überhaupt machen. Wie soll man da wissen, was davon vielleicht falsch war? Wenn man doch nicht zusehen konnte, als sie etwas gemacht haben?
  25. Da wird es auch noch mehr von mir geben. Ich habe eine Pause eingelegt, weil ich mich jetzt selber schlau machen möchte, wie genau das Zusammenspiel von Lua und dem MBS funktioniert. Außerdem bin ich die nächste Zeit privat eingespannt und werde wenig Zeit fürs MBS haben. Aber danach will ich wieder loslegen.

Push-Benachrichtigungen konfigurieren

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.