ForwardFrame

This element defines a cartesian coordinate system based on a parent coordinate system by rotations about given angles about 1, 2 or 3 axes.

Attributes

Attribute Default Description Required
name
name of the element Yes
visibleVectorLength
100 Wenn das Flag isVisible="true" gesetzt wurde, kann mit diesem Attribut die Länge der Vektoren zur Darstellung der Tripoden geändert werden. 
No
rotationOrder
xyz Reihenfolge der Achsen.
No
Position
Origin of the coordinate system defined in coordinates with respect to the axes of this system but to the origin of the parent coordinateSystem.
Das darf dann auch nur als Vektor transformiert werden, das muss ich noch überprüfen
Yes
coordinateSystem
Yes
RotAxis
The coordinate system can be defined by a rotation about the RotAxis by RotAngle of the given parent coordinate system. If you want to rotate about a axis of the given coordinate system use e.g. <name>_X for a rotation about the x axis. If you want to define the coordinate system by a sequence of two or three rotations about orthogonal axes use the attribute EulerCardanAngles. No
RotAngle

No
EulerCardanAngles
(besser RotationAngles)

If the attribute coordinatesSystem ist set the coordinate system can be defined by a sequence of three rotations about the axes of this coordinate system. The needed three angles are defined as mathematical formula defining a 3d vector, e.g. "vec(10.0,0.0,0.0) for defining a one step rotation about the first axis.  The sequence of the corresponding axes is defined by the attribute orientation. If only one or two rotations are needed you can set the other angles to 0.

Rotation um 2 Achsen lässt sich so allerdings nicht sinnvoll definieren, da ja nur Drehungen um zwei segmentfeste achse möglich ist. Beliebige Achsen sind dann in der Regel aber sinnvoll. Vielleicht brauche ich dann doch weitere Attribute wie
RotFirstAxis, RotSecondAxis, RotThirdAxis. Dann könnten die Winkel als Drehungen um diese Achsen interpretiert werden. Allerdings ist dann die Benennung EulerCardanAngles unglücklich denn das sind ja dann keine EulerCardan mehr
--> besser umbenennen in RotationAngles1

Die Syntax in unglücklich, da die Winkel keinen Vektor bilden. Schöner wäre es die Einzelkomponenten mit einzelnen Attributen zu setzen! Das ist dann allerdings unpraktisch, da ja <EulerCardanAngles> eine Vektor3d bereits liefert ...
No

Notes

Es fehlt noch die Möglichkeit eine 2-step rotation zu formulieren also um 2 nicht notwendig rechtwinklig zueinander stehende Achsen. Um drei nicht orthogonale Achsen nacheinander drehen wäre auch toll, damit könnte ich dann JCS=Cardan verifizieren ... Erzeugte Trajektorien: <name> vom Typ Matrix3d, <name>_X, <name>_Y, <name>_Z vom Typ Vector3d das sind die Spalten der Matrix3d d.h. die Achsen bzw. Richtungsvektoren des Koordinatensystems. Ausserdem <name>Position das ist der Unsprung des Koordinatensystems in Laborkoordinaten

Examples

aus Referenzsystem durch Drehung um die angegebene Achse und den angegebenen Winkel:

<ForwardFrame name="A"
coordinateSystem="B"
RotAxis="x"
RotAngle="30"
Position="C"/>


aus Referenzsystem durch Drehumg um drei Euler/Cardan-Winkel um die Achsen des Referenzsystems:

<Real name="RShankLength">500.2</Real>
<ForwardFrame name="A"
coordinateSystem="B"
rotationOrder="zxy"
EulerCardanAngles="vec(30.0,2.0,33.0)"
Position="vec(0.0,0.0,RShankLength)"/>
          In der Regel sollte ein FowardFrame so definiert werden, dass seine Position auf einer der Achsen liegt.