elastisches Gummiband um 2 Stangen

Hi Leute,

Danke für die Antworten.
@ Mark: das Gummi muss nicht mehr können als die beiden Stangen zu umschliessen und eng anliegend (ohne durchzuhängen) mit den bewegungen der Stangen mitzugehen (also sich auch dehnen und zusammenziehen, wobei ein verjüngen des Bandes nicht unbedingt nötig ist).
Ich bin momentan tatsächlich dabei die Geschichte über X-press zu probieren.
Die Verlegenheitslösung sieht folgendermaßen aus:
Die Nullpunktmitte des Gummibands entspricht dem Achsmittelpunkt von Stab A.
Mittels Ausrichtungs-Expression richtet sich das Band nach Stab B aus.
In der Länge skaliert wird es mittels Xpress Schaltung (siehe Bild).

Und hier liegt wieder das Problem dass ich mit meinen Xpress Kenntnissen lediglich die Größe Z des Gummibandes skalieren kann > bedeutet daß die kreisförmigen Enden des Gummis beim Skalieren Oval werden.
Hat jemand nen Tip wie ich eine Punktauswahl in Xpress animieren kann? Dann könnte ich statt das gesamte Band zu skalieren nur die Punkte des beweglichen Endes verschieben.
Ich versuchs mal weiter...
thx
 

Anhänge

  • gfun01.jpg
    gfun01.jpg
    33,1 KB · Aufrufe: 78
Hi!

Ich würde empfehlen, einfach die Punkte einer Spline setzen zu lassen ... mathematisch oder anhand von Referenzpunkten.
Z.B. (über Referenzpunkte) jedem Stab eine Kreis-Spline zuweisen. Hinzu aus zwei Kreis-Splines die Gummiband-Spline (mit sechs Punkten) erzeugen. Nun per Xpresso die ersten drei Punkte der Gummiband-Spline auf drei Punkte der ersten Kreis-Spline setzen und die letzten drei Punkte der Gummiband-Spline auf drei Punkte der zweiten Kreis-Spline fixieren (Punkte-Node: Punkt-Position jeweils lesen und setzen).
Die Referenz-Kreissplines könnten hinzu noch eine Ausrichten-Expression bekommen, damit sich die Stäbe gegeneinander "verdrehen" können...

Liebe Grüße,
Mark.
 
Hi Mark,

Grundsätzlich versteh ich was Du meinst. Ich weiss nur nicht wie ich einzelne Punkte in Xpresso verknüpfen kann... Sprich, wie ich die ersten drei Punkte der ersten Kreisspline zuweisen kann. Wär toll wenn Du mir das noch vertickern könntest, dann denk ich daß man es so recht gut hinbekommen kann.

Danke Dir,
Gfun.
 
Hi magman!

Hmpf, ich war zu voreilig: das Punkt-Node unterstützt leider keine Tangenten, d.h. es kann zwar die Punkt-Position zugewiesen werden, aber nicht die Ausrichtung einer Tangente und das würde bei obigem Ansatz nötig :(
(ich hatte mal ein Coffee-Node für dieses "Tangentensetzen" geschrieben, aber das finde ich nicht mehr :eek: )

Somit eine Alternative, die Deinem ersten Ansatz entspricht: Das Gummiband = zwei verbundene Kreissplines (sechs Punkte) hat seine Achse bei Zylinder.1.
XPresso setzt nun diese Spline auf die Position von Zylinder.1. Hinzu richtet ein Ausrichten-Tag diese Spline auf Zylinder.2. Fehlt noch die "Länge" des Gummibandes, wie Du oben bereits schriebst. Statt nun das Gummiband zu skalieren, kannst Du nun die "hinteren drei Punkte" (die, die sich um Zylinder.2 schmiegen) in Abhängigkeit vom Abstand positionieren.
Angehängte Schaltung macht genau das: drei vordefinierte Vektoren addieren sich zum Abstand, um die Kreisform zu beschreiben. Diese drei Positionen werden mittels Iteration ( 0 - 2 ) den "ersten drei Punkten des Gummibandes" zugewiesen. Wichtig dabei ist natürlich, daß die Punkte 0, 1 und 2 des Gummibandes die sind, die am Zylinder.2 liegen ... ggf. "Anfangspunkt neu setzen" :)
Statt mittels Iterator könntest Du natürlich auch einfach drei Punkt-Nodes verwenden und den Index jeweils manuell wählen :)
Ich hoffe, es hilft! :)

Liebe Grüße,
Mark.
 

Anhänge

  • gummiband1.jpg
    gummiband1.jpg
    19,8 KB · Aufrufe: 81
  • gummiband2.jpg
    gummiband2.jpg
    49,7 KB · Aufrufe: 73
Hi Mark,

Echt Wahnsinn! Vielen Dank für deinen Aufwand den Du hier betrieben hast! Ich habs heut Früh gleich mal ausprobiert mit folgendem Resultat:
Das seitliche Aufziehen (Dehnen) funktioniert super mit dieser Xpress Schaltung. Das Ausrichten auf den Zylinder 2 funktioniert leider gar nicht. Genauso wie das Verschieben der Zylinder nach oben/unten. Ich häng mal ein paar Bilder an die das gut darstellen...

Ich schau mal in wie weit ich des hin bekomme. Vielleicht fällt Dir ja noch was dazu ein.
Vielen Dank nochmal!!

gfun
 

Anhänge

  • gfun02.jpg
    gfun02.jpg
    78,7 KB · Aufrufe: 32
  • gfun03.jpg
    gfun03.jpg
    22,2 KB · Aufrufe: 15
  • gfun04.jpg
    gfun04.jpg
    21,5 KB · Aufrufe: 14
Hi!

Es ist wohl am einfachsten, die einzelnen "Funktionen" ganz klar zu trennen:

a) Position und Ausrichtung des Gummibands:
Das Gummiband erhält die Position von Zylinder.1. Ausgerichtet wird es auf Zylinder.2.
-> werden die Zylinder bewegt, muß nun das Gummiband dem Zylinder.1 folgen und immer Richtung Zylinder.2 schauen...

b) Länge des Gummibands:
Dort kommt die Schaltung in's Spiel. Die Punkt-Position muß dabei Lokal sein (Punkt-Node / Matrix Modus = Lokal), denn die Punkte sollen - unabhängig von der Ausrichtung und Position des Gummibands - nur nach "vorn" oder "hinten" verschoben werden (entlang der lokalen Z-Achse).
-> Abstands-Änderung der Zylinder, läßt das Gummiband länger und kürzer werden (entlang seiner Z-Ache)

c) Bewegung entlang World-Y:
Urgs, da ist leider der nächste Knackpunkt: die Spline an sich folgt auch Y-Bewegungen der Zylinder, aber das Sweep-Nurbs-Band nicht -> das Band taucht in den Zylinder ein. Dies ließe sich noch mit einem Duplikat des Gummibands und der Rail-Richtung des Sweep-Nurbs lösen. Wirklich problematisch ist aber der sich verändernde Querschnitt der Zylinder: soll das Gummiband dort schräg verlaufen, handelt es sich nicht mehr um einen Kreis- sondern einen Oval-Verlauf des Gummibands!
Die Y-Verschiebung könnte man somit evtl. über ein Scher-Objekt lösen, daß das Gummiband nach oben oder unten drückt ... macht die ganze Geschichte allerdings nicht leichter ;)

d) Rotationen:
... und das Ganze inkludiert noch keine Zylinder-Rotationen ...

Hm, also eine komplette Gummiband-Simulation mittels XPresso scheint nicht wirklich einfach zu sein ...

Liebe Grüße,
Mark.
 
Hi Mark,

Danke für Deine Antwort! Ich würde sagen WIR HABEN ES GESCHAFFT! ^^

Punkte a) und b) hab ich so übernommen wie beschrieben.

Danach hab ich statt einem Sweep-Nurb die Gummi Linie einfach extrudiert und eine Dicke draufgepackt. Dann das ganze noch in ein Hypernurbs Objekt gesteckt und tata!! fertig.

Funktioniert wunderbar. Vielen, vielen Dank für Deine ausführlichen und sehr hilfreichen Tipps und bis bald!

Liebe Grüße,
Gfun.
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück