Jump to content

Timba

Mitglieder
  • Gesamte Inhalte

    1091
  • Benutzer seit

  • Letzter Besuch

Alle erstellten Inhalte von Timba

  1. Moin Tom, natürlich weiß ich, von welchem Haar die Rede ist und glaub nur, das wollte ich auch erst schreiben. Aber dann dachte ich, in so einer hochanständigen Community könnte das die Gefühle des einen oder anderen verletzen, deshalb musste das Kamel dann herhalten. Ostwestfälischer Gruß Timba
  2. Hallo @Berlioz Das heißt nichts. Entscheidend ist der Kontaktpunkt. Wenn du auf die Ansicht "2D-technische Zeichnung" gehst, dann siehst du, dass das Signal mit seinem Arm noch auf dem geraden Gleis stehen kann, während der Kontaktpunkt aber bereits auf der Weiche steht. Es reicht u.U. schon, wenn du - bildlich gesprochen - dich virtuell mit deiner Schulter kräftig ans Signal lehnst und es rüberdrückst. Auf gut deutsch: Um Kamelhaarstärke verschieben. Du kannst kontrollieren, mit welchem Gleis/Weiche sich das Signal verknüpft hat, wenn du mit der Maus über das Verknüpfungssymbol fährst. Gruß Timba
  3. Ja, ja, mein Gott, das war doch nur ein Beispiel von mehreren. Nächstes Mal schreibe ich euch alle bekannten Möglichkeiten auf. Selbst schuld, wenn ihr dann 50 Seiten lesen müsst. - - - Den Kontakt bzw. den Sitz des Signals überprüfen ist auf jeden Fall eine gute Idee. Da habe ich auch schon meine Erfahrungen machen müssen. Ein Signal war nicht mehr korrekt eingerastet, obwohl es optisch so aussah, als wäre es noch an Ort und Stelle. Vielleicht beim Bauen mit der Maus dran hängen geblieben, keine Ahnung. Jedenfalls habe ich mir einen Wolf gesucht nach der Ursache, warum der verdammte Kontakt nicht schaltet. Auf jeden Fall. Irgendwo hier gibt es einen Faden, in dem dasselbe Problem mit einem Gleiskontakt (der ja nichts anderes ist) behandelt wird. Wenn mich meine Erinnerung nicht täuscht war ich es sogar selbst, dessen Kontakt auf der Weiche nicht schalten wollte, weil er mit der "falschen" Spur verbunden war. Seitdem setze ich keine Kontakte (und natürlich auch keine Signale) mehr auf eine Weiche, jedenfalls nicht auf das Ende, wo beide Spuren sich vereinigen. Gruß Timba
  4. Dear Andy, ich habe auch noch mal den Versuch gemacht (obwohl bereits vor meinem letzten Post gemacht, aber zur Sicherheit nochmal). Neuer Boden, neues Gleis, Formsignal 2. Von rechts rangezogen und das automatischen Einrasten saugt das Signal an. Gibt dieses Bild: Nun glaub man, es wäre nicht verknüpft, weil an der rot gekennzeichneten Stelle nix ist. Weit gefehlt! Wenn du nun - ohne die Maus anzufassen (nicht, dass da heimlich irgendwas gemacht würde) auf die Taste F3 drückst und das Selektionsfenster öffnest, dort das Formsignal wählst (sollte in dem Fall bereits markiert sein) und einfach mal auf die Entertaste hämmerst, dann siehst du ... zauber zauber ... das Signal ist tatsächlich bereits verknüpft. Ehrlich. Probier es selbst aus. Die Verknüpfung ist beim Einrasten bereits vollzogen worden, nur wird sie erst angezeigt, wenn man zwischendurch woanders hinklickt oder wie gesagt über F3 neu auswählt. Dasselbe Phänomen ist übrigens auch beim Abdocken zu beobachten. Wenn du das eingerastete und verknüpfte Formsignal vom Gleis wegziehst, dann wird die Verknüpfung noch solange angezeigt wie das Formsignal noch selektiert ist (s. Gizmo). Wenn du die Selektion aufhebst und danach das Signal wieder selektierst, wird es auch wieder korrekt angezeigt. Viele Grüße Timba
  5. Moin, Hm ... bei mir ist die Verknüpfung da, wenn es einrastet. Also, entweder es rastet ein oder nicht, aber wenn es einrastet, dann ist auch die Verknüpfung da. Ganz oder gar nicht. Oder reden wir grad aneinander vorbei? Entscheidend wichtig ist allerdings, dass in der Symbolleiste oben das automatische Einrasten aktiviert ist. Sonst geht nix. Gruß Timba
  6. @Neo, supi! Schön wäre auch noch eine knappe Bemerkung zu Andys Frage gewesen, ob es mögilch wäre, auch einen Texturimport/export zu bekommen. Viele Grüße Timba
  7. So, der erste Versuch war schon erfolgversprechend. Wen es interessiert, dem mag ich gerne meine Überlegungen erläutern. Bislang habe ich mit verschiedenen Methoden die Landschaft grob vorgeformt und dann, weil ich eher sanfte Übergänge als zerklüftete Klippen habe, in Feinarbeit krasse Höhenunterschiede abgemildert. Dazu bediente ich mich an Kameras befestigten Schiehen (an anderer Stelle nachzulesen). Diese habe ich relativ kurz gewählt, um die Hügel nicht vollständig platt zu machen, was bei längeren Schienen der Fall gewesen wäre. Als ideale Länge für mich hat sich dabei eine Distanz von 3 Rasterpunkten herausgestellt, d.h. die zwei Punkte zwischen den beiden Kameras werden durch "Gelände anpassen" angeglichen, dann wird das ganze Konstrukt um einen Rasterpunkt versetzt und wieder angeglichen. So lange bis auf der bearbeiteten Rasterlinie die Höhenpunkte schön harmonisch aussehen. Man kann sich vorstellen, dass das eine zeitraubende und nervige Tätigkeit ist. Daraus entstand der Wunsch, zwar diese Methode anzuwenden, aber eben berechnen zu lassen, was deutlich schneller gehen dürfte als die Methode mit den Schienen. Leider bin ich kein Programmierprofi, es reicht gerade für den Hausgebrauch bei mir, daher mag es meinem Tool an Eleganz und professionellem Aussehen mangeln, aber es tut schon das, was ich wollte und kann (und wird) noch verbessert werden. So sieht das Ding jetzt aus: Der linke Button liest die CSV-Datei ein. Da das Tool nur für mich ist habe ich der Einfachheit halber auf den üblichen FileDialog verzichtet und Speicherort und Filename im Programm fest verdrahtet, d.h. die CSV-Datei muss immer denselben Namen tragen und im selben Ordner sein. In der letzten Zeile der Datei finden sich x- und y-Wert, die für die Dimensionierung des Arrays gebraucht werden und vom Programm in die oberen beiden Zeilen eingetragen werden. Ich gebe dann die Rastergröße ein, die benötigt wird, um Anlagenkoordinaten in entsprechende x/y-Werte der CSV-Datei zu konvertieren. Aus den x/y-Wert und Rastergröße ergibt sich die Anlagengröße, die das Tool zwar nicht braucht, aber trotzdem eingetragen wird, weil's schöner aussieht. Dann schaue ich auf der Anlage, wo Linien geglättet werden sollen, und sehe mir in der 2D-Ansicht die Anlagenkoordinaten an. Die beiden Punkte gebe ich dann ein. Das Tool funktioniert mit horizontalen, vertikalen und auch diagonalen Linien, vorwärts oder rückwärts, alles geht. Der Button darunter setzt die Berechnung in Gang, immer von Punkt 1 (links) nach Punkt 2 (rechts). So kann ich jetzt Linie für Linie glätten. Ich kann auch eine Linie zweimal glätten lassen, umso glatter wird sie. Wenn alles fertig ist, werden die Daten mit dem rechten Button wieder in eine neue CSV-Datei geschrieben, die dann vom MBS importiert werden kann. In der Praxis sieht das dann so aus: Der schwarz markierte Bereich wurde bearbeitet. Man sieht eine deutliche Glättung ohne dass der Bergcharakter vollends verloren gegangen wäre. Man könnte jetzt gezielt in der Mitte nochmal etwas nacharbeiten. Alles in allem hatte ich mir das so vorgestellt. Wird mir schon ziemlich helfen bei der Landschaftsgestaltung. Man könnte jetzt über die beiden Punkte auch eine ganze Fläche definieren statt nur eine einzige Linie. Aber dann gingen nur Rechtecke und keine unregelmäßigen Flächen. Das mag in manchen Fällen ausreichen, mir genügt es definitiv nicht. Hier würde Andys Anregung - sofern überhaupt umsetzbar - nützen. Denn wenn man auch Texturen exportieren könnte, dann könnte man eine Fläche wie z.B. hier gezeigt schwarz einkreisen und das Programm kann selbständig die erforderlichen Rasterpunkte ermitteln. Aber für den Moment reicht es mir so wie es ist und ich hatte Spaß, nach langer Zeit mal wieder ein kleines Tool zu schreiben. Gruß Timba
  8. Lass mich erst zuende fummeln. Ich werde dann darauf zurückkommen, falls Interesse besteht. Grüezi Timba
  9. Moin Andy, schon klar, dass es irgendwo bei 0|0 beginnen muss. Dass die Bodenplatte die 0|0 Koordinate in der Mitte hat und somit negative wie positive Werte hat, was beim CSV Export nicht der Fall ist, war mir von Anfang an klar und kann ja auch leicht kompensiert werden, indem man zu den Koordinaten die halbe x- bzw. y-Länge addiert. Dann hat man alles positive Werte analog zum CSV-Plan. Es geht nur darum, dass die y-Dimension beim CSV-Export oben beginnt und bei der Anlage unten. Das muss zusätzlich kompensiert werden und geht ja auch, nur ist die unterschiedliche Behandlung aus meiner Sicht etwas sinnbefreit. Der Grund könnte sein, dass (wenn mich meine Erinnerung nicht täuscht) bei der Einführung von V5 etwas an der Winkeldrehung geändert wurde, was vorher rechtsdrehend war ist nun linksdrehend (oder andersrum). Ist ja auch egal, ich werde beim Einlesen den y-Index einfach rückwärts laufen lassen. Dann passt es wieder. Falls dann mal der Export angepasst werden sollte habe ich das auch ganz fix revidiert. Ist als kein Megaproblem. Ich hatte nur in der Nacht etwas Frust und wollte den bei euch abladen. Nun ist ein neuer Tag und alles wieder gut. Gruß Timba
  10. Hallo @Neo, jetzt muss ich mal ein kleines bisschen meckern. Nachdem ich mit deiner und Bahnlands Hilfe auf den CSV-Export aufmerksam wurde habe ich mich heute entschlossen, wegen der sehr viel besseren Genauigkeit mir ein kleines Windows-Tool zu basteln um das Gelände zu glätten. Mein Plan ist, die Datei ins Tool zu laden, dann eine horizontale, vertikale oder diagonale Linie, die durch zwei Koordinatenpunkte der Anlage definiert ist, durch das Tool glätten zu lassen. Das will ich dann Linie für Linie wiederholen bis die betreffende Fläche fertig ist. Klingt jetzt umständlicher als es ist, aber da schon vieles fertig ist und nicht angetastet werden soll, geht's nicht anders. Nun das Ärgernis: Gerade stelle ich fest, dass die Koordinaten des Bodens in x-Richtung von links nach rechts und in y-Richtung von unten nach oben gehen (2D-Ansicht). Die CSV-Daten hingegen gehen in x-Richtung ebenfalls von links nach rechts, aber in y-Richtung entgegengesetzt, also von oben nach unten. Warum konnte das nicht identisch sein? Gab's dafür einen Grund oder ist das versehentlich so durchgerutscht? Nun muss ich wohl die y-Koordinate bei jedem Zugriff umkehren. Oder ich schreibe die Routine zum Daten einlesen um und lasse den y-Index beim Einlesen rückwärts laufen. Weiß noch nicht was besser ist. Werde mal eine Nacht drüber schlafen. Ein Riesenproblem ist es ja zum Glück nicht, nur ein bisschen unnötige Verwirrung. Viele Grüße Timba
  11. Und dafür solltest du dir was anderes ausdenken, denn das wird nix! Die Länge eines Gleises kannst du nicht auslesen. Jedenfalls nicht bei einem gebogenen Gleis. Ich glaube, man kann die Ausdehnung in x- und y-Richtung auslesen, du brauchst für dein Vorhaben aber die Länge der Spur, nicht die x/y-Dimension. Die Länge der Spur ergibt sich aus Radius und Winkel. Diese Werte sind nicht auszulesen, jedenfalls ist mir keine Methode dafür bekannt.
  12. Schau mal in diesen Faden. Da findest du einiges. Klick
  13. Aha. Das Thema wurde hier schon mal ausführlich behandelt. Ich suche gleich mal danach und schick dir den Link. Muss jetzt erst einkaufen. Kannst aber auch schon mal selbst danach suchen.
  14. Ich verstehe nicht ganz ... um eine Fahrzeug auf eine bestimmte Geschwindigkeit zu bringen gibt es einen einfachen Befehl: vehicle.targetspeed = v -- v ist die gewünschte Geschwindigkeit Oder willst du etwas ganz anderes?
  15. Hi Michel, ich bin mir ziemlich sicher, dass du mit dem Befehl "layout:getEntityByName()" nur Objekte finden kannst und keine Ereignisse. Deshalb bleibt deine Variable "ZielWeiche" leer und entsprechend der Skriptfehler. Im unteren Beispiel hast du das Ereignis direkt eingegeben und damit kannst du es auch enabeln oder disabeln. Gruß Timba
  16. Hi Curt, yes, this is possible. I am using exactly that for the entry or departure in my stations. Depending on where the train comes from and which station track the train will use the programm will find the correct switches by an algorithm. This is a small snippet of the table: {{$("A-K01"), 0}, {$("A-K04"), 1}, {$("A-K06"), 1}, {$("A-W04"), 0}, {$("A-W05"), 0}} And this is how it is processed: a = AEinf[kurs] for i, v in ipairs(a) do a[i][1].state = a[i][2] end Depending on where the train comes from and where it will go the variable "kurs" ist calculated, the correct line of the table will go to variable "a" (containing all switches needed and their wanted state) and finally the loop that does the actual work. Hope it helps. Regards Timba
  17. Hi Thomas, ich verstehe dein Problem irgendwie nicht. Was meinst du mit "Leider muss man das Fenster dazu immer verlassen"? Wenn du das Auswahlfenster (F3) aufrufst und bei "nach Sichtbarkeit filtern" nur alle unsichtbaren Objekte anzeigen lässt, dann kannst du doch alle infrage kommenden Objekte selektieren, wie Tom bereits oben schrieb, und kannst sie alle zusammen dann wieder auf sichtbar schalten. Gruß Timba
  18. Hallo @Michel verzeih, wenn ich mich ungefragt in deine Angelegenheit einmische, aber machst du es dir nicht gerade unnötig schwer? Ich meine, wo du doch offenbar weißt, welches Signal du schalten willst (da du ja die Nummer hast) kannst du doch einfacher die Signale einmal in einer Tabelle auflisten Signale = {$("S_BE_L_01"), $("S_BE_L_02"), $("S_BE_L_03"), $("S_BE_L_04)} und dann direkt darauf zugreifen: Signale[t].state = 0 Das geht ggf. sogar ganz ohne Lua. Gruß Timba
  19. Hoffentlich bekommst du keinen Ärger mit den Realitätsnähe-Fanatikern. Aber vielleicht gibt es ja in einem kleinen bayrischen Dorf einen Kunstmaler, der die Wände jede Stunde neu tüncht. Gruß Timba
  20. Hallo @BahnLand, deinen hier verlinkten Beitrag habe ich seinerzeit mit großem Interesse gelesen und finde die Methode so genial, dass sie von da ab zu meinem hauptsächlichen Landschaftsgestaltungsmittel geworden ist. Allerdings enthält sie so wie beschrieben einen winzigen Fehler. Der ist wirklich winzig und die meisten Nutzer wird es nicht stören, mich hat aber eine Portion Pedanterie dazu getrieben, die Methode zu verfeinern und den Fehler zu beheben. Der Fehler besteht darin, dass der Bezugspunkt (Gizmo) der Kamera und der geometrische Mittelpunkt der Kamera nicht kongruent sind. Die Funktion "Verfolgen" der Kamera richtet aber nicht auf den Bezugspunkt aus, sondern auf den geometrischen Mittelpunkt. Das führt dazu, dass beide Kameras, wenn sie auf die jeweils andere ausgerichtet werden, etwas nach oben neigen und etwas nach links drehen. Die zuvor mit den Kameras verknüpften Schienen bilden somit ein Dachprofil und keine Ebene. Es hilft auch nicht, zuerst die Kameras einander folgen zu lassen und danach die flach liegenden Schienen mit den Kameras zu verknüpfen, weil der Winkel der Abweichung sich mit der Entfernung ändert. Je weiter die Kameras voneinander entfernt sind umso weniger ist der Dachprofileffekt wahrnehmbar. Ich musste also eine Lösung finden, damit die Kameras auf den Bezugspunkt ausrichten und nicht auf den geometrischen Mittelpunkt. Ein Objekt mit Höhe 0 ist dafür geradezu ideal und findet sich im Katalog bei den Grundkörpern mit der Bezeichnung "Ebene". Also habe ich ein kleines Stück Ebene genommen, 10 x 10 mm genügt völlig, und habe es genau auf die x-, y- und z-Koordinaten der Kamera platziert. Anschließend habe ich es mit der Kamera verknüpft, damit es auch an der Stelle bleibt. Dann kommt noch die Schiene an die Kamera und wird verknüpft, so wie in deiner Anleitung beschrieben. Wenn man jetzt das ganze Konstrukt kopiert bleiben die Verknüpfungen in erhalten. Die Kameras werden nun nicht mehr auf die gegenüberliegende Kamera ausgerichtet, sondern auf das kleine Stück Ebene der gegenüberliegenden Kamera. So bilden die beiden Schienen eine perfekte Ebene. Bei aktivierter Höhenanpassung kann man damit auch jede Geländeform glätten ohne weitere Schienen verlegen zu müssen. Dabei sind auch sanft geschwungene Hügel möglich, wenn man die Schienen an den Kameras kurz genug wählt. Genauso kann man die Kameras aber wie von dir vorgestellt auf eine Dummy-Lok oder das SX1 setzen und damit eine Strecke abfahren zur Geländeformung. Persönlich bevorzuge ich dabei allerdings die virtuelle Spur, weil sich dabei das Fahrzeug genau auf Höhe der Spur befindet und nicht 3,82 mm höher wie beim Gleis. So kann ich immer dasselbe Konstrukt benutzen, ob Solo oder mit Fahrzeug. Viele Grüße Timba
  21. Hallo Max, mit dem Höhenfeld habe ich vor einiger Zeit auch experimentiert, weil ich dachte, das wäre eine gute Sache. Die Bearbeitung mit meinem Grafikprogramm war dabei kein Problem, das bin ich als langjähriger Hobbyfotograf gewohnt, aber völlig unbefriedigend war für mich, dass es ja nur maximal 255 Stufen gibt. Bei großen Höhenunterschieden mit eher flachen Steigungen bilden sich dann Treppchen, die unschön aussehen. Geländeanpassung mittels Schienen ist feiner, sogar bis zum Hundertstel Millimeter, was zwar kein Mensch braucht, aber geht. Deshalb bin ich davon wieder abgegangen. Gruß Timba
  22. Timba

    Deselektion

    So völlig untypisch ist das nicht. Z.B. nutzt Corel Draw die Escape-Taste, um jegliche Selektion zu stornieren. Eigentlich ist die Escape-Taste genau dafür da, nämlich etwas abzubrechen. Die Selektion eines Objekts ist der erste Schritt, um irgendwas am Objekt vorzunehmen und die Deselektion ist aus dieser Logik heraus der Abbruch dieses Vorhabens. Aber egal. Nun, mir ist es ein paar Mal passiert, dass ich die Selektion der Bodenplatte aufheben wollte und dazu ein beliebiges anderes Objekt anklickte, dieses aber dabei in der Hektik sofort etwas verschoben habe. Ich weiß, in der Ruhe liegt die Lösung, aber manchmal muss es eben schnell gehen. Stimmt, daran hatte ich überhaupt nicht gedacht. Das reicht mir voll und ganz und löst mein Problem. Du bist mal wieder der Retter in der Not. Danke dir. Gruß Timba
  23. Timba

    Deselektion

    Hallo @Neo, wäre es vom Aufwand her noch vertretbar, die Selektion eines bzw. mehrerer Objekte mittels Escape-Taste aufzuheben? Gruß von Timba
  24. Der Benutzer muss es nicht selbst tun, sondern kann ein Script schreiben, dass eine Variable 1000 mal geändert werden soll. Ich habe aber keine Ahnung, ob das dann in einem oder mehreren Frames abgearbeitet wird.
  25. Wenn ich mir die Ergänzung erlauben darf: Anlagen schalten im Fehlerfall übrigens nur dann auf Pause, wenn das Ereignisprotokoll sichtbar ist und das fragliche Ereignis/die Ereignisgruppe nicht ausgefiltert ist. Ist nur eine Kleinigkeit, aber ein Nutzer, der vielleicht die Überwachung der Objektvariablen ausgeschaltet hat könnte sich wundern, warum die Anlage trotz Fehler bei der Übergabe einer Objektvariablen nicht anhält.
×
×
  • Neu erstellen...