suggested exercise
Utworzenie wazonu parametrycznego to doskonały sposób na rozpoczęcie nauki korzystania z dodatku Dynamo.
Ten proces roboczy ilustruje:
Sterowanie zmiennymi w projekcie za pomocą suwaków liczb.
Tworzenie i modyfikowanie elementów geometrycznych za pomocą węzłów.
Wizualizowanie wyników projektu w czasie rzeczywistym.
Zanim przejdziemy do dodatku Dynamo, zaprojektujmy wazon koncepcyjnie.
Załóżmy, że zaprojektujemy wazon gliniany z uwzględnieniem praktyk wytwarzania stosowanych przez garncarzy. Garncarze zwykle używają koła garncarskiego do produkcji wazonów walcowych. Naciskając na różnych wysokościach wazonu, mogą zmienić jego kształt i tworzyć różne wzory.
Do zdefiniowania wazonu użyjemy podobnej metodologii. Utworzymy 4 okręgi na różnych wysokościach i o różnych promieniach, a następnie utworzymy powierzchnię przez wyciągnięcie tych okręgów.
Pobierz plik przykładowy, klikając poniższe łącze.
Pełna lista plików przykładowych znajduje się w załączniku.
Potrzebne są węzły reprezentujące sekwencję operacji wykonywanych przez dodatek Dynamo. Ponieważ wiemy, że chcemy utworzyć okrąg, zacznijmy od zlokalizowania węzła, który do tego służy. Użyj pola wyszukiwania lub przejdź do biblioteki, aby znaleźć węzeł Circle.ByCenterPointRadius, i dodaj go do obszaru roboczego
Wyszukaj > „Circle...”
Wybierz > „ByCenterPointRadius”
Węzeł pojawi się w obszarze roboczym
Przyjrzyjmy się bliżej temu węzłowi. Po lewej stronie znajdują się dane wejściowe węzła (centerPoint i radius), a po prawej stronie znajdują się dane wyjściowe węzła (Circle). Zwróć uwagę, że dane wyjściowe mają jasnoniebieską linię. Oznacza to, że dane wejściowe mają wartość domyślną. Aby uzyskać więcej informacji na temat danych wejściowych, ustaw kursor na nazwie odpowiedniego wejścia. Dane wejściowe radius wymagają wprowadzenia liczby o podwójnej precyzji (double) i mają wartość domyślną 1.
Zostawimy wartość domyślną centerPoint, ale dodamy suwak liczb, Number Slider, aby sterować promieniem. Podobnie jak w przypadku węzła Circle.ByCenterPointRadius, użyj biblioteki, aby wyszukać Number Slider, i dodaj go do wykresu.
Ten węzeł jest nieco inny niż poprzedni węzeł, ponieważ zawiera suwak. Interfejs umożliwia zmianę wartości wyjściowej suwaka.
Suwak można skonfigurować za pomocą przycisku listy rozwijanej po lewej stronie węzła. Ograniczmy suwak do maksymalnej wartości 15.
Umieśćmy go po lewej stronie węzła Circle.ByCenterPointRadius i połączmy oba węzły, wybierając wyjście Number Slider oraz łącząc je z wejściem Radius.
Zmieńmy również nazwę suwaka Number Slider na „Top Radius”, klikając dwukrotnie nazwę węzła.
Kontynuujmy dodawanie węzłów i połączeń do logiki w celu zdefiniowania wazonu.
Skopiujmy te węzły 4 razy, aby uzyskać okręgi definiujące powierzchnię. Zmień nazwy suwaków Number Slider, jak pokazano poniżej.
Okręgi są tworzone za pomocą punktu środkowego i promienia
Brakuje nam kluczowego parametru wazonu: jego wysokości. Aby sterować wysokością wazonu, należy utworzyć kolejny suwak liczb. Dodamy również węzeł bloku kodu: Code Block. Bloki kodu ułatwiają dodawanie do procesu roboczego spersonalizowanych fragmentów kodu. Użyjemy bloku kodu do pomnożenia suwaka wysokości przez różne współczynniki, co pozwoli nam rozmieścić okręgi wzdłuż wysokości wazonu.
Następnie za pomocą węzła Geometry.Translate umieścimy okręgi na żądanej wysokości. Ponieważ chcemy rozmieścić okręgi w wazonie, użyjemy bloków kodu do pomnożenia parametru wysokości przez współczynnik.
2. Okręgi są przesuwane (przekształcane) o zmienną na osi Z.
Aby utworzyć powierzchnię za pomocą węzła Surface.ByLoft, należy połączyć wszystkie przekształcone okręgi w listę. Użyjemy węzła List.Create, aby połączyć wszystkie okręgi w jedną listę, a następnie wyprowadzimy tę listę do węzła Surface.ByLoft, aby wyświetlić wyniki.
Wyłączmy również podgląd w innych węzłach, aby wyświetlić tylko wyświetlanie Surface.ByLoft.
3. Przez wyciągnięcie przekształconych okręgów zostanie utworzona powierzchnia.
Nasz proces roboczy jest gotowy. Teraz możemy użyć węzła Number Slider zdefiniowanego w skrypcie, aby utworzyć różne projekty wazonów.
W tej sekcji opisano proste procesy robocze umożliwiające rozpoczęcie pracy z dodatkiem Dynamo.
Punkty przyciągania są przydatne podczas eksperymentowania ze wzorami geometrycznymi. Mogą one służyć do tworzenia stopniowych zmian obiektów na podstawie ich odległości.
Ten proces roboczy ilustruje:
Tworzenie i edytowanie list oraz zarządzanie nimi.
Przesuwanie punktów w podglądzie 3D za pomocą bezpośredniej manipulacji.
Zmienianie trybu wykonywania.
W tym ćwiczeniu chcemy utworzyć okrąg (cel), w przypadku którego wartość wejściowa promienia jest zdefiniowana za pomocą odległości od pobliskiego punktu (zależność).
Punkt definiujący zależność na podstawie odległości jest powszechnie określany jako „punkt przyciągania” (lub „atraktor”). Tutaj odległość od punktu przyciągania będzie używana do określenia, jak duży będzie nasz okrąg.
Pobierz plik przykładowy, klikając poniższe łącze.
Pełna lista plików przykładowych znajduje się w załączniku.
Po naszkicowaniu celów i zależności możemy rozpocząć tworzenie wykresu. Potrzebne są węzły reprezentujące sekwencję operacji wykonywanych przez dodatek Dynamo. Zacznijmy od dodania następujących węzłów: Number, Number Slider, Point.ByCoordinates, Geometry.DistanceTo, Circle.ByCenterPointRadius.
Dane wejściowe > Podstawowe > Number
Dane wejściowe > Podstawowe > Number Slider
Geometria > Punkty > Punkt > By Coordinates(x,y,z)
Geometria > Modyfikatory > Geometria > DistanceTo
Geometria > Krzywe > Okrąg > ByCenterPointRadius
Mamy już kilka węzłów, więc teraz musimy połączyć porty węzłów z przewodami. Połączenia te zdefiniują przepływ danych.
Number do Point.ByCoordinates
Węzły Number Slider do Point.ByCoordinates
Point.ByCoordinates (2) do DistanceTo
Point.ByCoordinates i DistanceTo do Circle.ByCenterPointRadius
Po zdefiniowaniu przepływu programu wystarczy tylko wydać dodatkowi Dynamo polecenie wykonania go. Po uruchomieniu programu (automatycznie lub po kliknięciu przycisku Uruchom w trybie ręcznym) dane zostaną przekazane przez przewody. Wyniki powinny pojawić się w podglądzie 3D.
(Kliknij przycisk Uruchom) — jeśli pasek wykonywania jest w trybie ręcznym, aby uruchomić wykres, należy kliknąć przycisk Uruchom.
Podgląd węzła — umieszczenie kursora myszy na polu w prawym dolnym rogu węzła powoduje wyświetlenie wyskakującego pola wyników.
Podgląd 3D — jeśli dowolny z węzłów tworzy geometrię, zostanie ona wyświetlona w podglądzie 3D.
Geometria wyjściowa w węźle tworzenia.
Jeśli nasz program działa, w podglądzie 3D powinniśmy zobaczyć okrąg, który przechodzi przez nasz punkt przyciągania. To doskonały wynik. Ale może zajść potrzeba dodania większej liczby szczegółów lub większej liczby elementów sterujących. Dopasujmy wejście węzła okręgu, tak aby można było kalibrować wpływ na promień. Dodaj kolejny węzeł Number Slider do obszaru roboczego, a następnie kliknij dwukrotnie puste miejsce obszaru roboczego, aby dodać węzeł bloku kodu — Code Block. Edytuj pole w bloku kodu, określając X/Y
.
Code Block
DistanceTo i Number Slider do Code Block
Code Block do Circle.ByCenterPointRadius
Rozpoczynanie od czegoś prostego, a następnie zwiększanie złożoności jest skutecznym sposobem na stopniowe tworzenie programu. Po utworzeniu działającego rozwiązania dla jednego okręgu wykorzystajmy je do manipulowania więcej niż jednym okręgiem. Jeśli użyjemy siatki punktów zamiast jednego punktu środkowego i uwzględnimy tę zmianę w wynikowej strukturze danych, program będzie teraz tworzyć wiele okręgów — każdy z nich będzie miał unikalną wartość promienia definiowaną przez kalibrowaną odległość do punktu przyciągania.
Dodaj węzeł Number Sequence i zastąp wejścia węzła Point.ByCoordinates — kliknij prawym przyciskiem myszy węzeł Point.ByCoordinates i wybierz opcję Skratowanie > Odniesienie krzyżowe.
Dodaj węzeł Flatten po węźle Point.ByCoordinates. Aby całkowicie spłaszczyć listę, pozostaw domyślną wartość wejścia
amt
równą-1
Podgląd 3D zostanie zaktualizowany o siatkę okręgów.
Czasami manipulacja liczbowa nie stanowi właściwego podejścia. Teraz można ręcznie popychać i pociągać geometrię punktu podczas nawigacji w podglądzie 3D tła. Można również sterować inną geometrią, która została utworzona przez punkt. Na przykład węzeł Sphere.ByCenterPointRadius również umożliwia manipulację bezpośrednią. Można sterować położeniem punktu za pomocą serii wartości X, Y i Z przy użyciu węzła Point.ByCoordinates. Jednak dzięki metodzie manipulacji bezpośredniej można aktualizować wartości suwaków, ręcznie przesuwając punkt w trybie nawigacji w podglądzie 3D. Zapewnia to bardziej intuicyjne podejście do sterowania zestawem wartości dyskretnych identyfikujących położenie punktu.
Aby zastosować manipulację bezpośrednią, wybierz panel punktu do przesunięcia — nad wybranym punktem pojawią się strzałki.
Przełącz do trybu nawigacja w podglądzie 3D.
Umieść kursor na punkcie, a pojawią się osie X, Y i Z.
Kliknij i przeciągnij kolorową strzałkę, aby przesunąć odpowiednią oś, a wartości Number Slider zostaną dynamicznie zaktualizowane zgodnie z ręcznie przesuniętym punktem.
Zwróć uwagę, że przed rozpoczęciem operacji bezpośredniej manipulacji do komponentu Point.ByCoordinates był podłączony tylko jeden suwak. Po ręcznym przesunięciu punktu w kierunku osi X dodatek Dynamo automatycznie wygeneruje nowy węzeł Number Slider dla wejścia X.