Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Właśnie utworzyliśmy węzeł niestandardowy i zastosowaliśmy go do określonego procesu na wykresie Dynamo. Ten węzeł podoba nam się tak bardzo, że chcemy pozostawić go w naszej bibliotece dodatku Dynamo, aby odwoływać się do niego na innych wykresach. Aby to zrobić, opublikujemy ten węzeł lokalnie. Jest to proces podobny do publikowania pakietu, który bardziej szczegółowo omówimy w następnym rozdziale.
Węzeł opublikowany lokalnie będzie dostępny w bibliotece dodatku Dynamo po otwarciu nowej sesji. Jeśli nie opublikujemy węzła, w folderze wykresu Dynamo, który odwołuje się do węzła niestandardowego, musi również znajdować się ten węzeł niestandardowy (lub węzeł niestandardowy musi zostać zaimportowany do dodatku Dynamo za pomocą polecenia Plik > Importuj bibliotekę).
Pakiety i węzły niestandardowe można publikować w środowisku Dynamo Sandbox w wersji 2.17 lub nowszej, o ile nie mają one zależności od nadrzędnego interfejsu API. W starszych wersjach publikowanie pakietów i węzłów niestandardowych jest włączone tylko w dodatku Dynamo dla programu Revit i dodatku Dynamo dla programu Civil 3D.
Pobierz plik przykładowy, klikając poniższe łącze.
Pełna lista plików przykładowych znajduje się w załączniku.
Kontynuujmy pracę z węzłem niestandardowym, który utworzyliśmy w poprzedniej sekcji. Po otwarciu węzła niestandardowego PointsToSurface widać wykres w Edytorze węzłów niestandardowych dodatku Dynamo. Węzeł niestandardowy można również otworzyć, klikając go dwukrotnie w Edytorze wykresu Dynamo.
Aby opublikować węzeł niestandardowy lokalnie, wystarczy kliknąć prawym przyciskiem myszy obszar rysunku i wybrać opcję „Opublikuj ten węzeł niestandardowy...”
Podaj odpowiednie informacje (podobnie, jak to zrobiono na ilustracji powyżej) i wybierz opcję „Opublikuj lokalnie”. Należy zwrócić uwagę, że pole Grupa definiuje element główny dostępny w menu dodatku Dynamo.
Wybierz folder, w którym będą przechowywane wszystkie węzły niestandardowe publikowane lokalnie. Ten folder będzie sprawdzany przy każdym wczytywaniu dodatku Dynamo, dlatego upewnij się, że jest to folder trwały. Przejdź do tego folderu i wybierz opcję „Wybierz folder”. Węzeł Dynamo jest teraz opublikowany lokalnie i będzie dostępny w bibliotece dodatku Dynamo po każdym wczytaniu programu.
Aby sprawdzić położenie folderu węzłów niestandardowych, przejdź do obszaru Dynamo > Preferencje > Ustawienia pakietów > Ścieżki do węzłów i pakietów
W tym oknie jest widoczna lista ścieżek.
Ścieżka Documents\DynamoCustomNodes... odnosi się do położenia węzłów niestandardowych, które zostały opublikowane lokalnie.
Ścieżka AppData\Roaming\Dynamo... odnosi się do domyślnego położenia pakietów dodatku Dynamo instalowanych online.
Można przenieść ścieżkę folderu lokalnego w dół listy, klikając strzałkę skierowaną w dół po lewej stronie nazwy ścieżki. Folder na początku listy stanowi domyślną ścieżkę do instalacji pakietów. Dlatego jeśli domyślna ścieżka instalacji pakietów Dynamo zostanie zachowana jako folder domyślny, pakiety online będą oddzielone od węzłów opublikowanych lokalnie.
Zmieniliśmy kolejność nazw ścieżek, aby lokalizacją instalacji pakietu była domyślna ścieżka dodatku Dynamo.
Po przejściu do tego folderu lokalnego oryginalny węzeł niestandardowy znajdziemy w folderze „.dyf” — ta nazwa stanowi rozszerzenie pliku węzła niestandardowego dodatku Dynamo (Dynamo Custom Node). Możemy edytować plik w tym folderze, a węzeł zostanie zaktualizowany w interfejsie użytkownika. Możemy także dodać więcej węzłów do głównego folderu DynamoCustomNode, a dodatek Dynamo doda je do biblioteki po ponownym uruchomieniu.
Dodatek Dynamo będzie teraz za każdym razem wczytywany z elementem „PointsToSurface” w grupie „DynamoPrimer” w bibliotece dodatku Dynamo.
Węzły niestandardowe są tworzone przez zagnieżdżanie innych węzłów i węzłów niestandardowych wewnątrz „węzła niestandardowego Dynamo”, który można traktować koncepcyjnie jako kontener. Gdy ten węzeł kontenera zostaje wykonany na wykresie, wykonywana jest cała jego zawartość, co umożliwia ponowne używanie i udostępnianie przydatnego połączenia węzłów.
Jeśli na wykresie znajduje się wiele kopii węzła niestandardowego, można zaktualizować je wszystkie, edytując podstawowy węzeł niestandardowy. Umożliwia to płynną aktualizację wykresu przez dostosowanie rozwiązania do zmian, które mogą wystąpić w procesie roboczym lub w projekcie.
Prawdopodobnie największą zaletą węzłów niestandardowych jest możliwość ich udostępniania. Jeśli „użytkownik zaawansowany” utworzy złożony wykres Dynamo i przekaże go projektantowi, który jest nowym użytkownikiem dodatku Dynamo, może on uprościć ten wykres do elementów najistotniejszych dla interakcji projektowych. Węzeł niestandardowy można otworzyć w celu edycji wewnętrznego wykresu, zachowując przy tym prostotę „kontenera”. Dzięki tej procedurze węzły niestandardowe umożliwiają użytkownikom dodatku Dynamo projektowanie wykresów, które będą przejrzyste i intuicyjne.
W dodatku Dynamo można tworzyć węzły niestandardowe na wiele sposobów. W przykładach w tym rozdziale utworzymy węzły niestandardowe bezpośrednio za pomocą interfejsu użytkownika dodatku Dynamo. Programista interesujący się formatowaniem C# lub Zero-Touch może skorzystać z tej strony na stronie wiki dodatku Dynamo, aby zapoznać się z bardziej szczegółowym omówieniem.
Przejdźmy do środowiska węzłów niestandardowych i utwórzmy prosty węzeł, aby obliczyć wartość procentową. Środowisko węzłów niestandardowych różni się od środowiska wykresu Dynamo, ale obsługuje się je zasadniczo tak samo. Utwórzmy więc pierwszy węzeł niestandardowy.
Aby utworzyć węzeł niestandardowy od podstaw, uruchom dodatek Dynamo i wybierz opcję Węzeł niestandardowy lub naciśnij kombinację klawiszy Ctrl+Shift+N w obszarze rysunku.
W oknie dialogowym Właściwości węzła niestandardowego przypisz nazwę, opis i kategorię.
Nazwa: Percentage
Opis: oblicza procent (ang. percentage) jednej wartości względem innej.
Kategoria: Math.Functions
Spowoduje to otwarcie obszaru rysunku z żółtym tłem, co oznacza, że użytkownik pracuje w węźle niestandardowym. W tym obszarze rysunku użytkownik ma dostęp do wszystkich podstawowych węzłów Dynamo oraz do węzłów Input i Output, które opisują dane wpływające do węzła niestandardowego i wypływające z niego. Można je znaleźć w obszarze Input (Dane wejściowe)>Basic (Podstawowe).
Węzły Input: węzły wejściowe tworzą porty wejściowe w węźle niestandardowym. Składnia węzła wejściowego to: nazwa_węzła_wejściowego : datatype = wartość_domyślna (opcjonalnie).
Węzły Output: podobnie jak w przypadku węzłów wejściowych te węzły tworzą porty wyjściowe w węźle niestandardowym. Rozważ dodanie komentarza niestandardowego (Custom Comment) do portów wejściowych i wyjściowych, aby poinformować o typach danych wejściowych i wyjściowych. Więcej szczegółów znajduje się w sekcji Tworzenie węzłów niestandardowych.
Ten węzeł niestandardowy można zapisać jako plik .dyf (w przeciwieństwie do standardowego pliku .dyn), który zostanie automatycznie dodany do bieżącej sesji i przyszłych sesji. Ten węzeł niestandardowy można znaleźć w bibliotece w sekcji dodatków.
Teraz po utworzeniu pierwszego węzła niestandardowego w kolejnych sekcjach dokładniej omówimy funkcje węzłów niestandardowych i to, jak publikuje się ogólne procesy robocze. W kolejnej sekcji przyjrzymy się opracowywaniu węzła niestandardowego, który przenosi geometrię z jednej powierzchni do drugiej.
Dodatek Dynamo udostępnia różne sposoby tworzenia pakietu do użytku osobistego lub do udostępnienia społeczności dodatku Dynamo. W poniższej analizie przypadku omówimy sposób konfigurowania pakietu przez dekonstrukcję istniejącego. Ta analiza przypadku opiera się na lekcjach z poprzedniego rozdziału — z udostępnieniem zestawu węzłów niestandardowych do odwzorowania geometrii, za pomocą współrzędnych UV, z jednej powierzchni Dynamo na inną.
Będziemy pracować z przykładowym pakietem demonstrującym odwzorowywanie punktów UV z jednej powierzchni na inną. W sekcji Tworzenie węzła niestandardowego tego przewodnika Primer utworzyliśmy już podstawy narzędzia. W poniższych plikach przedstawiono, w jaki sposób można wykorzystać koncepcję odwzorowywania UV i opracować zestaw narzędzi dla publikowalnej biblioteki.
Na tej ilustracji odwzorowujemy punkt z jednej powierzchni na drugą za pomocą współrzędnych UV. Pakiet jest oparty na tej koncepcji, ale z bardziej złożoną geometrią.
W poprzednim rozdziale omówiliśmy sposoby panelowania powierzchni w dodatku Dynamo na podstawie krzywych zdefiniowanych na płaszczyźnie XY. W tej analizie przypadku rozszerzono zakres tych pojęć o więcej wymiarów geometrii. Zainstalujemy ten pakiet jako wbudowany, aby zademonstrować, w jaki sposób został on opracowany. W następnej sekcji pokażemy, jak ten pakiet opublikowano.
W dodatku Dynamo kliknij kolejno opcje Pakiety > Menedżer pakietów i wyszukaj pakiet „MapToSurface” (jest to jeden wyraz). Kliknij przycisk Zainstaluj, aby rozpocząć pobieranie i dodać pakiet do biblioteki.
Po zainstalowaniu węzły niestandardowe powinny być dostępne w sekcji Dodatki > Przewodnik Dynamo Primer.
Po zainstalowaniu pakietu przeanalizujmy jego konfigurację.
Tworzony pakiet zawiera pięć węzłów niestandardowych utworzonych na potrzeby odniesienia. Poniżej przeanalizujemy funkcjonowanie poszczególnych węzłów. Niektóre węzły niestandardowe utworzone na podstawie innych węzłów niestandardowych oraz wykresy mają układ łatwo zrozumiały dla innych użytkowników.
To jest prosty pakiet z pięcioma węzłami niestandardowymi. W poniższych krokach omówiono krótko konfigurację każdego węzła niestandardowego.
Jest to podstawowy węzeł niestandardowy, na którym oparto wszystkie pozostałe węzły odwzorowania. Mówiąc prościej: węzeł odwzorowuje punkt ze współrzędnej UV powierzchni źródłowej na położenie współrzędnej UV powierzchni docelowej. Ponieważ punkty są najbardziej elementarną geometrią, z której zbudowana jest bardziej złożona geometria, za pomocą tej logiki można odwzorować geometrię 2D — a nawet geometrię 3D — z jednej powierzchni na inną.
Logika wydłużania odwzorowanych punktów z geometrii 1D do geometrii 2D została prosto przedstawiona tutaj za pomocą wieloboków. Należy zwrócić uwagę, że zagnieździliśmy węzeł „PointsToSurface” w tym węźle niestandardowym. W ten sposób można odwzorować punkty każdego wieloboku na powierzchnię, a następnie ponownie wygenerować wielobok z tych odwzorowanych punktów. Zachowując właściwą strukturę danych (listę list punktów), możemy zachować osobne wieloboki po zredukowaniu ich do zbioru punktów.
Tutaj ma zastosowanie ta sama logika co w węźle „PolygonsToSurface”. Jednak zamiast odwzorowywać punkty wieloboków, odwzorowujemy punkty kontrolne krzywej nurbs.
OffsetPointsToSurface
Ten węzeł staje się nieco bardziej złożony, ale koncepcja jest prosta: podobnie jak węzeł „PointsToSurface” węzeł ten odwzorowuje punkty z jednej powierzchni na inną. Jednak uwzględnia również punkty, które nie znajdują się na oryginalnej powierzchni źródłowej, pobiera ich odległość do najbliższego parametru UV i odwzorowuje tę odległość na wektor normalny powierzchni docelowej w odpowiedniej współrzędnej UV. Będzie to bardziej zrozumiałe podczas analizowania plików przykładowych.
Jest to prosty węzeł, który tworzy powierzchnię parametryczną do odwzorowania z siatki źródłowej na powierzchnię falistą w plikach przykładowych.
Pliki przykładowe można znaleźć w folderze głównym pakietu. Kliknij kolejno kartę Menedżer pakietów > Zainstalowane pakiety.
Obok pozycji MapToSurface kliknij menu w postaci pionowych kropek > Pokaż katalog główny
Następnie otwórz folder „extra” zawierający wszystkie pliki w pakiecie, które nie są węzłami niestandardowymi. W tym miejscu przechowywane są pliki przykładowe (jeśli istnieją) dla pakietów Dynamo. Zrzuty ekranu poniżej ilustrują koncepcje przedstawione w poszczególnych plikach przykładowych.
Za pomocą tego pliku przykładowego przedstawiono, jak można wykorzystać węzeł „PointsToSurface” do panelowania powierzchni w oparciu o siatkę prostokątów. Powinno to wyglądać znajomo, ponieważ podobny proces roboczy został przedstawiony w poprzednim rozdziale.
Za pomocą podobnego procesu roboczego w tym pliku ćwiczeniowym przedstawiono konfigurację odwzorowywania okręgów (lub wieloboków reprezentujących okręgi) między powierzchniami. Wykorzystywany jest węzeł „PolygonsToSurface”.
Ten plik przykładowy zwiększa złożoność dzięki współdziałaniu z węzłem „NurbsCrvToSurface”. Powierzchnia docelowa jest odsunięta o daną odległość, a krzywa nurbs jest odwzorowana na oryginalną powierzchnię docelową i powierzchnię odsunięcia. Z tego miejsca dwie odwzorowane krzywe są wyciągane w celu utworzenia powierzchni, która następnie zostaje pogrubiona. Ta wynikowa bryła ma pofalowanie, które jest reprezentacją wektorów normalnych powierzchni docelowej.
W tym pliku przykładowym przedstawiono sposób odwzorowania powierzchni PolySurface z zakładką z powierzchni źródłowej na powierzchnię docelową. Powierzchnie źródłowa i docelowa są prostokątną powierzchnią łączącą odpowiednio siatkę i powierzchnię obrotową.
Powierzchnia PolySurface odwzorowana z powierzchni źródłowej na powierzchnię docelową.
Ponieważ węzły niestandardowe mogą odwzorowywać różne typy krzywych, ten ostatni plik odnosi się do pliku SVG wyeksportowanego z programu Illustrator i odwzorowuje zaimportowane krzywe na powierzchnię docelową.
Przez przeanalizowanie składni pliku .svg krzywe są przekształcane z formatu .xml na krzywe PolyCurve dodatku Dynamo.
Zaimportowane krzywe są odwzorowane na powierzchnię docelową. Dzięki temu można jawnie (punkt-i-kliknięcie) projektować panelowanie w programie Illustrator, importować je do dodatku Dynamo i stosować do powierzchni docelowej.
Dodatek Dynamo udostępnia wiele funkcji gotowych do użycia oraz obszerną bibliotekę pakietów, które mogą znacznie zwiększyć możliwości dodatku. Pakiet jest zbiorem węzłów niestandardowych lub dodatkowych funkcji. Dynamo Package Manager to portal dla społeczności umożliwiający pobranie dowolnego pakietu, który został opublikowany online. Te zestawy narzędzi zostały opracowane przez strony trzecie w celu rozszerzenia podstawowej funkcjonalności dodatku Dynamo i są dostępne dla wszystkich. Są gotowe do pobrania przez kliknięcie przycisku.
Projekt open-source, taki jak dodatek Dynamo, rozwija się dzięki takiemu zaangażowaniu społeczności. Dzięki zaangażowanym programistom zewnętrznym dodatek Dynamo może rozszerzyć zasięg na procesy robocze w różnych branżach. Z tego powodu zespół dodatku Dynamo podjął skoncentrowane wysiłki w celu usprawnienia opracowywania i publikowania pakietów (zostanie to omówione bardziej szczegółowo w kolejnych sekcjach).
Najprostszym sposobem instalacji pakietu jest użycie opcji menu Pakiety w interfejsie dodatku Dynamo. Przejdźmy od razu do rzeczy i zainstalujmy pakiet teraz. W tym szybkim przykładzie zainstalujemy popularny pakiet umożliwiający tworzenie paneli czworokątnych na siatce.
W dodatku Dynamo przejdź do obszaru Pakiety > Menedżer pakietów.
Na pasku wyszukiwania wyszukaj frazę „quads from rectangular grid”. Po kilku chwilach powinny pojawić się wszystkie pakiety zgodne z tym zapytaniem. Wybierzmy pierwszy pakiet z pasującą nazwą.
Kliknij przycisk Zainstaluj, aby dodać ten pakiet do biblioteki, a następnie zaakceptuj potwierdzenie. Gotowe.
Zwróć uwagę, że w bibliotece Dynamo pojawiła się kolejna grupa o nazwie „buildz”. Ta nazwa odnosi się do programisty pakietu, a węzeł niestandardowy zostaje umieszczony w tej grupie. Możemy od razu zacząć z niego korzystać.
Użyj węzła Code Block, aby szybko zdefiniować prostokątną siatkę, zapisać wynik w węźle Polygon.ByPoints, a następnie użyj węzła Surface.ByPatch, aby wyświetlić listę właśnie utworzonych prostokątnych paneli.
W powyższym przykładzie skupiono się na pakiecie z jednym węzłem niestandardowym, ale ten sam proces jest używany do pobierania pakietów z kilkoma węzłami niestandardowymi i plikami danych pomocniczych. Zademonstrujmy to teraz z wszechstronniejszym pakietem: Dynamo Unfold.
Tak jak w przykładzie powyżej, rozpocznij od wybrania opcji Pakiety > Menedżer pakietów.
Tym razem poszukamy jednego słowa, „DynamoUnfold”. Po wyświetleniu pakietów pobierz je, klikając przycisk Zainstaluj, aby dodać składniki Dynamo Unfold do biblioteki Dynamo.
W bibliotece Dynamo dostępna jest grupa DynamoUnfold z wieloma kategoriami i węzłami niestandardowymi.
Spójrzmy teraz na strukturę plików pakietu.
Najpierw przejdź do obszaru Pakiety > Menedżer pakietów > Zainstalowane pakiety.
Następnie kliknij opcję Pokaż katalog główny, aby otworzyć folder główny dla tego pakietu.
Spowoduje to przejście do katalogu głównego pakietu. Zwróć uwagę, że mamy 3 foldery i plik.
Folder bin zawiera pliki .dll. Ten pakiet Dynamo został opracowany przy użyciu narzędzia Zero-Touch, więc węzły niestandardowe są przechowywane w tym folderze.
Folder dyf zawiera węzły niestandardowe. Ten pakiet nie został opracowany przy użyciu węzłów niestandardowych Dynamo, dlatego ten folder jest w przypadku tego pakietu pusty.
Ten dodatkowy folder zawiera wszystkie dodatkowe pliki, w tym pliki przykładowe.
Plik pkg jest podstawowym plikiem tekstowym definiującym ustawienia pakietu. Na razie możemy to zignorować.
Po otwarciu folderu „extra” zostaje wyświetlona seria plików przykładowych, które zostały pobrane wraz z instalacją. Nie wszystkie pakiety zawierają pliki przykładowe, ale jeśli są one częścią pakietu, można je znaleźć tutaj.
Otwórzmy plik „SphereUnfold”.
Po otwarciu pliku i naciśnięciu przycisku „Uruchom” w solwerze dostępna jest rozwinięta sfera. Pliki przykładowe są przydatne do nauki pracy z nowym pakietem Dynamo.
W Menedżerze pakietów można odszukiwać pakiety, korzystając z opcji sortowania i filtrowania na karcie Wyszukaj pakiety. Dostępnych jest kilka filtrów dotyczących programu nadrzędnego, statusu (nowy, nieaktualny lub z cofniętą nieaktualnością) oraz tego, czy pakiet ma zależności.
Sortując pakiety, można zidentyfikować pakiety wysoko oceniane lub najczęściej pobierane albo znaleźć pakiety z najnowszymi aktualizacjami.
Aby uzyskać dostęp do większej ilości szczegółowych informacji dotyczących danego pakietu, kliknij przycisk Wyświetl szczegóły. Spowoduje to otwarcie panelu bocznego w Menedżerze pakietów, w którym można znaleźć takie dane, jak obsługa wersji i zależności, adres URL witryny lub repozytorium, informacje o licencji itp.
Innym sposobem odkrywania pakietów Dynamo jest przeglądanie witryny Dynamo Package Manager. Tutaj można znaleźć statystyki dotyczące pakietów i tablice wiodących autorów. Pliki pakietu można również pobrać z Menedżera pakietów Dynamo, ale robienie tego bezpośrednio z poziomu dodatku Dynamo stanowi płynniejszy proces.
Jeśli chcesz zobaczyć, gdzie przechowywane są pliki pakietu, w górnym obszarze nawigacji kliknij kolejno opcje Dynamo > Preferencje > Ustawienia pakietów > Lokalizacje plików węzłów i pakietów. Tutaj znajdziesz bieżący katalog główny.
Domyślnie pakiety są instalowane w położeniu podobnym do tej ścieżki folderu: C:/Users/[nazwa_użytkownika]/AppData/Roaming/Dynamo/[wersja dodatku Dynamo].
Społeczność dodatku Dynamo stale rośnie i ewoluuje. Przeglądając Menedżera pakietów Dynamo od czasu do czasu, znajdziesz nowe interesujące rozwiązania. W poniższych sekcjach przyjrzymy się dokładniej pakietom: od perspektywy użytkownika końcowego po perspektywę twórcy własnego pakietu Dynamo.
Od razu po zainstalowaniu dodatku Dynamo udostępnia on wiele gotowych funkcji w bibliotece węzłów. Węzły i pakiety niestandardowe są doskonałym sposobem na jeszcze większe rozszerzenie zastosowania dodatku Dynamo — na przykład do obsługi często używanych procedur lub specjalnego wykresu, który ma zostać udostępniony społeczności.
Dodatek Dynamo oferuje kilka różnych metod tworzenia węzłów niestandardowych. Węzły niestandardowe można tworzyć od podstaw, z istniejącego wykresu lub bezpośrednio w języku C#. W tej części omówimy tworzenie węzła niestandardowego w interfejsie użytkownika dodatku Dynamo z istniejącego wykresu. Ta metoda jest idealna do czyszczenia obszaru roboczego, jak również do pakowania sekwencji węzłów do ponownego użycia w innym miejscu.
Na poniższej ilustracji odwzorowujemy punkt z jednej powierzchni na drugą za pomocą współrzędnych UV. Użyjemy tej koncepcji do utworzenia panelowanej powierzchni, która odwołuje się do krzywych na płaszczyźnie XY. Utworzymy tu panele czworokątne dla naszego panelowania, ale stosując tę samą logikę, możemy utworzyć szeroką gamę paneli z odwzorowaniem UV. Jest to świetna okazja do tworzenia węzłów niestandardowych, ponieważ w ten sposób łatwiej będzie powtórzyć podobny proces na tym wykresie lub w innych procesach roboczych Dynamo.
Pobierz plik przykładowy, klikając poniższe łącze.
Pełna lista plików przykładowych znajduje się w załączniku.
Code Block: użyj tego wiersza, aby utworzyć zakres 10 liczb od -45 do 45
45..45..#10;
Point.ByCoordinates: połącz wyjście węzła Code Block z wejściami „x” i „y” oraz ustaw skratowanie na odniesienie krzyżowe. Powinna teraz istnieć siatka punktów.
Plane.ByOriginNormal: połącz wyjście „Point” z wejściem „origin”, aby utworzyć płaszczyznę w każdym z punktów. Zostanie użyty domyślny wektor normalny (0,0,1).
Rectangle.ByWidthLength: połącz płaszczyzny z poprzedniego kroku z wejściem „plane” i użyj węzła Code Block z wartością 10 w celu określenia szerokości i długości.
Powinna teraz istnieć siatka prostokątów. Odwzorujmy te prostokąty na powierzchnię docelową za pomocą współrzędnych UV.
Polygon.Points: połącz wyjście Rectangle.ByWidthLength z poprzedniego kroku z wejściem „polygon”, aby wyodrębnić punkty narożne każdego prostokąta. Są to punkty, które odwzorujemy na powierzchnię docelową.
Rectangle.ByWidthLength: użyj węzła Code Block z wartością 100, aby określić szerokość i długość prostokąta. Będzie to obwiednia powierzchni bazowej.
Surface.ByPatch: połącz węzeł Rectangle.ByWidthLength z poprzedniego kroku z wejściem „closedCurve”, aby utworzyć powierzchnię bazową.
Surface.UVParameterAtPoint: połącz wyjście „Point” węzła Polygon.Points i wyjście „Surface” węzła Surface.ByPatch, aby zwrócić parametr UV w każdym punkcie.
Teraz gdy mamy powierzchnię bazową i zbiór współrzędnych UV, możemy zaimportować powierzchnię docelową i odwzorować punkty między powierzchniami.
File Path: wybierz ścieżkę pliku dla powierzchni, którą chcesz zaimportować. Powinien to być plik typu .SAT. Kliknij przycisk „Przeglądaj” i przejdź do pliku UVmapping_srf.sat z pliku .zip pobranego powyżej.
Geometry.ImportFromSAT: połącz ścieżkę pliku, aby zaimportować powierzchnię. W podglądzie geometrii powinna być widoczna zaimportowana powierzchnia.
UV: połącz wyjście parametru UV z węzłami UV.U i UV.V.
Surface.PointAtParameter: połącz zaimportowaną powierzchnię oraz współrzędne u i v. Na powierzchni docelowej powinna być teraz widoczna siatka punktów 3D.
Ostatnią czynnością jest użycie punktów 3D do utworzenia prostokątnych płatów powierzchni.
PolyCurve.ByPoints: połącz punkty na powierzchni, aby skonstruować krzywą PolyCurve przez punkty.
Boolean: dodaj węzeł Boolean do obszaru roboczego i połącz go z wejściem „connectLastToFirst” oraz przełącz na wartość True, aby zamknąć krzywe PolyCurve. Powinny być teraz widoczne prostokąty odwzorowane na powierzchnię.
Surface.ByPatch: połącz krzywe PolyCurve z wejściem „closedCurve”, aby skonstruować płaty powierzchni.
Teraz wybierzmy węzły do zagnieżdżenia w węźle niestandardowym, uwzględniając to, jakie powinny być wejścia i wyjścia węzła. Chcemy, aby węzeł niestandardowy był możliwie najbardziej elastyczny, by umożliwiał odwzorowanie dowolnych wieloboków, a nie tylko prostokątów.
Wybierz następujące węzły (począwszy od węzła Polygon.Points), kliknij prawym przyciskiem myszy obszar roboczy i wybierz opcję „Utwórz węzeł niestandardowy”.
W oknie dialogowym Właściwości węzła niestandardowego przypisz nazwę, opis i kategorię do węzła niestandardowego.
Nazwa: MapPolygonsToSurface
Opis: odwzoruj wielokąty z powierzchni bazowej na powierzchnię docelową
Kategoria dodatków: Geometry.Curve
Węzeł niestandardowy znacznie wyczyścił obszar roboczy. Warto zauważyć, że wejścia i wyjścia zostały nazwane na podstawie oryginalnych węzłów. Zmodyfikujmy węzeł niestandardowy, zmieniając te nazwy na bardziej opisowe.
Kliknij dwukrotnie węzeł niestandardowy, aby go edytować. Spowoduje to otwarcie obszaru roboczego z żółtym tłem reprezentującym wnętrze węzła.
Węzły Input: zmień nazwy wejść na baseSurface i targetSurface.
Węzły Output: dodaj kolejne wyjście dla odwzorowanych wieloboków.
Zapisz węzeł niestandardowy i wróć do głównego obszaru roboczego. Uwaga: węzeł MapPolygonsToSurface odzwierciedla wprowadzone zmiany.
Można również zwiększyć niezawodność węzła niestandardowego przez dodanie treści w sekcji Komentarze niestandardowe. Komentarze mogą pomóc w ustaleniu typów wejść i wyjść lub objaśnieniu funkcjonalności węzła. Komentarze pojawią się, gdy użytkownik ustawi kursor na wejściu lub wyjściu węzła niestandardowego.
Kliknij dwukrotnie węzeł niestandardowy, aby go edytować. Spowoduje to ponowne otwarcie żółtego obszaru roboczego.
Rozpocznij edycję wejściowego węzła Code Block. Aby rozpocząć komentarz, wpisz „//”, a następnie wpisz tekst komentarza. Wpisz wszelkie informacje, które mogą pomóc w objaśnieniu węzła — w tym miejscu opiszemy węzeł targetSurface.
Ustawmy również domyślną wartość dla węzła inputSurface przez ustawienie typu wejścia równego wartości. W tym miejscu ustawimy wartość domyślną na oryginalny zestaw Surface.ByPatch.
Komentarze można również stosować do wyjścia.
Edytuj tekst w wyjściowym węźle węzła Code Block. Wpisz „//”, a następnie wpisz tekst komentarza. W tym miejscu objaśnimy wyjścia Polygons i surfacePatches poprzez dodanie bardziej szczegółowego opisu.
Ustaw kursor na wejściach węzła niestandardowego, aby wyświetlić komentarze.
Po ustawieniu wartości domyślnej na inputSurface można również uruchomić definicję bez wejścia powierzchni.
Importowanie Zero-Touch to prosta metoda importowania bibliotek C# przez wskazanie i kliknięcie. Dodatek Dynamo odczyta publiczne metody z pliku .dll i przekonwertuje je na węzły Dynamo. Można użyć funkcji Zero-Touch, aby tworzyć własne węzły i pakiety niestandardowe, a także importować biblioteki zewnętrzne do środowiska Dynamo.
Pliki .dll
Węzły Dynamo
Za pomocą funkcji Zero-Touch można nawet zaimportować bibliotekę, która nie została opracowana dla dodatku Dynamo, i utworzyć pakiet nowych węzłów. Obecne działanie funkcji Zero-Touch pokazuje międzyplatformowy charakter projektu Dynamo.
W dodatku Dynamo utwórz nowy plik i wybierz kolejno opcje Plik > Importuj bibliotekę...
Następnie odszukaj plik dll.
W wyskakującym okienku przejdź do folderu Release w instalacji biblioteki AForge. Prawdopodobnie będzie on się znajdował w folderze podobnym do tego: C:\Program Files (x86)\AForge.NET\Framework\Release.
AForge.Imaging.dll: w tej analizie przypadku użyjemy tylko tego pliku z biblioteki AForge. Wybierz ten plik .dll i kliknij przycisk „Otwórz”.
W dodatku Dynamo grupa węzłów AForge powinna zostać dodana do paska narzędzi Biblioteka. Teraz mamy dostęp do biblioteki przetwarzania obrazów AForge z poziomu programu wizualnego.
Pobierz plik przykładowy, klikając poniższe łącze.
Pełna lista plików przykładowych znajduje się w załączniku.
Po zaimportowaniu biblioteki można wykonać pierwsze ćwiczenie (01-EdgeDetection.dyn). Wykonamy kilka podstawowych operacji na obrazie przykładowym, aby pokazać, w jaki sposób działają filtry obrazu biblioteki AForge. Użyjemy węzła „Watch Image”, aby wyświetlić wyniki i zastosować filtry w dodatku Dynamo, podobne do tych w programie Photoshop
Węzeł File Path zawiera po prostu ciąg ścieżki do wybranego obrazu. Następnie należy przekształcić go w użyteczny plik obrazu w dodatku Dynamo.
Użyj opcji Plik ze ścieżki, aby przekształcić element w ścieżce pliku w obraz w środowisku Dynamo.
Połącz węzeł File Path z węzłem File.FromPath.
Aby przekształcić ten plik na obraz, należy użyć węzła Image.ReadFromFile.
Teraz zobaczmy wynik. Upuść węzeł Watch Image na obszarze rysunku i połącz go z węzłem Image.ReadFromFile. Nie użyliśmy jeszcze biblioteki AForge, ale pomyślnie zaimportowaliśmy obraz do dodatku Dynamo.
W obszarze AForge.Imaging.AForge.Imaging.Filters (w menu nawigacji) można zauważyć, że dostępna jest szeroka gama filtrów. Użyjemy teraz jednego z tych filtrów, aby zmniejszyć nasycenie obrazu na podstawie wartości progowych.
Upuść trzy suwaki na obszarze rysunku, zmień ich zakresy na 0–1, a ich wartości kroku na 0,01.
Dodaj węzeł Grayscale.Grayscale do obszaru rysunku. Jest to filtr biblioteki AForge, który stosuje filtr skali szarości do obrazu. Połącz trzy suwaki z kroku 1 z elementami „cr”, „cg” i „cb”. Ustaw wartość górnego i dolnego suwaka na 1, a wartość środkowego suwaka na 0.
Aby zastosować filtr skali szarości, należy wykonać czynność na obrazie. W tym celu użyjemy węzła BaseFilter.Apply. Połącz obraz z wejściem „image”, a węzeł Grayscale.Grayscale z wejściem „baseFilter”.
Po połączeniu z węzłem Watch Image otrzymujemy zdesaturowany obraz.
Możemy określać sposób zmniejszenia nasycenia obrazu za pomocą wartości progowych dla kolorów czerwonego, zielonego i niebieskiego. Są one definiowane przez elementy wejściowe węzła Grayscale.Grayscale. Można zauważyć, że obraz jest dość ciemny — jest to spowodowane tym, że suwak koloru zielonego jest ustawiony na wartość 0.
Ustaw wartość górnego i dolnego suwaka na 0, a wartość środkowego suwaka na 1. W ten sposób można uzyskać bardziej czytelny zdesaturowany obraz.
Użyjemy teraz zdesaturowanego obrazu i zastosujemy na nim kolejny filtr. Obraz po zmniejszeniu nasycenia jest kontrastowy, więc przetestujemy wykrywanie krawędzi.
Dodaj węzeł SobelEdgeDetector.SobelEdgeDetector do obszaru rysunku.
Połącz ten element z węzłem BaseUsingCopyPartialFilter.Apply i połącz zdesaturowany obraz z wejściem image tego węzła.
Detektor krawędzi Sobel wyróżnił krawędzie na nowym obrazie.
Po powiększeniu widać, że detektor krawędzi wyróżnił obrysy bąbelków pikselami. Biblioteka AForge zawiera narzędzia umożliwiające utworzenie geometrii dodatku Dynamo na podstawie takich wyników. Zobaczymy to w następnym ćwiczeniu.
Po przedstawieniu podstawowych informacji o przetwarzaniu obrazu możemy użyć obrazu do utworzenia geometrii dodatku Dynamo. Na podstawowym poziomie w tym ćwiczeniu chcemy uzyskać efekt „aktywnego obrysu” obrazu za pomocą biblioteki AForge i dodatku Dynamo. Aby uprościć to zadanie, wyodrębnimy prostokąty z obrazu referencyjnego, ale w bibliotece AForge dostępne są też narzędzia do bardziej złożonych operacji. Użyjemy pliku 02-RectangleCreation.dyn pobranego na potrzeby ćwiczenia.
Za pomocą węzła File Path przejdź do pliku grid.jpg w folderze ćwiczenia.
Połącz pozostałe węzły powyżej, aby wyświetlić ćwiczeniową siatkę parametryczną.
Dodaj węzeł BlobCounter do obszaru rysunku. Następnie potrzebny jest sposób na przetworzenie obrazu (podobnie jak w poprzednim ćwiczeniu z narzędziem BaseFilter.Apply).
Niestety węzeł „Process Image” nie jest widoczny w bibliotece Dynamo. Jest tak, ponieważ ta funkcja może nie być widoczna w kodzie źródłowym biblioteki AForge. Aby to naprawić, trzeba znaleźć obejście.
Dodaj do obszaru rysunku węzeł w języku Python i dodaj do niego następujący kod. Ten kod umożliwia zaimportowanie biblioteki AForge, a następnie przetworzenie zaimportowanego obrazu.
Połączenie elementu wyjściowego „image” z elementem wejściowym węzła Python powoduje uzyskanie wyniku AForge.Imaging.BlobCounter z węzła Python.
Połącz element wyjściowy węzła Python Script z węzłem BlobCounterBase.GetObjectRectangles. Dzięki temu obiekty na obrazie zostaną odczytane na podstawie wartości progowej, a następnie obliczone prostokąty zostaną wyodrębnione z zakresu pikseli.
Dodaj kolejny węzeł Python do obszaru rysunku, połącz go z węzłem GetObjectRectangles i wprowadź poniższy kod. Spowoduje to utworzenie uporządkowanej listy obiektów Dynamo.
Zastosuj funkcję Transpose do wyniku węzła Python z poprzedniego kroku. Spowoduje to utworzenie 4 list przedstawiających parametry X, Y, szerokość i wysokość poszczególnych prostokątów.
Za pomocą węzła Code Block uporządkujemy te dane w strukturę odpowiednią dla węzła Rectangle.ByCornerPoints (kod poniżej).
Mamy tutaj szyk prostokątów reprezentujących białe kwadraty z obrazu. Dzięki programowaniu uzyskaliśmy efekt (mniej więcej) podobny do funkcji Live Trace w programie Illustrator.
Wciąż jednak trzeba go trochę oczyścić. Po powiększeniu widzimy wiele małych, niepotrzebnych prostokątów.
Następnie napiszemy kod, aby pozbyć się niechcianych prostokątów.
Wstaw węzeł w języku Python między węzłem GetObjectRectangles a kolejnym węzłem w języku Python. Kod węzła, który znajduje się poniżej, umożliwia usunięcie wszystkich prostokątów poniżej danego rozmiaru.
Po usunięciu niepotrzebnych prostokątów dla zabawy utworzymy powierzchnię z otrzymanych prostokątów i wyciągniemy je na odległość zależną od ich wielkości.
Na koniec zmienimy element wejściowy both_sides na wartość „false”, aby uzyskać wyciągnięcie w jednym kierunku. Wystarczy zanurzyć tę bryłę w żywicy, aby powstał naprawdę niesamowity stolik.
Po utworzeniu kilku węzłów niestandardowych kolejnym krokiem jest rozpoczęcie organizowania i publikowania ich za pomocą pakietów — to wygodny sposób przechowywania i udostępniania węzłów w społeczności dodatku Dynamo.
Obok węzła DynamoUnfold wybierz menu opcji .
Zacznijmy od utworzenia wykresu, który zagnieździmy w węźle niestandardowym. W tym przykładzie utworzymy wykres, który będzie odwzorowywać wieloboki z powierzchni bazowej na powierzchnię docelową, za pomocą współrzędnych UV. Ten proces odwzorowywania UV jest często używany, przez co jest to dobra opcja dla węzła niestandardowego. Aby uzyskać więcej informacji na temat powierzchni i przestrzeni UV, zobacz stronę . Pełny wykres: UVmapping_Custom-Node.dyn z pliku .zip pobranego powyżej.
W tej sekcji przedstawiono sposób użycia funkcji Zero-Touch w celu zaimportowania biblioteki innej firmy. Aby uzyskać informacje na temat tworzenia własnej biblioteki Zero-Touch, zobacz .
Pakiety Zero-Touch stanowią dobre uzupełnienie węzłów niestandardowych zdefiniowanych przez użytkownika. W poniższej tabeli wymieniono kilka pakietów używających bibliotek C#. Aby uzyskać więcej informacji na temat pakietów, zobacz w Załączniku.
W tej analizie przypadku pokazano, jak zaimportować zewnętrzną bibliotekę .dll . AForge to rozbudowana biblioteka, która zapewnia szeroką gamę funkcji, od przetwarzania obrazu po sztuczną inteligencję. Na potrzeby poniższych ćwiczeń dotyczących przetwarzania obrazu skorzystamy z klasy Imaging w bibliotece AForge.
Najpierw należy pobrać bibliotekę AForge. Na wybierz opcję [Download Installer] (Pobierz instalator) i zainstaluj bibliotekę po zakończeniu pobierania.
Aby zaimportować obraz, dodaj węzeł File Path do obszaru rysunku i wybierz plik „soapbubbles.jpg” z folderu ćwiczeń (źródło zdjęcia: ).
W następnym kroku chcemy odwołać się do białych kwadratów na obrazie i przekonwertować je na rzeczywistą geometrię dodatku Dynamo. Biblioteka AForge zawiera wiele wydajnych narzędzi do przetwarzania obrazów, a tutaj użyjemy szczególnie ważnego narzędzia z tej biblioteki o nazwie .
W następnych krokach zastosujemy pewne sposoby pokazujące znajomość . Nie trzeba znać ich wszystkich, aby pracować z dodatkiem Dynamo. Jest to raczej pokaz pracy z zewnętrznymi bibliotekami, możliwej dzięki elastyczności środowiska Dynamo.
Są to podstawowe przykłady, ale przedstawione tutaj koncepcje można przełożyć na ciekawe rzeczywiste zastosowania. Przetwarzanie obrazów można wykorzystać w bardzo wielu procesach. Jako przykłady można przytoczyć czytniki kodów kreskowych, dopasowywanie perspektywy, i . Bardziej zaawansowane tematy dotyczące biblioteki AForge, używanej w tym ćwiczeniu, zostały omówione w .
Logo/obraz | pomieszczenia |
W poprzednich sekcjach omówiono szczegółowo skonfigurowanie pakietu MapToSurface za pomocą węzłów niestandardowych i plików przykładowych. Jak jednak opublikować pakiet, który został utworzony lokalnie? W tej analizie przypadku pokazano sposób publikowania pakietu z zestawu plików w folderze lokalnym.
Istnieje wiele sposobów na opublikowanie pakietu. Poniżej przedstawiono zalecany przez nas proces: publikowanie lokalne, opracowywanie lokalne, a następnie publikowanie online. Rozpoczniemy od folderu zawierającego wszystkie pliki w pakiecie.
Zanim przejdziemy do publikowania pakietu MapToSurface, jeśli został on zainstalowany w ramach poprzedniej lekcji, należy go odinstalować, aby nie pracować z identycznymi pakietami.
Najpierw przejdź do obszaru Pakiety > Menedżer pakietów > karty Zainstalowane pakiety > obok pozycji MapToSurface kliknij menu w postaci pionowych kropek > Usuń.
Następnie ponownie uruchom dodatek Dynamo. Po ponownym otwarciu w oknie „Zarządzaj pakietami” nie powinno już być pakietu MapToSurface. Teraz można już zacząć od początku.
Pakiety i węzły niestandardowe można publikować w środowisku Dynamo Sandbox w wersji 2.17 lub nowszej, o ile nie mają one zależności od nadrzędnego interfejsu API. W starszych wersjach publikowanie pakietów i węzłów niestandardowych jest włączone tylko w dodatku Dynamo dla programu Revit i dodatku Dynamo dla programu Civil 3D.
Pobierz plik przykładowy, klikając poniższe łącze.
Pełna lista plików przykładowych znajduje się w załączniku.
To jest pierwsze przesłanie pakietu i wszystkie pliki przykładowe i węzły niestandardowe zostały umieszczone w jednym folderze. Po przygotowaniu tego folderu można przekazać go do menedżera pakietów Dynamo.
Ten folder zawiera pięć węzłów niestandardowych (.dyf).
Ten folder zawiera także pięć przykładowych plików (.dyn) i jeden zaimportowany plik wektorowy (.svg). Te pliki będą służyły jako ćwiczenia wprowadzające, aby pokazać użytkownikowi, jak pracować z węzłami niestandardowymi.
W dodatku Dynamo najpierw kliknij kolejno opcje Pakiety > Menedżer pakietów > kartę Opublikuj nowy pakiet.
Na karcie Publikowanie pakietu wypełnij odpowiednie pola po lewej stronie okna.
Następnie dodamy pliki pakietu. Pliki można dodawać pojedynczo lub całymi folderami, wybierając opcję Dodaj katalog (1). Aby dodać pliki, które nie są plikami .dyf, należy zmienić typ pliku w oknie przeglądarki na „Wszystkie pliki(.)”. Uwaga: dodamy wszystkie pliki bez rozróżniania typów: węzły niestandardowe (.dyf) i pliki przykładów (.dyn). Po opublikowaniu pakietu dodatek Dynamo skategoryzuje te elementy.
Po wybraniu folderu MapToSurface w Menedżerze pakietów wyświetlana jest zawartość folderu. W przypadku przekazywania własnego pakietu ze złożoną strukturą folderów, gdy dodatek Dynamo nie powinien wprowadzać zmian w strukturze folderów, można włączyć przełącznik „Zachowaj strukturę folderów”. Ta opcja jest przeznaczona dla zaawansowanych użytkowników i jeśli pakiet nie jest celowo skonfigurowany w określony sposób, najlepiej wyłączyć ten przełącznik i pozwolić dodatkowi Dynamo na zorganizowanie plików zgodnie z potrzebami. Kliknij przycisk Dalej, aby kontynuować.
W tym miejscu można wyświetlić podgląd zorganizowania plików pakietu przez dodatek Dynamo przed opublikowaniem. Kliknij przycisk Zakończ, aby kontynuować.
Opublikuj, klikając przycisk „Opublikuj lokalnie” (1). Postępując zgodnie z tymi instrukcjami, należy koniecznie kliknąć przycisk „Opublikuj lokalnie”, a nie „Opublikuj online”, aby uniknąć powielenia pakietów w Menedżerze pakietów.
Po opublikowaniu węzły niestandardowe powinny być dostępne w grupie „DynamoPrimer” lub w bibliotece Dynamo.
Teraz spójrzmy na katalog główny, aby sprawdzić, w jaki sposób dodatek Dynamo sformatował utworzony właśnie pakiet. W tym celu przejdź do karty Zainstalowane pakiety > obok pozycji MapToSurface kliknij menu w postaci pionowych kropek > wybierz opcję Pokaż katalog główny.
Zwróć uwagę, że katalog główny znajduje się w lokalnym położeniu pakietu (pakiet został opublikowany lokalnie). Dodatek Dynamo aktualnie odwołuje się do tego folderu, aby odczytać węzły niestandardowe. Dlatego ważne jest, aby lokalnie opublikować katalog w trwałym położeniu folderu (czyli na przykład nie na pulpicie). Poniżej przedstawiono strukturę folderów pakietu Dynamo.
Folder bin zawiera pliki .dll utworzone za pomocą bibliotek C# lub Zero-Touch. W tym pakiecie ich nie ma, więc ten folder jest pusty dla tego przykładu.
Folder dyf zawiera węzły niestandardowe. Otwarcie tego folderu spowoduje wyświetlenie wszystkich węzłów niestandardowych (plików .dyf) dla tego pakietu.
W folderze dodatkowym („extra”) znajdują się wszystkie dodatkowe pliki. Będą to prawdopodobnie pliki dodatku Dynamo (.dyn) lub dowolne dodatkowe wymagane pliki (.svg, .xls, .jpeg, .sat itp.).
Plik pkg jest podstawowym plikiem tekstowym definiującym ustawienia pakietu. Jest to zautomatyzowane w dodatku Dynamo, ale możesz to edytować, jeśli chcesz przejść do szczegółów.
Uwaga: ten krok należy wykonać tylko w przypadku, gdy faktycznie publikuje się własny pakiet.
Gdy wszystko jest gotowe do opublikowania, w oknie Pakiety > Menedżer pakietów > Zainstalowane pakiety wybierz przycisk znajdujący się po prawej stronie pakietu, który chcesz opublikować, i wybierz opcję Opublikuj.
Jeśli aktualizujesz pakiet, który już został opublikowany, wybierz opcję „Opublikuj wersję”, a dodatek Dynamo zaktualizuje pakiet online na podstawie nowych plików w katalogu głównym tego pakietu. To wystarczy.
W trakcie aktualizowania plików w folderze głównym opublikowanego pakietu można też opublikować nową wersję pakietu, wybierając opcję „Opublikuj wersję” na karcie Moje pakiety. Jest to prosty sposób na wprowadzenie niezbędnych aktualizacji zawartości i udostępnienie ich społeczności. Polecenie Opublikuj wersję działa tylko wtedy, gdy użytkownik jest administratorem pakietu.
Dodatek Dynamo oferuje wiele węzłów podstawowych, które umożliwiają wykonywanie szerokiej gamy zadań programowania wizualnego. Czasami szybszym, bardziej eleganckim lub łatwiejszym do udostępnienia rozwiązaniem jest utworzenie własnych węzłów. Można ich ponownie używać w różnych projektach, dzięki czemu wykresy stają się czytelniejsze. Można je też przekazywać do Menedżera pakietów i udostępniać globalnej społeczności dodatku Dynamo.
Zestaw Dynamo Mesh Toolkit zawiera narzędzia do importowania siatek z zewnętrznych formatów plików, tworzenia siatki z obiektów geometrii Dynamo oraz ręcznego tworzenia siatek na podstawie wierzchołków i indeksów. Ta biblioteka zawiera również narzędzia do modyfikowania siatek, naprawiania siatek i wyodrębniania warstw poziomych do użycia w produkcji.
Zestaw narzędzi Dynamo Mesh Toolkit jest częścią nieustających badań firmy Autodesk nad siatką, więc w nadchodzących latach będzie się rozwijać. Należy spodziewać się częstego dodawania do zestawu nowych metod. Zachęcamy też do kierowania do zespołu Dynamo komentarzy, informacji o błędach i sugestii dotyczących nowych funkcji.
W poniższym ćwiczeniu przedstawiono niektóre podstawowe operacje na siatce przeprowadzane za pomocą zestawu Mesh Toolkit. W tym ćwiczeniu przetniemy siatkę serią płaszczyzn, co w przypadku używania brył może być kosztowne z punktu widzenia obliczeń. W przeciwieństwie do bryły siatka ma stałą „rozdzielczość” i nie jest zdefiniowana matematycznie, lecz topologicznie. Tę rozdzielczość można zdefiniować na podstawie bieżącego zadania. Aby uzyskać więcej informacji na temat relacji między siatką a bryłami, zapoznaj się z rozdziałem Geometria w projektowaniu obliczeniowym tego przewodnika Primer. Bardziej dogłębną analizę zestawu Mesh Toolkit można znaleźć na stronie wiki dodatku Dynamo. Przejdźmy do pakietu w ćwiczeniu poniżej.
W dodatku Dynamo na górnym pasku menu przejdź do obszaru Pakiety > Menedżer pakietów. W polu wyszukiwania wpisz „MeshToolkit” (jedno słowo). Kliknij przycisk Zainstaluj i zaakceptuj potwierdzenia, aby rozpocząć pobieranie. To wystarczy.
Pobierz plik przykładowy, klikając poniższe łącze.
Pełna lista plików przykładowych znajduje się w załączniku.
W tym przykładzie przyjrzymy się węzłowi Intersect w zestawie Mesh Toolkit. Zaimportujemy siatkę i przetniemy ją szeregiem płaszczyzn wejściowych, aby utworzyć warstwy. Jest to punkt wyjścia do przygotowania modelu do produkcji na przecinarce laserowej, wodnej lub frezarce CNC.
Rozpocznij od otwarcia pliku Mesh-Toolkit_Intersect-Mesh.dyn w dodatku Dynamo.
File Path: odszukaj plik siatki do zaimportowania (stanford_bunny_tri.obj). Obsługiwane typy plików to .mix i .obj
Mesh.ImportFile: połącz ścieżkę pliku w celu zaimportowania siatki.
Point.ByCoordinates: utwórz punkt — będzie to środek łuku.
Arc.ByCenterPointRadiusAngle: utwórz łuk wokół punktu. Ta krzywa zostanie użyta do rozmieszczenia szeregu płaszczyzn. __ Znajdują się tu następujące ustawienia: __
radius: 40, startAngle: -90, endAngle:0
Utwórz szereg płaszczyzn zorientowanych wzdłuż łuku.
Code Block: utwórz 25 liczb z zakresu od 0 do 1.
Curve.PointAtParameter: połącz łuk z wejściem „curve” i wyjście węzła Code Block z wejściem „param”, aby wyodrębnić szereg punktów wzdłuż krzywej.
Curve.TangentAtParameter: połącz te same wejścia co w poprzednim węźle.
Plane.ByOriginNormal: połącz punkty z wejściem „origin” i wektory z wejściem „normal”, aby utworzyć szereg płaszczyzn w każdym punkcie.
Następnie użyjemy tych płaszczyzn do przecięcia siatki.
Mesh.Intersect: utwórz przecięcie płaszczyzn z zaimportowaną siatką, tworząc szereg konturów polikrzywej. Kliknij prawym przyciskiem myszy węzeł i ustaw skratowanie na najdłuższe
PolyCurve.Curves: rozbij polikrzywe na zakrzywione fragmenty.
Curve.EndPoint: wyodrębnij punkty końcowe każdej krzywej.
NurbsCurve.ByPoints: użyj punktów do utworzenia krzywej NURBS. Użyj węzła Boolean ustawionego na True, aby zamknąć krzywe.
Przed kontynuowaniem wyłącz podgląd niektórych węzłów, takich jak Mesh.ImportFile, Curve.EndPoint, Plane.ByOriginNormal i Arc.ByCenterPointRadiusAngle, aby lepiej uwidocznić wynik.
Surface.ByPatch: utwórz ścieżki powierzchni dla każdego konturu, aby utworzyć „warstwy” siatki.
Dodaj drugi zestaw warstw, aby uzyskać efekt wafla.
Można zauważyć, że operacje przecięcia są dla siatki wykonywane szybciej niż dla porównywalnej bryły. Procesy robocze, takie jak ten przedstawiony w tym ćwiczeniu, dobrze nadają się do stosowania siatek.