Jump to content

Empfohlene Beiträge

Geschrieben

Hallo, 

ich bitte die Lua-Experten noch mal um ein Tool.

Mit der Zeit vermehren sich die Schlagwörter. Einige haben gar keine Funktion mehr. Über die Bauteilliste mit F3 könnte man sich die Verwendung jedes Schlagwortes anzeigen lassen. 

Kann man das auch als Liste bekommen, so daß man die nicht verwendeten Schlagwörter leichter finden kann? 

Ich würde mich darüber sehr freuen

Danke schon mal, 

Jürgen 

Geschrieben
vor 1 Stunde schrieb jloos:

Kann man das auch als Liste bekommen ..?

Hallo Jürgen,

Du kannst die F3 Liste nach Schlagwort filtern, sprich dir nur die Modelle anzeigen lassen, welche ein bestimmtes Schlagwort haben.
Dafür ist die Lupe oben rechts in der Strukturansicht.

Deine Schlagwörter findest du unter den Variablen:

162017685_SchlagwortListe.jpg.879e5f00c9ae39bb01e3a7ec052124ac.jpg

 

entspricht das dem, was du suchst?

Götz

Geschrieben (bearbeitet)

ergänzend:
Du benötigst keine Lua Kenntnisse, um ein nicht mehr benötigtes Schlagwort mit einer einzigen Aktion aus allen Objekten auf der Anlage zu entfernen:

 

Schlagwort löschen.jpg

 

Wenn du es gerne in Lua haben möchtest, würde ich folgende Schreibweise empfehlen:

local Wort = "Beispiel"
local Liste = layout:getEntitiesByKeyword(Wort)

for i, Objekt in ipairs(Liste) do
  Objekt.variables[Wort] = nil
end

 

Viele Grüße
Götz

Bearbeitet von Goetz
Skript hinzugefügt
Geschrieben (bearbeitet)

Hello, it should be nice if we can find all objects + keyword  that have a keyword in a layout. Without knowing the name of the keywords. (*)
Hallo, es wäre schön, wenn wir alle Objekte + Schlüsselwort finden könnten, die ein Schlagwort in einem Layout haben. Ohne den Namen der Schlagworter zu kennen. (*)

(*) I found an easy solution for my problem that is sufficient.  Ich habe eine einfache Lösung für mein Problem gefunden, die ausreichend ist.  
(*) Ich habe eine einfache Lösung für mein Problem gefunden, die ausreichend ist.  

keywords.thumb.jpg.6979c5f51513b883b9a46c2dabb0c95b.jpg

This list is enough for me, to have a quick look at what keywords are already used in this layout. To keep new ones unique.
Diese Liste reicht mir aus, um einen kurzen Blick darauf zu werfen, welche Schlagworter bereits in diesem Layout verwendet werden. Damit neue einzigartig bleiben.

Regards, Herman

Bearbeitet von Herman
clarification
Geschrieben
vor 14 Stunden schrieb Goetz:

entspricht das dem, was du suchst?

Hallo Goetz, 

das ist nicht das, was ich mit vorstelle. Eine Liste aller Schlagwörter und das betreffende Objekt. 

Die Liste läßt sich dann mit einem Editor nach Belieben sortieren. 

Gruß Jürgen 

Geschrieben
vor 24 Minuten schrieb jloos:

Eine Liste aller Schlagwörter und das betreffende Objekt. 

Da habe ich leider kein passendes Lua Rezept.
Aber ich bin neugierig, was dir diese Liste gäbe, das du mit den aufgeführten Mitteln nicht erreichen kannst?

Geschrieben

Dazu müßte es eine Lua Funktion geben, die alle Variablen eines Objekts durchgeht.
Und für die Schleife: "Für alle Objekte mit einem Schlagwort" müßte man "*" als Suchkriterium angeben können für das Schlagwort.
Damit könnte man Variablen als Schlagwort identifizieren und in eine Liste schreiben.
Vielleicht baut @Neo das mal irgendwann ein?

Gruß
Thomas

 

Geschrieben
vor 8 Minuten schrieb HaNNoveraNer:

Dazu müßte es eine Lua Funktion geben, die alle Variablen eines Objekts durchgeht.

Diese gibt es bereits:

for k, v in pairs($("Objekt").variables) do
  if v == keyword then
    print(k)
  end
end

Viele Grüße,

Neo

Geschrieben (bearbeitet)

Hello, I could not resist.  Hallo, ich konnte nicht widerstehen9_9

layout:enumEntities(
  function (AnObject)
    for k, v in pairs(AnObject.variables) do
      if v == keyword then
        print(AnObject.name)
        print("key : " .. k )
      end
    end
  end
)

or ( tipp from Hannoverner see next post)

layout:enumEntities(
  function (AnObject)
    OldObj = nil
    for k, v in pairs(AnObject.variables) do
      if v == keyword then
        if AnObject == OldObj  then
        else
          print(AnObject.name)
        end
        print("key : " .. k )
        OldObj = AnObject
      end
    end
  end
)

All objects in a layout with a keyword + keyword. Gives
Alle Objekte in einem Layout mit einem Schlagwort + Schlagwort Gibt :

Example 2 objects have each two keywords here. Beispiel 2 Objekte haben hier jeweils zwei Schlüsselwörter.

Keywords03.jpg.d20fc79551e4e38f1b5c1b40546f89cb.jpg
But not very practical, only an exercice, regards Herman Aber nicht sehr praktisch, nur eine Übung, Grüße Herman

Bearbeitet von Herman
Tipp from Hannoverner
Geschrieben
Am 19.11.2022 um 19:36 schrieb Herman:

Aber nicht sehr praktisch, nur eine Übung

Hallo Herman,

ja, das hat schon sehr viel schönes.

Vor AnObject.name habe ich noch "Objekt : " eingefügt, die Reihenfolge geändert und in eine Reihe geschrieben.

Meine Hoffnung, Objekt und Key in eine Reihe zu bringen hat sich dadurch nicht ergeben.

layout:enumEntities(
  function (AnObject)
    for k, v in pairs(AnObject.variables) do
      if v == keyword then

        print("key : " .. k ) print("Objekt : " .. AnObject.name)

      end
    end
  end
)

 

So sieht das bei mir aus:

[08:51:19] Schalter wird betätigt -> Taster Schlagwörter auflisten, 1
[08:51:19]     Schalter wird betätigt
[08:51:19]         key : Abstellgleise durchsuchen
[08:51:19]         Objekt : GTK-Brems-Rangierbahnhof 03
[08:51:19]         key : Abstellgleis im Rangierbahnhof
[08:51:19]         Objekt : 9101
[08:51:19]         key : Vorbremsen
[08:51:19]         Objekt : GKT Vorbremsen 04
[08:51:19]         key : Vorbremsen
[08:51:19]         Objekt : GKT Vorbremsen 07
[08:51:19]         key : FS Strecke
[08:51:19]         Objekt : GKT FS Strecke 01
[08:51:19]         key : FS aus SB
[08:51:19]         Objekt : H/V Signal SB 18
[08:51:19]         key : freies Gleis im SB2 finden
[08:51:19]         Objekt : GKT FS Strecke 02
[08:51:19]         key : FS aus SB
[08:51:19]         Objekt : H/V Signal SB 04
[08:51:19]         key : Signal
[08:51:19]         Objekt : H/V Signal Bahnhof  rechts 01
 

Ich möchte damit eine Pivot Tabelle machen. Dementsprechend muß ich das noch ein bißchen bearbeiten.

Vielen Dank erstmal

Gruß Jürgen

 

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...