Jump to content
Chritian W.

Marionette Symbole /3d-Objekte entlang Pfad verteilen und ausrichten.

Empfohlene Beiträge

Ich möchte gern ein Netzwerk erstellen, mit welchem ich 3d-Symbole entlang eines Pfades verteilen kann und diese dann Rechtwinklig zum Pfad ausgerichtet werden. Den Ersten Teil der Aufgabe habe ich bereits gelöst (Objekte werden verteilt) jedoch müsste ich ja jetzt irgendwie den Winkel zwischen einem Punkt und dem übernächsten berechnen und so dann das Objekt drehen. Ich hatte gehofft, dass das Netzwerk „Send to Surface“ welches ich hier angehängt habe mir da eine Lösung aufzeigt. Aber ich sehe da nicht so ganz durch. Hat jemand ne Lösung? 

6A14CC84-0F47-4AEC-8F4E-36FFFDF8E28E.jpeg

D14C025D-6097-40D9-BD26-142BA93D89F0.jpeg

33665EE5-A07D-4276-930C-413314C2D90C.jpeg

Send to surface_004Cv2018 v2019.vwx

Diesen Beitrag teilen


Link zum Beitrag

Wenn du die Koordinaten von den zwei Punkten kennst, kannst du mit ein wenig Trigo die Tangente berechnen.

 

Allerdings ist dieser Winkel nicht zwingend der genaue Winkel der Tangente.

 

Genauer machen kannst du den Winkel, indem du die Abstände zwischen den Punkten verkleinerst. Oder aber du findest eine Formel zur Berechnung der Winkel, die auf den End- bzw. Kontrollpunkten der Bezierkurve basiert. Ich kenne die Mathematik dahinter allerdings (noch) nicht gut genung, um dir da behilflich sein zu können.

 

Vielleicht hilft dir aber folgender Fakt, den ich vor einiger Zeit per Zufall entdeckt habe.

image.thumb.png.2e3ceb842a97a319d7216001c570347c.png

 

Die grünen Linien sind die Verbindungslinien vom Endpunkt zum Kontollpunkt. Wenn du diese Linen in gleichmässige Stücke (im Bild 1/5) teilst, kannst du die Enpunkte der Stücke verbinden und erhälst Tangenten an die Bezierkurve. Du müsstest demnach "nur" die Tangente finden, die an deinem Punkt schneidet und erhälst einen präszisen Winkel. Eventuell bin ich mit diesem Ansatz auf dem Holzweg, aber es ist zumindest besser als gar nichts.


Freundliche Grüsse

 

Manuel Roth

___________________________________________________
VW21 SP2 | Architektur | Windows 10

Diesen Beitrag teilen


Link zum Beitrag

Hier die Mathe dahinter:

image.png.79f282edbd9b25f16e7211256f7205a4.png

 

Suchst du die Tangente auf z.B. 1/4 der Strecke der Bézierkurve, verbindest du die Punkte auf 1/4 der Strecke von A nach B und 1/4 der Strecke von B nach C.

 

Für das beschriebene Problem kannst du jedoch einfach einen "Get Point On Poly"-Node benutzen. Netterweise gibt er gleich auch noch den Tangentenwinkel. Allerdings kannst du den Node nur bei 2D-Pfaden anwenden.

 

Die gleiche Funktion für eine NURBS-Kurve kenne ich grad nicht. Da müsstest du wohl die Methode mit den zwei Punkten mit ganz kleinem Abstand anwenden.

  • Like 1
  • Lieben 1

Vectorworks 2020 - Architektur - Win 10

Diesen Beitrag teilen


Link zum Beitrag

Ist ja genial. Wusste nicht, dass es auch gleich einen Viertel gibt. Danke.


Freundliche Grüsse

 

Manuel Roth

___________________________________________________
VW21 SP2 | Architektur | Windows 10

Diesen Beitrag teilen


Link zum Beitrag

Und wieder einmal muss ich meine Kinnlade nach dem herunterklappen auf dem Boden suchen... 😉 Bin jedes mal erstaunt was Ihr mit Marionette hinbekommt! Respekt!


VW19 SP6R1 - VW17 SP5 R1 - MacOS Mojave 10.14.6

iMac 2019, 3,6GHz i9, 32GB Speicher, Grafik Radeon Pro 580X 8GB

ARP-Stuttgart

MacBook Air M1 16GB - VW21

Diesen Beitrag teilen


Link zum Beitrag

Hallo Christian,

super! Hätte ich schon oft gebrauchen können. Allerdings bin ich mit Marionette überhaupt nicht vertraut.

Wie kriegt man das denn zum laufen? Ich hab sowas noch nie gemacht.

Und kann man das dann auch für VW2020 nutzen


Mac Pro 12 Core, 3,45 Ghz (late 2012), Mojave (10.14.6)

MacBook pro 16, Catalina (10.15.7)

VW 2020 Architektur SP6 R1 (Build 580724), Architektur

VW 2021 Architektur SP3.1.2 R1 (Build 588748)

Diesen Beitrag teilen


Link zum Beitrag

Hier noch mal eine überarbeitete Variante, Sorry, Beim ausarbeiten einer Anleitung ist mir aufgefallen dass es bei bestimmten Körpern und Polylinien zu falschen Positionierungen gekommen ist. Ich habe die Verbindung zwischen Get Point on Poly und Get dazu entfernt.

 

Für 2020 konnte ich leider nicht zurückkonvertieren - kommt eine Error-Meldung.

Eine Anleitung für die Anwendung stelle ich die Tage noch ein.

marionette Symbole Verteilen 1.01.vwx

Diesen Beitrag teilen


Link zum Beitrag

Hallo Christian

 

Hast du dir schon einmal überlegt, aus dem Netzwerk einen Menübefehl zu machen? Meiner Ansicht nach ist ein Netzwerk auf der KE sehr unschön und es sollten nur Mrnt-Objekte oder Menübefehle verwendet werden. Die Eingaben kannst du mit Nodes aus der Gruppe User Interaction entgegennehmen. Ergibt zwar ein paar Dialogfelder, ist aber schöner als all die Mrnt-Klassen und Verläufe zu importieren, die Eingaben trotzdem manuel zu machen und anschliessend das Netzwerk auszuführen.

Zudem hast du damit den Vorteil, dass du ein Objekt selektiert werden kann, der Befehl wird ausgeführt und die Symbole anschliessend verteilt werden.

 

Für die Symbolauswahl könnte je nach dem sogar dieser Node umgebaut werden. Klassen kannst du in einem Popup Dialog-Node auflisten.


Freundliche Grüsse

 

Manuel Roth

___________________________________________________
VW21 SP2 | Architektur | Windows 10

Diesen Beitrag teilen


Link zum Beitrag

Hallo Manuel, Ja für solch fertige Netzwerke, macht das in der Tat Sinn. Muss ich mich noch mal mit bechäftigen. Dieses Netzwerk war eigentlich nur so ne fixe Zwischenidee, zu dem eigentlichen Projekt mit welchem ich ja eigentlich zu Marionette gekommen bin. - und jetzt entdecke ich erst die unglaublich vielfältigen Möglichkeiten, von denen ich wahrscheinlich gerade mal- einen Bruchteil verstanden habe  - was auch daran liegt, dass viele Inhalte ausschließlich in englischer Sprache verfügbar sind. 

Diesen Beitrag teilen


Link zum Beitrag

Wenn du Fragen hast, kannst du sie gerne hier im Forum stellen. Ich kann nicht garantieren, dass ich antworten kann, helfe aber sehr gerne.


Freundliche Grüsse

 

Manuel Roth

___________________________________________________
VW21 SP2 | Architektur | Windows 10

Diesen Beitrag teilen


Link zum Beitrag
Am 9.2.2021 um 21:26 schrieb Manuel Roth:

Hallo Christian

 

Hast du dir schon einmal überlegt, aus dem Netzwerk einen Menübefehl zu machen? Meiner Ansicht nach ist ein Netzwerk auf der KE sehr unschön und es sollten nur Mrnt-Objekte oder Menübefehle verwendet werden. Die Eingaben kannst du mit Nodes aus der Gruppe User Interaction entgegennehmen. Ergibt zwar ein paar Dialogfelder, ist aber schöner als all die Mrnt-Klassen und Verläufe zu importieren, die Eingaben trotzdem manuel zu machen und anschliessend das Netzwerk auszuführen.

Zudem hast du damit den Vorteil, dass du ein Objekt selektiert werden kann, der Befehl wird ausgeführt und die Symbole anschliessend verteilt werden.

 

Für die Symbolauswahl könnte je nach dem sogar dieser Node umgebaut werden. Klassen kannst du in einem Popup Dialog-Node auflisten.

Ich bin dabei das ganze als Menübefehl zu kreieren. Es stellen sich jedoch für mich derzeit zwei Herausforderungen, mit welchen ich nicht weiter komme:

1. Die Criterienauswahl auf die drei Sachverhalte „Ebenenauswahl, Objekttypauswahl, Klassenauswahl“ zu reduzieren - da ich bei dem Criteria Dialog immer wieder alles von neuem eingeben muss. - gibt es hierfür eine Lösung?  Alternativ wäre auch zu überlegen, das entsprechende Objekt durch Auswahl anzuwählen. Leider funktioniert das mit dem Criterium „Objekt ist aktiv“ nicht.

2. Der Node „Get Symbol from Folder“ wäre ideal für dieses Netzwerk, leider bin ich nicht im Stande diesen so umzubauen, dass es ein Userinteraction Dialog wird. Aber vielleicht hat ja noch jemand eine Idee dazu.

Diesen Beitrag teilen


Link zum Beitrag

Die Objektauswahl wäre auch die Art, wie ich das ganze Lösen würde. Habe aber seit kurzem auch Probleme damit und weiss noch nicht genau, woran es liegt. Grundsätzlich würdest du aber im Objects by Criteria-Node einfach nach Objektauswahlstatus filtern und im Menübefehl sollte alles funktionieren.

Für den Get Symbol from Folder habe ich dir eine Version davon erstellt, die bei jedem Ausführen den Dialog erstellt. Wiederum nur als Code, da ich dir kein Studentenversionfiles senden kann.

 

Get Symbol from Folder.txt


Freundliche Grüsse

 

Manuel Roth

___________________________________________________
VW21 SP2 | Architektur | Windows 10

Diesen Beitrag teilen


Link zum Beitrag
vor 3 Stunden schrieb Manuel Roth:

Die Objektauswahl wäre auch die Art, wie ich das ganze Lösen würde. Habe aber seit kurzem auch Probleme damit und weiss noch nicht genau, woran es liegt. Grundsätzlich würdest du aber im Objects by Criteria-Node einfach nach Objektauswahlstatus filtern und im Menübefehl sollte alles funktionieren.

Für den Get Symbol from Folder habe ich dir eine Version davon erstellt, die bei jedem Ausführen den Dialog erstellt. Wiederum nur als Code, da ich dir kein Studentenversionfiles senden kann.

 

Get Symbol from Folder.txt 4 kB · 1 download

Manuel, hervorragend, bin begeistert.

 

meinst du du schaffst es auch die Ordnerauswahl auch als Dialogabfrage einzubauen oder zu entfernen, dass könnte für Verwirrung sorgen, da er ja jedesmal eine Art Fehlermeldung bringt, wenn er den Ordner nicht findet.

Diesen Beitrag teilen


Link zum Beitrag

Hatte gedacht wenn ich „offene Dokumente“ bei SymbolFolder Name eintrage ist die Meldung weg - aber zu früh gefreut

bearbeitet von Chritian W.

Diesen Beitrag teilen


Link zum Beitrag

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Clear editor

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

  • Forenstatistik

    • Themen insgesamt
      16.369
    • Beiträge insgesamt
      79.915
×
×
  • Neu erstellen...