Hallo, ich arbeite an einer Vehikelsimulation. Es geht hierbei um einen Kramarm, der auf einem Fahrzeug montiert ist. Auf der Plattform, auf der Kran montiert ist, ist eine vertikale Basis montiert, die sich um die Z-Achse um 360° drehen kann. An dieser Basis ist ein erstes Kranarm-Element verbaut, dass nur um dessen relative Y-Achse gedreht werden kann in einem Winkel von etwa -22.5° ... +80°.

Ich hab die Basis mit dem Fahrzeug mit einem hinge, und den Arm mit der Basis mit einem Hinge gekoppelt. Ich möchte gerne, dass ich auf Tastendruck jeweils eine Kraft ausübe, um die Basis zu drehen oder den Kram hoch oder runter zu bewegen - natürlich samt Kollision mit dem Fahrzeug und anderen Physikentities. Wenn ich keine Kraft ausübe, sollen beide entities "festgehalten" werden, die Basis darf sich nicht durch das Gewicht der angekoppelten Sachen weiterdrehen. Der Arm darf sich nicht durch sein eigenes und auch nicht durch ein fremdes Gewichte, herunterneigen.

Ohne den Arm hat das ganz gut geklappt, einfach die Damping-Werte der Basis auf 100, 100 zu stellen. Mit Armelement geht das nicht, das Gewicht lässt die Basis drehen, auch je nachdem wie das Fahrzeug steht (z.B. am Hang).

Ich hatte die Idee, die hinge parameter ganz klein zu wählen, also sowas wie -5°, 5° und dann, wenn man Kraft ausüben will, die zu lösen (also auf -360°,360° und -22.5°,45° zu stellen), den Benutzer machen lassen, und sobald die Taste gelöst wird, die Grenzen erneut zu setzen, allerdings verschoben um das offset, was mir pXcon_getposition gibt - also wenn man um ~+10° = +0.175 rad verschoben hat, dann wäre das Gelenk der Basis dann auf 0.088 rad, 0.262 rad eingeschränkt (das kann ich allerdings nicht ausprobieren, weil es damit Probleme gibt).

Generell wollte ich fragen, ob dieses Vorgehen sinnvoll ist.

Und wenn nicht, was Sie empfehlen würden. Ich hab den Verdacht, dass ich da besser einen 6D-Joint nehmen sollte. Allerdings kann ich mir die Verwendung aus dem Manual heraus nicht erschließen... ich hab mir auch Mühe gegeben wink (Anregung: die vorhandenen Joints als 6D-Joint umsetzen und in der Manual abdrucken, das hilft dem Verständniss sehr, würde ich sagen.)

Last edited by HeelX; 09/22/11 20:32.