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.

wkh

Mitglieder
  • Benutzer seit

  • Letzter Besuch

Alle erstellten Inhalte von wkh

  1. Hallo Goetz, vielen Dank für deine Antwort. Der Hinweis auf <> ist sehr hilfreich. Die Unterstützung, die man durch das Forum bekommt finde ich toll. Ob ich deinen Hinweis auf die Objektvariablen berücksichtigen kann muss ich mir noch überlegen. Ich bin noch nicht ganz durch, mit dem was ich erreichen will. Es ist aber so, dass über das Label auch für den gleichen Kontakttyp unterschiedliche Informationen an den Event übermittelt werden können. So kann über den Kontakt mit dem "S" auf der 7 Position, die Geschwindigkeit der Fahrzeuge beim Betreten eingestellt werden und die kann an jeder Stelle anders sein. Es gibt eine ganze Reihe von Kontakten, die sogar noch mehr Informationen vermitteln. Am Ende bin ich natürlich auch gespannt, ob das, was ich mit vorstelle sinnvoll und brauchbar ist. Gruß wkh
  2. Hallo Easy, ich bin vielleicht jetzt ein dreiviertel Jahr beim MBS. Deshalb kenne ich mich noch nicht hundertprozentig aus und entdecke immer wiedere neues. Da Programmieren meine Leidenschaft seit Jahrzenten ist, versuche ich meine Steuerung im MBS jetzt durch Lua-Scripte einzurichten. Damit du verstehst was ich mir darunter vorstelle, kopiere ich die beiden einzigen Ereignisse, die es für die Steurung von Straßenverkehr in meiner Vorstellung geben soll, die reagieren, wenn ein Kontakt betreten wird. Ereignis 1: Es reagiert nur wenn der Kontakt teil einer in einer Liste definierten Route ist. -- Initialisierungskontakt - Initialization contact? if string.sub(contact.name, 7, 7) == "I" then if HasVehicleRoute(vehicle, contact) == false then return end end print("Weiter") -- Zielkontakt - Destination contact? if vehicle.variables["Contact"] ~= contact then return end -- Dieser Kontakt ist der Zielkontakt - This contact is the target -- Fahrtunterbrechung ohne Richtungswechsel - Driving break without direction change if string.sub(contact.name, 7, 7) == "B" then vehicle.engine.active = false -- Weiterfahrt nach Wartezeit - Route to be continued after waiting time $("BreakEnd"):invoke(contact, vehicle) return end if string.sub(contact.name,7, 7) == "P" then -- Fahrzeug wird geparkt, Richtungswechsel - Vehicle will be parked, drive direction change vehicle.engine.active = false vehicle.drivingDirection = -vehicle.drivingDirection vehicle.target = GetNewDestination(vehicle) -- Weiterfahrt nach Wartezeit - Route to be continued after waiting time $("ParkingSlotExit"):invoke(contact, vehicle) return end -- Richtungswechsel - Direction change if string.sub(contact.name, 7, 7) == "R" then vehicle.engine.active = false vehicle.drivingDirection = -vehicle.drivingDirection vehicle.target = GetNewDestination(vehicle) $("DirectionChange"):invoke(contact, vehicle) return end vehicle.target = GetNewDestination(vehicle) Ereignis 2: Es reagiert immer, wenn der Kontakt mit dem Schlagwort ServiceContact betreten wird. -- 3-Ampel Steurung if string.sub(contact.name, 7, 7) == "3" then -- Fußgängerampeln auf rot - Switch pedestrian light to red ThreePedLightRed(string.sub(contact.name, 9, 15)) $("ThreeTrafficLightSwitching"):invoke(string.sub(contact.name, 9, 18)) end -- Ampel für gerade aus Verkehr schalten - Set traffic light for ahead traffic if string.sub(contact.name, 7, 7) == "A" then -- Fußgängerampeln auf rot - Switch pedestrian light to red AheadTrafficPedLightRed(string.sub(contact.name, 9, 15)) $("AheadTrafficLightSwitching"):invoke(string.sub(contact.name, 9, 18)) end -- "C" Zusammenstoß verhindern - "C" collision prevention if string.sub(contact.name, 7, 7) == "C" then local n = tonumber(string.sub(contact.name, 8, 9)) if $("Ereignisse").variables["ExitBlocked"][n] == nil then $("Ereignisse").variables["ExitBlocked"][n] = 0 end $("Ereignisse").variables["ExitBlocked"][n] = $("Ereignisse").variables["ExitBlocked"][n] + 1 -- Kann gelöscht oder auskommentiert werden - Comment out or delete $("DelayForCollisionPrevention"):invoke(n, tonumber(string.sub(contact.name, 11, 12))) return end -- Zeit zwischen zwei Fahrzeugen messen und Geschwindigkeit für das zweite Fahrzeug einstellen -- Get the time between two vehicles passing the contact and set speed for the second vehicle if string.sub(contact.name, 7, 7) == "D" then contact.variables["PreviousVehicle"] = contact.variables["CurrentVehicle"] contact.variables["CurrentVehicle"] = Seconds if contact.variables["CurrentVehicle"] - contact.variables["PreviousVehicle"] <= tonumber(string.sub(contact.name, 8, 9)) then vehicle.currentSpeed = tonumber(string.sub(contact.name, 11, 12)) end return end if string.sub(contact.name, 7, 7) == "H" then local desVar = string.sub(contact.name, 12, 16) local n = tonumber(string.sub(contact.name, 18, 19)) if $("Ereignisse").variables[desVar][n] > 0 then vehicle.engine.active = false $("Ereignisse").variables[desVar][n + 1] = $("Ereignisse").variables[desVar][n + 1] + 1 $("WaitForRouteContinue"):invoke(tonumber(string.sub(contact.name, 8, 10)), desVar, n, vehicle) end end -- Geschwindigkeit setzen - Set speed if string.sub(contact.name, 7, 7) == "S" then vehicle.currentSpeed = tonumber(string.sub(contact.name, 8, 10)) end -- Ampel für gerade aus Verkehr schalten - set traffic light for ahead traffic if string.sub(contact.name, 7, 7) == "T" then -- Fußgängerampeln auf rot - Switch pedestrian light to red TurnTrafficPedLightRed(string.sub(contact.name, 9, 15)) $("TurnTrafficLightSwitching"):invoke(string.sub(contact.name, 9, 18)) end if string.sub(contact.name, 7, 7) == "W" then print("W") local desVar = string.sub(contact.name, 11, 15) print(desVar) local n = tonumber(string.sub(contact.name, 17, 18)) $("Ereignisse").variables[desVar][n] = $("Ereignisse").variables[desVar][n] + 1 $("TF-Vorfahrt").text = $("Ereignisse").variables[desVar][n] $("HaltNoRightOfWay"):invoke(tonumber(string.sub(contact.name, 8, 9)), desVar, n) end if string.sub(contact.name, 7, 7) == "U" then n = tonumber(string.sub(contact.name, 8, 9)) if $("Ereignisse").variables["ExitBlocked"][n] > 0 then $("Ereignisse").variables["ExitBlocked"][n] = $("Ereignisse").variables["ExitBlocked"][n] - 1 end end Meine Vorstellung ist einen möglichst generischen Programmcode zu haben und über die Label der Kontakte festzulegen, was geschehen soll. Im Moment arbeite ich noch an einer Ampelsteurung. Das ist der komplizierteste Teil. Wenn ich damit fertig bin denke ich daran mein Projekt vorzustellen. Später möchte ich dann alles natürlich in einer Anlage einbauen. Ich wollte mit den Codeschnippseln nur meinen Lösungsansatz deutlich machen. Zum Verständnis, was da passiert braucht es vermutlich zusätzliche Erklärungen. Ich muss auc für michalles noch aufschreiben. Viele Grüße wkh
  3. Nochmals ein Danke. wkh
  4. Hallo Goetz, danke für deine Antwort. Deine Beträge werde ich mir anschauen. Ich wollte über eine Variable die das Objektlabel enthält und die ich in $(" ... ") einfügen wollte, das Objekt aufrufen. Dafür gibt es aber getEntityByName. Das ist mir nicht gleich eingefallen. Mein fertiges Werk werde ich hoffentlich in ein paar Tagen vorstellen. Mich interessiert ob das, was ich mir ausgedacht habe einen gangbaren Weg beinhaltet oder vielleicht auch ein Performancekiller sein könnte. Viele Grüße wkh
  5. Hallo Easy, ich werde die Anlage, bzw. es ist nur eine Idee zur Ereignisverwaltung, einstellen, wenn ich damit fertig bin. Mein Versuch eine Steuerung zu entwickeln beinhaltet Routen und Vorfahrtsregelungen. Ich bin gerade am letzten Punkt, den Ampeln, angekommen. Der Hinweis, der mich in meinem letzten Gedanken bestätigt hat, hilft mir aber auf jeden Fall weiter. Gruß wkh
  6. Lightlabel ist in diesem Fall das Label eines Fußgängerampel Objektes. Dieses Label möchte ich in ein Objekt umwandeln, über das ich dann den Status der Ampel ändern kann. Mein Ziel ist es eine einfache, möglichst generische Steuerung für Ampeln zu entwickeln. Die Anweisung für den ausgelösten Event soll über die Label der Objekte erfolgen. Muss ich vielleicht über den Weg über getEntityByName nutzen? Gruß wkh
  7. Ich suche nach einer Möglichkeit auf Objekte des MBS auf andere Art Zugriff zu bekommen als unten dargestellt: function AheadTrafficPedLightRed(Light, Lightlabel) if Light == "1" then $("AH001AA").state = 1 -- rot - red -- $(Lightlabel).state = 1 end end Die von mir oben auskommentierte Version funktioniert nicht. Auch verschiedene Varianten, die ich probiert habe nicht. Wenn etwas beim eingeben akzeptiert wurde, dann war der Eintrag hinterher gelöscht und das Ergebnis $(""). Muss ich den Weg über Variablenlisten gehen? Lösungen und Lösungsideen sind sehr willkommen. Viele Grüße wkh
  8. Hallo Goetz, vielen Dank für die Antwort. Wie das mit den Kontakten zu lösen ist hatte ich schon durch ein Beispiel von Dir verstanden. Mich hat irritiert, dass die Weiche auf dem Brett funktioniert, aber nicht auf der Straße. Die beiden Kontakte habe ich erst nach meinen Versuchen mit der Weiche auf die Straße gelegt. Viele Grüße wkh
  9. Ich bin noch recht kurz beim MBS. Komme im Großen und Ganzen auch gut zurecht. Eines habe ich nicht herausfinden können. Warum ein Fahrzeug immer wieder in eine bestimmte Parkbucht einfährt. Nur Zielbestimmung durch Gleiskontakte kann etwas daran etwas ändern. Wenn ich eine Weiche darüber lege, verhält sich das Fahrzeug auch nicht entsprechend der Weichenstellung. Wenn der entsprechende Parkplatz belegt ist , hält das nächste Fahrzeug dahinter und blockiert die Fahrbahn. Ich habe jetzt 2 Tage gesucht, komme aber nicht weiter. Für einen Tipp wäre ich dankbar. Viele Grüße wkh Parken.mbp

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.