Jump to content
Sign in to follow this  
BauerHeini

Eigenschaften per Funktion auslesen/verändern

Recommended Posts

Ich wünsche mir, das man Eigenschaften (Lg/Rad, Winkel usw.) nicht nur mit dem 3D-Modelleditor auslesen und verändern kann, sonder auch per Aktion oder auch LUA-Funktion.

Share this post


Link to post
Share on other sites

Hallo,

das Ändern von Gleisgeometrien gehört nicht in den Bereich der Steuerung, weshalb es nicht in die EV gehört. Das Auslesen der Informationen wäre hingegen machbar, wenn du noch etwas genauer erläuterst, wofür du die Informationen benötigst. Nicht jedes gekrümmte Gleis lässt sich z.B. durch einen Winkel beschreiben, Flexgleise folgen z.B. einer Spline-Funktion. Die Länge einer Gleisspur könnte ich jedoch per Lua anbieten.

Viele Grüße,

Neo

Share this post


Link to post
Share on other sites
vor einer Stunde schrieb Neo:

Die Länge einer Gleisspur könnte ich jedoch per Lua anbieten

Oh ja!

Gruß
  Andy

Share this post


Link to post
Share on other sites

Entschuldige Neo, dass ich erst jetzt antworte. Ich hatte diese Feature-Wunsch hier eingestellt mit der Hoffnung, dass er eventuell angenommen wird und deshalb nicht auf eine Antwort gewartet. Aber jetzt zu der Frage, wofür die Informationen benötigt werden.

1. Ich habe bei Gleisen und auf Straßen eine Bremsspur eingerichtet, bei denen per Funktion, bei Betreten, die Verzögerung bis zum Ende der Spur auf ein bestimmtes Tempo berechnet wird. Hierzu benötige ich u.A. die Länge der Spur. Diese kann ich aus den Angaben "Lg/Rad", "Winkel" und "Maßstab" errechnen. Momentan muss ich diese Informationen als Variable bzw. Konstante zu jedem Objekt hinzufügen. Nachteil: großer Aufwand und bei Änderungen dieser Werte wird häufig vergessen, die Variablen mit zu ändern.

2. Bei einem Hausbrand habe ich die Flamme beim Löschen so animiert, dass ich mehrere abklingende Flammengrößen handisch erstellt habe, die dann mit zeitlicher Verzögerung ein-  bzw. ausgeblendet werden. Dies liesse sich elegant lösen, wenn man entsprechende Werte auslesen und ändern könnte (wie man es ja auch händisch im 3D-Modelleditor machen kann).

Viele Grüße

BauerHeini

Share this post


Link to post
Share on other sites
Posted (edited)

zu 1.
Wäre es schön, wenn das MBS die Länge selber berechnen könnte.
Z.B. den Abstand 2er Gleiskontakte, egal was dazwischen liegt.

Lua: Get_Distance(Kontakt1,Kontakt2)

Gruß
Thomas

Edited by HaNNoveraNer

Share this post


Link to post
Share on other sites

Hallo,

vor 20 Minuten schrieb HaNNoveraNer:

Wäre es schön, wenn das MBS die Länge selber berechnen könnte.
Z.B. den Abstand 2er Gleiskontakte, egal was dazwischen liegt.

meine unmaßgebliche Meinung dazu: Es ist ja erlaubt und hier sogar erwünscht, Wünsche zu äußern. Man sollte dabei aber nicht ein gewisses Maß an Nutzen aus den Augen verlieren. Sonst kommt nachher noch jemand daher und wünscht sich vom Programm fertig konstruierte Anlagen. Ein bisschen möchte man als Nutzer und Entwickler ja auch noch selbst tun. Wie du bereits selbst sagst, kann man die Gleisspurlänge aus Radius und Winkel errechnen. Wenn's ganz schnell gehen soll kann man auch eine Lok mit konstantem Tempo und ausgeschalteter Geschwindigkeitsanpassung über zwei Kontakte fahren lassen, die Zeit messen und daraus die Entfernung errechnen. Das ist für diesen Zweck ausreichend genau. Da ich selbst schon einige Zeit mit ähnlichen Dingen arbeite wie du kann ich das wohl ganz gut beurteilen. Sollte Neo wie oben angeboten eine Abfrage für die Gleisspurlänge zur Verfügung stellen wäre das nochmal ein Stück einfacher. Das ist meines Erachtens völlig ausreichend. Schließlich braucht man die Gleisspurlänge nur genau einmal je Vorkommen. Danach läuft's ja automatisch. Da man nicht jeden Tag eine neue Anlage beginnt dürfte sich der Aufwand je Nutzer in Grenzen halten und steht in keinem Verhältnis zum Aufwand, den Neo mit der Implementierung einer Kontaktabstandsberechnung vermutlich hätte. Zumal vermutlich die wenigsten Nutzer das überhaupt benötigen. Ich finde, da sind eine Menge anderer Dinge vorrangig anzusehen.

vor 2 Stunden schrieb BauerHeini:

Nachteil: großer Aufwand und bei Änderungen dieser Werte wird häufig vergessen, die Variablen mit zu ändern.

Vorschlag: Wenn du diese Konstanten in einem Script im obersten Ereignismodul ablegst, dann stehen sie in allen Untermodulen zur Verfügung, Änderungen müssen nur an dieser Stelle einmal vorgenommen werden und können nirgends anders vergessen werden. Wenn du dir dann noch dieses Script als Textdatei auf dem Rechner ablegst, kannst du es bei jeder neuen Anlage als ersten Arbeitsgang einfügen und schon stehen dir alle Konstanten und Variablen zur Verfügung.

Gruß Timba

Share this post


Link to post
Share on other sites

Ich muss es noch mal wiederholen. Es kann doch nicht so schwer sein, Daten für die Programmierung zur Verfügung zu stellen, die jeder mit seinen Augen sehen kann, wie im 3D-Modelleditor und dort auch verändern kann.

Was hast Du eigentlich dagegen, Timba? Bist Du an der Arbeit beteiligt?

Share this post


Link to post
Share on other sites
Posted (edited)

Hallo BauerHeini,

... ganz so einfach, wie Du es Dir vorstellst ist es nicht. Die meisten Anlagen bilden in sich geometrisch geschlossene Figuren, da gibt es selbst bei einem einfachen Kreis schon 2 Lösungen für den Abstand der Gleiskontakte, wenn dann noch Abzweigungen hinzukommen gibt es schnell noch mehr Lösungen. Ich habe über die Schnittstelle mal einen Streckenverfolger in VB programmiert, der auch die Streckenlänge berechnet hat. Zuerst mußte die Richtung von einem Startpunkt festgelegt werden, dann ging es immer von einer Weiche zur nächsten und da mußte entschieden werden (per Abfragefenster) ob nun die aktuelle Weichenstellung gültig ist oder es mit einem anderen Zweig weitergeht. Das was Du als "nicht so schwer" bezeichnest, ist programmtechnisch so etwas wie die Suche nach einen Ausgang aus einem (erweiterten) Labyrinth, bei dem es (möglicherweise) mehrere Wege zum Ausgang gibt... und dann müßte der Anwender eindeutig angeben, welcher nun Gültigkeit besitzt z.B. durch vorheriges markieren der Strecke (bei größeren Anlagen auch nicht gerade eine Freude) oder durch voreingestelle Weichen (was bei fortgeschritternen Anlage in der EV zu schweren Irritationen führen kann)... (das Programm kann nicht wissen, welchen Du meinst...) 

Am 7.3.2020 um 11:29 schrieb BauerHeini:

2. Bei einem Hausbrand habe ich die Flamme beim Löschen so animiert, dass ich mehrere abklingende Flammengrößen handisch erstellt habe, die dann mit zeitlicher Verzögerung ein-  bzw. ausgeblendet werden. Dies liesse sich elegant lösen, wenn man entsprechende Werte auslesen und ändern könnte (wie man es ja auch händisch im 3D-Modelleditor machen kann).

... mit Lua gibt es mit $("Objektname").transformation.scaling Zugriff auf die Skalierung... (ob das in der "normalen EV" auch geht, weiß ich nicht...)

... ich will nicht in Abrede stellen, daß es schön ist auf möglichst viele Parameter Zugriff zu haben, da dann natürlich mehr möglich wird, was entweder vereinfacht oder eben auch einfach nur Spass macht...

Gruß
EASY

Edited by EASY

Share this post


Link to post
Share on other sites
vor einer Stunde schrieb BauerHeini:

Was hast Du eigentlich dagegen, Timba? Bist Du an der Arbeit beteiligt?

Ich bin nicht dagegen, sondern finde es überflüssig. Das ist nochmal ein kleiner Unterschied, oder? Letztlich ist es aber auch superhyperegal, ob ich gegen irgendwas bin oder nicht, da der Entwickler hier sich sowieso nicht reinquatschen lässt, was in das Programm gebaut wird und mit welcher Priorität das geschieht. Er nimmt Wünsche und Anregungen zur Kenntnis, evaluiert sie und entscheidet dann. Genau so und nicht anders finde ich es richtig. (y)

 

Share this post


Link to post
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
Sign in to follow this  

×