Gelenke

Ein Gelenk begrenzt die möglichen Bewegungen von Physik-Entities. Per Default sind alle Objekte so begrenzt, dass sie weder Levelwände noch andere Entities durchdringen können. Weitere Begrenzungen sind möglich und können auf ein odere mehrere Entities angewendet werden. Das normale Procedere, Gelenke hinzuzufügen ist:

    1. Aufruf der Anweisung pXcon_add mit einer oder mehreren Entities.
    2. Je nach Art des Gelenks rufen Sie pXcon_setparams1 oder pXcon_setparams2 auf.
    3. Wird das Gelenk nicht mehr benötigt, löschen Sie dies durch Aufrufen von pXcon_remove.

Wollen Sie zwei Objekte durch Aufrufen von pXcon_add verbinden, vergewissern Sie sich, dass sich diese in der richtigen Position befinden und sich nicht gegenseitig durchdringen. Sollen sie sich ein wenig durchdringen, setzen Sie beide Objekte auf dieselbe Gruppen-ID, wofür Sie pXent_setgroup benutzen.

Gelenke lassen sich auch zerbrechlich gestalten. Wird an einem zerbrechlichen Gelenk mit genügend Kraft gezogen, bricht es auseinander. Ein Beispiel dafür ist ein Fabrikschlot, der in Unterbereiche aufgeteilt ist. Die einzelnen Bereiche werden mit einem 6D-Gelenk, das an sämtlichen Achsen arretiert ist, zusammengehalten. Wird der Schornstein getroffen, zerbricht er und purzelt in Einzelteilen auseinander, anstatt unrealistisch in einem Stück umzufallen.

Radgelenke und 6D-Gelenke lassen sich mit einem Federbein/Stossdämpfer-Element ausrüsten, sowie mit einem Motor, der einer Achse ein Drehmoment hinzufügt. Dadurch wird ein realistisches Modellieren von Fahrzeugen oder anderen Maschinen ermöglicht.

Die verfügbaren Gelenke sind im Folgenden mit den zugehörigen Parametern aufgelistet:

PH_HINGE

Typ:

hinge (10K)

Beschreibung:

Bei einem Scharnier haben zwei Entities dieselbe Rotationsachse und stehen in einem festen Abstand zu dieser Achse. Wie oben abgebildet müssen Sie diese Rotationsachse und ihren Ankerpunkt auf besagter Achse festlegen. Der Abstand der Entities zu dieser Achse wird beim Erstellen dieser Beschränkung festgelegt. Achten Sie darum darauf, dass sich die Entities an der richtigen Position befinden, ehe Sie das Scharnier hinzufügen. Die anfängliche Ausrichtung wird als Winkel von 0° angenommen. Wenn Sie also beide Entities um 90 Grad drehen und die Winkelbegrenzung auf (0,0) steht, werden sie ihre anfängliche Ausrichtung behalten.

Parameter 1 : Ankerpunkt (default: Mitte zwischen den beiden Entities).
Parameter 2 : Drehachse, z.B. (0,0,1)
Parameter 3: Bruchgrenzen. Der x-Parameter setzt die maximale Kraft und der y-Parameter das maximale Drehmoment. Wird einer dieser Werte überschritten, bricht das Gelenk.
Parameter 4 : Erlaubte Winkel, z.B. (-45, 90 , 0) setzt die untere Grenze auf -45° und die obere auf +90°. Mit (-360, 360, 0) werden alle Winkelbeschränkungen aufgehoben. Der z-Wert gibt die Nachgiebigkeit des Gelenks in Prozent an.
Parameter 5 : Nicht benutzt
Parameter 6 : Nicht benutzt

PH_BALL

Type:

ball (10K)

Beschreibung: Entities roieren frei um den Ankerpunkt/der Verbindung zu einer Kugel. Diese Art von Gelenk läßt sich auch für Ketten oder Seile benutzen.
Parameter 1 : Ankerpunkt (default: Mitte zwischen den beiden Entities).
Parameter 2 : Nicht benutzt
Parameter 3: Nicht benutzt
Parameter 4 : Nicht benutzt
Parameter 5 : Nicht benutzt
Parameter 6 : Nicht benutzt

PH_SLIDER

Type:

slider (10K)

Beschreibung: Die Entities dürfen sich entlang der Verschiebungsachse drehen oder sich an dieser entlangbewegen. Andere Bewegungen sind blockiert.
Parameter 1 : Nicht benutzt
Parameter 2 : Verschiebungsachse, z.B. (0,0,1)
Parameter 3:

Bruchgrenzen. Der x-Parameter setzt die maximale Kraft, der y-Parameter das maximale Drehmoment. Wird einer dieser Werte überschritten, bricht das Gelenk.

Parameter 4 : Erlaubter Abstand von der Ursprungsposition, z.B. (-100,1000,0). Dies erlaubt der Entity eine Verschiebung um 1000 Quants in die eine und 100 Quants in die andere Richtung. Daraus ergibt sich ein Verschiebebereich von 1100 Quants.
Parameter 5 : Nicht benutzt
Parameter 6 : Nicht benutzt

PH_WHEEL

Type:

wheel (10K)

Beschreibung:

Das ist kein wirkliches Gelenk, fügt einer Fahrzeugentity aber eine motorisierte Radform hinzu. Räder können sich um Achse 1 und Achse 2 drehen. Achse 1 ist die Steuerachse (links/rechts), während Achse 2 zur Vorwärts-/Rückwärtsbewegung gebraucht wird. Da die Radentity kein Actor, sondern eine Form ist, muß sie auch nicht als Physik-Entity registriert werden. Um einen Steuerwinkel und eine Motordrehkraft anzubringen, verwenden Sie pXcon_setwheel. Mit pXcon_setparams2 modifizieren Sie die Reibung des Rades, das Kurvenverhalten und den Zustand des Autos auf der Strasse.

Parameter 1 : Ankerpunkt
Parameter 2 : Radachse 1 relativ zum Fahrgestgell z. B. (0,0,1).
Parameter 3: Radachse 2 relativ zur Ausrichtung des Rades z. B. (0,-1,0).
Parameter 4 : Nicht benutzt
Parameter 5 :

x = Skalierungsfaktor für den Verlauf der Längsreibung des Rades, in Prozent. (default = 100).
y = Skalierunsfaktor für den Verlauf der Querreibung in Prozent (default = 100). Für Schienenfahrzeuge setzen Sie dies auf einen hohen Wert.
z = noch nicht benutzt.

Parameter 6 : x = Federkonstante der Radaufhängung (default: 1000). Passen Sie diese auf Masse und Schwerkraft des Autos an.
y = Stoßdämpferkonstante des Rades (default: 100).
z = Federweg in Quants (default: Radius des Rades).

PH_ROPE

Typ:

wheel (10K)

Beschreibung:

Das Seil-Gelenk versucht eine bestimmte minimale und/oder maximale Distanz zwischen den zwei Ankerpunkten beizubehalten. Es kann starr sein oder aber elastisch wie ein Gummiseil. Ein Beispiel ist ein Pendel, das an einem Seil schwingt; ein anderes Beispiel ist die pX_pick Funktion, die ein Gummiband zwischen der Maus und dem angeklickten Objekt spannt.

Parameter 1 : Ankerpunkt an der ersten Entity, in Entity-Koordinaten (default: Nullpunkt).
Parameter 2 : Ankerpunkt an der zweiten Entity, in Entity-Koordinaten (default: Nullpunkt).
Parameter 3: Bruchgrenzen. Der x-Parameter setzt die maximale Kraft, der y-Parameter das maximale Drehmoment. Wird einer dieser Werte überschritten, bricht das Seil.
Parameter 4 : Nicht benutzt
Parameter 5 :

Nicht benutzt

Parameter 6 : x = Federkonstante. Auf 0 setzen für ein unelastisches Seil.
y = Minimaldistanz. Auf 0 setzen für keine minimale Distanz.
z = Maximaldistanz (default: Anfangsdistanz zwischen den Entities).

PH_6DJOINT

Beschreibung:

Die Mutter aller Gelenke - ein konfigurierbares Gelenk mit 6 Freiheitsgraden. Dieser Gelenktyp lässt sich zum Modellieren eines fast jeden denkbaren Gelenks formen. Die Gelenksbewegung ist für alle Achsen als Defaultwert auf NX_D6JOINT_MOTION_LOCKED gesetzt. Mit pXcon_set6djoint können Sie das hinterher ändern. In der Dokumentation des PhysX SDK finden Sie Näheres über die PH_6DJOINT-Parameter.

Parameter 1 : Ankerpunkt (default: Mitte zwischen den beiden Entities).
Parameter 2 : Drehachse, z.B. (0,0,1).
Parameter 3:

Bruchgrenzen. Der x-Parameter setzt die maximale Kraft und der y-Parameter das maximale Drehmoment. Wird einer dieser Werte überschritten, bricht das Gelenk.

Parameter 4 :

Begrenzung des Schwungwinkels in Grad. Der x-Parameter setzt das Limit für pan, der y-Parameter das für tilt.

Parameter 5 : Begrenzungen des Verdreh-Winkels (roll) in Grad. (-45, 90, 0) beispielsweise setzt das untere Limit auf -45 Grad und das obere Limit auf +90 Grad.
Parameter 6 : x = Federkonstante, erzeugt eine Gegenkraft, wenn sich das Gelenk über ein Limit hinausbewegt.
y = Dämpfungskonstante, Widerstand gegen Bewegungen über die Limits hinaus.
z = Lineare Begrenzung für Bewegungen entlang der Drehachse.

See also:

pXcon_add, pXent_addshape, pXcon_setparams1, pXcon_setparams2, pXcon_set6djoint

► latest version online