Alle erstellten Inhalte von BahnLand
-
Zufall mit Variablen steuern
Hallo Hans, jetzt hat's zwar ein bisschen gedauert, dafür kann ich Dir aber ein "lauffähiges" Muster abliefern: Zufallsauswahl_mod1.mbp Ich habe in der EV diverse Modifikationen gemacht, von denen ich die wichtigsten hier kurz beschreiben möchte: 01 Eine Lok zu viel Die Lok BR111 ist "ein Zug zu viel" auf der Anlage. Sie kann beim Ausfahren kein freies Gleis in der Gleisharfe finden, weil alle Gleise durch andere Züge besetzt sind. Ich habe daher die Lok vom Gleis genommen. 02 Ausfahrt-Stop-Gleise "umgedreht". Du hast die "Sperrgleise" ("Ausfahrt-Stop-Gleise") mit der "Weichenspitze" vom Zug weg zeigend eingesetzt. Das ist falsch. Denn dann kann der Zug, wenn für die Lok die Eigenschaft "Weichen freischalten" gesetzt ist, die Weiche "aufschlitzen". Wenn Du das Sperrgleis anders herum einsetzt (die Weiche wird von der Spitze her befahren, bitte die andere Kurven-Ausrichtung beachten!), wird der Zug beim Sperr-Zustand auch dann angehalten, wenn er Weichen freischalten kann. Du hast zwar bei Deinen Loks das "freischalten" unterbunden, weshalb die Loks auch beim "falschen" Einbau der Sperrgleise gestoppt werden. Dafür musst Du aber alle Weichen im Fahrweg jeweils explizit korrekt einstellen, damit der Zug nicht "ungewollt" stehen bleibt. Dies kannst Du Dir sparen, wenn Du das Freischalten der Weichen zulässt. 03 Geschwindigkeitszuweisung als Ist-Geschwindigkeit Ist es von Dir Absicht, dass die Geschwindigkeitszuweisung an die Züge immer "abrupt" erfolgt? Nimmst Du bei der Geschwindigkeitszuweisung das Häkchen bei "Ist-Geschwindigkeit setzen" weg, werden die Züge "weich" beschleunigt und abgebremst. 04 Verknüpfung der Signal-Duplikate Wenn Du das Haupt- und das Vorsignal der großen Anzeige-Variante mit dem jeweiligen "Gegenstück in klein" verbindest, brauchst Du die großen Signale in der Ereignisverwaltung nicht mehr zu berücksichtigen. Sie werden dann automatisch mir dem jeweils verbundenen keinen Signal zusammen umgeschaltet. 05 Schalter- und Hauptsignal-Steuerung Das "Haupt"-Signal wird über den Startschalter nur noch geöffnet, aber nicht mehr geschlossen. Das Schließen erfolgt durch das Verlassen des Sperrgleises "Halt1". Sobald der Zug nach dem Passieren dieses Signals in ein Harfengleis eingefahren ist, wird das Signal automatisch geöffnet - wenn der Startschalter auf "an" steht. Sonst bleibt das Signal geschlossen, und der Gesamtablauf kommt zum Stillstand. Die Funktionalität der Signalschaltung ist unverändert. 06 Zufallszahl-Bestimmung und Auswertung In der ursprünglichen Anlage war das die Bestimmung der Zufallszahl auslösende Gleis im Tunnel rechts vorne platziert. Weil es gleichzeitig eine Umschaltung der Ausfahr-Weichen auslöste, kam es bei der Ausfahrt des Zuges aus Harfengleis 1 zu einer Zugtrennung zwischen Lok und Wagengruppe. Bei der neuen Lösung wurde die "aktive" Schaltung der Ausfahrweichen entfernt und durch das implizite "Aufschlitzen" durch den Zug ersetzt (Lok-Eigenschaft "Weichen freischalten", siehe auch oben Abschnitt 02). Damit kann es nicht mehr vorkommen, dass eine Ausfahrweiche unter dem passierenden Zug umgeschaltet wird. Die Zufalls-Variable wird nun beim Passieren des Hautsignals bestimmt. Damit das Setzen der Zufalls-Variable immer ein Ereignis erzeigt, wird vor dem "Random"-Aufruf eine "0" eingetragen. So ist sichergestellt, dass der Eintrag der Zufallszahl immer eine Variablen-Änderung darstellt, die für das Erzeugen des Ereignisses "Variable wird gesetzt" notwendig ist. Auf dieses Ereignis wird von jedem Ausfahrgleis "gehorcht". Jede Ausfahrgleis-spezifische Ereignisdefinition reagiert genau auf jenen Wert der Zufalls-Variable, welcher der Nummer des Harfengleises entspricht. Da der Zufallswert auch ein Gleis "treffen" kann, das gerade nicht belegt ist, muss die Belegung als Zusatzbedingung einbezogen werden, da nur dann der Start eines Zuges von diesem Gleis aus erfolgreich ist. Andernfalls (wenn die Bedingung nicht erfüllt ist) muss stattdessen die Zufalls-Variable neu gesetzt und damit das zugehörige Ereignis erneut - nun mit großer Wahrscheinlichkeit für ein anderes Harfengleis - ausgelöst werden. Durch diesen Mechanismus ist gewährleistet, dass immer - wenn auch nicht unbedingt gleich beim ersten Versuch - ein durch einen Zug belegtes Harfengleis den "Zuschlag" für einen Zugstart bekommt. 07 Zielgleis-Auswahl Die Weichensteuerung für das Zielgleis bei der Einfahrt in die Gleisharfe wie von der Ausfahrt aus diesem Gleis entkoppelt. Vorteil: Es kennen Züge in die Gleisharfe einfahren, während andere Züge die Gleisharfe verlassen, ohne dass hierdurch die Gefahr besteht, dass ein ausfahrender Zug unter einem einfahrenden Zug eine Weiche umstellt. Vor der Einfahrt in die Gleisharfe stößt der sich nähernde Zug eine dynamische Fahrweg-Berechnung an, auf die zu jedem Harfengleis, das "frei" ist, eine Reaktion erfolgt. Diese besteht darin, die vollständige Fahrstraße in dieses Harfengleis zu schalten. Sind mehrere Harfengleise frei, erfolgt diese Fahrwegberechnung für jedes Harfengleis. Die in der Ereignisverwaltung hintereinander abgelegten Fahrweg-Definitionen werden auch hintereinander abgearbeitet, sodass sie sich nicht gegenseitig "in die Quere kommen". Die zeitlich letzte Fahrwegberechnung ist schließlich der "Sieger", indem letztendlich der Fahrweg zu dem zu dieser Ereignisdefinition gehörenden Gleis geschaltet ist. Bei der Einfahrt eines Zuges in ein Harfengleis wird die zugehörige Fahrweg-Definition deaktiviert. Erst wenn der Zug das Harfengleis wieder verlässt, wird die Fahrwegdefinition wieder aktiviert. So ist gewährleistet, dass nur Fahrwegberechnungen für freie Harfengleise durchgeführt werden. Es kann also zumindest bei dieser Anlagen-Konstellation nicht passieren, dass ein einfahrender Zug auf einen in einem Harfengleis stehenden Zug auffährt (mindestens das ehemalige Harfengleis des einfahrenden Zuges ist frei). Sollte in einer anderen Anlagen-Konfiguration die Möglichkeit bestehen, dass für den einfahrenden Zug kein freies Gleis zur Verfügung steht, muss der Zug so lange angehalten werden, bis ein Harfengleis frei wird (ein entsprechender Algorithmus wurde beispielsweise bei den Abstellbahnhöfen der Gotthard-Anlage realisiert). Um zu zeigen, dass nicht jeder Zug zwangsweise immer in dasselbe Harfengleis einfahren muss, habe ich in einer Variante der obigen Beispiel-Anlage alle "Anhänger" der betrachteten Züge entfernt. Hierdurch steigt die Wahrscheinlichkeit, dass eine zweite Lok die Gleisharfe bereits verlassen hat, bevor für die erste Lok die Fahrwegberechnung beginnt. Dann kann es passieren, dass die einfahrende Lok ein anderes Gleis ansteuert, als das, aus welchem sie ursprünglich ausgefahren ist. Also auch hier nutzt der Algorithmus verschiedene Auswahl-Möglichkeiten, wenn es die Anzahl der freien Gleise in der Harfe zulässt. Zufallsauswahl_mod2.mbp Nun hoffe ich, dass ich das Vorgehen bei der "zufälligen" Gleisauswahl verständlich rüberbringen konnte. Viele Grüße BahnLand
-
N-Bahn-Bastler's test-Anlagen
% antwortete %s in: AnlagenHallo Michel, ich wünsche Dir auf jeden Fall eine schnelle und gute Besserung! Viele Grüße BahnLand
-
Lobos Bordmittelmodelle
Hallo Lobo, Kann es sein, dass Du in letzter Zeit einmal versucht hast, eine mbe-Datei mit "ModellbahnStudio.exe" zu öffnen, ... ... und dabei das Häkchen unten im Bild gesetzt war? Dann wird nämlich ab diesem Zeitpunkt für alle Dateien mit der Endung "mbe" das Icon des Modelbahn-Studios angezeigt, um im Explorer darauf hinzuweisen, dass diese Datei bei einem Doppelklick genau mit diesem Programm geöffnet wird. Dies führt allerdings bei "mbe"-Datein zu einem Fehler, weil es sich hier ja nicht um eine Anlage, sondern um ein Modell für das Modellbahn-Studio handelt. Ich habe beispielsweise den Dateien mit der Endung "mbe" als "Voreinstellung" den "7-Zip File Manager" zugewiesen. Denn mbe-Dateien besitzen das ZIP-Format. Wenn ich dann einen Doppelklick auf die mbe-Datei mache, wird sie automatisch mit 7zip geöffnet, und ich kann deren Inhalt ansehen. Bei mir sieht also die Ansicht im Explorer so aus: Noch eine kleine Geschichte zum Video "Weichnachtsberg" auf der von Dir zitierten Seite: Als kleines Kind war ich ein "Nervenbündel", weshalb ich mit 7 Jahren vom Kinderarzt für 6 Wochen in ein Erholungsheim nach Bayerisch Gmain zwischen Bad Reichenhall und Berchtesgaden geschickt wurde. Dort machten wir einmal einen Tagesausflug nach Bad Reichenhall, wo wir auch an einem Schaufenster vorbei kamen, in dem eine Modell-Winterlandschaft aufgebaut war. Auf dieser bewegten sich im Schnee viele viele kleine Figuren wie auf dem "Weihnachtsberg"-Video die die Leute beim Kirchgang oder das einsame Auto (insbesondere erinnere ich mich ganz schwach an eine Eislaufbahn mit sich auf ihr bewegenden Schlittschuhfahrern). Das hatte mich damals so fasziniert, dass ich von den "Erzieherinnen" mit Gewalt von dem Schaufenster weggezerrt werden musste. Auch wenn ich mich nicht daran erinnern kann, ob es auf dieser Anlage auch eine Modelleisenbahn gab, war dies vermutlich mit ein Auslöser für meine bis heute andauernde "Affinität" zur Modelleisenbahn, die dann später auch auf die große Eisenbahn übersprang. Viele Grüße BahnLand
-
Erweiterter DirectX-Exporter
Hallo (Sketchup-)Modellbauer, heute gibt es noch einmal eine neue Version des DirectX-Exporters. Ich habe ihn ziemlich umgekrempelt. Dafür kann er aber jetzt auch deutlich mehr als vorher. Als wichtigste Neuerungen können nun ineinander geschachtelte Gruppen verarbeitet und für beliebige Bauteile "Ankerpunkte" gesetzt werden. Geschachtelte Gruppen und Frames Im Sketchup-Modell verschachtelte Gruppen werden nun nicht mehr aufgelöst und zu einem großen Mesh vereinigt, sondern jede Gruppe wird in einen eigenen Frame umgewandelt. Verschachtelte Gruppe führen also zu verschachtelten Frames, die jeweils neben einem eigenen Mesh wieder weitere Unterframes enthalten können. So können nun beispielsweise "RadAnim..."-Gruppen für sich drehende Räder in Sketchup direkt in Rad0/Rad1-Gruppen für Drehgeselle eingebettet und anschließend vom DirectX-Exporter automatisch korrekt aufbereitet werden, ohne dass es hierfür noch eines nachträglichen händischen Eingriffs in die X-Datei bedarf. Wird also aus einem in Sketchup konstruierten Drehgestell-Wagen mit Speichenrädern mittels des DirectX-Exporters eine X-Datei erzeigt, kann diese direkt ohne weitere Nacharbeiten in das Modellbahn-Studio hochgeladen werden. Ankerpunkte Der "Ankerpunkt" ist eine "Verallgemeinerung" des in der letzten Exporter-Version neu eingeführten "_Gizmo"-Objekts. Enthält ein Bauteil eines Sketchup-Modells, dessen "Einzelteile" zu einer "Gruppe" oder "Komponente" zusammengefasst wurden, eine "Untergruppe" mit der Bezeichnung "_AP..." (wobei die Punkte für eine beliebige Zeichenkette innerhalb der für DirectX erlaubten Zeichenmenge stehen), wird diese Gruppe vom DirectX-Exporter als "Ankerpunkt"-Definition der umschließenden Bauteil-Gruppe interpretiert. Der aus den "Randkoordinaten" der "_AP"-Gruppe berechnete Mittelpunkt wird als "Ankerpunkt" für die übergeordnete Sketchup-Gruppe oder Sketchup-Komponente herangezogen. Soll nun beispielsweise in einem Sketchup-Modell via Animation ein Bauteil gedreht oder skaliert werden, wird der mittels der "_AP"-Gruppe definierte Koordinatenpunkt als Dreh- oder Fixpunkt für die Rotations- oder Skalierungs-Animation herangezogen. Hierzu ein kleines Beispiel: Das obige Bild zeigt ein Sketchup-Modell, das ein primitives Flügelsignal darstellen soll. Es besteht aus einem "Signalmast" (grau), einem "Flügel" (rot) und einem "Hänger" (blau), der eigentlich mit dem "Signal" nichts zu tun hat, aber für die Demonstration von gekoppelten Drehungen benötigt wird. Zusätzlich sind in dem Modell 3 "Ankerpunkte" ("_AP"-Gruppen, gelbe Quadrate) postiert, die jeweils verschiedenen Sketchup-Gruppen zugeordnet sind. Im Teilbild links ist unter dem Signalmast die Gruppe "_AP1" zu erkennen. Sie ist der Ankerpunkt für das Gesamtmodell und wurde daher in der "obersten Sketchup-Gruppen-Ebene" angesiedelt. Mit diesem Ankerpunkt wird festgelegt, wo im Modell im 3D-Modellbahn Studio das Koordinatenkreuz angezeigt werden soll. Man hätte daher diesen Ankerpunkt auch als "_Gizmo" bezeichnen können (wird aus Kompatibilitätsgründen weiterhin unterstützt). Der rote Flügel und der blaue Hänger sollen beim Öffnen des "Signals" nach oben geschwenkt werden. Sie werden daher zu einer Sketchup-Gruppe "Fluegelgruppe" zusammengefasst, die auch den Ankerpunkt "_AP2" als Drehpunkt für den Signalflügel enthält (siehe mittleres Teilbild, gelbes Quadrat links im Flügel)). Der blaue Hänger soll bei Öffnen des Signals seine senkrechte Ausrichtung beibehalten. Deshalb wird er in die Sketchup-Gruppe "Haengergruppe" eingebettet, in welcher auch der dritte Ankerpunkt "_AP2" enthalten ist (rechtes Teilbild, gelbes Quadrat im blauen Hänger). Nachdem aus dem Sketchup-Modell mithilfe des Exporters die X-Datei erzeugt wurde, wird diese durch eine AnimationSet-Definition ergänzt, in der für die "Haengergruppe" eine zur "Fluegelgruppe" entgegengesetzte Drehung definiert wird. Da die Drehung für die "Haengergruppe" mit jener für die "Fluegelgruppe" gekoppelt ist, bleibt die aufrechte Position des Hängers beim Öffnen des Flügels erhalten (siehe das nächste Bild). Beim linken Signal wird die Position des Gizmos angezeigt, die der Position des Ankerpunkts "_AP0" im Sketchup-Modell aus dem oberen Bild entspricht. Ohne die im Sketchup-Modell hinzugefügten Ankerpunkte würde der DirectX-Exporter bei jedem gruppierten Bauteil dessen geometrischen Mittelpunkt als Bauteil-bezogenen "Koordinatenursprung" verwenden. Dieser würde dann bei einer Animation (Rotation oder Skalierung) als "Fixpunkt" verwendet. Mithilfe der Ankerpunkt-Definition im Sketchup-Modell wird dieser Punkt an die korrekte Stelle innerhalb der zu animierenden Baugruppe verschoben. Da die Drehpunkte für die zu schwenkenden Bauteile des Signals durch die Ankerpunkte an der richtigen Stelle positioniert sind, genügt es in der AnimationSet-Definition, nur die Rotationen zu definieren (eine mit der Rotation des Bauteils koordinierte Verschiebung (Translation) ist nicht mehr notwendig). Die Definition sieht daher für das hier beschriebene Signalbeispiel wie folgt aus: Mithilfe dieser in beliebigen Sketchup-Gruppen positionierbaren Ankerpunkte sollte es beispielsweise auch ohne große Positionsberechnungen in der AnimationSet-Definition möglich sein, mittels der "_AnimWheel"-Animation das Gestänge einer Elektro- oder Diesellok mit Stangenantrieb zu animieren (die Animation der Heusinger-Steuerung bei Dampfloks ist dann doch etwas komplizierter). Weitere Kontaktpunkt-Varianten Bisher wurden durch den DirectX-Exporter nur Kontaktpunkte ("_CP...") unterstützt, deren Ausrichtung in der Bezeichnung der als Kontaktpunkt ausgewiesenen Sketchup-Gruppe hinterlegt wurde (Beispiel: Die Bezeichnung "_CP-22.5" kennzeichnet eine horizontale Auslenkung der Kontaktpunkt-Ausrichtung gegenüber der x-Achse des Modells um -22.5°). Eine Auslenkung der Kontaktpunkt-Ausrichtung nach oben oder unten war nicht möglich. Es gibt nun zwei weitere Definitions-Varianten, die vom DirectX-Exporter entsprechend automatisch ausgewertet und umgesetzt werden: "_CPD..." und "_CP_...", wobei die Punktreihe nun eine beliebige Zeichenkette aus in DirectX erlaubten Zeichen repräsentiert. In beiden Varianten ist eine Winkel-Angabe in der Bezeichnung der "_CP"-Gruppe nicht mehr notwendig. Drehbarer Kontaktpunkt "_CPD…" Hier soll das mit dem Kontaktpunkt versehene Modell nach dem Andocken an ein anderes Modell in alle Richtungen frei schwenkbar sein, ohne dass die Andock-Funktionalität hierdurch verloren geht. Aus diesem Grund wird hier auch keine Winkel-Definition mehr benötigt. Kontaktpunkt mit automatisch feststellbarer Winkel-Ausrichtung "_CP_..." Hier stellt der DirectX-Exporter die Ausrichtung des Kontaktpunkts gegenüber der x-Achse des Sketchup-Modells selbst fest, indem die im Sketchup-Modell nach dem Erzeugen des Kontaktpunkts als "_CP_"-Gruppe dessen Drehung in die endgültige Kontaktpunkt-Position auswertet. Hierbei ist jedoch beim Bereitstellen solcher Kontaktpunkte folgendes zu beachten: Wenn im Sketchup-Modell aus Einzelelementen eine Gruppe erzeugt wird, ist diese immer parallel zur x-Achse des Modells ausgerichtet. Dies gilt insbesondere für neu erzeugte Kontaktpunkte mit der Bezeichnung "_CP_...". Im nachfolgenden Bild sind die Kontaktpunkte als Oktaeder-förmige Sketchup-Gruppen dargestellt, deren geometrischer Mittelpunkt (Kreuzungspunkt der Objekt-Achsen) jeweils die Koordinate des Kontaktpunkts repräsentiert. Der auf der roten x-Achse des Sketchup-Modells platzierte Kontaktpunkt ist derjenige, der an dieser Stelle konstruiert und zur "_CP_"-Gruppe zusammengefasst wurde. Er ist daher parallel zur x-Achse ausgerichtet. Wird nun dieser "Kontaktpunkt" (oder eine Kopie von ihm) an einer anderen Stelle positioniert und dabei verdreht (siehe im Bild das Kontaktpunkt-Objekt auf der schrägen Fläche vor der Pfeilspitze), kann der DirectX-Exporter die Rotationskoordinaten dieses Objekts auslesen und für die Weitergabe von dessen Ausrichtung in der X-Datei weiterverwenden. Wird nun aber die Sketchup-Gruppe dieses Kontaktpunkts aufgelöst und zu einem späteren Zeitpunkt wieder zusammengefügt, sind die vor der Auflösung vorhandenen Rotationskoordinaten verloren. Die neu gebildete Gruppe zeigt wieder die Ausrichtung parallel zur x-Achse an. Deshalb darf ein Kontaktpunkt, dessen Rotationskoordinaten vom DirectX-Exporter selbst bestimmt werden sollen, nicht nachträglich aufgelöst und wieder zusammengefasst werden. Abgesehen von der Möglichkeit, die Kontaktpunkte der Form "_CP_..." auch vertikal schräg zu stellen, ist aus der Sicht des 3D-Modellbahn Studios die Funktionalität mit jener der "klassischen" "_CP<winkel>"-Kontaktpunkte identisch. Die unterschiedliche Interpretation und Aufbereitung der Kontaktpunkte mit den Bezeichnungen "_CP<winkel>", "_CPD<text>" und "_CP_<text>" findet ausschließlich im DirectX-Exporter statt. Für das 3D-Modellbahn Studio sind dies alles gleichermaßen zu verarbeitende "_CP"-Objekte, deren Ausrichtungs-Informationen in den vom DirectX-Exporter in der X-Datei hinterlegten Rotationskoordinaten enthalten sind. Anhänge Das beiliegende ZIP-Paket enthält wieder das Exporter-Script (Endung .rb), die Initialisierungs-Datei (.ini) und die Exporter-Beschreibung (.pdf). In der Beschreibung zur letzten Exporter-Version hatte ich fälschlicherweise das #-Zeichen als zulässiges Zeichen für die Objekt-Bezeichnungen in Sketchup aufgezählt. Dieses Zeichen darf nicht verwendet werden. Denn es kennzeichnet in X-Dateien den Beginn eines Kommentars, der bis zum Zeilenende reicht. Tritt nun in der X-Datei eine Objekt-Bezeichnung auf, die ein #-Zeichen enthält, wird alles dahinter als Kommentar interpretiert. Die Daten in der X-Datei sind deshalb nicht mehr konsistent, und die Datei kann vom 3D-Modellbahn Studio nicht mehr eingelesen werden. [Beispiel.zip] Im zweiten ZIP-Paket Demo-Signal.zip habe ich das oben gezeigte Beispiel des "Demo-Signals" hinterlegt. Es enthält die Sketchup-Source (.skp), die vom Exporter erzeugte X-Datei (.x) mit der darin enthaltenen AnimationSet-Definition und das fertige MBS-Modell als mbe-Datei. Damit könnt Ihr dann etwas "herumspielen". Schlussbemerkung Ich könnte mir vorstellen, dass man in den Exporter auch noch das automatische Erzeugen der AnimationSet-Definition einbauen könnte. Das ist jedoch eine weitere neue Baustelle, an die ich mich bisher noch nicht heran gewagt habe. Insbesondere ist mir noch nicht klar, wie man hier die einzelnen Animationstypen unter einen Hut bringen (AnimSignal ist sich ganz anders zu behandeln als z.B. AnimWheel) und vor allem über in Sketchup verfügbaren Mittel steuern kann (müsste wohl auch über die Gruppen-Bezeichnung gelöst werden). Ich denke aber, dass mit der jetzt vorhandenen Funktionalität des DirectX-Exporters schon einige Erleichterungen gegenüber der bisherigen Funktionalität geschaffen sind. Ich wünsche jedenfalls viel Spaß und Erfolg beim Ausprobieren und bin auf Eure Erfahrungen sehr gespannt Viele Grüße BahnLand
-
Bhf Tannau - wer kann helfen
Hallo Reinhard, ich wollte auf keinen Fall Deine schöne Schattenbildung und die Mühe, die Du Dir dabei gemacht hast, in Frage stellen und Dein Modell "schmälern". Ich wollte nur das Prinzip verdeutlichen, wie ein Textur-Abschnitt mehrfach verwendet werden kann, und es nicht unbedingt notwendig ist, Aussparungen in der Modellfläche auf die Texur zu übertragen. Und dazu hat sich eben die Textur ohne aufgebrachte "Schatten-Verdunkelung" besser geeignet. Aber vielleicht lässt sich ja beides irgendwie kombinieren. Mir ist schon klar, dass der Aufwand für einen "geeigneten Texturatlas" und die passende Zuweisung zu den Modellflächen genauso groß oder sogar noch größer sein kann, als das Modell selbst (ohne die Texturzuweisung) zu erstellen (ich kämpfe auch gerade damit, den optimalen "Textur-Teppich" für meine gerade in Renovierung befindlichen RAe II TEE neu zu erfinden). Also: Nichts für ungut! Viele Grüße BahnLand
-
Lobos Bordmittelmodelle
Hallo Lobo, da ist Dir wieder ein sehr schönes Bauwerk gelungen. Vor allem das kleine Glockentürmchen gefällt mir sehr gut. Und die Beleuchtung finde ich auch nicht zu viel. Da findet halt gerade ein Fest auf allen Stockwerken statt - vielleicht eine Hochzeit - soll es ja in Gasthöfen ab und zu geben. Viele Grüße BahnLand
-
Lok als Wagen
Hallo Kutscher, ja, und die Namen müssen eindeutig sein, damit immer die "richtige" Lok angesprochen wird. Diese Aussage gilt eigentlich für alle Objekte, de über die Ereignisvewaltung gesteuert werden sollen. Viele Grüße und viel Erfolg! BahnLand
-
Lok als Wagen
Hallo Kutscher, dass ein Triebfahrzeug "versehentlich" losfährt, kann eigentlich nur dann passieren, wenn man die Geschwindigkeiten der Triebfahrzeuge über die Gleise und nicht über die Loknamen zuweist. Steht nämlich auf einem Gleis, auf dem man eine Lok nur über die Nennung des Gleises starten möchte, zufälligerweise ein weiteres Triebfahrzeug, ist die Geschwindigkeitszuordnung auch für dieses wirksam. So kann es dann passieren, dass neben der "bewusst" gestarteten Lok "unbewusst" eine weitere "Lok" losfährt. Da bei den Triebwagen meist an beiden Zug-Enden eine "Lok" positioniert ist (kann auch ein Triebkopf oder ein Steuerwagen mit "Lok"-Eigenschaft sein), muss man bei der Geschwindigkeitszuweisung ausschließlich über das Gleis sicherstellen, dass sich auf diesem Gleisstück wirklich nur jene "Lok" befindet, die tatsächlich gestartet werden soll. Um bei allen möglichen Konstellationen (dies könnte auch ein geschobener Zug mit einer Lok nur hinten am Zug oder ein Triebzug mit in der Mitte angesiedeltem Triebfahrzeug sein) sicherzustellen, dass immer nur genau die gewünschte "Lok" gestartet wird, realisiert man die Geschwindkeitszuordnung anhand des Lok-Namens und nicht über das Gleis, Dann erwischt man immer die "richtige" Lok, unabhängig davon, auf welchem Gleis sie sich gerade befindet. Die "Lok" oder korrekter "das angetriebene Fahrzeug" eines Zugverbands kann man bei den Ereignissen "Zug betritt Gleis" und "Zug verlässt Gleis" identifizieren, indem man dort die vordefinierte Objektvariable "_Trigger1._Name" ausliest. Speichert man deren Inhalt in einer Benutzer-definierten Variable ab, kann man zu einem späteren Zeitpunkt den dort abgelegten Namen der Lok verwenden, um der Lok eine neue Geschwindigkeit zuzuweisen. Viele Grüße BahnLand
-
Bhf Tannau - wer kann helfen
Hallo Reinhard, ich habe mir Deine schönen "Bayerischen Würfel" mal etwas "aus der Nähe" angeschaut. Zunächst meine Hochachtung für diese schönen Modelle. Allerdings solltest Du dem "Unterstand" noch eine "Decke" spendieren: Und dass die Dachrinne etwas absteht, ist sicher auch keine Absicht. Doch jetzt zu Deinem Problem mit den vielen und großen Texturen: Ich habe mal probeweise bei Deinem Bahnhof "Laimnau" die Texturen in jeder Richtung halbiert (also insgesamt auf 1/4 reduziert). Herausgekommen sind dann die beiden Modelle im Vordergrund des nächsten Bildes. Während ich beim linken Modell abgesehen von der Verkleinerung die Texturen "unverändert" gelassen habe, habe ich beim rechten Modell einzelne Texturelemente wie folgt modifiziert (links das Original, rdchts die Modifikation): Fassaden-Texturbilder jeweils durch ein rechteckiges Mauerelement ersetzt. Damit könnten alle Mauer-Fassaden mit diesem einen Rechteck-Texturbild "beklebt" werden. Individuelle Texturbilder für jede Einzelfassade wären nicht mehr notwendig. Dreiecks-Texturbilder für die Dachflächen ebenfalls durch Textur-Rechtecke ersetzt. Auch hier könnten dann alle Dachelemente mit demselben Texturbild dargestellt werden. Die Aussparungen in den orginalen Texturbildern sind nicht notwendig, da die ausgesparten Teile nicht Teil der mit der Textur zu belegenen Fläche sind. Dies gilt sowohl für die Tür-, Fenster- und Treppenausschnitte bei ben Fassenden-Texturen als auch für die Kamin-Aussparung bei der Dachtextur. Auch beim Fußboden habe die Textur zu einem Rechteck komplettiert. Allerdings habe ich auf die kontunierliche Abdunkelung (sowohl beim Fußboden als auch bei der Fassade) verzichtet, was man an der konstanten Helligkeit des Bodens und der "Garagen"-Wände im Modell rechts auf dem mittleren Bild sehr gut erkennen kann. Also: Wenn Dir die Detaillierung zu ungenau wird, wenn man die Texturen auf 50% verkleinert, kannst Du die erste von mir beschriebene Variante natürlich nicht nutzen (wobei ich vom mittlleren Bild ausgehend damit keine Probleme hätte). Durch die Nutzung derselben Texturflächen für mehrere Objekte (Fassaden- und Dachbereiche oder auch bei den "kleinen Dingen" auf Deinen Texturen), kannst Du schon etliches an Texturen einsparen. Möglicherweise kannst Du so die 5 Texturen auf 2 - wenn nicht sogar auf eine - reduzieren, ohne auf die "Verkleinerung" zurückgreifen zu müssen. Leider kann ich bei fertigen mbe-Modellen die Texturen nur "umfärben", jedoch nicht die Zuweisung zu den einzelnen Flächen verändern. Deshalb musste ich die von Dir verwendeten Texturbereiche so beibehalten, auch wenn ich einige Flächen hätte einsparen können. Daher kann ich Dir auch keine "reduzierte" Muster-Textur liefern. Beim Abändern der DDS-Dateien in der mbe-Datei ist mir noch aufgefallen, dass ich danach bei Deinem Bahnhof "Moiré"-Effekte hatte, die es bei Deinen orignalen Modellen nicht gibt. Wieso das so ist, weiß ich nicht. Es liegt jedenfalls nicht an den inhaltlichen Änderungen und den Verkleinerungen der Texturen, weil ich denselben Effekt auch dadurch bekommen habe, dass ich die DDS-Texturen einfach kopiert und gleich wieder überschrieben habe, ohne am Texturinhalt irgendetwas geändert zu haben. Es muss also damit zusammenhängen, wie man die Textur als DDS-Datei abspeichert. Leider habe ich mit DDS-Dateien keinerlei Erfahrung und kenne mich mit Paint.net nur sehr "marginal" aus, sodass ich da bisher keine "Steuerungsmöglichkeit" sehe. Vielleicht weiß ja Neo, wie es zu den Moiré-Effekten allein durch Überschreiben der DDS-Datei mit dem originialen Inhalt kommen kann. Jedenfalls sehe ich hier keinen Zusammenhang mit den von mir durchgeführten Änderungen an Deinen Texturen. Ich könnte mir also vorstellen, dass dann, wenn Du Deine Modelle mit den möglicherweise in der vorgeschlagenen Art veränderten Texturen erneu hochlädst, die Moiré-Effekte wieder weg sind. Viele Grüße BahnLand
-
Suche einen EV-Steuerung anfertigt für ein Gaudi
Hallo Hans, der Schriftzug gefällt mir. Nur beim "M" solltest Du eventuell darauf achten, dass es nicht zu sehr an die Gastronomiekette erinnert, bei der es "Knetbrötchen" mit "was dazwischen" und "Ketchup" gibt (wegen möglichen Urheberrechtsproblemen beim Veröffentlichen). Wenn Du Dich bei den Rundungen des "M" beispielsweise eher an der Form von Tunnelportalen orientierst, wirst Du hier sicher keine Probleme bekommen, und der Bezug zur Eisenbahn ist auch hier noch einmal hergestellt (nur ein Vorschlag). Viele Grüße BahnLand
-
Definierter Vorschub
Hallo EASY, das sieht schon beeindruckend aus. Klasse gemacht!
-
Genesung FeuerFighter
Hallo Sputnikk, auf die Idee mit den Sonderzeichensätzen muss man erst mal kommen - gute Idee von Dir! Ich wusste gar nicht, dass dieser Zeichensatz auch auf meinem PC vorhanden ist. Also FeuerFighter: Auch von mir viele ♥♡ für eine schnelle Genesung, damit Du bald wieder ♧♤ ausreißen und wieder viele schöne ⛟ ⛟ und andere Modelle für uns bauen kannst. Viele Grüße BahnLand
-
Gleise ausrichten
Hallo Michael (M+M), Bei Modellgleissystemen, bei denen ein Flexgleis fehlt, hat mann fast immer das Problem, dass man "Diagonalen" mit den vorgebenen "Raster"-Gleisen nicht exakt hinbekommt. In der Modellbahn-Realität ist dies bei kleinen Diskrepanzen (wie bei Deinem Beispiel) nicht weiter schlimm, weil man kleine Lücken leicht mit dem Schienenverbinder überbrücken und kleine Überlängen oder seitliche Diskrepanzen durch etwss "Verschieben" und "Verbiegen" der Gleise korrigieren kann. Modellbahn-Programmearbeiten dagegen immer "exakt", wobei auch schon etwas kleinere Differenzen dazu führen können, dass in der Fahrsimulation die Lok an der "Lücke", der "Überschneidung" oder dem Versatz hängen bleibt. Bei rein virtuellen Anlagen kann man sich dann dadurch behelfen, dass man einfach ein Flexgleis einbaut - auch wenn das verwendete Gleissystem ein solches gar nicht anbietet (dann nimmt man es eben von einem anderen Gleissystem). Für eine zukünftig reale Modellbahn-Anlage planen kann man aber trotzdem, indem man beispielsweise das "nicht ganz passende" Modellgleis, das dann in der Realität einfach "hingebogen" werden soll, durch ein Flexgleis ersetzt und dieses wie das ersetzte Modellgdleis benennt. Dann müssten nämlich auch die Gleislisten wieder korrekt erstellbar sein (bei Deinem Beispiel würde ich die "Lücke" zur Mitte hin in die DIagonale hinein verschieben, um die Ersetzung durch ein Flexgleis zu ermöglichen). Zu Deinem abgebildeten Gleisplan habe ich noch folgende Beerkungen: Mach Dir nicht zu viel Mühe, eine "korrekte" Gleiskombination herauszufinden, bei der die kleine dort vorhandene Lücke tatsächlich geschlossen wird. Denn im Realen wirst Du Steigungen einbauen müssen, die zu einer zusätzlichen Verlängerung der realen Gleisstrecken führt. Auch wenn Du im Modellbahn-Studio ein Gleisstück schräg stellst, wird es von direkt oben gesehen (in der 2D-Ansicht) vermeintlich kürzer (in Wahrheit wird die Strecke länger). Du müsstest dann also sowieso neue Gleislängen berücksichtigen. Sind die Steigungs- bzw. Gefälle-Strecken von dem oberen mittleren Weichenpaar ausgehend bis zur jeweiligen Gleisüberschneidung nicht etwas kurz geraten, um den unteren Zug unter dem oberen Gleis ohne "Anstoßen" hindurch fahren lassen zu können? Selbst wenn Du beide betroffenen Streckenäste hinter jeder Weiche neigst (den oberen anhebst und den unteren absenkst), musst Du für jedes Gleisstücjk (im SChnitt 18 cm) eine Höhendifferenz von mindestens 1 cm einplanen, damit der untere Zug unter dem oberen Gleis hindurch passt. Viele Grüße BahnLand
-
Rechnen mit Variablen
Hallo Michael, ein kleines Beispiel: Ereignis: Geschwindigkeit negieren Auslöser: Zug verlässt ein Gleis Lok='[Alle Loks]' Gleis='Ereignisgleis' Aktion: Variable setzen Name='Geschwindigkeit' Wert='$_Trigger1._CurrentSpeed' Aktion: Variable setzen Name='Geschwindigkeit' Wert='*-1' Aktion: Lokgeschwindigkeit setzen Lok='[Auslöser 1: Lok]' Gleis='[Alle Gleise]' Geschwindigkeit='$Geschwindigkeit' Ist-Geschwindigkeit setzen='0' Aber warum möchtest Du die Lok aus voller Geschwindigkeit "wenden" lassen? In der Realität würde dies zumindest bei Autos zu einem Getriebeschaden führen. Viele Grüße BahnLand
-
Probleme mit dem Tunneleditor
Hallo Michael, Bei senkrechten Wänden, die höher als das Tunnelportal selbst sind, wirst Du die überstehenden Löcher oder Schluchten (wie Du sie in einem anderen Beitrag genannt hast) nicht weg bekommen. Da die Löcher immer senkrecht von oben in die Landschaftsoberfläche "gestanzt" werden. Du musst also sicherstellen, dass Deine beim Tunnnelportal mit einem Loch zu versehende Landschaftsoberfläche dort leicht schräg ist. Wenn es wie in Deinem obigen Bildbeipiel möglich ist, das Tunnelportal entlang des Rastergitters auszurichten, ist es ganz einfach: Die erste Rasterlinie, die vom Tunnelportal überdeckt wird, wird auf dem Niveau des Tunnelportal-Bodens fixiert. Die Rasterpunkte der dahinter liegenden Rasterlinie werden auf eine minimal unter der Tunneloberkante liegende Linie angehoben. Beim Tunnelportal mit rechteckigen Außenmaßen (wie in Deinem Bild) können diese Rasterpunkte daher alle die gleiche Höhe besitzen. Bei anderen Außenprofilen des Tunnelportals müssen die Punkte dieser Rasterlinie möglicherweise individuell auf verschiedene Höhen angehoben werden. Die Punkte aller weiteren Rasterlinien kannst Du dann nach Deinen Wünschen für das Landschafsprofil beliebig anheben. Schau Dir bitte hierzu wie bereits hier vorgeschlagen diesen Beitrag an. Da habe ich die ganze Problematik und den Lösungsweg ausführlich beschrieben. Die Setzlok mit der Bezeichnung "SX1" findest Du im Online-Katalog im Verzeichnis "3D-Modelle - Bahn - Rollmaterial". Viele Grüße BahnLand
-
Ist es ein Bug oder ein Feature?
Hallo Michael, das ist ein "ganz normales Verhalten" und auch ganz leicht erklärt: Auch wenn es etwas "komisch" klingt, so sind der Fußgänger und der Radfahrer aus der Sicht des Modellbahn-Studios "Rollmaterial". Wenn Du nun den Fußgänger oder den Radfahrer anklickst, werden unten rechts im Programmfenster dessen Eigenschaften eingeblendet. Dort gibt es insbsondere die Eigenschaft "Automatischer Richtungswechsel", der bei Deinen beiden Rollmaterialien jeweils angekreuzt ist (siehe roter Pfeil). Dies bedeutet, dass beispielsweise der Radfahrer an den beiden offenen Enden der linken Kreuzungen die Geschwindigkeit umkehrt, aber nicht "wendet". Er fährt also in einer Richtung immer rückwärts. Die beiden Kreuzungen auf dem vorderen Gleis sind so angeordnet, dass die leweils äußeren Enden mit den Enden des vorderen gerade Gleises zusammen fallen (siehe blaue Pfeile). Das Modellbahn-Studio sieht deshalb hier nicht zwei Gleisenden (nämlich jenes des geraden Gleisstücks und jenes der darübergelegten Kreuzung, sondern eine Gleisfortsetzung zwischen geradem Gleis und Kreuzung. Der Weg des sich auf dem geraden Gleisstück fortbewegenden Fußgängers wird also auf der "anschließenden" Kreuzung einfach fortgeseztzt, wobei dann logischerweise nicht die Geschwindigkeit des Fußgängers umgekehrt, sonderm entsprechend dem "Gleisverlauf" dessen Orientierung gedreht wird. Darum "wendet" hier der Fußgänger. Das ist so tatsächlich in einigen Situationen gewollt. Kommt der Fußgänger nun zum inneren Ende von einer der beiden Kreuzungen, hört hier das Gleis auf, weil das "darunter" liegende gerade Gleisstück nicht als "Fortsetzung" erkannt wird (es geht ja bis zum äußeren Ende der Kreuzung durch und hat damit hier keinen Andockpunkt). Also verhält sich hier der Fußgänger wie der Radfahrer auf seiner Spur: Er kehrt die Geschwindigkeit um, ohne seine Orientierung zu wechseln. Wenn Du bei beiden Akteuren das Häkchen beim "Automatischen Richtungsechsel" entfernst, wird der Radfahrer jeweils an den Enden der beiden linken Kreuzungen und der Fußgänger jeweils an den inneren Enden der beiden vorderen Kreuzungen stehen bleiben. Viele Grüße BahnLand
-
Lobos Bordmittelmodelle
Hallo Eckard, uiiiih - da hat's ja noch viel Platz für "Groß Pretschenforf". Frage an Lobo: Hat(te) Pretschedorf eigentlich auch einen Bahnhof im Stil der anderen Gebäude? Der mometan neben dem "Dorf im Entstehen" platzierte moderne "Bahnhofsklotz" wirkt auf mich etwas "deplatziert" - auch wenn dies durchaus auch in der Realität so vorkommt. Ich könnte mir auch "Trossingen Bahnhof", "Fa 92 Kleinstation", "Bahnhof Fürstenberg" oder "Bahnhof Budenheim" als passende Alternativen vorstellen. Viele Grüße BahnLand
-
Lobos Bordmittelmodelle
Hallo Lobo, Als "Bauhaus", "...-Philharmonie" oder "Concress-Centrum" wäre dieses Gebäude-Modell wahrscheinich anstandslos akzeptiert worden. Viele Grüße (bin mal wieder spaßig aufgelegt) BahnLand
-
Probleme mit dem Tunneleditor
Hallo Michael ich habe versucht, Dein Problem nachzustellen, und bin zu dem Schluss gekommen, dass Du die "Tunnelsetz-Lok SX1" bezogen auf das für den Tunnel zu verwendende Tunnelsegment falsch platziert hast. Wenn die rot-grüne "Tunnelsetz-Lok" wie links im Bild dargestellt vor dem Tunnelsegment platziert ist, bekommt man genau den von Dir gezeigten Effekt. Wenn Du dagegen die Tunnelsetz-Lok genau in der Mitte des Tunnelsegments positionierst (wie rechts im Bild gezeigt), werden die Tunnelsegmente entlang des Gleisverlaufs korrekt angeordnet. Viele Grüße BahnLand
-
Die Frage ist: Gehts es eleganter?
Hallo Michael, am Besten liest Du Dir mal das Tutorial zu den Tunneldurchbrüchen in der Bodenplatte durch. Dort findest Du einige Informationen zu den prinzipiellen Eigenschaften der "Löcher" und Tipps, wie man diese möglichst eng um ein mögliches Tunnelportal begrenzt und anschließend geeignet "abdichtet". Einige Anwendingsbeispiele hierzu, die ich auf meiner Gotthard-Anlege realisiert habe, findest Du in diesem Beitrag. Die Gotthard-Anlage selbst ist im Online-Katalog in der Kategorie "Große Anlagen" unter dem Namen "Gotthard Nordrampe (in Betrieb)" zu finden. Ich denke, dass Du es mit diesen Hilfestellungen schaffst, Deine "Schluchten" auf einigermaßen passende Dunneldiurchbrüche zu reduzieren. Du kannst Dir auf der Gotthard-Anlage die Tunnel-Öffnungen (sprich "Löcher" in der Bodenplatte direkt ansehen, indem Du im Ansicht-Menü die Ebenen aktivierst und dann in der rechts angezeigten Ebenen-Übersicht die Ebene "Bauwerke Tunnelportale" ausblendest (zum Aus- und Einblenden auf das Auge klicken). Tunnelportale mit "echter" Öffnung (also ohne schwarze "Wand") und auch Tunnelröhren findest Du zuhauf im Online-Katalogverzeichnis Landschaft - Tunnel und in dem dort vorhandenen Unterverzeichnis Tunnel(CH).. Für das Setzen der Tunnelröhren entlang des Gleisverlaufs hat EASY eine "Tunnel-Setz-Maschine" gebaut, die Du im Modellbahn-Studio als Planungs-Plugin "Tunnel-Setzen" starten kannst. Viele Grüße BahnLand
-
Suche einen EV-Steuerung anfertigt für ein Gaudi
Hallo Hans, die Darstellung deiner 6-stelligen Festzkommazahlen (4 Stellen vor und 2 Stellen hinter dem Dezimalpunkt) wäre ja so einfach, wenn die Berechnung einer 8-stelligen Festkommazahl (bis zu 5 Stellen vor und bis zu 3 Stellen hinter dem Deszimalpunkt) im Modellbahn-Studio ordentich funktionieren würde. Denn dann könnte man die Zahlen 0000,00 bis 9999,99 in diesem festen Ausgabeformat immer dadurch darstellen, dass man die Zahl "10000.001" hinzuaddiert und dann die gesamte Zahl so hinter einer Maske anordnet, dass die beiden Einsen vorne und hinten durch die Maske abgedeckt werden (siehe die beiden Zahlen im oberen Teil des nachfolgenden Bildes). Leider lassen sich solche Zahlen im Modellbahn-Studio nicht durch eine Berechnung herstellen. Weist man einer Variable den Wert "10000.001" oder eine andere Zahl dieses Formats (Nullen durch andere Ziffern ersetzt) direkt zu, wird die Zahl ordentlich angeommen und kann daher auch in einem Beschriftungsfeld korrekt angezeigt werden. Wird diese Zahl aber berechnet, indem man beispielsweise die oben beschriebene Summe aus dem eigentlich darzustellendem Wert und der Zahl "10000.001" bildet, geht beim Ergebnis die "1" ganz rechts durch Rundung verloren. Zum Test der hier beschriebenen Zahlen-Darstellungen füge ich die zugehörge Testanlage entsprechend dem obigen Bild bei: Festkommazahlen.mbp Mit dem Schalter des oberen Beispiels aus dem Bild kann man sich abwechslungsweise das korrekte Ausgabeformat (kompletter Wert wurde der Variable direkt zugewiesen) und das "verfälschte" Format (Anzeige des durch Berechnung entstandenen Variablenwerts) anzeigen lassen. Ersetzt man während der korrekten Anzeige den Wert im Beschriftungsfeld ganz oben durch einen anderen Wert der Form "1xyzw.uv1", wobei die Buchstaben u-z beliebige Ziffern darstellen sollen, kann man diesen Effekt auch bei diesen anderen Zahlen beobachten. Frage an Neo: Ist das ein Fehler im Modellbahn-Studio oder lassen sich solch große Festkomma-Werte im Windows grundsätzlich nicht berechnen? Nun könnte man einfach die Anzahl der anzuzeigenden Stellen (vor oder hinter dem Dezimalpunkt) um 1 reduzieren. Dann würde das Demonstrationsbeispiel in der oberen Bildhälfte funktionieren. Möchte man dagegen unbedingt die 4 Stellen vor dem Dezimalpunkt und die 2 Stellen dahinter behalten, muss man sich etwas anderes einfallen lassen: Ich habe hierzu im dem in der unteren Bildhälfte darhestellten Beispiel die 8-stellige Festkommazahl (einschließich der vorne und hinten hinzugefügten Einsen) in zwei Abschnitte aufgeteilt (siehe die weißen Beschriftungsfelder rechts oben. Hierdurch wird garantiert, dass der linke Zahlenteil aufgrund der hinzugefügten 1 in der 1000er-Stelle immer 4-stellig ist. Genauso garantiert die 1 ganz rechts im rechten Zahlenteil die konstante Angabe von 3 Stellen hinter dem Dezimalpunkt. Die Aufspaltung wird zwischen die erste und zweite Stelle vor dem Dezimalpunkt gelegt, weil die 1er-Stelle die einzige ist, die immer dargestellt wird. Um die beiden Zahlenteile bei der Anzeige wieder zu einer Zahl ohne trennenden Zwischenraum zusammenschieben zu können, muss der Hintergrund der Beschriftungsfelder transparent gemacht werden. Das hieraus resultierende Ergebnis sieht man schließlich in den grauen Rahmen, wobei jener rechts absichtlich etwas transparent gehalten wurde, um die verdeckten Einsen zu sehen. Damit die Ziffern innerhalb der dargestellten Zahl immer denselben Abstand haben und damit auch mimmer an derselben Stelle positioniert sind, hab ich eine Schrift mit konstantem Zeichenabstand gewählt. Mir bekannte zum Windows-Standard gehörende Schriften mit festem Zeichenabstand sind Courier New (obere Anzeige im Beispiel) und Lucida Console (untere Anzeige im Beispiel, im Windows vorhanden mindestens seit Version 7). Die Verwendung dieser Schriftarten macht die getrennte Darstellung der einzelnen Ziffern in verschiedenen Beschriftungsfeldern und damit den erhöhten Berechnungsaufwand bei einer Änderung des Werts der Gesamtzahl überflüssig. Da es im Modellbahn-Studio leider keine Textmanipulations-Funktionen für Variablen und auch keine Rundungs-Funktion gibt, musste ich ein paar kleine Tricks anwenden. Insbesondere benutze ich die oben beschriebene (eigentlich nicht gewollte) Zwangs-Rundung. Im Einzelnen habe ich die Variablen wie folgt manipuliert: Variablen: Wert = Ursprünglich darzustellender Zahlenwert Vorne = Vorderer Teil des Zahlenwerts ab der 10er-Stelle aufwärts Hinten = Hinterer Teil des Zahlenwerts, bestehend aus 1er-Stelle und den Dezimalziffern hinter dem Dezimalpunkt Berechnungs-Abfolge: Vorne = Wert / 10 (Verschiebung der 1er-Stelle hinter den Dezimalpunkt) Vorne = Vorne + 1000000 (Addition von 1000000 erzwingt das oben beschriebene fälschliche Abschneiden der Dezimalstellen. Hierbei wird in Abhängigkeit vom Dezimalwert auf- oder abgerundet.) Vorne = Vorne - 1000000 (Rücknahme der für das Erzwingen der Rundung benötigten Million) Vorne = Vorne * 10 (Wiederherstellung der korrekten Position des Dezimalpunkts. Der Wert unterscheidet sich nun vom Ursprungswert durch die Auf- oder Abrundung auf ein ganzzahliges Vielfaches von 10) Vorne = Vorne - 10, falls der gerundete Wert größer als der Ursprungswert ist (Um diese Aktion nur bedingt ausführen zu können, ist sie in einem separaten Countdown-Ablauf realisiert, die von der vorangehenden Aktion direkt angestoßen wird (Wartezeit = 0). Für den weiteren "gemeinsamen" Ablauf wird in beiden Aktionszweigen (für Bedingung erfüllt und nicht erfüllt) ein weiterer Countdown-Ablauf mit Wartezeit 0 angestoßen.) Hinten = Wert - Vorne (Die Variable "Hinten" enthält nun den Anteil "<10" des ursprünglichen Werts, die Variable "Vorne" den Rest.) Vorne = Vorne + 1000 (Darstellung der 10er-, 100er- und 1000er-Ziffer des ursprünglichen Werts werden erzwungen, die vorderste Ziffer wird bei der Darstelung durch die Maske verdeckt.) Hinten = Hinten + 0.001 (Darstellung von 2 Stellen hinter dem Dezimalpunkt wird erzwungen, 1er-Stelle vor dem Dezimalpunkt wird immer angezeigt, dritte Stelle hinter dem Dezimalpunkt wird bei der Darstelung durch die Maske verdeckt.) Durch das Zusammenfügen der beiden Beschriftungsfelder mit den Ausgaben der Variablen "Vorne" und "Hinten" und das Verdecken der ersten und letzten Ziffer der Gesamtzahl erhält man die Anzeige des ursprünglichen Werts schließlich im gewünschten Format "xxxx.xx", wobei auch führende und abschließende Nullen mit dargestellt werden. Wie die mit diesem Algorithmus hergestellte Darstellung schließlich aussieht, kann man sich im unteren Beispiel der beigefügten Demo anschauen, wobei die darzustellende Zahl über getrennte Schalter für jede Stelle hoch- (obere Schalterzeile) und heruntergezählt (untere Schalterzeile) werden kann. Beim Spielautomaten wird man dann anstelle der hier platzierten Ziffern-Schalter die berechnete 6.stellige Zahl (4 Stellen vor und 2 Stellen hinter dem Dezimalpunkt) direkt als Ursprungs-Variablen-Wert verwenden. Eine explizite Behandlung der einzelnen Ziffern ist somit nicht mehr erforderlich. Viele Grüße BahnLand
-
Lobos Bordmittelmodelle
Hallo Lobo, eigentlich wird einem erst durch die hier gezeigten Anlagen-Präsentationen so richtig klar, wie fleißig Du in den letzten Wochen warst. Das komplette Dorf, bei dem die gesamte Modellvielfalt auf einen Blick zu sehen ist, und damit die Harmonie zwischen den einzelnen Gebäuden erst so richtig zu Geltung kommt, steigert den ohnehin schon positiven Eindruck der Einzelgebäude gewaltig. Das ist schon eine tolle Leistung, die Du da erbracht hast und noch weiter erbingst. Viele Grüße BahnLand
-
Erweiterter DirectX-Exporter
Hallo Brummi, auf jeden Fall ist es gut, dass Du Deine Variante hier veröffentlicht hast. Es könnte ja sein dass es auch bei anderen nicht so funktioniert wie ich es beschrieben habe. Welches Kriterium letztendlich dafür verantwortlich ist, welche Variante nun bei wem "die richtige" ist, werden wir wohl nie herausfinden. Jedenfalls vielen Dank für Deine Information. Viele Grüße BahnLand
-
Erweiterter DirectX-Exporter
Hallo Brummi, jetzt bin ich aber total verwirrt: Ich habe neben Sketchup V8 die beiden neuen Versionen Sketchup 2016 und Sketchup 2017 installiert. Daher gibt es bei mir im AppData-Bereich auch die beiden Verzeichnisse C:\Users\<username>\AppData\Roaming\SketchUp\SketchUp 2016\SketchUp\Plugins und C:\Users\<username>\AppData\Roaming\SketchUp\SketchUp 2017\SketchUp\Plugins. In beiden Verzeichnissen habe ich den DirectX-Exporter angelegt und kann daher den Exporter sowohl in Sketchup 2016 als auch in Sketchup 2017 aufrufen. Die beiden Verzeichnisse C:\Users\<username>\AppData\Roaming\SketchUp\SketchUp 2016\SketchUp\Tools und C:\Users\<username>\AppData\Roaming\SketchUp\SketchUp 2016\SketchUp\Tools gibt es bei mir dagegen nicht. Wenn ich dieses neu anlege und das Exporter-Script (die rb-Datei) dorthin verschiebe, ist beim erneuten Start von Stektchup der Menüpunkt "Erweiterungen" verschwunden. erst wenn ich die rb-Datei in das Plugins-Verzeichnis zurückschiebe, ist der Menüpunkt beim erneuten Statt von Sketchup wieder da, und ich kann den Exporter aufrufen. Ich habe nun auch das Prorammverzeichis von Sketchup 2016/2017 angeschaut und dort tatsächlich jeweils das Unterverzeichnis Tools gefunden: C:\Program Files\SketchUp\SketchUp 2016\Tools und C:\Program Files\SketchUp\SketchUp 2017\Tools. Dort sind auch eine Menge von Sketchup-Rupy-Scripts und die "StandardlLib" von Ruby abgelegt. Also habe ich versucht, auch den DirctX-Exporter dort mit hinein zu packen (geht allerdings nur mit Administrator-Berechtigung, da es sich bei dem Programme-Verzeichnisbaum um einen System-Verzeichnisbaum handelt). Wenn ich danach wieder die entsprechende Sketchp-Version starte, ist auch hier der DirectX-Exporter im Hauptmebü von Sketchup nicht sichtbar. Bei mir funktioniert also tatsächlich nur die Variante C:\Users\<username>\AppData\Roaming\SketchUp\SketchUp 2016\SketchUp\Plugins und C:\Users\<username>\AppData\Roaming\SketchUp\SketchUp 2017\SketchUp\Plugins. Was ist an Deinem System anders als bei meinem? Ich habe Windoes 10 Home (64 Bit, Version 1607) im Einsatz. Viele Grüße BahnLand
-
Suche einen EV-Steuerung anfertigt für ein Gaudi
Hallo Hans, bei der Ereignisdefinition "Zug betritt Gleis" musst Du ja das Gleis explizit nennen. D.h. Du benötigst für jedes Gles, für das der zugehörige Wert ausgegeben werden soll, eine "Zug betritt Gleis"-Definition. Da Du allen Gleisen als Bezeichung die jeweils zu übergende Zahl zuweisen möchtest, ist die Feststellung dieses Werts dann ganz einfach: Beispiel: Zug betritt Gleis "40" --> Wert = $_Trigger2._Name Du könntest natürliich als Wert dann auch explizit Wert = 40 verwenden, da Du ja dieses Ereignis sowieso für jedes betroffene Gleisstück definieren musst. Da sich bei den vielen gleichartigen Ereignisdefinitionen jedoch das Kopieren anbietet, kommst Du mit der Verwendung von $_Trigger2._Name schneller voran. Den dann musst Du in jeder Ereignisdefinition das Gleis nur noch im "Ereignis" anpassen, während in der "Aktion" der Gleisname über die Variable $_Trigger2._Name automatisch erkannt wird. Beachte aber bitte, dass dann, wenn z.B. das Gleis "40" mehrmals existiert (mindestens 1mal in jedem Oval), Du auch die ERegnisdefinition für jedes dieser Gleise "40" separat bereitstellen musst (Du musst dann im "Ereignis" auch immer das "richtige" Gleis "40" auswählen). Eine andere Möglichkeit bestünde darin, alle Gleise nicht mit den Zahlenwerten als Namen zu versehen, sondern jeweils eindeutige Gleisnamen zuzuweisen. Und dann für jedes Gleis eine Objektvariable "Wert" zuzuweisen. Beispiel: Gleis xyz besitze die Objektvariable "xyz.Zahl" mit dem Inhalt "xyz.Zahl = 40". Dann würde die Ereignisdefinition wie folgt aussehen: Zug betritt Gleis "xyz" --> Wert = $_Trigger2.Zahl Vorteil gegenüber der ersten Variante: Die Eindeutigkeit der Gleis-Bezeichnungen macht es einfacher, alle Gleise zu berücksichtigen und nicht versehentlich eines zu übersehen. Viele Grüße BahnLand