mit ein paar wenigen Zeilen LUA-Code kann man sich die IDs in der 3D-Ansicht anzeigen lassen.
Hier ein kleines Video dazu.
Gruß, Hans-Christian
mit ein paar wenigen Zeilen LUA-Code kann man sich die IDs in der 3D-Ansicht anzeigen lassen.
Hier ein kleines Video dazu.
Gruß, Hans-Christian
Hallo Hans-Christian,
vielen Dank für die gute Idee, hilft ungemein gerade in der Programmierphase...
Gruss Frank
Hallo Hans Christian,
kann mich nur anschließen. Funktioniert super und hilft beim Programmieren.
Danke
Andreas
Sehr schön, den Beitrag habe ich als hilfreich gemeldet.
Der Code findet sich unter dem Youtube-Video als Anmerkung:
-- Mit ein paar wenigen Zeilen LUA-Code alle Weichen und Signal-IDs im 3D-Editor anzeigen:
EEPRegisterSignal(1)
-- Das registrierte Signal schaltet die Anzeige der IDs ein oder aus,
-- die ID des Schalters/Signals muss natürlich an die Gegebenheiten angepasst werden.
function EEPOnSignal_1(status)
for i=1,9999 do
if status == 1
then EEPShowInfoSignal(i,false)
EEPShowInfoSwitch(i,false)
else EEPChangeInfoSignal(i,"S: "..i)
EEPChangeInfoSwitch(i,"W: "..i)
EEPShowInfoSignal(i,true)
EEPShowInfoSwitch(i,true)
end
end
end
-- Bitte beachte, dass bereits vorhandene Einträge in den Tool-Tipps überschrieben werden.
Alles anzeigen
Hallo Han Christian,
schönes Tool. Habe es mal probiert.
Danke.
Gruss
Peter
mit ein paar wenigen Zeilen LUA-Code kann man sich die IDs in der 3D-Ansicht anzeigen lassen.
Hallo Hans-Christian,
das ist eine gute Idee um endlich eine Übersicht über die verwendeten Weichen und Signale zu bekommen.
Habe den Skript in meine neue Anlage eingebaut um es auszuprobieren.
Hat sehr gut geklappt.
[Blockierte Grafik: http://up.picr.de/32360237oy.jpg]
Gruß Karl Heinz
kannst Du den Code bitte noch hier zum Kopieren einstellen?
Hallo Klaus
welchen Code meinst Du neben dem Code in der Beschreibung unter dem Video?
Gruß Ingo
Schließe mich meinen Vorpostern an:
Ein feines kleines Werkzeug! Wird ungemein dabei helfen, bei der Umbenennung der Signal- und Weichen-IDs den Überblick zu behalten!
Danke dafür!
welchen Code meinst Du neben dem Code in der Beschreibung unter dem Video?
Den hatte ich zunächst nicht gesehen, weil man dazu extra die Anmerkungen anklicken muss, die ich in der Regel nicht lese. Aber inzwischen bin ich selbst drauf gekommen und habe das oben nachgetragen.
Ich hatte den Code erst auch nicht gesehen
Kann es sein, dass dieses kleine Script die Weichen von GK3 nicht erfassen kann? Wenn ich mir "normale" Weichen erstelle, bekomme ich die Anzeige, bei GK3-Weichen jedoch NICHT!
Hab' extra auch "normale" Weichen aus GK3-Gleisen erstellt: Kein Problem.
Im selben Gleisstrang eingebundene GK3-Weichen werden NICHT per ID angezeigt.
Hallo Klaus,
den Beitrag habe ich als hilfreich gemeldet.
Stimme Dir zu und habe den Beitrag für die FAQ vorgemerkt.
Ist bei mir auch so. Ich denke, das hängt mit dem System der normaln Weichen und den "Gleisobjekten" zusammen
Kann es sein, dass dieses kleine Script die Weichen von GK3 nicht erfassen kann? Wenn ich mir "normale" Weichen erstelle, bekomme ich die Anzeige, bei GK3-Weichen jedoch NICHT!
Hab' extra auch "normale" Weichen aus GK3-Gleisen erstellt: Kein Problem.
Im selben Gleisstrang eingebundene GK3-Weichen werden NICHT per ID angezeigt.
Hallo miteinander,
dieses geniale Script kommt für mich gerade zur richtigen Zeit! Dank PlugIn 1 benenne ich gerade die Weichen und Signale auf einer mittelgroßen Anlage mit einem recht umfangreichen Weichenvorfeld beim Hbf um. Anschließend folgt die Programmierung, die mir bisher viel Kopfzerbrechen bereitet hat, weil ich nicht wusste, wie ich bei der Vielzahl der Signale und Weichen den Überblick behalten sollte (zumal DKWs gleich 4 IDs haben)...
In besagter Anlage kommen ausschließlich GK3-Weichen als EW, EKW und DKW vor (ich habe sie nicht gezählt, aber es sind sehr viele). Und die Anzeige funktioniert absolut tadellos! Dass es bei den beiden "Vorpostern" nicht funktioniert, muss also eine andere Ursache haben. Dafür spricht ja auch, dass sich die GK3-Weichen in Lua, genau wie "normale" EEP-Standardweichen auch, mittels EEPGetSwitch(..) auslesen und EEPSetSwitch(..) stellen lassen.
Hans-Christian (HS1): Herzlichen Dank für diese tolle Idee!
Viele Grüße
Der Trambahnfahrer
Hallo Leute,
hab das mit den Weichen von GK3 mal bei mir probiert (EEP14, Plugin 1)
Die IDs werden bei mir angezeigt, aber nur im 3D-Editor-Modus.
[Blockierte Grafik: http://up.picr.de/32362297tk.jpg]
Gruß, Hans-Christian
Das hatte ich nicht versucht. Gut zu wissen
Peter
Danke! Auch bei mir läuft's jetzt!
Super!
Bei mir kam hinzu, dass mein Schalter zu weit weg von den Weichen war und ich "mit der Kamera" erst näher an die Weichen heranfahren musste. Als ich nahe genug war, ploppten die Weichen-IDs auf.
Vielen Dank nochmals für dieses hilfreiche Werkzeug!
Hallo Hans-Christian,
klasse Idee und Umsetzung. Ich habe das Skript mal nach meinen Wünschen abgeändert.
Ich lass mir noch zusätzlich die Stellungen der Weichen/Signale anzeigen. Die Weichen haben eine leichte grüne Hintergrundfarbe und die Signale eine leichte rote Hintergrundfarbe.
Zusätzlich kann man die Aktualisierung aktivieren.
Hier mal das Skript von mir, natürlich ist es etwas länger, weil ich mehr Text geschrieben habe.
--*********Skript ID_WeichenSignale****************************
ID_WeichenSignale = {}
--##############################################
-- Ab hier sind Eintragungen von dir notwendig:
--##############################################
ID_WeichenSignale.Schalter = {0} --Signal-ID --Bsp.: {123} ###unsichtbares Signal### Steuerung über das GBS
ID_WeichenSignale.AbfrageTakt = 1 --Zeitspanne der Abfragungen in Sekunden (Standard 1 Sekunde)
--#################################################################################
-- !Ende der Eintragungen!
--#################################################################################
--#################################################################################
-----------------------------------------------------------------------------------------------------------
--+++++++++++++++++++++++++++Funktionen Anfang+++++++++++++++++++++++++++++++++++++++
ID_WeichenSignale.Timer = 0
--######################################################### ID_WeichenSignale.Abfrage Anfang
function ID_WeichenSignale.Abfrage() --!Dieser Funktionsaufruf wird über die EEPMain() aufgerufen!
if ID_WeichenSignale.Speicher_01 == 1 then
ID_WeichenSignale.Timer = (ID_WeichenSignale.Timer + 1) % (ID_WeichenSignale.AbfrageTakt * 5)
end
if ID_WeichenSignale.Timer == 0 then
EEPSetSignal(ID_WeichenSignale.Schalter[1],2,1)
EEPSetSignal(ID_WeichenSignale.Schalter[1],1,1)
end
end
--######################################################### ID_WeichenSignale.Abfrage Ende
--######################################################### EEPOnSignal: ID_WeichenSignale.Schalter Anfang
for nc,Signal_ID in pairs (ID_WeichenSignale.Schalter) do --Soll_Ist_Schalter
EEPRegisterSignal(Signal_ID)
_ENV["EEPOnSignal_"..Signal_ID] = function(Stellung)
ID_WeichenSignale.Speicher_01 = Stellung
for TP=1,9999 do
if Stellung == 2 then
EEPShowInfoSignal(TP,false)
EEPShowInfoSwitch(TP,false)
else EEPChangeInfoSignal(TP,"<b><bgrgb=255,190,190>".."S: "..TP..", "..string.sub(EEPGetSignal(TP),1,1))
EEPChangeInfoSwitch(TP,"<b><bgrgb=190,255,190>".."W: "..TP..", "..string.sub(EEPGetSwitch(TP),1,1))
EEPShowInfoSignal(TP,true)
EEPShowInfoSwitch(TP,true)
end
end
end
end
--######################################################### EEPOnSignal: ID_WeichenSignale.Schalter Ende
print ("Skript ID_WeichenSignale wurde eingebunden.")
Alles anzeigen
Nachtrag:
Ich schlage vor, das "S:" und "W:" bei deinem Code zu löschen,
Habe ich getestet und natürlich für gut gefunden.
Hier die Skript-Variante ohne "S" und "W".
--*********Skript ID_WeichenSignale****************************
ID_WeichenSignale = {}
--##############################################
-- Ab hier sind Eintragungen von dir notwendig:
--##############################################
ID_WeichenSignale.Schalter = {0} --Signal-ID --Bsp.: {123} ###unsichtbares Signal### Steuerung über das GBS
ID_WeichenSignale.AbfrageTakt = 1 --Zeitspanne der Abfragungen in Sekunden (Standard 1 Sekunde)
--#################################################################################
-- !Ende der Eintragungen!
--#################################################################################
--#################################################################################
-----------------------------------------------------------------------------------------------------------
--+++++++++++++++++++++++++++Funktionen Anfang+++++++++++++++++++++++++++++++++++++++
ID_WeichenSignale.Timer = 0
--######################################################### ID_WeichenSignale.Abfrage Anfang
function ID_WeichenSignale.Abfrage() --!Dieser Funktionsaufruf wird über die EEPMain() aufgerufen!
if ID_WeichenSignale.Speicher_01 == 1 then
ID_WeichenSignale.Timer = (ID_WeichenSignale.Timer + 1) % (ID_WeichenSignale.AbfrageTakt * 5)
end
if ID_WeichenSignale.Timer == 0 then
EEPSetSignal(ID_WeichenSignale.Schalter[1],2,1)
EEPSetSignal(ID_WeichenSignale.Schalter[1],1,1)
end
end
--######################################################### ID_WeichenSignale.Abfrage Ende
--######################################################### EEPOnSignal: ID_WeichenSignale.Schalter Anfang
for nc,Signal_ID in pairs (ID_WeichenSignale.Schalter) do --Soll_Ist_Schalter
EEPRegisterSignal(Signal_ID)
_ENV["EEPOnSignal_"..Signal_ID] = function(Stellung)
ID_WeichenSignale.Speicher_01 = Stellung
for TP=1,9999 do
if Stellung == 2 then
EEPShowInfoSignal(TP,false)
EEPShowInfoSwitch(TP,false)
else EEPChangeInfoSignal(TP,"<b><bgrgb=255,190,190>"..TP..", "..string.sub(EEPGetSignal(TP),1,1))
EEPChangeInfoSwitch(TP,"<b><bgrgb=190,255,190>"..TP..", "..string.sub(EEPGetSwitch(TP),1,1))
EEPShowInfoSignal(TP,true)
EEPShowInfoSwitch(TP,true)
end
end
end
end
--######################################################### EEPOnSignal: ID_WeichenSignale.Schalter Ende
print ("Skript ID_WeichenSignale wurde eingebunden.")
Alles anzeigen
Vielleicht noch ein Hinweis, da ich immer mit Skript-Module arbeite. Die EEP-Main steht bei mir im Hauptskript. Dieses Modul liegt im Lua-Anlagenordner.
Wer keine zeitliche Aktualisierung haben möchte, schreibt halt nichts in die EEP-Main rein. Das Skript funktioniert auch so. Wenn man jetzt auf der Anlage eine Weiche oder ein Signal schaltet, dann wird die Stellung nur nicht aktualisiert. Dann kann man auch per Hand den Schalter zum Ein- und Ausschalten betätigen, um die aktuelle Stellung zu erhalten.
Ansonsten steht für die automatische Aktualisierung der Zustände in der EEP-Main folgendes:
Und wer noch Fragen hat zwecks Einbindung, einfach melden.
Hallo Jörg,
sehr gut, funktioniert prima.
Ich schlage vor, das "S:" und "W:" bei deinem Code zu löschen,
es gibt ja jetzt eine farbliche Unterscheidung und ein kürzerer Text ist übersichtlicher.
Gruß, Hans-Christian
Zur Information:
Dieser Bereich und die Scripte sind schon für die Tipps und Tricks als hifreich markiert.