Jump to content

Timba

Mitglieder
  • Gesamte Inhalte

    1091
  • Benutzer seit

  • Letzter Besuch

Alle erstellten Inhalte von Timba

  1. Ich hatte es schon mal, dass ein Signal nicht richtig auf dem Gleis "eingerastet" war. Das ist von außen nicht sichtbar. In dem Fall kann der Kontakt des Signals nicht funktionieren. Hast du das schon überprüft? Wenn du das Signal etwas hin und her bewegst siehst du, wann und ob es eingerastet ist. Wenn das Signal korrekt auf dem Gleis eingerastet ist, funktioniert es präzise und zuverlässig wie ein Gleiskontakt.
  2. Lieber FeuerFighter, nimm es mir nicht übel, dass ich mich auch noch einmische, wo mich das alles ja eigentlich nichts angeht. Aber ich kann gerade nicht anders. Ich weiß, dass unser MBS-Kollege Götz auch gut den Oberlehrer geben kann, wenn ihm danach ist, aber in diesem Faden hat er ausgesprochen nett und überhaupt nicht oberlehrerhaft geschrieben. Wir sind oft nach einer schlechten Erfahrung irgendwie konditioniert und sehen alles Weitere durch die so gefärbte Brille. Das ist aber ein Vorurteil und Vorurteile machen blind für die Realität. Meine Empfehlung für dich: Atme einmal tief durch, mach dich frei von schlechten Gedanken und lies dir alles noch mal in Ruhe durch. Du wirst sehen, nichts war so schlimm wie du es im ersten Moment empfunden hast. Du hast deine Gründe für deine Art zu bauen doch gut erklärt, für jedermann (sogar für Nicht-Modellbauer) verständlich und so ist doch nachvollziehbar, weshalb du diese Hinweise bezüglich Dach usw. nicht umsetzen kannst/willst. Ist doch alles ok. Ostwestfälischer Gruß vom Timba
  3. Naja, klar funktioniert das auch, aber eigentlich wird kein Timer gebraucht und ist nur unnötiger Ballast. Es ist ja genau so wie Götz sich hier äußert: Die Prüfung muss nur angestoßen werden, wenn sich hinterm Einfahrsignal was ändert. So läuft es bei mir auch. Einfahrende Züge lösen ein Stück vorm Einfahrsignal eine Prüfung aus, die im positiven Fall das Signal öffnet und den Zug einfahren lässt. Ansonsten wartet der Zug und sobald sich im Bahnhof etwas ändert, d.h. ein Zug den Bahnhof verlässt und sein Gleis freigibt, wird dieselbe Prüfung erneut angestoßen. Ganz ohne Timer. Gruß Timba
  4. Naja, ein Lua Script ist ja wohl das kleinste Problem. Das ist ja im Grunde zunächst nicht mehr als ne Textdatei, kann in einen beliebigen Texteditor kopiert und in die neue Anlage wieder übernommen werden. Ich habe mir sogar wichtige Lua-Routinen, von denen ich glaube, dass ich sie immer wieder mal brauchen werden, in einem eigenen Word-Dokument abgelegt, quasi als meine persönliche Bibliothek, und kann von dort die jeweils benötigten Programmzeilen in mein jeweiliges Projekt kopieren.
  5. Ich würde das Einfahrsignal standardmäßig geschlossen halten. Beim Eintreffen eines Zugs am Signal kann eine entsprechende Prüfung erfolgen (Gleis frei? Richtiger Zug? etc. pp.) Sind die Bedingungen erfüllt, öffnet das Signal und der Zug fährt ein. Sind die Bedingungen nicht erfüllt, bleibt das Signal geschlossen und der Zug wartet. Jedesmal wenn ein Zug das Gleis verlässt und freigibt, wird dieselbe Prüfung erneut angestoßen. Für diese Prüfung eignet sich ein benutzerdefiniertes Ereignis, weil man das beliebig oft anstoßen kann.
  6. Unübersichtlich nur für dich, nicht fürs Programm. Wie Götz bereits ausführte wird das Objekt im Code (für dich nicht sichtbar) referenziert. Wenn du Lua-Code eingibst und das $-Zeichen setzt, bringt der Editor direkt ein Auswahlfenster auf den Schirm, das alle Objekte enthält. Daraus kannst du das richtige auswählen. Da alle Gleise zunächst mal denselben Namen haben, musst du dein Gleis entweder vorher umbenennen oder du musst genau hinsehen, bei welchem Gleis der Gismo auf dem Gleis steht, welches du auswählen willst. Um mehr musst du dich nicht kümmern.
  7. Naja, ich habe eine Cam auf dem zweiten Waggon in 100 mm Höhe über Grund positioniert und auf die ziehende Lok ausgerichtet. So geht sie in den Kurven immer seicht mit, was ganz gut aussieht. In Tunnel geht sie noch prima unter der Decke her, das ist ok. Gegen niedrige Brücken knallt sie allerdings, das stimmt, aber da mache ich ganz kurz die Augen zu, dann geht's.
  8. Moin @HaNNoveraNer, da du dich ja ohnehin bereits intensiv mit Lua auseinandersetzt kannst du alternativ auch per Lua die Methode layout:getVehiclesOnTrack(name) anwenden. Dann hast du auch gleich die Information, welches Fahrzeug bzw. welche Fahrzeuge auf deinem Gleis stehen. Gruß Timba
  9. Das ist richtig! Beim Überfahren des Signals, das ja unabhängig vom Zustand in jedem Fall geschieht, wird die Bremskraft wieder auf Standard gesetzt. Der ist bei mir 55 mm vorm Signal positioniert. Die Variable "Strecke" im Bremskontakt bezieht sich auf den Abstand zwischen den beiden Kontakten. Normalerweise. Bei meinem Beispiel oben ist es nicht der Fall, zu sehen daran, dass der Zug direkt auf 0 gebremst wird. In dem Fall war es nicht nötig, punktgenau zu halten, sondern es ist egal ob der Zug 55 mm oder 80 mm vorm Signal steht. Der Haltekontakt hat trotzdem einen Not-Stopmechanismus für den Fall, dass der Zug versehentlich zu schwach oder gar nicht bremst. Im Bahnhof bremse ich auf 4 kmh, da ist die Bremsstrecke so berechnet, dass der Zug ein paar mm vor dem Haltepunkt diese 4 kmh erreicht, um dann auf dem Punkt endgültig zu stoppen. Nein, das würde er nicht, weil der Stopkontakt nur greift, wenn das zugehörige Signal auf "Halt" steht. Der Zug fährt erst an, wenn das Signal auf "Frei" gestellt wird und dann wird der Stopkontakt ignoriert. Du musst da eine Bedingung einbauen, die auf das Signal verweist. Gruß Timba
  10. Hallo @HaNNoveraNer, im Prinzip handhabe ich es so wie du es vorhast. Aber: Wenn du wirklich punktgenau stehenbleiben willst wie du schreibst, dann brauchst du 2 GK. Einen, der das Bremsen auslöst und auf eine winzige Geschwindigkeit abbremst und dann einen, der dann den Zug tatsächlich stoppt. Mit einem wird's nicht punktgenau. Das gibt dann beim Anhalten einen kleinen Ruck, aber das ist durchaus realitätsbezogen, denn da gibt es auch oftmals einen kleinen Ruck beim Stoppen. Ich habe im Bremskontakt den Abstand zum Haltepunkt als Variable hinterlegt. So bin ich variabel wenn es mal situationsbedingt kürzer sein muss. if not deferredCall then if contact.variables["Signal"].state == 0 then vehicle.targetSpeed = vehicle.currentSpeed local Speed = vehicle.currentSpeed / 3.6 local Strecke = contact.variables["Strecke"] local factor = 5.7471264 Bremsweg = (( Speed / 2.8 ) ^2 * 2.8 * 0.5 ) / 0.087 if Bremsweg > Strecke then Decel = Speed ^2 * factor / Strecke vehicle.deceleration = Decel vehicle.targetSpeed = 0 else Delay = (Strecke * 0.087 - ( Speed / 2.8 ) ^ 2 * 0.5 *2.8 ) / Speed defer(Delay, "Verzögerung") end end elseif deferredCall == "Verzögerung" then if contact.variables["Signal"].state == 0 then vehicle.targetSpeed = 0 end end Zu Beginn breche ich eventuelle Beschleunigungen ab (targetSpeed=currentSpeed), da sonst der errechnete Bremsweg nicht mehr stimmt. Dann wird der Bremsweg mit der aktuellen Geschwindigkeit berechnet. Ist dieser länger als die Strecke, wird mit verstärkter Bremskraft sofort gebremst. Ist sie kürzer, wird die Verzögerung bis zum Einsatz der Bremse errechnet und eingeleitet. Arbeite da nicht mit Timern, sondern besser mit der Verzögerung. Wenn die Verzögerung auslöst wird vorsichtshalber nochmal der Zustand des Signals abgefragt, da das Signal während der Verzögerung freigegeben worden sein kann und Bremsen dann überflüssig wäre. Vielleicht kannst du was damit anfangen. Gruß Timba
  11. Hallo Neo, Danke, gut zu wissen. Wird gleich mal notiert. Gruß Timba
  12. Hallo Neo, das war mir auch bereits aufgefallen bei meinen Experimenten, die dem von BauerHeini ganz ähnlich sind. Als Liste, die wiederum Tabelleneinträge beinhalten kann, geht das Löschen dann ganz problemlos. Nur wenn man die Liste aus Lua heraus einrichten will wird standardmäßig immer eine Tabelle eingerichtet, die man dann manuell auf 'Liste' ändern muss. Wenn man also während der Testphase aus irgendeinem Grund die gesamte Liste löschen möchte funktioniert var = {} leider nicht, sondern man muss Eintrag für Eintrag löschen, oder eben wie gesagt manuell anschließend auf 'Liste' ändern. Ich vermute mal, dass es dafür aus Lua heraus keine Abhilfe gibt, da Lua selbst ja keine Listen kennt, sondern nur Tabellen. Gruß Timba
  13. Apropos Unterschied: Ich habe nun erstmal ohne Kopieren weitergemacht. Bin jetzt einen Meter weiter auf der Anlage und jetzt funktioniert es plötzlich wieder. Kann es vielleicht sein, dass die Position auf der Platte ausschlaggebend für den "Fehler" ist? Der "Unterschied" zu vorhin ist, dass die xyz-Koordinaten andere sind. Alles sehr merkwürdig.
  14. Ja, dachte ich auch immer. Wenn es einen Unterschied gibt, dann liegt er nicht in meinem Einflussbereich.
  15. Hallo Wolfgang, was meinst du mit "Einrastfunktion"? Übrigens, wie vorhin beschrieben, funktioniert es mit einem absolut identischen Gleis (Kopie vom ersten) tadellos und mit dem Original nicht. Irgendwie erschließt sich mir nicht, dass irgendeine Funktion ursächlich sein soll, wo doch die Voraussetzungen für beide Gleise gleich sind. Gruß Timba
  16. Jetzt wird's ganz verrückt: Bei einer Kopie der Schiene (es hat ja zwischendurch immer mal geklappt) gelingt jede weitere Kopie ausnahmslos, bei dem Original gar nicht mehr. So als wäre die Schiene "kaputt". Da fehlt mir jede logische Erklärung.
  17. Da mein Schreibtisch nicht aufgeräumt ist, kann ich auch nicht zulassen, dass mir jemand zuschaut. Spaß beiseite - es gibt keinen Unterschied. Nun habe ich sogar die Maus auf der Schreibtischplatte festgeklebt und ganz vorsichtig auf die Maustaste gedrückt, Mausbewegung ist völlig ausgeschlossen, und die Kopie wird angefügt. Verdammt! Das Gleis ist auf einer Seite mit einer Kamera verknüpft, die auf einen Fixpunkt ausgerichtet ist (das Ganze dient gerade der Geländeformung). Ich hatte schon den Verdacht, dass es an der Verknüpfung liegt, aber auch ohne Verknüpfung wird das Gleis verlängert und nicht an Ort und Stelle kopiert. Wenn ich es länger probiere, dann klappt es irgendwann beim ca. 10. Klick. Aber das ist doch komplett GAGA.
  18. Hallo alle, mich nervt gerade ganz enorm, dass MBS bockig ist und nicht das tut, was ich will. Ich möchte ein Gleis kopieren, und zwar genau an der Stelle wo das Original ist. Dazu selektiere ich das Gleis und klicke bei gehaltener Alt-Taste drauf. So wie immer. Mal geht's, aber meistens wird die Kopie an das Original angefügt und nicht positionsgleich mit dem Original eingesetzt. Das darf eigentlich gar nicht sein, weil Gleis anfügen normalerweise nur geht, wenn mindestens zwei Gleis vorhanden sind. Was ist da bloß los? Irgendwer eine Ahnung? Gruß Timba
  19. Hi Mädelz, solange es für euch ok ist, wenn ihr hin und wieder mit dem "falschen" Namen angeredet werdet. Ist halt ein bisschen schwierig die passende Anrede zu treffen, wenn nicht jedes Mal dabei steht, wer von euch beiden gerade schreibt. Gruß Timba
  20. Hallo Karl und alle, das Wort "vielleicht" würde ich in dem Fall fett und unterstrichen hervorheben, weil das nach meinem bescheidenen Kenntnisstand auch schnell in die Hose gehen kann. Ich alleine kenne bereits zwei Leute, die von Teamviewer gesperrt wurden, weil sie das nützilche Tool zu intensiv genutzt haben und Teamviewer dann einfach mal eine gewerbliche Nutzung unterstellt, die bekanntermaßen nicht kostenlos ist. Bei der Zeit, die man für die Gestaltung einer Anlage braucht, fürchte ich, dass man nicht mal die Gleise komplett liegen hat, bevor Teamviewer den Schalter umlegt. Aber natürlich kann man's versuchen. Ich hingegen täte es nicht, denn wenn man einmal bei denen rausgeflogen ist, kommt man wahrscheinlich nur sehr, sehr schwer wieder in den Genuss der kostenlosen Privatnutzung. Dann bleibt nur Verzicht oder kostenpflichtige Lizenz. Gruß Timba
  21. Ausnahme wäre vielleicht eine modulare Bauweise, oder? Nur setzt das ein umfangreiches Regelwerk im Vorfeld voraus, damit nachher alle Module exakt aneinander passen. Gruß Timba
  22. As it is, there is not much left to find. All you have to do is to copy Tom's work. However, as I have stated before, there are different ways to achieve this result. So, if you like experimenting, don't hesitate. Regards Jürgen
  23. Hi Ger, of course it doesn't work with more than one train. That's because you set the switches when the train is leaving a track. You should rather set the switches immediately before the train arrives. In your example train 1 leaves track 1, switches are set to track 1, shortly after that train 2 is leaving track 2 and the switches are set to track 2. Now, train 1 arrives first and finds switches set to track 2, it results in train 1 entering track 2 and a little later train 2 arrives and the switches are still set to (the now occupied) track 2 . See, it can't work. Try to find a solution that sets the switches when the train arrives. There are several ways. If you can't find a way I will show you one. Finding ways by yourself is part of the fun with MBS and I won't spoil your fun. Give it a try! Regards Jürgen
  24. Hi @bigrala die Bedingung ist "Eigenschaft/Variable existiert". Dann wählst du "Variable (Erweitert)", trägst bei Objekt "Auslöser" und "Fahrzeug" ein und dann bei Name das Schlagwort. Das ist alles. Gruß Timba
  25. Hallo Michael, vom Grundgedanken her hast du recht: Ein Schalter ist (indirekt!!) auch ein benutzerdefiniertes Ereignis. Du betätigst den Schalter und in der Folge werden alle Aktionen ausgeführt, die dem Ereignis "Schalter schaltet" zugeordnet wurden. Bis einschließlich Version 4 mussten ja auch alle "benutzerdefinierten Ereignisse" exakt so eingerichtet werden. Meistens wurde dazu ein Timer mit Dauer 0 verwendet. Das war bis dahin der einfachste Weg, ein Ereignis aus einem anderen heraus auszulösen. Seit V5 und der Einführung eines benutzerdefinierten Ereignisses, welches sich direkt ohne diese "Krücken" starten lässt, ist es sinnvoll, nur diese "echten" benutzerdefinierten Ereignisse so zu nennen und alle anderen eben mit ihrem eigentlichen Auslöser, eben "Schalter schaltet" oder "Timer läuft ab", usw. Eine uneinheitliche Sprachregelung würde ein riesiges Chaos verursachen. Gruß Timba
×
×
  • Neu erstellen...