Alle erstellten Inhalte von Goetz
-
Anlagen-Objekte per Variable in Lua ansprechen.
Bitte, Siggi - pack deine Code Beispiele in den dafür vorgesehenen Kasten. Du siehst doch bei anderen, wie viel lesbarer das ist? Der Knopf dafür ist dieser hier: <>
-
Mini-Experimente mit V6
Und die Erkenntnis daraus? Kopieren und Vergleichen ersetzt kein Begreifen.
-
Listen Addieren
Ich habe ein kleines Beispiel für dich gebaut und als Entwurf hochgeladen. Die ID ist: B48D6FB2-F857-47B7-95A1-D66DB8FE4337
-
Mini-Experimente mit V6
Ergänzend zu Brummis Hinweis Das stimmt nicht ganz, Tjakrkheinrich. Es wird nur dem auslösenden Fahrzeug die Geschwindigkeit zugewiesen - egal, auf welchem Gleis oder Kontakt es gerade steht. Das würde selbst dann keine Fehler verursachen, wenn an mehreren Stellen Bremskontakte dasselbe Schlagwort hätten. Der Befehl geht immer an denjenigen, der den Kontakt gerade verlassen und somit dieses Ereignis ausgelöst hat. Niemanden sonst. Viele Grüße Götz
-
Listen Addieren
mit der grafischen EV geht es meines Wissens nicht. Aber wenn du für diesen Part zu Lua wechselst, dann kannst du mit dem Befehl table.insert() Elemente an eine Liste anhängen oder an einer bestimmten Position einfügen.
-
Abrollberg
Ja, in V6 können sie das jetzt. Deine Idee lässt sich also genau so umsetzen.
-
Tastaturbefehle
Hallo Joachim, In der V6 wird deutlicher als zuvor zwischen Simulations- und Planungsmodus unterschieden. Im Planungsmodus kannst du die Signale mit den Pfeiltasten verschieben. Im Simulationsmodus kannst du sie mit den Pfeiltasten umschalten. Gruß Götz
-
Fahrzeuge auf einem Gleis
Das unterstrichene Wort ist mit einer URL zum Video versehen
-
Autopilot with cars
the unfinished (!) layout from the video may be found with this content ID: 1E7C5CDD-7DF4-46CD-974D-A5F8B153F69E
-
Fahrzeuge auf einem Gleis
Ein erweitertes Studienobjekt für dich: local GleisName = Gleis.name local Zug = layout:getVehiclesOn(Gleis) local ZugName = "" local ZugListe = {} local ZugTeile = "" local Loks = 0 local Wagen = 0 local AusgabeText = "" local TextMuster = [[ Ort: %s Zug: %s %s Loks: %d Wagen: %d Gesamt: %d]] for k, v in ipairs(Zug) do table.insert(ZugListe, v.name) if v:hasEngine() then ZugName = v.name Loks = Loks + 1 else Wagen = Wagen + 1 end end ZugTeile = table.concat(ZugListe, "\n ") AusgabeText = TextMuster:format(GleisName, ZugName, ZugTeile, Loks, Wagen, Loks+Wagen) $("GBS_txt-Gleisbelegung").text = AusgabeText hasEngine() ist eine Methode im MBS, welche true zurück gibt, wenn das Objekt einen Motor enthält, ansonsten false Zur Verwendung des Doppelpunktes in Lua Skripten habe ich vor einer Weile ein kurzes Video aufgenommen
-
Fahrzeuge auf einem Gleis
Ich hatte meine Vermutung zwischenzeitlich korrigiert, weil ich in eigenen Versuchen neue Erkenntnisse gewonnen habe. Schau mal bitte, was da jetzt steht. Das wird dir weiter helfen.
-
Fahrzeuge auf einem Gleis
perfekt Weil die Variable nur eine Adresse enthält und nicht den Namen. Hast du es schon mit Gleis.name versucht?
-
Fahrzeuge auf einem Gleis
möglicherweise durch Einrückungen in deinem Code? Im mehrzeiligen String dürfen die natürlich nicht stehen, weil Lua sie dort nicht als Einrückungen, sondern als Teil des Textes versteht. Die entstehen durch den Zeilenumbruch im Textblock. Der fügt (aus mir unbekanntem Grund) noch einen Tab-Sprung ein. Bei der Auflistung machst du den Zeilenumbruch mit \r. Wenn du da noch ein \t dahinter setzt, stehst alles auf einer Höhe. Der Name eines Objekts ist eine Eigenschaft namens "name". Und der Inhalt dieser Variablen ist ein String. Das ist die Reihenfolge, in der das Modellbahn Studio die Fahrzeuge auf dem Gleis liefert. Viel lieber hätte ich gelesen, dass du sie studiert und verstanden hast. Im Übrigen musst du nicht jedes Mal mein gesamtes Posting zitieren, um darauf zu antworten.
-
Fahrzeuge auf einem Gleis
Hallo Siggi, Dann möchte ich dir gerne noch eine (bessere) Alternative anbieten. Du kannst Strings in Lua erstens mehrzeilig anlegen und zweitens mit Platzhaltern (für Namen, Nummern etc.) versehen. Der Befehl string.format() setzt dann der Reihe nach die Daten dort ein, wo die Platzhalter stehen. Ein mehrzeiliger String wird in doppelte eckige Klammern anstelle der Anführungszeichen eingebettet. Platzhalter markiert man mit einem vorangestellten % Zeichen. Der nachfolgende Buchstabe deklariert dann den Typen, der hier eingesetzt werden soll. %s ist der Platzhalter für einen String, %d ist der Platzhalter für eine Ganzzahl. local TextMuster = [[ Zug: %s %s Loks: %d Wagen: %d Gesamt: %d ]] local AusgabeText = string.format(TextMuster, Zugname, Zugteile, Loks, Wagen, Loks+Wagen) $("Versuchstext").text = AusgabeText Wie du siehst, sind die Zeilenumbrüche hier einfach im Textmuster enthalten. Der Steuercode für eine neue Zeile entfällt damit. Das wäre in Lua der "amtliche" Umgang mit Textbausteinen. Viele Grüße Götz
-
Fahrzeuge auf einem Gleis
Für deinen Ausgabetext würde ich dir gerne eine Hilfe anbieten: local AusgabeText = { "Zug: "..Zugname, Zugteile, "\rLoks: "..Loks, "Wagen: "..Wagen, "Gesamt: "..Loks+Wagen } $("GBS_txt-Gleisbelegung").text = table.concat(AusgabeText, "\r") das ist noch ungeprüft. Kann also Fehler enthalten. Beachte bitte, dass ein \r von table.concat eingesetzt wird und deshalb nur Loks einen (zweiten) \r enthält. Ich finde, dass diese Form leichter anzupassen ist, wenn man Texte ändern möchte. table.concat fügt alle Zellen einer Liste als Text aneinander. Das zweite Argument bestimmt, was als Trennzeichen zwischen die Zellinhalte kommt. Statt des \r vor Loks hätte ich auch einen leeren String einfügen können. Dann entspräche die Tabelle optisch noch mehr dem Ausgabetext.
-
Torturous turntable trouble - Qualvolle Probleme mit dem Plattenspieler (Looses something in translation)
You may also use the "Animation has come to a halt" event to respond to the turntable reaching it's destination. Split the event in two, handle each part separately. Better still: three events send train to turntable turntable entered - send it around turntable destination reached - send off whoever occupies turntable
-
Torturous turntable trouble - Qualvolle Probleme mit dem Plattenspieler (Looses something in translation)
Must be, because Simons says it leaves the turntable when he sets it in motion manually. And yet, you may still be right. Because if the 2 seconds delay is too short, the track isn't connected yet, when the speed command is issued. Have you tried a longer delay too? Remember that the delay begins after you issued the turn command, not after the turntable reached it's destination. in a funnier way than you may have realised, because a "Plattenspieler" is a record player. Your original title is hilarious
-
Film-Rätsel
Turner and Hooch vielleicht?
-
Film-Rätsel
Ich dachte, C.Fuchs meinte diesen Film.
-
Straßenbahn Steuerung mittels Lua - als Video auf YouTube
wow - ganz herzlichen Dank für dein Lob, Klaus
-
Arduino Firmata Interface in C#
Ah, okay - das ist eine interessante Idee
-
Modelle von Tec
Die zeigt auch nur einmal mehr, dass du keinerlei gestalterisches Talent besitzt. Tut mir leid, Tec, aber das sieht in allen Farben gleichermaßen furchtbar aus.
-
Arduino Firmata Interface in C#
Ich möchte dir nicht den Spaß verderben, TalentRaspel, aber ein kannst du auch mit der im Studio enthaltenen Ereignisverwaltung zum Leben erwecken. Hier findest du ein Beispiel: 1E7C5CDD-7DF4-46CD-974D-A5F8B153F69E Dort findest du ein weiteres:
-
Streckenblock
Selbstverständlich nicht, denn eine Einmündung ist nicht der Beginn eines Blockabschnitts, sondern eine Ausfahrt. Da verrennst du dich irgendwie. Wenn ein Zug den letzten Blockabschnitt vor der Einmündung betritt, dann ist doch schon klar dass er diesen Abschnitt über die Einmündung wieder verlassen will. Ab jetzt kannst du also diesen Weg vormerken. Die Gleisführung in deinem Screenshot finde ich übrigens klasse. Sehr interessant.
-
Streckenblock
Im Prinzip, ja. Nur so kannst du bei zwei Zügen entscheiden, wer zuerst dran kommt. Ob du die Züge in einer Liste festhältst oder die Signale, an denen eventuell ein Zug warten könnte, ist für das Prinzip egal. Ich würde die Signale bevorzugen, weil diese Liste sich nicht ändert. Jetzt schaust du: "Steht am Signal 1 ein Zug?" Wenn ja: Gib den Weg für diesen Zug frei. Wenn nein, dann schaust du: "Steht an Signal 2 ein Zug?" Eine Einmündung ist im Prinzip identisch mit einer Bahnhofsausfahrt. Deshalb stehen dort auch (wie an der Ausfahrt) Hauptsperrsignale (= die mit den zwei roten Lampen) Mehrere Gleise treffen zusammen und du musst entscheiden, welcher Weg wann frei gegeben wird ...