Jump to content

Benennung von Variablen in EV bei Anwendung von LUA


heine_jul

Empfohlene Beiträge

Ich bastele in der EV von MBS einen möglichst automatischen Containerbahnhof zusammen. Da werden, logisch, auch Variablen verwendet. Die Form ist in etwa folgende:

$("Kran_1").variables.kran_x = 0

ich hätte das aber gern ein wenig allgemeiner, etwa so:

variable_modul = '$("Kran_1").variables'   

und dann:

variable_modul.kran_x=0

gibt es da eine Lösung?

Danke Heinrich

Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 10 Minuten schrieb heine_jul:

variable_modul.kran_1 geht auch

Stimmt. In Lua sind beide Schreibweisen erlaubt. Und sie sind gleichbedeutend, also auch austauschbar.

Tabelle["Untertabelle"]["Element"] == Tabelle.Untertabelle.Element

Die Schreibweise mit eckigen Klammern und Anführungszeichen erlaubt mehr Zeichen (z.B. Sonderzeichen), die bei der anderen Schreibweise unzulässig sind.
Deshalb wählt das Studio automatisch die Schreibweise mit Klammern und Anführungszeichen, wenn ein Teil der grafischen EV in Lua gewandelt wird.

 

Link zu diesem Kommentar
Auf anderen Seiten teilen

ist es nun auch möglich das ganze noch weiterzu treiben? also das "kran_x" wieder durch eine lokale Variable zu ersetzen etwa in der Form:

 

Globale Variable : variable_modul = $("Kran_1").variables
Locale Variable : tab="XYZ"

 

variable_modul["kran_x"]  = 0   ---- und hier das ["kran_x"] durch die Variable "tab" ersetzen.

so das entsteht:   variable_modul["XYZ"]  = 0

Danke

Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 4 Minuten schrieb heine_jul:

ist es nun auch möglich das ganze noch weiter zu treiben? also das "kran_x" wieder durch eine lokale Variable zu ersetzen

Ja, selbstverständlich. Dafür gibt es die rechteckigen Klammern.
Die können entweder einen Platzhalter (ohne Anführungszeichen!) aufnehmen.
Oder einen Bezeichner (mit Anführungszeichen, weil der Bezeichner ein String ist)

fu = "bar"

object.variables[fu] == object.variables["bar"]

 

Mit Zahlenwerten geht es so:

fu = 42

object.variables[fu] == object.variables[42]

Die Zahl darf nicht in Anführungsstrichen stehen

Link zu diesem Kommentar
Auf anderen Seiten teilen

Erstelle ein Benutzerkonto oder melde dich an, um zu kommentieren

Du musst ein Benutzerkonto besitzen, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen.

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde dich hier an.

Jetzt anmelden
×
×
  • Neu erstellen...