Jump to content

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


Recommended Posts

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 to comment
Share on other sites

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 to comment
Share on other sites

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 to comment
Share on other sites

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 to comment
Share on other sites

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

Edited by Goetz
Link to comment
Share on other sites

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 to comment
Share on other sites

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 to comment
Share on other sites

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 to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...