Skip to content
Menu

VIS-All 3D Handbuch

VIS-All 3D Handbuch

VIS-All® 3D Handbuch

Zugriff auf ein Feature

image_print

Zugriff auf gesteuertes Feature ( Symbol )

Der Zugriff auf ein gesteuertes Features funktioniert im objektorientierten Sinn. Es müssen ein oder mehrere Features mit dem Skript verbunden sein. Im Skript wird das Feature über die vordefinierte Variable this angesteuert. Auf this können dann die vom Feature unterstützten Methoden aufgerufen werden. Die unterstützten Methoden hängen vom Featuretyp ab. In der folgenden Tabelle sind alle Methode aufgelistet, die auf jeden Fall unterstützt werden. Alle diese Methoden verwenden float als Datentyp. Die Parameter der Geometriemanipulationen sind immer relativ zum Ausgangspunkt des Objektes zu verstehen.

Syntax

beginAnimationScene();

Beispiel

this.beginAnimationScene();’ Starte Animation

Beschreibung

Diese Anweisung gibt dem Feature bekannt, dass die Eigenschaften der Animation verändert werden sollen. Um alle anderen Methoden eine Features aufrufen zu können, muss zuerst diese Methode aufgerufen werden.

Syntax

endAnimationScene();

Beispiel

this.endAnimationScene();’Ende der Animation

Beschreibung

Diese Anweisung gibt dem Feature bekannt, dass die Manipulation der Eigenschaften abgeschlossen ist. Nachdem diese Methode aufgerufen wurde, können keine weitere Methode mehr auf das Feature aufgerufen werden.

Syntax

RotateX( float W);

Beispiel

this.RotateX( Pi );’Rotation 180 Grad um X-‘Achse

Beschreibung

Rotation des Features um seine X-Achse mit dem angegebenen Winkel.

Syntax

RotateY( float W);

Beispiel

this.RotateY( Pi );’Rotation 180 Grad um Y-Achse

Beschreibung

Rotation des Features um seine Y-Achse mit dem angegebenen Winkel.

Syntax

RotateZ( float W);

Beispiel

this.RotateZ( Pi ); ‘Rotation 180 Grad um Z-Achse

Beschreibung

Rotation des Features um seine Z-Achse mit dem angegebenen Winkel.

Syntax

RotateAxis( float X, float Y, float Z, float W);

Beispiel

this.Rotate( 1.0, 1.0, 0.0, Pi );’ Rotation um 180 Grad um X- und Y-Achse.

Beschreibung

Rotation des Features um X-,Y-,Z-Achse mit dem angegebenen Winkel.

Syntax

Translate( float X, float Y, float Z );

Beispiel

this.Translate( 5.0, 0.0, 0.0 ); ‘Verschiebung um 5.0 auf X-Achse

Beschreibung

Verschiebung des Features in Richtung X, Y, Z.

Syntax

Scale( float X, float Y, float Z );

Beispiel

this.Scale( 2.0, 1.0, 1.0 ); ‘Skalierung um 2.0 in X-Richtung.

Beschreibung

Skalierung des Features in Richtung X, Y, Z.

Animierte X-Symbole

Animierte X-Symbole bieten zwei weitere Methoden. Da für diese Art von Symbolen bereits eine Bewegungsfolge vorgegeben ist, muss diese Bewegung synchronisiert werden. Für diese Synchronisierung definieren diese Symbole zwei Methoden. Beide Methoden benutzen double als Datentyp.

Syntax

getGlobalAnimationTime();

Beispiel

this.getGlobalAnimationTime ( time ); ‘ Gibt Zeit in Millisek zurück.

Beschreibung

Diese Anweisung ruft die relative Animationszeit des X-Symbols ab.

Syntax

setGlobalAnimationTime();

Beispiel

this.setGlobalAnimationTime( newtime );’ Setze neue rel. Zeit in Millisek.

Beschreibung

Diese Anweisung setzt die neue rel. Animationszeit für das X-Symbol. Diese neue Zeit bestimmt, inwieweit die vordefinierte Animation weiter ausgeführt wird.

Hierarchische Symbole

Eine weitere spezielle Klasse von Symbolen sind die hierarchischen Symbole. Diese Symbole sind aus mehreren Teilen ( Elementen ) zusammengebaut. Über die Skriptsprache kann man dabei jedes einzelne Teil ansprechen und modifizieren. Die Struktur des Symbol, also die Zusammensetzung der Teile, kann man dabei über die Skriptumgebung abfragen. Auf jedes Teilstück können wiederum die Standardmethoden ( siehe oben ) ausgeführt werden. Ist das Teilstück wiederum aus anderen Teilstücken zusammengesetzt, kann man auch diese Teilstücke wieder abfragen.

Bild: Riesen Rad Zusammen

Bei der Zusammensetzung gibt es immer nur genau ein Basiselement, welches alle anderen Teilstücke enthält. Das Basiselement kann beliebig viele Unterelemente haben und jedes weitere Unterelemente wiederum beliebig viele Unterelemente. Es entsteht also eine Hierarchie von Unterelementen. Das Prinzip soll anhand des Riesenrades erläutert werden:

  1. Das Teil Riesenrad-Basis ist das Basiselement des Symbols. Das Rad ist ein Unterelemente der Basis.
  2. Das Rad ist ist direkt verknüpft mit der Basis. Die Gondel ist ein Unterelemente des Rades.
  3. Die Gondel ist direkt mit dem Rad verknüpft.

Die Verknüpfungen zwischen den Einzelteilen funktionieren durch Joints ( in der Praxis eine Verbindung, Gelenk oder Schweißstelle ). Diese Joints sind in der Abbildung durch die schwarzen Linien angedeutet. Jedes dieser Teile muss also mindestens einen Joint aufweisen, um mit in das hierarchische Symbol aufgenommen werden zu können. Diese Joints spielen in der Skriptsprache eine große Rolle, da nur durch sie das Unterelemente angesprochen werden kann. Jedes Oberelement in der Hierarchie kann so viele Unterelemente besitzen, wie es Joints besitzt.

Die Verknüpfung der Teile über ihre Joints kann mit Hilfe der Skript-Umgebung untersucht werden.

Ist die Struktur eines hierarchischen Symbols klar, kann auf sie folgendermaßen im Skript zugegriffen werden:

Syntax

this.Sub1.Sub2….Subn.Function;

Beispiel

this.Basic_Wheel.RotateJoint( “WheelBasic”, f ); ‘Drehe Riesenrad um winkel f

Beschreibung

Dieser Ausdruck greift auf den Joint Subn eines Unterelementes zu. Es können alle Methoden auf den Joint angewandt werden.

In der Skriptsprache wird also nicht auf den Namen der Unterelemente operiert, sondern auf den Jointnamen.

Neben den schon bekannten Basismethoden für Symbole unterstützen die Joints weitere folgende Methoden:

Syntax

RotateJoint( String JointName, float f );

Beispiel

this.Basic_Wheel.RotateJoint( “WheelBasic”, f ); ‘Drehe Riesenrad um winkel f

Beschreibung

Dieser Ausdruck dreht das Unterelement um die Joint-Achse mit dem Winkel f.

Syntax

TranslateJoint( String JointName, float X, float Y, float Z );

Beispiel

this.Basic_Wheel.TranslateJoint( “WheelBasic”, x, y, z ); ‘Verschiebe  Riesenrad um x, y, z

Beschreibung

Dieser Ausdruck verschiebt das Unterelement um X, Y, Z relativ.