Jump to content

Kann man mittels Variablen auch Objekte ansteuern


Empfohlene Beiträge

Hallo Richard,

vor 9 Minuten schrieb richard.kressmann:

Kann ich mit der Variablen Gleisname (Gleis 1) ein Signal namens "Gleis 1" aufrufen?

Ja, das kannst du tun.
Aber ratsam ist das nicht. Und einfach ist es auch nicht.

Weil das Studio nicht wissen kann, wie viele Objekte diesen Namen haben. (In deinem Beispiel sind es zwei: Das Gleis und das Signal)
Du musst also zunächst alle Objekte mit diesem Namen suchen und in einer Liste festhalten.
Und dann den richtigen Eintrag in dieser Liste ansprechen.  (Das Signal, nicht das Gleis)

Viel klüger ist, wenn du im Gleis eine Objektvariable anlegst und das Signalobjekt darin speicherst.

  • Rechtsklick aufs Gleis
  • Eigenschaften/Variablen
  • neue Variable, Typ Objekt
  • Name Signal (oder etwas anderes, passendes)
  • anstatt [leer]: Auswählen -> Signal 1

Damit hast du bei Bedarf direkten Zugriff auf das Signal.
Selbst eine Namensänderung kann dieses System nicht stören.

Viele Grüße
Götz

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo

Wenn das Gleis eine handelsübliche Länge hat sollte es auch möglich sein den Gleiskontakt des Signales einfach am Ende oder Anfang des Gleises zu positionieren (die qual der Wahl  beides gemeinsam ist nicht) und die Anweisungen entweder direkt im GK oder in einem, für diesen GK bestimmten EV Eintrag festzulegen

Bis neuLich

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo Goetz, neuLich

Tut mir leid, aber mit rechtsklick auf Gleis kommt "Ereignisse" und dann "Objekt-Variable wird gesetzt" und danach führt der Weg nicht dahin wo ich will.

Ich will eigentlich nur folgendes. Sobald ein Fahrzeug ein Gleis betritt oder verlässt, soll der entsprechende GBS Baustein belegt oder frei anzeigen. Da ich an die 1000 Gleise verlegt habe, will ich nicht jedes Gleis entsprechen programmieren. Da sitze ich ja Stunden. Eigentlich ganz einfach. Dachte ich.

Grüße Richard

Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 14 Minuten schrieb richard.kressmann:

Tut mir leid, aber mit rechtsklick auf Gleis kommt ...

nicht das hier?

471073260_Variablesetzen.jpg.6385cbd71cdff683296e2214b6869039.jpg

Die markierte Zeile unten führt dich in das nächste Menü.
Dort trägst du den GBS Baustein ein, der zum Gleis gehört.

2076195080_Variablesetzen2.jpg.d12bec03a61e7ee160232843807556ea.jpg

 

Schau mal bitte, ob du das soweit findest.

Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 7 Stunden schrieb richard.kressmann:

Sobald ein Fahrzeug ein Gleis betritt oder verlässt, soll der entsprechende GBS Baustein belegt oder frei anzeigen.

Hallo

Das ließ sich von deiner ursprünglichen Frage so nicht mal andeutungsweise erahnen. Besser gleich genau sagen was man machen möchte oder so wie hier eine kleine Demo anhängen.

Die Idee alle 1000 Gleise mit einem GBS Stein abzubilden solltest du modifizieren, in dem du mehrere gleiche Gleise,  mittels Modelleditor, zu einem zusammenfasst. Sonst könntest du in die Situation geraten das deine GBS Abbildung größer als die eigentliche Anlage sein wird.

Bis neuLich

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo Richard,

Du mußt dem GBS Baustein einen eindeutigen Namen geben, z.B Gleis-001.

Bei dem entsprechenden Gleis mußt Du folgende Variablen anlegen:

 Gleisanzeige - Typ Schlagwort

 GBS-Baustein - Typ Objekt

In der Variable GBS-Baustein muß dann der zum Gleis gehörende GBS Baustein hinterlegt werden.

In der Ereignisverwaltung wird dann muß dann folgendes Ereignis angelegt werden:

Auslöser: Ein Gleis mit dem Schlagwort Gleisanzeige wird betreten

als Aktion folgt dann Signal schalten: Auslöser.GBS-Baustein = Wert (1 oder 2 nach gewünschter Farbe)

Das gleiche kannst Du dann noch für Gleis verlassen mit dem Wert 0 anlegen.

Mit dem Verfahren kannst Du auch tausende Gleise schalten ohne eine riesige Liste zu verwalten. 

Leider bin ich nicht in der Nähe eines Computers mit MBS, sonst hätte ich noch eine Demo angehängt.

Gruß Old Grey

Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 2 Stunden schrieb Old Grey:

Leider bin ich nicht in der Nähe eines Computers mit MBS, sonst hätte ich noch eine Demo angehängt.

Hallo

Und du hättest dir meine Demo, die sich im obigen Beitrag unter "hier" befindet, ansehen und dir so sehr viel tippelarbeit sparen können. Aber so gibt nun auch beides, eine Demo und eine Erklärung der Struktur.

Bis neuLich

Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 2 Stunden schrieb Old Grey:

Mit dem Verfahren kannst Du auch tausende Gleise schalten ohne eine riesige Liste zu verwalten. 

Nochmal Hallo

Die Einträge in der EV sind dabei das geringste an arbeitsaufkommen. Aber wenn tatsächlich jedes Gleis einen GBS Spiegel an und aus schalten soll müssen alle Gleise das Schlagwort und die Objektvariable einkopiert bekommen, und, was dann schon in Arbeit ausarten dürfte, jede OV muss ja entsprechend angepasst werden.

Bis neuLich

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo neuLich,

vor 9 Stunden schrieb neuLich:

Und du hättest dir meine Demo, die sich im obigen Beitrag unter "hier" befindet, ansehen und dir so sehr viel tippelarbeit sparen können.

Auf einem Tablet oder einem PC ohne MBS kannst du keine Anlage ansehen.  Das hat Old Grey doch geschrieben. 

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo Goetz.

Danke für deinen Hinweis: Habe verstanden und kann es nachvollziehen. Allerdings weiß ich nicht wie ich am Ende das Signal (GBS Baustein) schalten kann. Einfacher als (Zug betritt.... GBS Signal schalten... wird es vermutlich auch nicht wirklich.

Hallo neuLich. Habe die Demo studiert und konnte sie auf meine Anlage übertragen. Das funktioniert soweit. Wie kann ich nun den Gleisen und Weichen die Variable und das Schlagwort zukommen lassen, ohne jedes Objekt einzel anzufassen? Denn darum geht's mir.

Hallo Old Grey: Ich habe deinen Beitrag überflogen und die Widerrede von neuLich auch. Am Ende glazbe ich, dass auch das nicht wirklich Spaß und Arbeitserleichterung bringt

Hallo Hawkeye: Siehe oben zu Old Grey. Wer jetzt der Verfasser von "hier" ist, ist mir eigentlich egal. Habe es jedenfalls verstanden.

Noch ein Wort zum meinem Problem, bzw. meiner Wunschvorstellung.:

Sobald ein Fahrzeug ein Gleis betritt, bzw. verlässt, soll das GBS Signal dies anzeigen. Meine Gleise haben nur Nummern also 1, 2, 3 etc und meine GBS Signale 1a,2a,3a etc. Wenn ich das richtig sehe sind beides Objekte. Mittels Lua kann man den Text 1 einfach in 1a umwandeln. Das ist dann aber ein Text o.ä. und kein Objekt und die EV nimmt keine Variablen oder Texte als Objekte an. Zumindest habe ich das nicht so hinbekommen. Oder liege ich da falsch?

Grüße an alle

Richard

Link zu diesem Kommentar
Auf anderen Seiten teilen

@neuLich, @Old Grey,

ich habe mal ein kleines Demo gemacht, zur semi-automatischen Zuordnung von Gleisen zu GBS-Bausteinen:
EF85DE9D-650F-4267-A13E-2D251AA11C17

Schritt-für-Schrit-Anleitung in der Beschreibungs-Sektion des Hauptmoduls "Ereignisse".
Um das selbst schrittweise durchzuführen zuvor alle GBS löschen und die Modul-Variablen "Gleise" und "GBS" leeren (Listen)

Demo-Gleis-zu-GBS.thumb.jpg.34fcfdebffdf60977e594e9e5d9794d9.jpg

Prinzip:

Gleiskreis duplizieren, dann in der Kopie die Gleise durch einen GBS-Block nach Wahl ersetzen,
dann noch alle Gleise in die Liste "Gleise" kopieren, die GBS in die Liste "GBS",
dann noch Schalter betätigen  und alle GBS werden gemäß den Gleisen platziert, per Obj.Var. verbunden und benamt.
Die GBS muss man dann eben noch nach Winsch zu/in einem Pult anordnen.

Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 38 Minuten schrieb richard.kressmann:

Das ist dann aber ein Text o.ä. und kein Objekt und die EV nimmt keine Variablen oder Texte als Objekte an

n'Abend Richard, du meinst speziell dieses Problem ?:

Ich denke das geht in Lua. Wenn ich z.B. eine Modulvariable habe und in dieser ist der Name eines Signals als Text gespeichert (nicht das Objek),
dann kann ich das Objekt per Name ansprechen (ist aber wohl langsamer).

z.B Leuchwürfel mit Namen "Leuchter" auf 1 setzen:

 

obj-by-name.thumb.jpg.70359cf1a7da84ea487889dad833fbd8.jpg

sieht in Lua so aus:
layout:getEntityByName($("test").variables["lampe"]).state = 1 

Geht auch per EV, statt "Objekt" dann "Objekt (Name)" auswählen.

Gruß Eggu

 

Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 5 Stunden schrieb richard.kressmann:

Allerdings weiß ich nicht wie ich am Ende das Signal (GBS Baustein) schalten kann.

Soweit war ich auch noch nicht, Richard.

Du konntest meiner ersten Erklärung nicht folgen, weil du den von mir genannten Menu Eintrag nicht gefunden hast.
Also wollte ich dir zunächst zeigen, wo du den finden müsstest. Bevor ich dann Schritt für Schritt weiter erkläre, was zu tun ist und warum.

Ich hätte dir den Weg dahin gezeigt, wo du nicht jedes Gleis einzeln anfassen musst.
Aber ich habe gelernt, nicht gegen Widerstand zu erläutern. Weil die Aufnahmefähigkeit nicht gegeben ist, wenn die Grundhaltung schon negativ ist.

Viele Grüße
Götz

Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 9 Stunden schrieb richard.kressmann:

Wie kann ich nun den Gleisen und Weichen die Variable und das Schlagwort zukommen lassen, ohne jedes Objekt einzel anzufassen?

Hallo

Wenn du schließlich die notwendigen Erfahrungen gemacht hast wirst du bei einem neuen Projekt das einrichten der beiden Objektvariablen insofern vereinfachen, das du diese bereits beim ersten Gleis einrichtest. Alle weiteren Kopien, unabhängig davon ob mit copy & paste erzeugt oder durch jeweiligen drücken des + am freien Ende, haben dann automatisch schon Schlagwort und die OV. Letzteres ist allerdings leer und ich denke das da kein Weg am manuellen öffnen und korrekten GBS Baustein einstellen vorbei geht. Auch aus diesem Grund hatte ich geraten nicht jedem Gleis eine GBS Abbildung zu spendieren sondern lieber mehre Gleise als eines zusammen zu fassen. In meiner Demo hatte ich das auch schon gemacht. Jetzt wo die Gleise verlegt sind, könntest du die Variablen durch ein auslösendes Fahrzeug noch nachträglich in jedes ebenfalls auslösende Gleis eintragen lassen. Da du die Gleise ja nur mit Nummern versehen möchtest braucht es dabei nach jeder Eintragung noch die Erhöhung um 1  einer Zählvariablen. Wenn ich es zeitlich einrichten kann versuche ich mal eine Demo hierzu zu bauen.

 

vor 4 Stunden schrieb Goetz:

Weil die Aufnahmefähigkeit nicht gegeben ist, wenn die Grundhaltung schon negativ ist.

Ist das eine bewusste Provokation oder denkst du tatsächlich so umfänglich psychologisch über andere Mitstreiter? Und woran machst du das aus? Ich versage da vollständig irgendwo in Richards Beiträgen oder direkten Antworten so etwas zu erkennen. Du weißt sicherlich viel mehr als die grosse Masse hier und es ist anerkennenswert das du anscheinend auch bereit bist zu helfen und deinen Wissensvorsprung zu teilen. Warum.muss sich das bei dir meist so anfühlen das du das aber von oben herab zu sehen scheinst?

Bis neuLich

Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 53 Minuten schrieb neuLich:

ich denke das da kein Weg am manuellen öffnen und korrekten GBS Baustein einstellen vorbei geht.

Doch, das kannst du bequemer haben.
Trage im ersten Gleis den GBS Baustein als Objekt in einer Variable ein und kopiere ab jetzt beide gemeinsam.

Zu meinem zugegeben harschen Urteil:
Ich habe beruflich 25 Jahre lang Cutter und Bildmischer geschult und in dieser Zeit sehr viel Erfahrung gesammelt.

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