

r4mir3zx
Mitglieder-
Gesamte Inhalte
20 -
Benutzer seit
-
Letzter Besuch
Letzte Besucher des Profils
Der "Letzte Profil-Besucher"-Block ist deaktiviert und wird anderen Benutzern nicht angezeigt.
-
Hi @HoWe Oh, you're not alone. Honestly - and my apologies to all Blender fans, I don't want to offend them, I myself also use Blender (after many years of 3DMax experience), but I still see it in this way - in my opinion, Blender's UI is horrible ... and I know other 3D artists sharing this opinion, although they still use it,. too The point is: to import/export LCad models you don't need to delve too deeply into Blender. Let me show what has to do to transfer LDraw files to 3D MBS using Blender: 1. Download the LDraw plugin .ZIP file and save it somewhere on your hard drive - no need to unzip it. 2. Then install Blender and start it - actually I just use the portable version, unzipped it and started blender.exe. 3. In Blender select Edit -> Preferences and in the Preferences dialog that opens, go to the Add-ons section. 4. Click the drop-down arrow in the top right corner, select 'Install from disk' option and browse to the plugin .ZIP file on your HDD. 5. You can now filter the search bar for ldraw, which should now be found as ldr_tools_blender. 6. Check the box to make it available if it's still unchecked 7. And now you should see an LDraw menu item under File -> Import 8. In the import dialog on the right side there are some important settings. - 1+3) The path to the LDraw folder (where the 'p' and the 'parts' directory can be found) should be added to the 'Additional Library Paths list' and it also has to be specified at the 'LDraw Library' setting. - 2) Set the Stud Type to 'Normal' if you don't want to have the LEGO logo on the studs, I suggest doing so because having the logo increases the polygon count significantly as I noticed. You can play with the Resolution, too, I preferred leaving it at 'Normal' 9. Select the LDraw file to be imported, and click import. The result should look something like this: 10. Now all you have to do is go to File -> Export, and then export it to .glTF format, which can be imported directly into 3D MBS. Unfortunately I have not much experience with Sketchup, tried out once a decade ago maybe and decided not to play with it more. Kind Regards, r4mir3zx --- Hallo @HoWe Oh, du bist nicht allein. Ehrlich gesagt – und ich entschuldige mich bei allen Blender-Fans, ich möchte sie nicht beleidigen, ich selbst verwende auch Blender (nach vielen Jahren 3DMax-Erfahrung), aber ich sehe das immer noch so – meiner Meinung nach ist die Benutzeroberfläche von Blender schrecklich … und ich kenne andere 3D-Künstler, die diese Meinung teilen, obwohl sie es auch immer noch verwenden. Der Punkt ist: Um LCad-Modelle zu importieren/exportieren, müssen Sie sich nicht zu tief mit Blender befassen. Lassen Sie mich zeigen, was zu tun ist, um LDraw-Dateien mit Blender in 3D MBS zu übertragen: 1. Laden Sie die .ZIP-Datei des LDraw-Plugins herunter und speichern Sie sie irgendwo auf Ihrer Festplatte – Sie müssen sie nicht entpacken. 2. Installieren Sie dann Blender und starten Sie es - eigentlich benutze ich einfach die portable Version, entpacke sie und starte blender.exe 3. Wählen Sie in Blender Bearbeiten -> Einstellungen und gehen Sie im sich öffnenden Dialogfeld „Einstellungen“ zum Abschnitt „Add-ons“. 4. Klicken Sie auf den Dropdown-Pfeil in der oberen rechten Ecke, wählen Sie die Option „Von Festplatte installieren“ und navigieren Sie zur Plugin-ZIP-Datei auf Ihrer Festplatte. <Bild 1> <Bild 2> 5. Sie können jetzt die Suchleiste nach ldraw filtern, das jetzt als ldr_tools_blender gefunden werden sollte. 6. Aktivieren Sie das Kontrollkästchen, um es verfügbar zu machen, falls es noch nicht aktiviert ist. <Bild 3> 7. Und jetzt sollten Sie einen LDraw-Menüpunkt unter Datei -> Importieren sehen. <Bild 4> 8. Im Importdialog auf der rechten Seite gibt es einige wichtige Einstellungen. - 1+3) Der Pfad zum LDraw-Ordner (wo sich das Verzeichnis „p“ und „parts“ befinden) sollte der Liste „Zusätzliche Bibliothekspfade“ hinzugefügt und auch in der Einstellung „LDraw-Bibliothek“ angegeben werden. - 2) Stellen Sie den Bolzentyp auf „Normal“, wenn Sie das LEGO-Logo nicht auf den Bolzen haben möchten. Ich schlage vor, dies zu tun, da das Logo, wie ich festgestellt habe, die Polygonanzahl erheblich erhöht. Sie können auch mit der Auflösung experimentieren, ich habe sie lieber auf „Normal“ belassen. <Bild 5> 9. Wählen Sie die zu importierende LDraw-Datei aus und klicken Sie auf „Importieren“. Das Ergebnis sollte ungefähr so aussehen: <Bild 6> 10. Jetzt müssen Sie nur noch zu Datei -> Exportieren gehen und es dann in das .glTF-Format exportieren, das direkt in 3D MBS importiert werden kann. Leider habe ich nicht viel Erfahrung mit Sketchup. Ich habe es vielleicht vor zehn Jahren einmal ausprobiert und beschlossen, nicht mehr damit zu spielen. Mit freundlichen Grüßen, r4mir3zx
-
Hi @HoWe, Probably I can answer that question. I found good models on e.g. brickshelf.com. It's a very old site, but full of brick models, from many people. You can search for certain models or even users there. Look up a name: Ben. He's a very talented builder, Reinhard Beneke, he has some quite good models shared, like the BR 24, in .MPD format - that's the multi-model format for LDraw. (Edit: link to Ben's folders) Also if you look up directly that format '.MPD' on that site you might find even more models from other users shared there. Regarding the already mentioned LDraw: it's free, community based software with huge amount of different bricks already modelled by the ldraw community, you can find it on ldraw.org, the software and the brick library can be downloaded in one package. I also suggest installing LDCad for that. That's the best 3D editor I found so far, easy to use, handy, very clever, and nice rendering. Both ldraw with its huge directory of elements and the editor LDCad are totally free. You can see and edit .mpd-s in LDCad. You can even create your models or models based on instructions of real brick products found on the web. For instruction site I suggest ... well, if you look for newer trains, then brickset.com is the easiest to find instructions for almost anything after 2006. Btw they use the official LEGO site PDF links since LEGO shares the instructions for almost everything they created since 2006 or even earlier. Otherwise, for older models from the '70s or '80s you should take a look at e.g. brickinstructions.com or letsbuilditagain.com - though they are also listed on brickset, so you can find them easily there, the instructions cannot be found there anymore, you'll have to visit those other sites. Now to import it into 3D MBS you'll also need Blender, probably the latest is the best, I used that with the LDraw plugin to import LDraw models to it. Then in blender I saved it to .glTF 2.0 format (I had problems with .X exporter), and that's it - it can be then imported into 3D MBS. However this is the point where I might ask for help, too. What is the proper scale setting to import such a converted .MPD, does anyone know it? When I imported the .mpd to Blender, everything was in meters, I did some real world measurements using my physical models and found that the 80 LDUs that were converted to 80m in Blender was actually 32mms in the real world, so in Blender I used a 32/80000 = 0.0004 scene scale setting to convert it to the real size. Now when I exported it with this new sizing into .glTP and then imported it into 3D MBS I got a question of what scale the model is in... Well, after many trial and error and some measurements - to my greatest surprise - the 1:152 came out as correct scale ... Also I had to select cm as unit if I remember well... I don't exactly understand why I had to divide the 1/38 (L) scale by 4 to get the correct size here ... Can anyone explain it to me? Thanks in advance. Kind Regards, r4mir3zx --- Hallo HoWe, Wahrscheinlich kann ich diese Frage beantworten. Ich habe gute Modelle z. B. auf brickshelf.com gefunden. Es ist eine sehr alte Site, aber voller Brick-Modelle von vielen Leuten. Sie können dort nach bestimmten Modellen oder sogar Benutzern suchen. Suchen Sie nach einem Namen: Ben. Er ist ein sehr talentierter Baumeister, Reinhard Beneke, er hat einige ziemlich gute Modelle geteilt, wie die BR 24, im .MPD-Format – das ist das Multi-Modell-Format für LDraw. (Bearbeiten: Link zu Bens Ordnern) Wenn Sie auf dieser Site direkt nach diesem Format „.MPD“ suchen, finden Sie möglicherweise noch mehr Modelle von anderen Benutzern, die dort geteilt werden. Bezüglich des bereits erwähnten LDraw: Es ist kostenlose, Community-basierte Software mit einer riesigen Menge verschiedener Bricks, die bereits von der LDraw-Community modelliert wurden. Sie finden sie auf ldraw.org, die Software und die Brick-Bibliothek können in einem Paket heruntergeladen werden. Ich schlage auch vor, dafür LDCad zu installieren. Das ist der beste 3D-Editor, den ich bisher gefunden habe. Er ist einfach zu bedienen, praktisch, sehr clever und hat eine schöne Darstellung. Sowohl ldraw mit seinem riesigen Verzeichnis von Elementen als auch der Editor LDCad sind völlig kostenlos. Sie können .mpd-Dateien in LDCad anzeigen und bearbeiten. Sie können sogar Ihre Modelle oder Modelle basierend auf Anleitungen für echte Bausteine erstellen, die Sie im Internet finden. Als Anleitungsseite empfehle ich ... nun, wenn Sie nach neueren Zügen suchen, dann ist brickset.com die einfachste Seite, um Anleitungen für fast alles nach 2006 zu finden. Übrigens verwenden sie die PDF-Links der offiziellen LEGO-Site, da LEGO die Anleitungen für fast alles teilt, was sie seit 2006 oder sogar früher erstellt haben. Ansonsten sollten Sie für ältere Modelle aus den 70er oder 80er Jahren z. B. brickinstructions.com oder letsbuilditagain.com besuchen – obwohl sie auch auf brickset aufgeführt sind, sodass Sie sie dort leicht finden können, sind die Anleitungen dort nicht mehr zu finden, Sie müssen diese anderen Sites besuchen. Um es nun in 3D MBS zu importieren, benötigen Sie auch Blender, wahrscheinlich ist die neueste Version die beste, ich habe es mit dem LDraw-Plugin verwendet, um LDraw-Modelle darin zu importieren. Dann habe ich es in Blender im .glTF 2.0-Format gespeichert (hatte Probleme mit dem .X-Exporter) und das war's – es kann dann in 3D MBS importiert werden. Dies ist jedoch der Punkt, an dem ich auch um Hilfe bitten könnte. Was ist die richtige Maßstabseinstellung, um eine solche konvertierte .MPD zu importieren, kennt sie jemand? Als ich die .mpd in Blender importiert habe, war alles in Metern, ich habe einige reale Messungen mit meinen physischen Modellen durchgeführt und festgestellt, dass die 80 LDUs, die in Blender in 80 m konvertiert wurden, in der realen Welt tatsächlich 32 mm waren, also habe ich in Blender eine Szenenmaßstabseinstellung von 32/80000 = 0,0004 verwendet, um es in die reale Größe umzuwandeln. Als ich es nun mit dieser neuen Größe in .glTP exportierte und dann in 3D MBS importierte, wurde mir die Frage gestellt, welchen Maßstab das Modell hat... Nun, nach vielen Versuchen und einigen Messungen stellte sich - zu meiner größten Überraschung - 1:152 als korrekter Maßstab heraus... Außerdem musste ich, wenn ich mich recht erinnere, cm als Einheit auswählen... Ich verstehe nicht ganz, warum ich den Maßstab 1/38 (L) durch 4 teilen musste, um hier die richtige Größe zu erhalten... Kann mir das jemand erklären? Vielen Dank im Voraus. Mit freundlichen Grüßen, r4mir3zx
-
Hi HoWe, you don't have to convert this particular one. I've accidentally bumped into it when browsing the "Top rated" layout list in the online catalog. It's called "Fleischmann H0 Layout 200x100cm" its ID is A76EB78B-28CF-4AB1-AEDA-81CF0F5D24BA and was uploaded by Franz almost 9 years ago according to its description. I like your LEGO layout. It would be fantastic to be able to use LDraw (LDCad, etc) LEGO models here in the 3D MBS, it would certainly open up tons of new possibilities. Especially with the wide and unparallelled variety of LEGO track selection that the MBS offers now. Kind Regards, r4mir3zx --- Hallo HoWe, du musst dieses hier nicht konvertieren. Ich bin zufällig darauf gestoßen, als ich im Online-Katalog die Liste der „am besten bewerteten“ Layouts durchsucht habe. Es heißt „Fleischmann H0 Layout 200x100cm“, seine ID ist A76EB78B-28CF-4AB1-AEDA-81CF0F5D24BA und wurde seiner Beschreibung zufolge vor fast 9 Jahren von Franz hochgeladen. Mir gefällt dein LEGO-Layout. Es wäre fantastisch, LDraw (LDCad usw.) LEGO-Modelle hier im 3D-MBS verwenden zu können, das würde sicherlich jede Menge neue Möglichkeiten eröffnen. Besonders bei der großen und beispiellosen Auswahl an LEGO-Gleisen, die das MBS jetzt bietet. Mit freundlichen Grüßen, r4mir3zx
-
Hi everyone, I couldn't help but fix a few issues again - and maybe introduce new ones... nah, just kidding. Or not? So, I had noticed some snowy ground shards hanging from the ceiling of some tunnels, so did some groundworks to fix it. And then more groundworks to fix tunnel exit holes. I also added some new interior lights: one to the Blunderbuss car and one to the small "Local train passenger car" just right after the E 69. They are much nicer in the night this way. Also Zindelstein residents complained on the dark Zindelstein station passageways, so I added lights to that building, too. And then I refactored the scripts a bit, fixed the scaling and such, and then I thought if I could make bus doors open at bus stops then why not add this functionality to the train doors. So added some more script lines - as usual I tried to generalize it. So from now train doors also open when both they and the platforms next to the tracks are set up to open the doors. This required tinkering with the vectors again: the determinant of the vector pointing from the stopping train car to the platform indicator object (that can be read from the track on which the car stopped) decides on which side of the car the doors should be opened. Regarding platform indicator objects: it's funny to open doors with waste bins... Good night. Best Regards, r4mir3zx --- Hallo zusammen, Ich konnte nicht anders, als wieder ein paar Probleme zu beheben – und vielleicht neue einzuführen … nee, nur ein Scherz. Oder nicht? [Bild 1] Also, ich hatte einige schneebedeckte Bodensplitter bemerkt, die von der Decke einiger Tunnel hingen, also habe ich einige Erdarbeiten durchgeführt, um sie zu beheben. Und dann weitere Erdarbeiten, um die Tunnelausgänge zu reparieren. Ich habe auch einige neue Innenlichter hinzugefügt: eines für den Donnerbuss-Wagen und eines für den kleinen „Lokalbahn-Personenwagen“ direkt nach der E 69. So sind sie nachts viel schöner. [Bild 2] Außerdem haben sich die Bewohner von Zindelstein über die dunklen Durchgänge des Bahnhofs Zindelstein beschwert, also habe ich auch diesem Gebäude Lichter hinzugefügt. [Bild 3] Und dann habe ich die Skripte ein wenig überarbeitet, die Skalierung und so korrigiert, und dann dachte ich, wenn ich Bustüren an Bushaltestellen öffnen kann, warum dann nicht diese Funktionalität auch den Zugtüren hinzufügen. Also habe ich einige weitere Skriptzeilen hinzugefügt – wie üblich habe ich versucht, es zu verallgemeinern. Ab sofort öffnen sich also auch Zugtüren, wenn sowohl diese als auch die Bahnsteige neben den Gleisen so eingerichtet sind, dass sie die Türen öffnen. Dafür musste ich wieder an den Vektoren herumbasteln: Die Determinante des Vektors, der vom haltenden Zugwaggon zum Bahnsteiganzeigeobjekt zeigt (das vom Gleis abgelesen werden kann, auf dem der Waggon angehalten hat), entscheidet, auf welcher Seite des Waggons die Türen geöffnet werden sollen. [Bild 4] Bezüglich Bahnsteiganzeigeobjekten: Es ist lustig, Türen mit Mülleimern zu öffnen... Gute Nacht. Freundliche Grüße, r4mir3zx
-
Hi Phrontistes Yes, indeed, I have to agree with you, the naming of the function is logical, probably I would have also defined it this way on my own. On the other hand, the driving axis of a train and the drivingDirection property together defines a direction in which that train will start moving once someone starts it and gives it a target speed - from this point of view, though it is standing and not moving anywhere, it is determined by those properties to go in a certain direction - hence heading somewhere. Hm, well... Or maybe then better to say that it's "facing" towards something? isFacingToward() ? Oh, my bad. Indeed, you are right, it's not the physical concept of acceleration but only a property that defines with what speed a train's speed will change to achieve its target speed ... Thanks for the code review ! So, the code correctly is then: local vehicleIsHeadingTowardSignal = vehicle:isHeadingToward(currentSignal) if vehicle.drivingDirection == -1 and vehicle.speed == 0 then vehicleIsHeadingTowardSignal = not vehicleIsHeadingTowardSignal end Kind Regards, r4mir3zx --- Hallo Phrontistes Ja, da muss ich dir zustimmen, die Benennung der Funktion ist logisch, wahrscheinlich hätte ich sie auch selbst so definiert. Andererseits definieren die Antriebsachse eines Zuges und die Eigenschaft drivingDirection zusammen eine Richtung, in die sich der Zug bewegt, sobald ihn jemand startet und ihm eine Zielgeschwindigkeit gibt – aus dieser Sicht ist er, obwohl er steht und sich nirgendwohin bewegt, durch diese Eigenschaften dazu bestimmt, in eine bestimmte Richtung zu fahren – also irgendwohin zu steuern. Hm, also... Oder ist es dann vielleicht besser zu sagen, dass er auf etwas „zugewandt“ ist? isFacingToward() ? Vor 2 Stunden sagte Phrontistes: "Allerdings verstehe ich die Bedingung vehicle.acceleration == 0 nicht. Das ist die Eigenschaft „Beschleunigung in m/s²“. Dieser Wert ist normalerweise nicht 0." Oh, mein Fehler. Da hast du Recht, es ist nicht das physikalische Konzept der Beschleunigung, sondern nur eine Eigenschaft, die definiert, mit welcher Geschwindigkeit sich die Geschwindigkeit eines Zuges ändert, um seine Zielgeschwindigkeit zu erreichen ... Danke für die Codeüberprüfung! Der Code lautet also korrekt: Code hier Mit freundlichen Grüßen, r4mir3zx
-
Wow, thanks! Exactly, and I could reproduce it: Which is a bit of head-scratching, since then how could it be decided whether after starting a motionless train it would head toward a certain signal or not? Also desctiption of the isHeadingToward() does not mention that the train should be moving when it's called: Well, after thinking a bit: if in case of a motionless train the isHeadingToward() decides based on the positive driving axis (let it be either X or Y) direction consistently, then it can be figured out using the vehicle's .drivingDirection. Something like: local vehicleIsHeadingTowardSignal = vehicle:isHeadingToward(currentSignal) if vehicle.drivingDirection == -1 and vehicle.acceleration == 0 and vehicle.speed == 0 then vehicleIsHeadingTowardSignal = not vehicleIsHeadingTowardSignal end Looks a bit weird, though, all those checks to make sure it does not move ... However on this layout as well as on the Versuchstadt layout my original method has had no such problems with deciding train direction since the last change in... I don't know maybe mid-November. So I think - at least for now - I keep it rather than using isHeadingToward(). Regards --- Wow, danke! Genau, und ich konnte es reproduzieren: Bild 1 Das ist ein bisschen rätselhaft, denn wie könnte dann entschieden werden, ob ein stehender Zug nach dem Losfahren auf ein bestimmtes Signal zufährt oder nicht? Außerdem erwähnt die Beschreibung von isHeadingToward() nicht, dass der Zug fahren sollte, wenn es aufgerufen wird: Bild 2 Nun, nach kurzem Nachdenken: Wenn im Falle eines stehenden Zuges isHeadingToward() konsequent basierend auf der positiven Richtung der Fahrachse (sei es X oder Y) entscheidet, dann kann es mithilfe der .drivingDirection des Fahrzeugs herausgefunden werden. So etwas wie: Code hier Sieht allerdings ein bisschen komisch aus, all diese Prüfungen, um sicherzustellen, dass es sich nicht bewegt ... Auf dieser Anlage sowie auf der Versuchstadt-Anlage hatte meine ursprüngliche Methode jedoch seit der letzten Änderung in ... ich weiß nicht, vielleicht Mitte November, keine derartigen Probleme mit der Entscheidung über die Zugrichtung. Ich denke also – zumindest vorerst –, dass ich es behalte, anstatt isHeadingToward() zu verwenden. Grüße
-
Well, though however, now I see isHeadingToward() returns true even when the train direction is set to point away from the signal. Does it not take into account the vehicle direction? Seemingly it doesn't: I really go to bed now, good night! --- Nun, jetzt sehe ich jedoch, dass isHeadingToward() „true“ zurückgibt, auch wenn die Zugrichtung so eingestellt ist, dass sie vom Signal weg zeigt. Berücksichtigt es nicht die Fahrzeugrichtung? Anscheinend tut es das nicht: Bild 1 Ich gehe jetzt wirklich ins Bett, gute Nacht!
-
So conclsion: adding "or engine:isLocatedOn(currentSignal)" to the condition can help Have a good night, I go to sleep. --- Fazit: Das Hinzufügen von „or engine:isLocatedOn(current Signal)“ zur Bedingung kann hilfreich sein. Gute Nacht, ich gehe jetzt schlafen.
-
Aaand I figured it out: when the locomotive stands exactly on the signal's contact, the isHeadingToward() returns false. Actually it works well in the curves, too. In case when the signal is not set to auto-accelerate on setting it free, like in case of signal 'R01-01_Enter' the train does not start because then neither the signal nor the script can start it. Actually it's logical, it's not isHeadingToward it is already on the contact. -- Uuund ich habe es herausgefunden: wenn die Lokomotive genau auf dem Kontakt des Signals steht, gibt isHeadingToward() false zurück. Tatsächlich funktioniert es auch in den Kurven gut. Wenn das Signal nicht so eingestellt ist, dass es beim Loslassen automatisch beschleunigt, wie im Fall des Signals „R01-01_Enter“, fährt der Zug nicht los, weil dann weder das Signal noch das Skript ihn starten können. Eigentlich ist es logisch, es ist nicht isHeadingToward, es steht bereits auf dem Kontakt.
-
What I did in my method - you can see them in the commented out lines - was to find the track on which the locomotive was standing and then calculated a vector from the center of that track to the center of the next one (the _previous_ starter track in the StarterTrack list of the signal*) pointing towards the signal. Then compared the angle between this vector and the locomotive's own one heading forward and if the angle is below a certain value (that is hardcoded to 30 degrees now but can be smaller actually) then the train was considered as "startable". This also has the benefit of working in curves, even when the locomotive's vector is still pointing significantly away from the signal. Of course I took into account the direction of the train, too. * In the StarterTracks list the closest track to the signal is the first and so on. --- Was ich in meiner Methode gemacht habe - Sie können es in den auskommentierten Zeilen sehen - war, das Gleis zu finden, auf dem die Lokomotive stand, und dann einen Vektor von der Mitte dieses Gleises zur Mitte des nächsten (des _vorherigen_ Startgleises in der StarterTrack-Liste des Signals*) zu berechnen, das auf das Signal zeigt. Dann habe ich den Winkel zwischen diesem Vektor und dem der Lokomotive in Vorwärtsrichtung verglichen, und wenn der Winkel unter einem bestimmten Wert liegt (der jetzt fest auf 30 Grad codiert ist, aber tatsächlich kleiner sein kann), wurde der Zug als „startfähig“ betrachtet. Dies hat auch den Vorteil, dass es in Kurven funktioniert, selbst wenn der Vektor der Lokomotive noch deutlich vom Signal weg zeigt. Natürlich habe ich auch die Richtung des Zuges berücksichtigt. * In der StarterTracks-Liste ist das dem Signal am nächsten gelegene Gleis das erste und so weiter. edit: grammar
-
Oh, OK, I just figured it out why it started still the engines at the curve when I set that R01-05_R04-04_Enter free: it stopped at the contact point and the signal had been set to automatically accelerate it. If it stops way before the contact point on any of the starter tracks, it cannot be started, because the isHeadingToward() returns false then. I just don't understand why then it returns also false in the straight track? (BTW in the straight track the signal R01-01_Enter is not set to accelerate trains automatically. ) --- Oh, ok, ich habe gerade herausgefunden, warum die Motoren in der Kurve noch gestartet wurden, als ich R01-05_R04-04_Enter freigab: Es hielt am Kontaktpunkt an und das Signal war so eingestellt, dass es automatisch beschleunigte. Wenn es auf einer der Startstrecken weit vor dem Kontaktpunkt anhält, kann es nicht gestartet werden, weil isHeadingToward() dann false zurückgibt. Ich verstehe nur nicht, warum es dann auch auf der geraden Strecke false zurückgibt? (Übrigens ist das Signal R01-01_Enter auf dem geraden Gleis nicht so eingestellt, dass es Züge automatisch beschleunigt.)
-
Hm, at least I am able to reproduce it now consistently with stopping first at the curve and then continuing. Whenever it stops at the curve at R01-05_R04-04_Enter and I set the signal free there it returns 'false' but still starts the engine, and then it fails eventually at R01-01_Enter. Strange. So this is why I went with my solution on the Vorsuchstadt layout. --- Hm, zumindest kann ich es jetzt konsistent reproduzieren, indem ich erst an der Kurve anhalte und dann weiterfahre. Immer wenn es an der Kurve bei R01-05_R04-04_Enter anhält und ich dort das Signal freigebe, gibt es „false“ zurück, startet aber trotzdem den Motor, und dann versagt es schließlich bei R01-01_Enter. Seltsam. Deshalb habe ich mich für meine Lösung auf dem Vorsuchstadt-Layout entschieden.
-
Yeah, you are right Goetz! That's what I've just done Here is the changed script (btw I changed it on my test layout to see things clearly, the script is exactly the same as on the Vorsuchstadt layout): And the effect: Initially the BR 86 refused to be started, saying that it was not heading toward the signal R01-01_Enter. Unfortunately I didn't create a screenshot from that. Then I swapped it with BR 81 which happily started running around, so it was definitely found by the isHeadingToward. So I thought it's actually the way around and the sideways X local coordinate setup is the correct for the train. Proof that it worked, you can see the happy huffs and puffs of the train there: Now I changed back to BR 86 and to my greatest surprise it worked, I did some runs around but isHeadingToward returned "true" for that at the R01-01_Enter signal. I changed to another engine, BR 144, just to see what's going on, it has again X coordinate in the direction of travel, contrary to BR 81. And it again worked. At this point I got confused as it didn't work initially with BR 86. Now after some rounds with BR 144 I stopped it at a signal in a curve, at signal R01-05_R04-04_Enter. Then I allowed it to enter the "station", and when I wanted to restart it I got this: I think the reason is deeper than I can see currently. It's like some heisenbug or mandelbug. Regards, r4mir3zx --- Ja, du hast recht, Götz! Das habe ich gerade gemacht. Hier ist das geänderte Skript (ich habe es übrigens auf meiner Testanlage geändert, um die Dinge klarer zu sehen, das Skript ist genau dasselbe wie auf der Vorsuchstadt-Anlage): Bild 1 Und die Wirkung: Zunächst weigerte sich die BR 86, gestartet zu werden, mit der Begründung, sie fahre nicht auf das Signal R01-01_Enter zu. Leider habe ich davon keinen Screenshot gemacht. Dann habe ich sie mit der BR 81 vertauscht, die fröhlich losfuhr, also wurde sie definitiv von isHeadingToward gefunden. Also dachte ich, es ist eigentlich umgekehrt und die seitliche lokale X-Koordinateneinstellung ist die richtige für den Zug. Als Beweis dafür, dass es funktioniert hat, können Sie das fröhliche Schnaufen und Pusten des Zuges hier sehen: Bild 2 Nun bin ich wieder auf BR 86 umgestiegen und zu meiner größten Überraschung hat es funktioniert. Ich habe ein paar Runden gedreht, aber isHeadingToward hat dafür am Signal R01-01_Enter „true“ zurückgegeben. Ich habe auf eine andere Lokomotive, BR 144, um zu sehen, was los ist, gewechselt. Sie hat wieder die X-Koordinate in Fahrtrichtung, im Gegensatz zu BR 81. Und es hat wieder funktioniert. An diesem Punkt war ich verwirrt, weil es anfangs mit BR 86 nicht funktioniert hat. Nun, nach einigen Runden mit BR 144, habe ich sie an einem Signal in einer Kurve angehalten, am Signal R01-05_R04-04_Enter. Dann habe ich sie in den „Bahnhof“ einfahren lassen und als ich sie neu starten wollte, bekam ich dies: Bild 3 Ich glaube, der Grund liegt tiefer, als ich derzeit erkennen kann. Es ist wie ein Heisenbug oder Mandelbug. Grüße, r4mir3zx
-
Yes, I think that was the method I tried. And as I remember - it was a month ago or so - initially it looked like working, but then for some reason it just didn't. And since I had already written my own version, instead of debugging I think I just decided to go with my one. Now I don't know whether I broke something in my script when I applied the isHeadingToward() or something else was the cause of the confusion. There's a chance that it was just before I found those vehicles with the different local coordinate setup (like BR 81 or DB 212 - their local X axis is pointed sideways and the Y axis is what points to their vector of motion) ... But I'll try out again that method and will see what caused the issue. Maybe it was just me confusing things --- Ja, ich glaube, das war die Methode, die ich ausprobiert habe. Und soweit ich mich erinnere – es war vor etwa einem Monat – sah es zunächst so aus, als würde es funktionieren, aber dann hat es aus irgendeinem Grund einfach nicht funktioniert. Und da ich bereits meine eigene Version geschrieben hatte, habe ich mich, glaube ich, einfach für meine eigene entschieden, anstatt sie zu debuggen. Ich weiß jetzt nicht, ob ich etwas in meinem Skript kaputt gemacht habe, als ich isHeadingToward() angewendet habe, oder ob etwas anderes die Ursache für die Verwirrung war. Es besteht die Möglichkeit, dass es kurz bevor ich diese Fahrzeuge mit den unterschiedlichen lokalen Koordinateneinstellungen gefunden habe (wie BR 81 oder DB 212 – ihre lokale X-Achse zeigt seitwärts und die Y-Achse zeigt auf ihren Bewegungsvektor) ... Aber ich werde diese Methode noch einmal ausprobieren und sehen, was das Problem verursacht hat. Vielleicht habe ich einfach nur Dinge verwechselt.
-
Thanks much! It wouldn't be super without the hundreds of models you guys all created and shared and I learnt much also from the layouts that you all had submitted before. Playing with this is like being in a shop with full of model trains that are just all mine to play with... and there's nothing to break, no short circuit, etc Endless possibilities here. --- Vielen Dank! Es wäre nicht so toll ohne die Hunderte von Modellen, die ihr alle erstellt und geteilt habt, und ich habe auch viel von den Layouts gelernt, die ihr alle zuvor eingereicht habt. Damit zu spielen ist wie in einem Laden voller Modelleisenbahnen zu sein, mit denen ich einfach spielen kann ... und nichts kann kaputtgehen, es gibt keinen Kurzschluss usw. Endlose Möglichkeiten.