Kardangelenk

ComW

Grünschnabel
Hallo zusammen,

ich habe in Cinema 4D (R12) ein Kardangelenk-Modell erstellt. Dieses soll jetzt animiert werden. Mein Problem ist nun, dass nach der Einstellung des Winkels von Teil A der Konnektor (Zwischenstück) bei der Bewegung nicht korrekt in der Befestigung bleibt.

Als Beispiel hänge ich ein GIF an, welches ich hier im Forum ohne Lösungsweg gefunden habe. Bei meinem Modell bleibt das blaue Teil nicht "in den Löchern", sondern rutscht immer raus (manchmal bleibt es in den Löchern von EINEM Teil, manchmal aber auch nicht.)

kardan.gif

Wie ist das Problem zu lösen? Ich bin für jede Hilfe dankbar!
 
Ich bin jetzt nicht so der große Mathematiker oder Physiker, von daher weiß ich jetzt noch nicht genau wie ich es umsetzen soll.

Aber zunächst einmal nehme ich an, dass in deinem Modell die beiden Achsen gleichmäßig rotieren? Sprich: wenn die im Beispiel grüne Achse bei 15° Drehung ist, ist die rote ebenfalls bei 15°, grün 30° = rot 30°... grün 160° = rot = 160° usw.?

Dann kann es nicht funktionieren, denn eine Kardanwelle bewegt sich in einer ungleichförmigen Drehung, eine Sinuskurve deren Amplitude auch abhängig vom Beugewinkel des Gelenks ist.

Lies dir am Besten den Wikipedia-Artikel zum Kardangelenk bzw. Kreuzgelenk durch, vielleicht kannst du die Gleichungen dort umsetzen. Falls du das alles schon wusstest, hast du bei der Umsetzung der Gleichungen wohl einen Fehler gemacht, dann müsstest du deine Lösung hier aber genauer präsentieren.

Gruß
Gordon

//edit: Also die Formel die du umsetzen solltest ist folgende:

?2 = arctan ( tan ?1 cos ? )

wobei ?1 der Drehwinkel der Antriebsachse, ? der Beugungswinkel des Gelenks und ?2 der Drehwinkel der angetriebenen Achse ist.
 
Zuletzt bearbeitet:
Danke für die Antwort.
Okay das hilft zum Verständnis schonmal etwas weiter.

Da ich aber noch ein Newbie in Sachen Cinema 4D bin, weiß ich nicht wo ich bei XPresso die Formel eingeben/unterbringen soll.

Das ist das Ergebnis was ich bis jetzt habe:

Bildschirmfoto 2012-07-19 um 14.38.40.png
 
Ich habe ein übergeordnetes Nullobjekt "Gelenk". Die angetriebene Achse steckt in einem Nullobjekt "Beugungswinkel". Alle Objekte haben ihren Mittelpunkt im Mittelpunkt des Nullobjektes und sind genauso ausgerichtet (abgesehen von Winkel P des Nullobjektes "Beugungswinkel").

Im Formel-Node habe ich folgende Formel eingetragen:

atan(tan(Wert1)*cos(Wert2))

Wert1 ist dabei der lokale Winkel H von der Antriebsachse, Wert2 der lokale Beugungswinkel P des Gelenks. Der Ausgabewert der Formel ist dann der lokale Winkel H der angetriebenen Achse.

Für das Achsenkreuz in der Gelenkmitte ergibt sich dann folgendes: der globale Winkel B der Antriebsachse wird an den globalen Winkel B des Achsenkreuzes übertragen, die globalen Winkel H und P bekommt das Kreuz von der angetriebenen Achse.

Schon sollte es passen.

//edit: Es ist scheinbar besser, den lokalen Winkel B der Antriebsachse an den lokalen Winkel B des Kreuzes statt der globalen zu übergeben, sonst kann es sein das es zu unschönen Effekten kommt wenn man das Gelenk frei im Raum dreht ;-)
 
Zuletzt bearbeitet:
Ich glaube deine Konnektoren rutschen deshalb aus den "Fassungen", weil deine Zwischenschritte für die Dynamische Berechung zu gering sind. Versuche es mal indem du unter Projektvoreinstellungen-> Dynamics-> Experte die Zwischenschritte und die "Maximale Iterationen pro Schritt" änderst.
 
Hallo,

erstmal dankeschön. Ich habe es heute mal ausprobiert.
kardan_a ( der Antrieb bewegt sich) der Rest aber nicht.

Irgendwas stimmt da nicht. Hier ein Screenshot:

Bildschirmfoto 2012-07-23 um 16.29.07.png
 

Anhänge

  • kardanwelle_andre_atan2.c4d.zip
    26,9 KB · Aufrufe: 29
so mein Freund ^^ ich hab dir das mal mittels Konnektoren gebaut. Kannst an den Einstellungen ja noch bissl drehen. (Wenn der Motor ein zu geringes Drehmoment hat, dann bleibt es irgendwann stehen, deshalb ist das so hoch eingestellt)

- ich habe das Mesh des einen Objektes verändert (weil die sonst zusammengestoßen wären)
 

Anhänge

  • kardanwelle_andre_atan2.zip
    33,6 KB · Aufrufe: 37
Also Rareers Lösung in allen Ehren, aber meine funktioniert schon einwandfrei. Und eigentlich hast du fast alles richtig gemacht - nur ein paar Nodes falsch verbunden.

Du hättest nicht Winkel.P von Kardan_B mit dem Formelnode verbinden sollen, sondern Winkel.P von dem Objekt Beugungswinkel.

Dann musst du die globalen Winkel H und P mit den globalen Winkeln H und P der Verbindung verknüpfen, nicht mit den lokalen. Aber von Kardan_A musst du den lokalen Winkel.B an den lokalen Winkel.B von der Verbindung weitergeben, nicht den globalen.

Du hast ein paar kleine Fehler in meine Anleitung eingebaut, ansonsten hätte es funktioniert.
 
Auch deine Lösung in allen Ehren grotten ;) aber für solche dinge wurden doch extra die Konnektor entwickelt, warum also mit Formeln rumschlagen?
 
Zurück