Dieser Abschnitt enthält einfache Arbeitsabläufe, mit denen Sie sich mit der Verwendung von Dynamo vertraut machen können.
suggested exercise
Das Erstellen einer parametrischen Vase ist eine gute Möglichkeit, in die Arbeit mit Dynamo einzusteigen.
In diesem Arbeitsablauf lernen Sie Folgendes:
Verwenden der Number Sliders, um Variablen in Ihrer Konstruktion zu steuern.
Erstellen und ändern von geometrischen Elementen mithilfe von Blöcken.
Visualisieren der Ergebnisse in Echtzeit.
Bevor wir mit Dynamo beginnen, sollten wir zunächst die Vase konzeptionell entwerfen.
Angenommen, wir entwerfen eine Tonvase, die die von Keramikern verwendeten Fertigungsverfahren berücksichtigt. Keramiker verwenden normalerweise eine Töpferscheibe zur Herstellung von zylindrischen Vasen. Durch die Anwendung von Druck auf verschiedene Höhen der Vase können sie dann die Form der Vase ändern und verschiedene Designs erstellen.
Wir verwenden eine ähnliche Methode, um unsere Vase zu definieren. Wir erstellen 4 Kreise mit unterschiedlichen Höhen und Radien und erstellen dann eine Oberfläche durch Erhebung dieser Kreise.
Laden Sie die Beispieldatei herunter, indem Sie auf den folgenden Link klicken.
Eine vollständige Liste der Beispieldateien finden Sie im Anhang.
Wir benötigen die Blöcke, die die Reihenfolge der Aktionen darstellen, die von Dynamo ausgeführt werden. Da wir einen Kreis erstellen möchten, suchen Sie nach einem Block, der diese Aktion ausführt. Verwenden Sie das Suchfeld, oder durchsuchen Sie die Bibliothek, um den Circle.ByCenterPointRadius-Block zu suchen und ihn zum Arbeitsbereich hinzuzufügen.
Suchen > "Circle..."
Auswählen > "ByCenterPointRadius"
Block wird im Arbeitsbereich angezeigt
Sehen wir uns diesen Block genauer an. Auf der linken Seite befinden sich die Eingaben des Blocks (centerPoint und radius), auf der rechten Seite die Ausgabe des Blocks (Circle). Beachten Sie, dass die Ausgaben eine hellblaue Linie aufweisen. Dies bedeutet, dass die Eingabe einen Vorgabewert hat. Um weitere Informationen über die Eingabe zu erhalten, bewegen Sie den Mauszeiger über den Namen. Die radius-Eingabe erfordert eine doppelte Eingabe und hat den Vorgabewert 1.
Wir behalten den Vorgabewert für centerPoint bei, fügen jedoch einen Number Slider hinzu, um den Radius zu steuern. Verwenden Sie wie beim Circle.ByCenterPointRadius-Block die Bibliothek, um nach dem Number Slider zu suchen und ihn zu Ihrem Diagramm hinzuzufügen.
Dieser Block unterscheidet sich etwas von dem vorherigen Block, da er einen Schieberegler enthält. Mit der Benutzeroberfläche können Sie den Ausgabewert des Schiebereglers ändern.
Der Schieberegler kann über die Dropdown-Schaltfläche auf der linken Seite des Blocks konfiguriert werden. Wir beschränken den Schieberegler auf einen Höchstwert von 15.
Platzieren Sie ihn auf der linken Seite des Circle.ByCenterPointRadius-Blocks, und verbinden Sie beide Blöcke, indem Sie die Number Slider-Ausgabe auswählen und mit der Radius-Eingabe verbinden.
Ändern Sie außerdem den Namen des Number Slider in "Top Radius", indem Sie auf den Namen des Blocks doppelklicken.
Wir fahren fort, indem wir der Logik einige Blöcke und Verbindungen hinzufügen, um die Vase zu definieren.
Wir kopieren diese Blöcke 4 Mal, sodass diese Kreise unsere Oberfläche definieren. Ändern Sie die Namen der Number Slider wie unten gezeigt.
Kreise werden durch einen Mittelpunkt und einen Radius erstellt.
Es fehlt noch ein Schlüsselparameter für die Vase, nämlich ihre Höhe. Um die Höhe der Vase zu steuern, erstellen wir einen weiteren Number Slider. Außerdem fügen wir einen Code Block-Block hinzu. Codeblöcke können hilfreich sein, wenn Sie personalisierte Code-Snippets zu Ihrem Arbeitsablauf hinzufügen möchten. Der Codeblock wird verwendet, um den Schieberegler für die Höhe mit verschiedenen Faktoren zu multiplizieren, sodass die Kreise entlang der Höhe der Vase positioniert werden können.
Verwenden Sie dann einen Geometry.Translate-Block, um Kreise in der gewünschten Höhe zu platzieren. Da die Kreise über die Vase verteilt werden sollen, verwenden wir Codeblöcke, um den Höhenparameter mit einem Faktor zu multiplizieren.
2. Kreise werden durch eine Variable in der Z-Achse verschoben.
Um eine Oberfläche mithilfe des Surface.ByLoft-Blocks zu erstellen, müssen wir alle verschobenen Kreise in einer Liste zusammenfassen. Wir verwenden List.Create, um alle Kreise in einer Liste zu kombinieren, und geben dann diese Liste im Surface.ByLoft-Block aus, um die Ergebnisse anzuzeigen.
Wir deaktivieren außerdem die Vorschau in anderen Blöcken, um nur die Surface.ByLoft-Anzeige darzustellen.
3. Eine Oberfläche wird durch Erhebung der verschobenen Kreise erstellt.
Unser Arbeitsablauf ist bereit. Wir können jetzt die Number Slider verwenden, die wir in unserem Skript definiert haben, um verschiedene Vasendesigns zu erstellen.
Attraktorpunkte eignen sich hervorragend zum Experimentieren mit geometrischen Mustern. Sie können verwendet werden, um schrittweise Änderungen an Objekten basierend auf ihrer Entfernung zu erstellen.
In diesem Arbeitsablauf lernen Sie Folgendes:
Erstellen, Verwalten und Bearbeiten von Listen.
Verschieben von Punkten in der 3D-Vorschau durch direkte Bearbeitung.
Ändern des Ausführungsmodus.
In dieser Übung erstellen Sie einen Kreis (Ziel), dessen Radius durch die Entfernung zu einem nahegelegenen Punkt (Beziehung) definiert wird.
Ein Punkt, der eine entfernungsabhängige Beziehung definiert, wird häufig als "Attraktor" bezeichnet. In diesem Beispiel wird die Entfernung zum Attraktorpunkt verwendet, um anzugeben, wie groß der Kreis sein soll.
Laden Sie die Beispieldatei herunter, indem Sie auf den folgenden Link klicken.
Eine vollständige Liste der Beispieldateien finden Sie im Anhang.
Nachdem Sie die Ziele und Beziehungen skizziert haben, können Sie mit dem Erstellen des Diagramms beginnen. Sie benötigen die Blöcke, die die Reihenfolge der Aktionen darstellen, die von Dynamo ausgeführt werden. Wir fügen zunächst die folgenden Blöcke hinzu: Number, Number Slider, Point.ByCoordinates, Geometry.DistanceTo, Circle.ByCenterPointRadius.
Input > Basic > Number
Input > Basic > Number Slider
Geometry > Points > Point > By Coordinates(x,y,z)
Geometry > Modifiers> Geometry > DistanceTo
Geometry > Curves > Circle > ByCenterPointRadius
Nachdem Sie mehrere Blöcke zum Arbeitsbereich hinzugefügt haben, müssen Sie die Anschlüsse der Blöcke mit Drähten verbinden. Diese Verbindungen definieren den Datenfluss.
Number zu Point.ByCoordinates
Number Sliders zu Point.ByCoordinates
Point.ByCoordinates (2) zu DistanceTo
Point.ByCoordinates und DistanceTo zu Circle.ByCenterPointRadius
Nachdem Sie den Programmablauf definiert haben, müssen Sie Dynamo noch mitteilen, wie es ausgeführt werden soll. Wenn das Programm ausgeführt wird (entweder automatisch oder durch Klicken auf Ausführen im manuellen Modus), werden Daten über die Drähte übertragen und die Ergebnisse in der 3D-Vorschau angezeigt.
(Auf Ausführen klicken): Wenn sich die Ausführungsleiste im manuellen Modus befindet, muss auf Ausführen geklickt werden, um das Diagramm auszuführen.
Blockvorschau: Durch Verschieben des Mauszeigers auf das Feld in der rechten unteren Ecke eines Blocks wird ein Popup-Fenster mit den Ergebnissen angezeigt.
3D-Vorschau: Wenn ein beliebiger der verfügbaren Blöcke Geometrie erzeugt, wird eine 3D-Vorschau angezeigt
Die Ausgabe von Geometrie im Erstellungsblock.
Wenn das Programm ordnungsgemäß funktioniert, wird in der 3D-Vorschau ein Kreis angezeigt, der durch den Attraktorpunkt verläuft. Anschließend können Sie weitere Details oder Steuerelemente hinzufügen. Passen Sie die Eingabe für den Circle-Block an, um den Einfluss auf den Radius zu kalibrieren. Fügen Sie einen weiteren Number Slider-Block zum Arbeitsbereich hinzu, und doppelklicken Sie auf einen leeren Bereich im Arbeitsbereich, um einen Code Block-Block hinzuzufügen. Bearbeiten Sie das Feld im Codeblock, indem Sie X/Y
angeben.
Code Block
DistanceTo und Number Slider zu Code Block
Code Block zu Circle.ByCenterPointRadius
Einfach zu beginnen und dann die Komplexität zu erhöhen stellt eine effektive Möglichkeit dar, Programme schrittweise zu entwickeln. Wenn das Programm also für einen Kreis funktioniert, können Sie es auch für mehrere Kreise ausführen. Wenn Sie anstelle eines Mittelpunkts ein Raster an Punkten verwenden und diese Änderung in der resultierenden Datenstruktur umsetzen, werden von Ihrem Programm viele Kreise erzeugt, jeder mit einem eindeutigen Radiuswert, der durch die kalibrierte Entfernung zum Attraktorpunkt definiert wird.
Fügen Sie einen Number Sequence-Block hinzu und ersetzen Sie die Eingaben von Point.ByCoordinates: Klicken Sie mit der rechten Maustaste auf Point.ByCoordinates und wählen Sie Vergitterung > Kreuzprodukt.
Fügen Sie einen Flatten-Block nach Point.ByCoordinates hinzu. Zum vollständigen Abflachen einer Liste belassen Sie Vorgabeeinstellung von
amt
auf-1
.Die 3D-Vorschau wird mit einem Raster von Kreisen aktualisiert
In manchen Fällen ist die numerische Bearbeitung nicht der richtige Ansatz. Jetzt können Sie beim Navigieren in der Hintergrund-3D-Vorschau Punktgeometrie manuell drücken und ziehen. Sie können auch andere Geometrie steuern, die durch einen Punkt konstruiert wurde. Sphere.ByCenterPointRadius kann beispielsweise ebenfalls direkt bearbeitet werden. Sie können die Position eines Punkts aus einer Reihe von X-, Y- und Z-Werten mit Point.ByCoordinates steuern. Mit dem Direktbearbeitungsansatz sind Sie jedoch in der Lage, die Werte der Schieberegler zu aktualisieren, indem Sie den Punkt im Modus Navigation in 3D-Vorschau manuell verschieben. Dieser Ansatz bietet eine intuitivere Methode zum Steuern von mehreren diskreten Werten, die eine Punktposition identifizieren.
Um die Direktbearbeitung zu verwenden, wählen Sie die Gruppe mit dem zu verschiebenden Punkt aus – über dem ausgewählten Punkt werden Pfeile angezeigt.
Wechseln Sie in den Modus Navigation in 3D-Vorschau.
Wenn Sie den Cursor über den Punkt bewegen, werden die X -, Y - und Z-Achsen angezeigt.
Klicken Sie, und ziehen Sie den farbigen Pfeil, um die entsprechende Achse zu verschieben. Die Number Slider-Werte werden live mit dem manuell verschobenen Punkt aktualisiert.
Beachten Sie, dass vor der Direktbearbeitung nur ein Schieberegler an die Point.ByCoordinates-Komponente angeschlossen war. Wenn Sie den Punkt manuell in X-Richtung verschieben, erstellt Dynamo automatisch einen neuen Number Slider für die X-Eingabe.