Jump to content
View in the app

A better way to browse. Learn more.

3D-Modellbahn Studio

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Featured Replies

Hallo,

kommt man in LUA an die Eigenschaft eines Gleiskontakts, dass dieser ausgelöst wurde?

ich möchte dieses Ereignis mehrerer Gleiskontakte in einem script abfangen und verarbeiten.

z.B. in Form einer Bedingungsprüfung "wenn Kontakt $("xyz") ausgelöst, dann..."

Grund ist, dass ich in diesem script mit lokalen Variablen arbeiten möchte, die durch verschiedene Ereignisse behandelt werden.

danke

vor 55 Minuten schrieb erik.hentschel:

kommt man in LUA an die Eigenschaft eines Gleiskontakts, dass dieser ausgelöst wurde?

Ja, der Kontakt (von mehreren möglichen) welcher tatsächlich ausgelöst wurde, ist in der grafischen EV einfach der "Auslöser"
Wandelst du die grafische EV in Lua um, dann steht an dieser Stelle "contact". Das enthält die Objektadresse des Kontaktes, der ausgelöst wurde.

Seine Objektvariablen findest du dann unter contact.variables
Seinen Namen findest du unter contact.name
 

Du kannst damit fragen, ob der auslösende Kontakt,

  • einen bestimmten Namen hat
  • ein bestimmtes Objekt ist
  • eine bestimmte Variable enthält
  • die Variable einen bestimmten Wert hat
  • ...

Beispielanlage: 1DD8B10B-DB8D-4D24-915F-47D18C81BFD0

Edited by Goetz
Beispielanlage hinzugefügt

  • Author

Danke für die schnelle Antwort, ich habe mir das Beispiel angeschaut. Da ich wahrscheinlich das Ereignis selbst nicht als script schreiben kann, sondern immer ein Ereignis mit "rechter Maustaste -> neu -> Ereignis -> ..." definieren muss, wollte ich den Namen des Auslösers in ein script übergeben. Dazu wollte ich aber keine globale Variable nutzen, sondern eine function. Geht leider nur innerhalb der function...

Ich habe mal die Anlage gezipt und angefügt und hoffe, dass diese bei Dir ankommt...

welche Objektvariablen hat ein Kontakt "von Haus" aus?

 

{D2EE47AD-4447-4310-A4C7-645736E31586}.zip

vor 3 Stunden schrieb erik.hentschel:

Ich habe mal die Anlage gezipt

so wird das leider nichts.
Du musst sie nicht zippen, sondern aus dem MBS heraus exportieren.
Die Datei, welche dabei entsteht, lädst du bitte ungezipt hier hoch.

 

vor 3 Stunden schrieb erik.hentschel:

welche Objektvariablen hat ein Kontakt "von Haus" aus?

er hat folgende Eigenschaften

  • Geschwindigkeitsreduzierung an/aus
  • Geschwindigkeitsreduzierung Wert
  • Beschleunigung an/aus
  • Beschleunigung Wert
  • Richtung, in der er beim Auslösen überfahren wurde
  • Sichtbarkeit
  • Kopplungsobjekt (Gleis, auf dem er sitzt)
  • Position und Drehung

 

vor 3 Stunden schrieb erik.hentschel:

Dazu wollte ich aber keine globale Variable nutzen, sondern eine function. Geht leider nur innerhalb der function...

Du verstehst da noch Dinge falsch, glaube ich.

Funktionen können auch Werte zurückgeben.
Im Gegensatz zu Benutzerdefinierten Ereignissen. Die können es meines Wissens nicht.

Du hast unter den Ereignissen ein Skript, in dem du nach Belieben Funktionen definieren kannst, die dir innerhalb dieses Moduls überall zur Verfügung stehen. Und die geben dir alles zurück, was du möchtest.

Edited by Goetz

  • Author

sorry, experimentiere noch nicht so lange mit dem MBS. habe getan.

Bin auch schon weiter und habe die Logik wieder etwas mehr durchstiegen. Das script wird ja nicht dauernd durchlaufen...(Denkfehler). Ich werde dort also nur noch Variablen und Funktionen definieren und diese dann durch die verschiedenen Ereignisse aufrufen.

Du übergibst in deinem Bsp. im Ereignis eine lokale Variable an eine globale, kann man auch eine lokale Variable an eine lokale Variable eines anderen Ereignis (oder ins script) übergeben?

danke

export.mbp

vor 22 Minuten schrieb erik.hentschel:

kann man auch eine lokale Variable an eine lokale Variable eines anderen Ereignis (oder ins script) übergeben?

ja, selbstverständlich.

vor 4 Stunden schrieb erik.hentschel:

In der function  wird er übergeben und auch ausgegeben, aber nicht außerhalb...

Weil die Zeile 15 nur ein einziges Mal aufgerufen wird: Dann, wenn dieses Skript abgearbeitet wird.
Und zu diesem Zeitpunkt wurde die Funktion "Uebergeben" nur definiert, aber noch nicht ausgeführt.
Daher ist die Variable wert2 zu diesem Zeitpunkt leer

Wenn du anschließend die Funktion aufrufst, die du in den Zeilen 10 bis 13 definierst, dann werden nur noch diese Zeilen ausgeführt, aber nicht der Kram drumherum. Warum auch? Bei end ist Ende.

Edited by Goetz

  • Author

Danke, zusammen mit Deinem Beispiel komme ich jetzt weiter.

Create an account or sign in to comment

Configure browser push notifications

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.