Jump to content

Abhängigkeit einer Beschriftung ein Signal ( Element ) schalten ( steuern )


Empfohlene Beiträge

Nochmal Hallo,

da es mich gestört hat, daß für unterschiedliche Geschwindigkeitsbereiche jeweils eine Modellvariation erstellt werden muß, habe ich eine Balkenanzeige mit umschaltbarem Anzeigebereich gebastelt....
1924616122_BalkenanzeigeBild001.thumb.jpg.0c34e38b0effea32526b99e4ab268680.jpg

Das Modell ist als Signal definiert mit 23 Signalbegriffen (0 bis 22).

Zusätzlich kann per Animationen die Skala geändert werden:
keine Zahlen
0...22 (1-er Schritte)
0...110 (5-er Schritte
0...220 (10-er Schritte)
0...330 (15-er Schtitte)

Ich habe die Demoanlage von @Goetz etwas umgebaut...
1271365918_BalkenanzeigeBild002.thumb.jpg.fbb00eb591648e6bc3d9ae7e812127fe.jpg

Die Anzeige sieht dann so aus...
327703695_BalkenanzeigeBild003.jpg.304cf0361f1910243d9e82c7a8c74a98.jpg

... und ist auch bei negativen Werten gültig...
2049455230_BalkenanzeigeBild004.jpg.07f7c29e2cd01e2e71bee223e97f9628.jpg

In lua sieht die automatische Skalierung und das Umschalten der Anzeige dann so aus...
 

local speed = $("Silberpfeil W154").currentSpeed
local text = math.modf(speed).. " km/h"
local teiler=1
$("Beschriftung").text = text
speed=math.abs(speed)
if speed <=22 then
  $("Balkenanzeige").variables["Soll Skala"]=$("Balkenanzeige").variables["Skalen"][2]
  teiler=1
elseif speed >22 and speed <=110 then
  $("Balkenanzeige").variables["Soll Skala"]=$("Balkenanzeige").variables["Skalen"][3]
  teiler=5
elseif speed >110 and speed <=220 then
  $("Balkenanzeige").variables["Soll Skala"]=$("Balkenanzeige").variables["Skalen"][4]
  teiler=10
else
  $("Balkenanzeige").variables["Soll Skala"]=$("Balkenanzeige").variables["Skalen"][5]
  teiler=15
end
if $("Balkenanzeige").variables["Aktive Skala"]~=$("Balkenanzeige").variables["Soll Skala"] then
  $("Balkenanzeige").animations[$("Balkenanzeige").variables["Aktive Skala"]]:play(0,-1)
  $("Balkenanzeige").animations[$("Balkenanzeige").variables["Soll Skala"]]:play(0,1)
  $("Balkenanzeige").variables["Aktive Skala"]=$("Balkenanzeige").variables["Soll Skala"]
end
$("Balkenanzeige").state=math.modf(speed/teiler)

Zum ausprobieren... Demo Balkenanzeige-EASY 01.mbp

Gruß
EASY

Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 45 Minuten schrieb EASY:

elseif speed >22 and speed <=110 then

 

Hallo EASY,

hier kannst du dir die erste der beiden Prüfungen sparen, denn wenn die Geschwindigkeit <= 22 ist, gilt der erste Fall und der zweite wird nie erreicht.

if speed <=22 then
  $("Balkenanzeige").variables["Soll Skala"]=$("Balkenanzeige").variables["Skalen"][2]
  teiler=1
elseif speed <=110 then
  $("Balkenanzeige").variables["Soll Skala"]=$("Balkenanzeige").variables["Skalen"][3]
  teiler=5
elseif speed <=220 then
  $("Balkenanzeige").variables["Soll Skala"]=$("Balkenanzeige").variables["Skalen"][4]
  teiler=10
else
  $("Balkenanzeige").variables["Soll Skala"]=$("Balkenanzeige").variables["Skalen"][5]
  teiler=15
end

Viele Grüße
Götz

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo Modellbahnfreunde

 

Hallo Götz und Hallo neuLich

Habe vor die gefahrene Kilometer ( Zählwerk ) zur Anzeige zubringen .

Vorbereitung von mir in Bild ....

Screenshot_43.thumb.jpg.660857db9558f555f3fc22e6c3e126e9.jpg

 

Ein Gleis in Maßstab 1:1 kann max 348 m gebraucht werden .

Um eine Länge von 1000 m ( 1 km ) , habe ich ein Gleis auf 250 m eingestellt - danach auf 45° ( Grad ) gebracht .

So oft mit Plus am Gleisende gedrückt bis der Kreis geschlossen ist .

Gehe mal davon aus , dass das Gleis eine Streckenlänge von 1000 m aufweist .

Um es im Bild zusehen habe ich das Kontaktgleis und Fahrzeug stark vergrößert , sollte eigentlich kein Einfluss nehmen bei der Reaktion .

" Fahrzeug - Betreten - ein Gleiskontakt " 

 

Ideal wär vielleicht noch je 100 m dazu - also eine Stelle hinter dem Komma - Zählung alle 100 m .

 

Ein Schalter ( hier Kippschalter ) startet das Fahrzeug oder  SX1-Fahrzeug  ( für Zählung ) und ein weiteres Fahrzeug der den Kilometerstand anzeigen soll im Fahrzeug .

Jedes mal wenn der Zählfahrzeug das Gleiskontakt betreten hat , soll eine Einheit zur Kilometerstand ( Kilometerzähler ) anzeigen .

 

Reset - Funktion sollte nur einmal eingesetzt werden , wenn ein Fahrzeug NEU auf der Platte gebracht wird .

Vielleicht sollte zu Beginn ein Gleis genommen werden , für die initiale Phase eines Fahrzeug aus dem Katalog .

Beispiel eine Sackgasse , die das neue Fahrzeug aufnimmt als Erkennung der Anlage der Steuerung .

Das Fahrzeug , welches die Modelle Tachometer und Kilometerstand erhalten müssen verknüpft werden , dann in der EV / Lua eingebracht werden .

 

Bedeutung für Initial auf Deutsch verstehe ich Anfänglich oder Beginn des Ablauf !!!!

 

Wenn man das anders lösen kann , bitte hier ein Vorschlag geben .

 

Ich bin von einer Strecke ausgegangen , die ein Fahrzeug hinter sich gebracht hat .

 

Vielen Dank für die weitere Hilfe ... !

Viele Grüße

H:xnS

 

 

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo Hans,

vor 10 Stunden schrieb h.w.stein-info:

Um eine Länge von 1000 m ( 1 km ) , habe ich ein Gleis auf 250 m eingestellt - danach auf 45° ( Grad ) gebracht .

So oft mit Plus am Gleisende gedrückt bis der Kreis geschlossen ist .

Gehe mal davon aus , dass das Gleis eine Streckenlänge von 1000 m aufweist .

... wenn Du diese Definition hast...
220893990_Gleisgebogen01.thumb.jpg.dd7de3b19cfb5670bfcbc27721e627ae.jpg
... ist die erste Zahl der Radius (r) des Kreises und die  zweite der Winkel.
Der Umfang eines Kreises ist U=2*r*pi = 2*250m*pi = 1570,8m.

Für 1000m ergibt sich r=U/(2*pi) = 1000m/(2*pi) =159,15m.

Gruß
EASY
 

Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 3 Minuten schrieb EASY:

... wenn Du diese Definition hast...

Hat er nicht, EASY

Ich denke, er hat ein gerades Gleis 250 m lang gemacht, dann das Dreieck angeklickt und mit dem X Vektor des Gismo das Gleis gebogen, bis es automatisch bei 45° eingerastet ist.
 

Allerdings besteht sein Kreis bei 45° Stücken aus 8 Segmenten. Damit hat er einen Umfang von 8x250 m  = 2000 m

Bearbeitet von Goetz
Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo,

vor 8 Minuten schrieb Goetz:

Hat er nicht, EASY

Ich denke, er hat ein gerades Gleis 250 m lang gemacht, dann das Dreieck angeklickt und mit dem X Vektor des Gismo das Gleis gebogen, bis es automatisch bei 45° eingerastet ist.

... daß das MBS bei dieser Methode den Radius anpasst und die Gleislänge beläßt ist mir so bewußt noch gar nicht aufgefallen:/ ( ich bin eben kein Anlagenbauer...)

... also die 250m Gerade mit dem Gismo auf 90° ziehen und der Radius passt...
27413299_Gleisgebogen02.thumb.jpg.f6fbbcdce7e298beac8100cf84b32342.jpg

Gruß
EASY

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo,

vor 18 Stunden schrieb h.w.stein-info:

Ich bin von einer Strecke ausgegangen , die ein Fahrzeug hinter sich gebracht hat .

... wenn Du Dich für die Streckenlänge interessierst ein Vorschlag für die Ermittlung derselben...
Definiere eine oder mehrere Fahrstraßen der Strecke(n)...
862597588_Bild001.thumb.jpg.f03a562b86e67ea6facd94376588e40a.jpg

757219778_Bild002.thumb.jpg.43105b064c64a06bcdb5d44f649f33dd.jpg

Das lua Skript für das Betätigen des Schalters...

local FS=layout:getRoutesByKeyword("FS")-- Fahrstraßen mit Schlagwort "FS" einlesen
local l=0 -- Länge l
for k,f in ipairs(FS) do -- Für alle Fahrstraßen...
l=0 -- Länge auf 0 setzen
f.active=true -- Fahrstraße aktivieren damit die Weichen geschaltet werden
for i,v in ipairs(f.tracks)do -- Für aller Gleise der Fahrstraße...
l=l+v.routes[v.state].length -- Gleislängen aufaddieren
end
print(f.name..": Länge= "..l.." m")-- Fahrstraße und Länge ausgeben
print()
f.active=false -- Fahrstraße deakivieren
end

Anmerkung: Die Fahrstraße kann keine geschlossene Figur ergeben... es bleibt eine Lücke. Da die Ermittlung der Gleislänge (-- Gleislängen aufaddieren) nur ganze Gleise berücksichtigt spielt es keine Rolle...

... Ereignisprotokoll einschalten und Schalter betätigen...
2020317449_Bild003.jpg.fdd597dc373eae7c960580594f0edeb7.jpg

... zum Ausprobieren: Gleislänge 01.mbp

Gruß
EASY

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo Easy

 

Punkt 1

Kreislänge von 1000 m

Wie schon Götz hier geschrieben hat , ein Gerades Gleis von 250 m hergestellt und das Dreieck angeklickt .

Das Quadrat dann in Richtung zum Bogen gezogen , hier war nur ein viertel Gleis Gleisbogen ( 45 ° ) .

Bin ich davon ausgegangen , dass das 3D-Modellbahn Studio es beinhaltet die Berechnung .

Von ein fiktiven ( Festwert ) Wert ging ich nicht  aus !

Nach dem Hinweis der Formel Umfang , hast Du natürlich Recht , dass dieser Wert von mir nicht stimmen kann .

 

Punkt 2

Kilometer festhalten ( Kilometerstand )

Meine Modellbahn ( Real ) hat ein Güterwagen elektronischen Tachometer " mit Kilometerstand und Fahrgeschwindigkeit "

- hier muss man den Maßstab von der Tabelle heraus suchen und den Faktor in den Tachometer ( elektronisch - Digital ) eingeben .

Am Wagen ist ein kleiner Magnet an der Achse befestigt und der Sensor ist am Wagenboden .

Hier kann ich die Werte dann ablesen - ein weiterer Wagen hat ein Mini-WLAN-Kamera , die Spannung wird vom Gleis genommen und ein Akku hält bis zu 5 Minuten .

Man kann also ohne Gleisspannung , Daten herunterladen und auf ein externen Speicher speichern .

 

Virtuelle Anlage geht es nicht so , hier muss man anders vorgehen .

Darum war meine Idee , Kilometerstand auf Fahrspur zu Messen und  dann anzeigen lassen .

 

Ich werde mir die Steuerung Lua-Skript ansehen und wie hier der Ablauf vor sich geht .

Manchmal habe ich bei virtuelle Anlage einige Probleme von der Umsetzung , was  eine Modellbahn im Realen nicht hat , außer der Größe vom Platz :D .

 

Vielen Dank und ein schönen Rest Sonntagabend .

Viele Grüße

H:xnS

 

 

 

 

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