EASY Geschrieben 22. Mai 2014 Geschrieben 22. Mai 2014 Hallo,... ich habe ich mal den Versuch gemacht, mit den Objektvariablen ein definiertes Anfahren einer Lok zu machen...Lokveriablen:dv = Geschwindigkeitszuwachs je Zeiteinheitdvalt ist eine Merkvariable für dv (da diese verändert wird)fdv = Faktor mit dem dv je Zeiteinheit multipliziert wirdtime = Zeit für Timer (Countdown)vist = Ist- bzw. Soll- Geschwindigkeit der Lokvmax = maximale GeschwindigkeitAblauf:Anfangszustand: Die momentane Lokgeschwindigkeit wird zwischengespeichert (vist=_CurrentSpeed), der Countdown gestartet (Auto Restart mit der Zeit dt)Beschleunigen: Zu vist wird dv aufaddiert, Lokgeschwindigkeit=vist, dv wird mit dem Faktor fdv multipliziertBeschleunigen-Ende: wenn vist>= vmax wird der Contdown gestoppt, dv zurückgesetzt (dv=dvalt), und der Lok die Geschwindigkeit vmax zugewiesen (Korrektur, da vmax nicht genau erreicht wird)Bremsen: Der Lok wird die Bremsgeschwindigkeit zugewiesen, die im Gleis "Halt" als Objektvaiable hinterlegt ist ("hartes Bremsen")Nothalt: Der Countdown wird gestopt und die Lok angehalten (falls etwas schiefgeht)Start: Der Lok wird die Geschwindigkeit 20 mm/s zugewiesenDie Geschwindigkeitskurve der Lok sieht (mathematisch) so aus: (t in Sekunden, v in mm/s)...... und ich finde, daß es der Realität (optisch) schon etwas nahekommt...... wer mag, kann ja mal etwas mit den Variablen dv, fdv (muß >1 sein allerdings nicht wesentlich, sonst git es "Rucker") und dt spielen...Was ich noch nicht weiß, ist wie man diesen Ablauf verallgemeinern kann, so daß es für jede Lok gilt, die diesen Variablensatz hat... vielleicht hat jemand ja eine Idee...... in der .zip ist das MBS-Projekt und die Ereignisverwaltung als .HTML... würde mich über Rückmeldungen, Kritik und Anregungen freuen...GrußEASYBeschleunigen02.zip
Neo Geschrieben 22. Mai 2014 Geschrieben 22. Mai 2014 Hallo Easy,die Zip scheint zu fehlen, würde es mir gern einmal anschauen.Viele Grüße,Neo
EASY Geschrieben 22. Mai 2014 Autor Geschrieben 22. Mai 2014 Hallo Neo,... zwar ausgewählt aber nicht hochgeladen...GrußEASY
Elgiloy Geschrieben 22. Mai 2014 Geschrieben 22. Mai 2014 Hmm. Man müsste für jede Lok einen Countdown haben, der regelmäßig abfragt, ob sie im Status "Beschleunigung" (könnte ja auch negativ sein) ist oder nicht. Wenn ja, wird die Geschwindigkeit entsprechend manipuliert. Im Prinzip bräuchte man nach Objektvariablen (z.B. L1.v_ist) für so etwas auch noch Objektmethoden (z.B. L1.beschleunigen() ). Das geht sicher zu weit für ein Programm wie das Modellbahnstudio.Also muss man eine Objektmethode quasi "außerhalb des Objekts" schreiben. Das dürfte am ehesten mit einem Dauercountdown pro Lok zu lösen sein.
EASY Geschrieben 22. Mai 2014 Autor Geschrieben 22. Mai 2014 Hallo Elgiloy,... spontan würde ich aus...ZitatIm Prinzip bräuchte man nach Objektvariablen (z.B. L1.v_ist) für so etwas auch noch Objektmethoden (z.B. L1.beschleunigen() )... so etwas wie eine aktivierbare Ereignisgruppe ableiten wollen...oder aus...ZitatAlso muss man eine Objektmethode quasi "außerhalb des Objekts" schreiben... die Methode des Beschleunigens als Objektmethode eines "Beschleunigungsgleises" (müßte allerdings so lange sein, daß es für die Beschleunigungsphase reicht) auslagern, das die Parameter von der Lok erbt...... so als spontane Gedanken...GrußEASY
EASY Geschrieben 23. Mai 2014 Autor Geschrieben 23. Mai 2014 Hallo,... die Beschleinigung auf das Gleis zu übertragen ist mir zwischenzeitlich gelungen.Die Parametrierung erfolgt über die Objektvariablen der Lok und werden von den Objektvatiablen des "Beschleunigungsgleises" übernommen und in der Ereignisverwaltung umgesetzt.Bei der Lok ist der "Merker" "dvalt" nicht mehr nötig und dank der "Alternativen Aktionen" beschränkt sich das eigentliche Beschleunigen auf 2 Einträge in der Ereignisverwaltung. ("Anfangszustand" und "Beschleunigen"... der Rest sind andere Steuerungsaufgaben).... auf dem Beschleunigungsgleis darf logischerweise immer nur eine Lok sein...In der .zip ist ein MBS-Projekt und die Ereignisverwaltung als .HTMLGrußEASYBeschleunigen03.zip
Elgiloy Geschrieben 23. Mai 2014 Geschrieben 23. Mai 2014 Hallo EASY,Meine Idee es über Countdown zu regeln, ergibt die Ereignissteuerung im Anhang. Die drei Countdownereignisse müssen für jede Lok geschrieben werden. Dafür braucht man kein langes Beschleunigungs- und Bremsgleis und kann die Beschleunigung auch alternativ von jedem Signal aus in Gang setzen. Dass der Zielwert jedes mal etwas überschossen wird, muss man bei der Eingabe der Reisegeschwindigkeit berücksichtigen. Falls man mit rückwärts fahrenden Loks rechnen muss, muss das Gleis es abfragen und noch entsprechend alternative Aktionen bei den Gleisen eingefügt werden, sonst kriegt man unerwrtete Ergebnisse. Natürlich könnte man (um die Dinge auf die Spitze zu treiben) auch noch bei der Lok Beschleunigungs- und Bremskoeffizienten hinterlegen, die jeweils mit eingerechnet würden. Dann würde sich eine BR41 mit 40 Kohlenwaggons deutlich anders verhalten als eine 110 mit 3 Personenwagen. GrußElgiloy (PS. Hab ich schon gesagt, dass ich mir als Bewohner Nordwestdeutschlands ein Modell der BR41 wünsche?)Beschleunigen.zip
BahnLand Geschrieben 23. Mai 2014 Geschrieben 23. Mai 2014 Hallo Elgiloy,den "Langen Heinrich" kannst Du ja mit dem bereits vorhandenen Rollmaterial schon einmal fahren lassen .Viele GrüßeBahnLand
seehund Geschrieben 23. Mai 2014 Geschrieben 23. Mai 2014 Hallo Elgiloy,es gibt eine BR 41, jedoch muss diese noch auf das neue MBS angepasst werden. Sie wird aber kommen .........Gruß Seehund
EASY Geschrieben 24. Mai 2014 Autor Geschrieben 24. Mai 2014 Hallo Elgiloy,Zitat... und kann die Beschleunigung auch alternativ von jedem Signal aus in Gang setzen.... ist ein sehr überzeugendes Argument es doch bei der Lok zu belassen...... wäre es noch möglich die Demoanlage zu Deiner Ereignisverwaltung mit einzustellen... durch Analyse, weiß ich zwar ungefähr was "getan" wird, aber mit Anlage kann man dann auch noch etwas herumexperimentieren...GrußEASY
EASY Geschrieben 25. Mai 2014 Autor Geschrieben 25. Mai 2014 Hallo Neo,aber bevor ich mich weiter mit diesem Thema beschäftige, meine Frage an Dich, ob es irgendwie von Dir vorgesehen ist einen "Beschleunigungsfaktor" als Objektvariable einzuführen... Global ist dieser ja irgendwie schon vorhanden (für alle Loks gültig)...GrußEASY
Elgiloy Geschrieben 25. Mai 2014 Geschrieben 25. Mai 2014 Hallo alle,derzeit kann ich nicht an meinen Computer. Das Beschleunigungssystem wird noch eine Verbesserung bekommen, um das Überschießem des Zielwerts zu beseitigen. Ich weiß schon wie es geht. Dann werde ich eine Demoanlage hochladen. Frühestens heute abend.Danke für das Bild vom langen Heinrich! Und für die Hoffnung auf eine 41er. Das waren doch dolle Kisten. GrußElgiloy
Elgiloy Geschrieben 25. Mai 2014 Geschrieben 25. Mai 2014 So,lade jetzt mal eine Demoanlage mit gradueller Beschleunigung und Abbremsen hoch in die experimentellen Anlagen.Hab doch den Mund etwas voll genommen. Ein Start vom Signal aus ist leider nicht möglich, weil man bei dem Ereignis "Signal schaltet" natürlich keinen Zugriff auf ein Zug-Objekt bekommt. Man braucht also nach dem Signal doch noch ein Beschleunigungsgleis.Was man auch beachten muss: Ein Löschen der einmal initialisierten Loks ist nicht zu empfehlen. Selbst wenn man eine Lok gleichen Namens danach wieder auf die Anlage stellt, beziehen sich die Objektvariablen in der Ereignisverwaltung offenbar immer noch auf die gelöschte Lok und die ganze Sache funktioniert nicht mehr.Beschleunigung2.zip
EASY Geschrieben 26. Mai 2014 Autor Geschrieben 26. Mai 2014 Hallo Elgiloy,ZitatEin Start vom Signal aus ist leider nicht möglich, weil man bei dem Ereignis "Signal schaltet" natürlich keinen Zugriff auf ein Zug-Objekt bekommt.... jain... Du kannst das Beschleunigen der Lok in eine Ereignisgruppe schreiben (-> Zugriff auf Objektvariablen) und diese erst einmal deaktivieren. Wenn Du dann mit dem Ereignis "Signal schaltet" unter "Aktion" diese Ereignisgruppe aktivierst , kannst Du mit dem Ereignis "Ereignis/Gruppe wird aktiviert/deaktiviert" ["aktiviert"] das Beschleunigen durchführen... setzt allerdings voraus, daß die Lok bekannt ist auf die es zutrifft... aber so kannst Du das Beschleunigen einer (bestimmten Lok) mit jedem beliebigen Ereignis auslösen...GrußEASY
Empfohlene Beiträge
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 erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde dich hier an.
Jetzt anmelden