Der Achsendialog - Kopplungen
Inhaltsverzeichnis
- 1 6. Der Achsendialog - die Kopplungen unseres Modells
- 2 6.1. Erstellen einer neuen Achse
- 3 6.2. Position, Richtung und Transformation der Achsen
- 4 6.3. Systemachsen
- 5 6.4. Benennung von Achsen
- 6 Die Vergabe eines Achsen-Namens und dessen Schreibweise
- 7 6.5. Kopplung von Achsen
- 8 6.5.1. Berechne Rotation
- 9 6.5.2 Reentry-Funktion
- 10 Weitere Kopplungs- und Achsenoptionen
6. Der Achsendialog - die Kopplungen unseres Modells
Der Achsendialog (Kopplungen) ist - wenn wir so wollen - das Herzstück unseres Modells. Hier fließen alle Objekte, die wir vorher aus einzelnen *.kon-Dateien erstellt haben, zusammen. Unsere Objekte fließen hier allerdings nicht nur irgendwie zusammen, sondern werden in diesem Dialog an ihre Position gebracht, mit Rotations- oder Translationseigenschaften ausgestattet und ggf. untereinander gekoppelt. Intern erstellt der HomeNos von jedem auf einer Achse hinterlegten Objekt beim späteren Export des Modells eine sogenannte *.mod3-Modelldatei. (vgl. hierzu "Das erste Projekt anlegen":Hierarchie-Ebenen des HomeNostruktor)
Komplexe Modelle, vor allem Rollmaterialien wie z.B. Lokomotiven, bestehen zumeist aus einer Vielzahl an beweglichen Teilen wie z.B. Rädern, Achsradsätzen, Gestängen, Stromabnehmern, Türen, Klappen usw. Alle Teile des 3D-Modells, die beweglich sein sollen, werden dabei auf Achsen, die sogenannte Transformationsachsen gesetzt. Den jeweiligen Achsen selbst werden dann über den Achsendialog Translationen (Parallelverschiebungen), Rotationen (Drehungen) oder Skalierungen (Veränderungen der Größe) zugeordnet. Im Home-Nostruktor werden diese Transformationsachsen als vereinfachte mathematische Achsenkreuze (Abszisse und Ordinate) symbolisiert, wie wir sie im nachfolgenden Beispiel bereits erkennen können.
6.1. Erstellen einer neuen Achse
Das Anlegen einer neuen Transformationsachse wird "Kreuzen" genannt. Um nun eine neue Achse im Dialog anzulegen, wählt man zuerst mit den Richtungsschaltflächen (Pfeile rechts neben dem "Modell:"-Dialog) die Achse an, welche unterkreuzt werden soll. Beginnt man soeben erst mit dem Anlegen der Achsen, so ist die erste zu unterkreuzende Achse die Basis. Achsen die aktiv angewählt sind werden rot dargestellt. Ist nun die gewünschte Achse aktiv (also rot dargestellt) betätigt man die Schaltfläche "Kreuzen"
Abb.1: Bsp. eines Achsendialogs einer Lokomotive, 2 Drehgestelle ( _vRadsatz + _hRadsatz [sog. Systemachsen]) 4 Achsen (_TreibRadsatz1, _Treibradsatz2, _Treibradsatz1-h, TreibRadsatz2-h) angetrieben (Kopplungen [blau dargestellt] aller _TreibRadsätze mit der Achse _Geschwindigkeit)
Jede der beweglichen Achsen eines Modells muss einen eindeutigen und nur einmal vorkommenden Namen besitzen. Die Vergabe des Achsennamens erfolgt in einem Dialogfenster, welches nun unmittelbar nach dem Linksklick auf die Schaltfläche A [Kreuzen] eingeblendet wird.
Abb. 2: Dialogfenster mit der Aufforderung zur Eingabe eines Achsennamens
6.2. Position, Richtung und Transformation der Achsen
Die Position einer Achse in unserem Modell bestimmen wir über das Setzen von X,Y und Z-Werten über das Dialog-Feld "Fußpunkt" in unserem Achsendialog.
Im Richtungs- und Orientierungsdialog geben wir der Achse die gewünschte Richtung vor. Wir bestimmen dort also, auf welcher virtuellen Linie im 3D-Raum die Transformation der Achse stattfinden soll. Die Eingabewerte in den in den X,Y, und Z-Feldern der Richtung und Orientierung erfolgen radial. Die radialen Werte können wir über die Schaltfläche "Berechne Rotation" berechnen lassen.
Die Transformation der jeweilig ausgewählten Achse bestimmen wir im Dialogfeld "Achsentyp". Dort haben wir die Möglichkeit der Achse Transformationen in Form von Rotation, Translation und Skalierung zuzuordnen. Dies tun wir im folgenden Dialog-Feld:
6.3. Systemachsen
Als Systemachsen unseres Modells werden alle Achsen bezeichnet, die für den späteren Einsatz unseres Modells in EEP unverzichtbar sind. Würden wir diese Systemachsen im Achsendialog nicht vergeben, wäre unser Modell für EEP später programmseitig nicht erkennbar und wir könnten es dort nicht einsetzen. Systemachsen zeichnen sich durch eine genau festgelegte Schreibweise aus. (z.B. _vRadsatz, _hRadsatz, wie wir sie beim Erstellen einer neuen Achse bereits kennengelernt haben.) Des Weiteren werden Systemachsen im HomeNos mit einen vorangestellten Unterstrich versehen. Durch Setzen dieses Unterstrichs sind sie für die manuelle Ansteuerung in EEP unsichtbar. Erfolgt die Setzung eines vorangestellten Unterstrichs nicht, können die jeweiligen Achsen in EEP mittels Schieberegler oder über Kontaktpunkte angesteuert werden
Beispiel von Systemachsen für Rollmaterial sind:
_vRadsatz:
- •Gibt die Drehachse des vorderen Radsatzes an. Dient dazu das Modell im Programm auf die Gleise zu stellen.
_hRadsatz:
- •Gibt die Drehachse des hinteren Radsatzes an. Dient dazu das Modell im Programm auf die Gleise zu stellen.
_Geschwindigkeit:
- •Dies muss eine Rotationsachse mit Drehwinkel von 0-361 Grad sein. Sie entspricht einem Treibrad mit Radius 1m
- •und wird vom Programm mit einer der Geschwindigkeit entsprechenden Rotationsgeschwindigkeit angesteuert. Man kann z.B eine Lokomotivsteuerung daran koppeln.
weitere Beispiele für Systemachsen sind:
_Wasser
_GravityX
_GravityY
_Schutt
Eine Auflistung aller Systemachsen mit zugehöriger Beschreibung ihrer Bedeutung, wie auch weitere Kurzbeschreibung zum Thema finden Sie in "Vorgaben,Normen,Empfehlungen\Achsennamen\Reservierte Achsennamen"
6.4. Benennung von Achsen
Alle weiteren Achsen neben den fest vorgeschrieben Systemachsen können Benennungen erhalten, die wir selbst definieren. In dem in Abb.1 dargestellten Achsendialog sind dies z.B. die 4 Achsen _TreibRadsatz-1, _Treibradsatz2, _Treibradsatz1-h, TreibRadsatz2-h
Die Vergabe eines Achsen-Namens und dessen Schreibweise
Bei der Vergabe eines Namens für eine Transformationsachse sollten wir allerdings folgende Sachverhalte berücksichtigen:
- 1.Alle Achsen, die zwar beweglich aber für den Anwender in EEP nicht von Relevanz sind - weil sie weder manuell mit einem Schieberegler manipuliert, noch über einen Kontaktpunkt gesteuert werden - sollten wie oben bereits ::erwähnt in ihrem Namen einen vorangestellten Unterstrich tragen. Denn steht einem Achsennamen ein Unterstrich voran, wird diese Achse im Steuerdialog der Achsenkontrolle von EEP nicht angezeigt - was der Übersichtlichkeit ::halber durchaus gewollt ist. Als Beispiel können wir einen Stromabnehmer anführen, der aus mehreren beweglichen Objekten und insgesamt vier Transformationsachsen besteht.
- Für den Anwender von EEP ist lediglich die Achse "Stromabnehmer" von Relevanz mit der er den Stromabnehmer aufrichten und absenken kann - alle anderen gekoppelten Achsen "_Oberarme", "_Unterarm" und "_Kuppelstange" werden zwar ::mitbewegt, aber im Steuerdialog der Achsenbewegung nicht aufgeführt.
- 2.Alle Achsen sollten einen kurzen, prägnanten und vor allem einmaligen Namen aufweisen, der sich innerhalb des Modells nicht wiederholt. Nur die Singularität eines Achsennamens ermöglicht eine eindeutige Ansteuerung dieser Achse. Sobald Sie einer Transformationsachse eine weitere Achse nachordnen, die den gleichen Namen trägt (z.B. unter die Achse "_Rad" kreuzen Sie eine weitere, gleichnamige Achse "_Rad") so werden augenblicklich beide Achsen gelöscht, weil sich deren logische Ansteuerung im Programm gegenseitig aufhebt!
- 3.Der Name einer Transformationsachse im Dialogfenster der Achsenschachtelung sollte als ein Einzelwort oder eine Wort- bzw. Kürzel-Kette aufgeschrieben werden, welche nicht durch Leerzeichen unterbrochen wird! Dies sollte ::auch dann eingehalten werden, wenn die (orthografisch korrekte) Bezeichnung aus mehreren Einzelwörtern besteht. Erzielt wird dies durch den Einsatz von Binde- und Unterstrichen, oder das direkte Hintereinadersetzen von ::Wörtern, oder Wort-Teilen. Beispiele:
- _Rad_vorne_rechts, _Rad-vorne-rechts, _RadVorneRechts,
- (oder noch besser, weil kürzer) _RadVoRe.
- 4.Um die Dateiregister möglichst kurz zu halten, sollte auf Sonderzeichen und deutsche Umlaute, wie: §, $, %, &, *, /, \, ä, ö, ü, ß gänzlich verzichtet werden! Auch wenn die Schreibweise "Tuer" länger zu sein scheint als "Tür", so müssen intern längere Zeichenketten benutzt werden, um die Namen für die Berechnung der Kinematik aufzubereiten.
- 5.Zurzeit gibt es 25 reservierte Achsennamen, sogenannte Systemkreuze, die ausschließlich zum Aufruf von Programmfunktionen genutzt werden dürfen. Sie sind gut damit beraten, sich die Namen und die Funktionsweise der ::Systemkreuze einzuprägen, um mögliche Fehlfunktion der Modelle zu verhindern.
6.5. Kopplung von Achsen
Mit der Kopplung von Achsen untereinander versetzen wir diese in Abhängigkeit zueinander. Die Abhängigkeit kann gleichläufig oder gegenläufig sein, d.h. die zur Kopplung ausgewählte Achse und die mit ihr zur Kopplung gebrachte Achse bewegen sich auf ihren vorher festgelegten Transformationachsen (Rotation, Translation, Skalierung) entweder in die gleiche Richtung oder verhalten sich gegenläufig. Die jeweilige Kopplung wird mit einem sogenannten Kopplungswert versehen und dadurch aktiv. Der Kopplungswert regelt das Verhältnis in welchem die gekoppelten Achsen aufeinander reagieren sollen. Das Verhältnis kann im Wert 1:1 (bei Eingabe von = 1) sein, aber auch in einem anderen Verhältnis stehen. Die Kopplung nehmen wir über das folgende Dialogbild, daß wir über die Schaltfläche "Koppeln" aufrufen vor:
Die Kopplung ist immer für die vorab ausgewählte Achse (in rot dargestellt) aktiv. Betrachten wir das obige Beispiel so sehen wir die Achse _TreibRadsatz1 als die aktive, ausgewählte Achse. Diese Achse wird im Kopplungsdialog gerade mit der Achse _TreibRadsatz2 mit einem Kopplungswert=1 gekoppelt. Das heißt die 2.Radsatzachse _TreibRadsatz2, zugehörig zum vorderen Radsatz bzw. Drehgestell, wird durch das koppeln mit der 1.Radsatzachse _TreibRadsatz1 in Gleichlauf (da der Kopplungswert = [+]1) versetzt und durch den Wert [+]1 wird der Gleichlauf im Verhältnis 1:1 erfolgen. Verhältnis 1:1 bedeutet an dieser Stelle, wenn sich das Rad des _TreibRadsatz1 mit einer Drehgeschwindigkeit x bewegt, so wird sich das Rad der Achse _TreibRadsatz2 mit derselben Drehgeschwindigkeit x bewegen.
Wünschen wir, dass sich die gekoppelten Achsen gegenläufig zueinander verhalten, so setzen wir vor den Kopplungswert ein Minus [-]. Und möchten wir z.B. weiter, daß sich die zur Kopplung ausgewählte Achse mit der Hälfte der Drehgeschwindigkeit x zur ausgewählten, aktiven Achse verhält, so setzen wir den Kopplungswert auf 0.5. Dieses Verhältnis können wir je nach gewünschtem Ergebnis verändern. (für ein Zehntel der Drehgeschwindigkeit x setzen wir den Kopplungswert = 0.1, usw.)
Wichtig: Für alle Systemachsen und sonstige Achsen, die sich im späteren Modell mit der gesetzten Geschwindigkeit in EEP verhalten sollen, ist ein Kopplung der jeweiligen Achse mit der Systemachse _Geschwindigkeit notwendig. Die Kopplung kann direkt mit der Systemachse _Geschwindigkeit erfolgen - sie kann aber auch indirekt erfolgen. Indirekt heißt an dieser Stelle, dass wenn wie in unserem obigen Beispiel die beiden Achsen _TreibRadsatz1 und _TreibRadsatz2 bereits miteinander gekoppelt sind, dass EINE Kopplung mit der Achse _Geschwindigkeit, d.h. entweder der Achse _TreibRadsatz1 oder _TreibRadsatz2 mit _Geschwindigkeit ausreicht, um beide Achsen mit der Geschwindigkeit in EEP laufen zu lassen.
6.5.1. Berechne Rotation
Das Fenster zum Koppeln der Achsen verfügt über eine zusätzliche Schaltfläche zur Berechnung der Rotation. Diese Schaltfläche ermöglicht die Eingabe der Rotationsstellung einer Achse im Winkelmaß in °(Grad). Die dort eingegebenen Winkelmaße werden bei Bestätigung über OK automatisch in die radiale Winkeldarstellung umgerechnet (Abb.2). Somit entfällt die "händische" Umrechnung in das radiale Winkelmaß, was das Setzen der Rotation vereinfacht.
Abb.1.: Berechne Rotation mit Dialog
Abb.2: Automatische Umrechnung in das radiale Winkelmaß
6.5.2 Reentry-Funktion
Die Reentry-Funktion in unseren Kopplungen ist immer dann von Nöten, wenn Achsen mit Dreh- und Schiebebewegungen miteinander gekoppelt werden müssen. In vielen Fällen zeigt sich zwar, daß bei der Nachbildung einer Maschinerie, die Kopplungen der Achsen mit sehr einfachen Zahlenverhältnissen erfolgen können. So koppeln wir z.B. zwei Treibradachsen einer modernen Lokomotive oder eines Triebwagens mit dem Kopplungswert +1, da die Treibräder beide auf Rotationsachsen liegen und sich in derselben Richtung bewegen. Bei komplexeren Antriebsarten, wie einem Pleuelstangenantrieb einer älteren Elektrolokomotive (Bsp.: E52, Krokodil etc.) oder dem Antrieb einer Dampflokomotive über einen Zylinder, Treibstange und Treibrad müssen wir allerdings einen anderen Weg bei den Kopplungen gehen.
Abb.: vereinfachtes Schaubild Zylinder - Treibstangenantrieb BR01
Wie wir im obigen Schaubild erkennen können besteht das Antriebsprinzip einer Dampflok vereinfacht aus den Einheiten:
Im Zylinder haben wir eine Translationsbewegung, bei der Treibstange eine Mischung aus einer Translations- und Rotationsbewegung, und bei den Treibrädern finden wir eine reine Rotationsbewegung.
In unseren Modellen gilt es nun diese unterschiedlichen Achsenbewegungen "zusammen zu bringen" - was wir über die automatische Berechnung der Reentry-Funktion tun. Wir sehen uns dies nun an einem Beispiel an. Im nachfolgenden Dialog sehen wir nun die Achse _Treibachse (Treibrad) unterkreuzt mit der Achse _Treibstange, unterkreuzt mit der Achse _Zylinderstange-Kreuzkopf, die wiederum mit einer Leerachse _leer unterkreuzt ist. Die Achsen _Treibachse (Treibrad), _Treibstange und _Zylinderstange-Kreuzkopf sind im Kopplungsdialog unseres Modells alle als Rotationsachsen definiert. Die Translationsbewegung der "Maschinerie" des Antriebs einer Dampflok wird durch die Leerachse _leer in den Ablauf eingebracht.
Um nun die Rotationsbewegungen und die Translationsbewegung miteinander zum "Laufen" zu bringen, versehen wir die Translationsachse _leer nun mit einem Reentry.
Reentry bedeutet nun, daß wir die Translationsbewegung der Achse _leer (von der aus wir das Reentry auslösen) über das Reentry von _Treibachse hierarchisch vor die Achse _Treibachse setzen und durch die Kopplung, die das Reentry ebenfalls bewirkt, die zwischen den Achsen _leer und _Treibachse liegenden Achsen mit in die Kopplung mit aufnehmen.
Die Berechnung der Kopplungen und die Aufnahme der Achsen, die sich zwischen der Achse von der aus wir das Reentry auslösen bis zur Achse die wir mit Reentry von: bestimmen, befinden, lösen wir mit "Bewegung berechnen" aus.
Anhand des Zahlenwertes "Güte der Lösung" können wir erkennen wie qualitativ gut, die automatisiert gefundene Lösung ist. Umso größer der Zahlenwert dort ist, umso "schlechter" ist die gefundene Lösung. Entspricht er 0.00000 ist die Berechnung optimal. Um ein hier erreichtes , schlechtes Ergebnis zu verbessern empfiehlt es sich die Bewegungsbereiche der einzelnen Achsen zu überprüfen.
Ob das Reentry im Dialog gesetzt ist erkennt man an der etwas versetzt ausgeführten Verbindungs-/Kopplungslinie zwischen _leer und _Treibachse.
Beim Reentry ist grundsätzlich darauf zu achten, dass alle integrierten Achsen genügend Bewegungsbereich haben und somit den vorgesehenen Bewegungsbereich der gesamten "Maschinerie" mitgehen können. Der Bewegungsbereich sollte allerdings auch nicht unnötig groß gewählt werden, da dies die Qualität der gefundenen Lösung verschlechtert. Vor der Reentryberechnung kann dies zunächst über "Achsen bewegen" im 3D-Fenster ausprobiert werden: Läßt sich dort eine Achse nicht in die gewünschte Position bringen, ist ihr Wertebereich falsch eingestellt.Ein Wertebereich Max >= 360 Grad für eine Drehachse bedeutet zyklische Bewegung. Alle Nullstellungen der Achsen müssen eine gültige Stellung des Achsensystems ergeben. Die Achse die mit dem Reentry belegt wird muss eine Nullstellung = 0.0 aufweisen.
Und nun abschließend die Ansicht des Reentry-Beispiels im 3D-Betrachter:
Weitere Kopplungs- und Achsenoptionen
Änderung der Achsenreihenfolgen
Möglichkeit zur Änderung der Reihenfolge der nicht gekoppelten Achsen. Hierzu muss die [SHIFT]-Taste auf der Computertastatur festgehalten und die ausgewählte Achse mittels der Cursor-Tasten an die gewünschte Stelle verschoben werden. Ohne die [SHIFT]-Taste loszulassen wird nun die Schaltfläche „Setzen“ betätigt, um die neue Reihenfolge abzuspeichern. Wichtig: Dies funktioniert nur bei nicht gekoppelten Achsen!
AUTO
Über die Funktion AUTO können die Achsen automatisch gekoppelt werden. Dabei wird der komplette Bewegungsbereich der ersten Achse mit dem kompletten Bereich der zweiten Achse gekoppelt.
Skalierung von Achsen
Skalierung der Achse. Analog zur bisherigen Rotation und Translation einer Achse, kann auch eine Skalierung der Achse erzeugt werden. Mögliche Anwendung fände diese Funktion z.B bei einem Kran, bei dem ein (bzw. mehrere) Seil(e) skaliert werden, was die Anzahl der benötigten Achsen-Modelle erheblich mindern würde. Auch bei einem Tachometer mit Balkenanzeige ist die Skalierung des Achsenmodells notwendig (Beispielprojekt „Velocity_speedometer_test“ aus dem Patch 2.34).