Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Vlastní uzly vznikají tak, že se do nich zahrnou ostatní uzly (i další vlastní uzly), proto o nich lze přemýšlet jako o kontejnerech. Pokud tento kontejnerový uzel v grafu spustíte, spustí se všechny uzly v něm – pomocí vlastních uzlů tak můžete opakovaně používat a sdílet užitečné posloupnosti uzlů.
Pokud v grafu existuje více kopií vlastního uzlu, po úpravě základního vlastního uzlu se všechny tyto kopie aktualizují. Díky tomu můžete graf snadno aktualizovat a přizpůsobit jej změnám v pracovním postupu nebo návrhu.
Velmi užitečnou funkcí vlastních uzlů je snadné sdílení práce. Pokud zručný uživatel vytvoří složitý graf aplikace Dynamo a předá jej konstruktérovi, který je v aplikaci Dynamo nový, může tento graf zjednodušit do základní podoby. Vlastní uzel je možné otevřít a upravit jeho vnitřní graf, může však vypadat i jako jednoduchý „kontejner“. Pomocí vlastních uzlů mohou uživatelé aplikace Dynamo uchovat svůj graf v přehledné a intuitivní podobě.
Vlastní uzly je možné v aplikaci Dynamo vytvářet mnoha způsoby. V příkladech této kapitoly vytvoříme vlastní uzly přímo v uživatelském rozhraní aplikace Dynamo. Pokud jste programátor a zajímá vás formátování C# nebo Zero-Touch, naleznete podrobnější informace na této stránce na Wiki aplikace Dynamo.
V této části přejdeme do prostředí vlastního uzlu a vytvoříme jednoduchý uzel pro výpočet procent. Prostředí vlastního uzlu se od prostředí grafu aplikace Dynamo liší, ale práce v něm je prakticky stejná. Pojďme tedy vytvořit první vlastní uzel.
Chcete-li vytvořit nový vlastní uzel, spusťte aplikaci Dynamo a vyberte možnost Vlastní uzel, případně na pracovní ploše stiskněte kombinaci kláves Ctrl+Shift+N.
V dialogu Vlastnosti vlastního uzlu zadejte název, popis a kategorii.
Název: Procento
Popis: Vypočítá procentuální podíl jedné hodnoty vůči druhé hodnotě.
Kategorie: Math.Functions
Tím se otevře pracovní plocha se žlutým pozadím, která naznačuje, že pracujete ve vlastním uzlu. Na této pracovní ploše máte přístup ke všem základním uzlům aplikace Dynamo a také k uzlům v kategoriích Input a Output, které slouží k nastavení vstupu a výstupu dat u vlastních uzlů. Lze je najít v nabídce Input > Basic.
Vstupy: Vstupní uzly na vlastních uzlech vytvářejí vstupní porty. Syntaxe pro vstupní port je název_vstupu : datovýtyp = výchozí_hodnota(volitelná).
Výstupy: Podobně jako u vstupních uzlů, tyto vstupy na vlastních uzlech vytvářejí výstupní porty. Ke vstupním a výstupním portům je možné přidat vlastní komentář s informacemi o vstupech a výstupech. Vlastní komentáře jsou podrobněji popsány podrobněji v části Tvorba vlastních uzlů.
Tento vlastní uzel je možné uložit jako soubor .dyf (a nikoliv standardní .dyn). To způsobí, že bude automaticky přidán do relace a všech budoucích relací. Vlastní uzel najdete ve své knihovně v části Doplňky.
Nyní, když jsme vytvořili první vlastní uzel, se v dalších částech podrobněji podíváme na funkce vlastních uzlů a na to, jak publikovat obecné pracovní postupy. V další části vyvineme vlastní uzel, který přenese geometrii z jedné plochy na druhou.
Aplikace Dynamo nabízí širokou škálu hlavních uzlů pro úlohy vizuálního programování. Někdy však může být rychlejší a elegantnější vytvořit si uzly vlastní. Tyto uzly pak můžete používat v různých projektech, vytvářet díky nim přehlednější grafy, odesílat je do nástroje Package Manager a sdílet je s komunitou aplikace Dynamo.
Knihovna uzlů aplikace Dynamo obsahuje již ve výchozím nastavení spoustu funkcí. Pokud však provádíte některé časté úkony nebo chcete s komunitou sdílet speciální graf, pomocí vlastních uzlů můžete funkce aplikace Dynamo rozšířit ještě více.
Sada nástrojů pro sítě obsahuje nástroje pro import sítí ze souborů různých formátů, tvorbu sítě z objektů geometrií aplikace Dynamo a ruční tvorbu sítí z bodů a indexů. Knihovna také obsahuje nástroje pro úpravy sítí a extrahování vodorovných řezů pro použití ve výrobě.
Balíček Dynamo Mesh Toolkit je součástí probíhajícího výzkumu společnosti Autodesk a proto se bude v nadcházejících letech dále rozvíjet. Do sady budou často přidávány nové metody, tým aplikace Dynamo ocení jakékoliv komentáře, hlášení chyb nebo nápady na nové funkce.
V následujícím cvičení budou demonstrovány základní operace pomocí sady nástrojů pro sítě. V tomto cvičení protneme síť řadou rovin, což by u těles bylo výpočetně náročné. Na rozdíl od tělesa má síť „rozlišení“, které není definováno matematicky, ale topologicky, a je možné ho definovat podle aktuální úlohy. Další podrobnosti o vztahu mezi sítí a tělesem naleznete v kapitole Geometrie pro výpočetní návrh v této příručce Primer. Další informace o balíčku Mesh Toolkit naleznete na stránce Wiki k aplikaci Dynamo. Cvičení níže demonstruje práci s tímto balíčkem.
V horní nabídce aplikace Dynamo vyberte možnost Balíčky > Package Manager. Do vyhledávacího pole zadejte MeshToolkit. Jedná se o jedno slovo. Klikněte na tlačítko Instalovat a potvrďte, že chcete zahájit stahování. Je to tak jednoduché.
Kliknutím na odkaz níže si stáhněte vzorový soubor.
Úplný seznam vzorových souborů najdete v dodatku.
V tomto příkladu se podíváme na uzel průniku v sadě nástrojů pro sítě. Provedeme import sítě a protneme ji řadou vstupních rovin, čímž vytvoříme řezy. Tím začne příprava modelu na výrobu, řezání laserovým nebo vodním paprskem či CNC frézování.
Začněte otevřením souboru Mesh-Toolkit_Intersect-Mesh.dyn v aplikaci Dynamo.
File Path: Vyhledejte soubor sítě, který chcete importovat (stanford_bunny_tri.obj). Podporované typy souborů jsou .mix a .obj
Mesh.ImportFile: Připojte cestu k souboru, aby došlo k importu sítě.
Point.ByCoordinates: Vytvořte bod, který bude středem oblouku.
Arc.ByCenterPointRadiusAngle: Vytvořte oblouk kolem bodu. Tato křivka bude použita k umístění řady rovin. __ Nastavení jsou následující: __
radius: 40, startAngle: -90, endAngle:0
Vytvořte řadu rovin orientovaných podél oblouku.
Code Block: Vytvořte 25 čísel v rozmezí od 0 do 1.
Curve.PointAtParameter: Připojte oblouk ke vstupu curve a výstup bloku s kódem ke vstupu param, čímž získáte řadu bodů na křivce.
Curve.TangentAtParameter: Připojte stejné vstupy jako u předchozího uzlu.
Plane.ByOriginNormal: Připojte body ke vstupu origin a vektory ke vstupu normal, čímž v jednotlivých bodech vytvoříte řadu rovin.
Nyní tyto roviny použijeme k protnutí sítě.
Mesh.Intersect: Vytvořte průnik rovin s importovanou sítí, čímž vznikne řada kontur objektů polycurve. Klikněte pravým tlačítkem myši na uzel a nastavte vázání na nejdelší.
PolyCurve.Curves: Rozdělte objekty polycurve na fragmenty křivek.
Curve.EndPoint: Extrahujte koncové body jednotlivých křivek.
NurbsCurve.ByPoints: Pomocí bodů vytvořte křivku nurbs. K uzavření křivek použijte uzel Boolean nastavený na True.
Než budete pokračovat, vypněte náhled některých uzlů, například Mesh.ImportFile, Curve.EndPoint, Plane.ByOriginNormal a Arc.ByCenterPointRadiusAngle, abyste lépe viděli výsledek.
Surface.ByPatch: Vytvořte záplaty ploch pro každou konturu, čímž vytvoříte „řezy“ sítě.
Přidejte druhou řadu řezů, čímž vznikne efekt podobný vaflím.
Možná jste si všimli, že operace průniku se u sítí počítají rychleji než u těles. Pracovní postupy podobné těm jako v tomto cvičení fungují se sítěmi velmi dobře.
Aplikace Dynamo nabízí řadu způsobů, jak vytvořit balíček pro vaše osobní použití nebo sdílení s komunitou aplikace Dynamo. V níže uvedené případové studii si rozebráním existujícího balíčku projdeme, jak je balíček vytvořen. Tato případová studie vychází ze zkušeností z předchozí kapitoly a poskytuje sadu vlastních uzlů pro mapování geometrie podle souřadnic UV, z jednoho povrchu aplikace Dynamo do jiného.
Budeme pracovat se vzorovým balíčkem, který demonstruje mapování UV bodů z jednoho povrchu do druhého. Základy nástroje jsme již vytvořili v části Vytvoření vlastního uzlu tohoto cvičení. Níže uvedené soubory ukazují, jak můžeme využít koncepci mapování UV a vytvořit sadu nástrojů pro publikovatelnou knihovnu.
Na tomto obrázku namapujeme bod z jednoho povrchu na jiný pomocí souřadnic UV. Balíček je založen na tomto konceptu, ale se složitější geometrií.
V předchozí kapitole jsme prozkoumali způsoby panelizace povrchu v aplikaci Dynamo podle křivek definovaných v rovině XY. Tato případová studie tyto koncepty rozšiřuje o další kóty geometrie. Tento balíček nainstalujeme, tak jak byl vytvořen, abychom ukázali, jak byl vyvinut. V další části ukážeme, jak byl tento balíček publikován.
V aplikaci Dynamo klikněte na položky Balíčky > Package Manager a vyhledejte balíček MapToSurface (jedná se o jedno slovo). Kliknutím na tlačítko Instalovat zahájíte stahování a přidáte balíček do své knihovny.
Po instalaci by měly být vlastní uzly dostupné v části Doplňky > DynamoPrimer.
S instalovaným balíčkem projdeme to, jak ho nastavit.
Balíček, který vytváříme, používá pět uživatelských uzlů, které jsme vytvořili pro referenci. Projdeme si, co každý uzel dělá níže. Některé vlastní uzly jsou sestaveny z jiných uživatelských uzlů a grafy mají rozvržení, které je pro ostatní uživatele snadno pochopitelné.
Toto je jednoduchý balíček s pěti vlastními uzly. V níže uvedených krocích si stručně promluvíme o nastavení jednotlivých vlastních uzlů.
Toto je základní vlastní uzel, ze kterého vychází všechny ostatní uzly mapování. Jednoduše řečeno, uzel mapuje bod ze zdrojového povrchu souřadnice UV do umístění souřadnic cílového povrchu UV. Protože jsou body nejprimitivnější geometrií, ze které je vytvořena složitější geometrie, můžeme tuto logiku použít k mapování 2D a dokonce 3D geometrie z jednoho povrchu do druhého.
Logika rozšíření mapovaných bodů z 1D geometrie na 2D geometrii je zde jednoduše znázorněna pomocí polygonů. Všimněte si, že jsme do tohoto vlastního uzlu vnořili uzel PointsToSurface. Tímto způsobem lze namapovat body každého polygonu na povrch a poté polygon z těchto namapovaných bodů znovu vygenerovat. Zachováním správné datové struktury (seznam seznamů bodů) můžeme polygony ponechat oddělené, poté co jsou redukovány na sadu bodů.
Používá se zde stejná logika jako v uzlu PolygonToSurface. Místo mapování polygonálních bodů však mapujeme řídicí body křivky nurbs.
OffsetPointsToSurface
Tento uzel je trochu složitější, ale koncept je jednoduchý: Podobně jako uzel PointsToSurface tento uzel mapuje body z jednoho povrchu na druhý. Bere však v úvahu také body, které nejsou na původním zdrojovém povrchu, jejich vzdálenost k nejbližšímu parametru UV a mapuje tuto vzdálenost na normálu cílového povrchu v odpovídající souřadnici UV. To dává větší smysl při prohlížení vzorových souborů.
Toto je jednoduchý uzel, který vytvoří parametrický povrch k mapování ze zdrojové osnovy na vlnitý povrch v souborech příkladů.
Vzorové soubory naleznete v kořenové složce balíčku. Klikněte na kartu Package Manager > Instalované balíčky.
Vedle položky MapToSurface klikněte na nabídku se svislými tečkami > Zobrazit kořenový adresář.
Nyní otevřete složku extra, která obsahuje všechny soubory v balíčku, které nejsou vlastními uzly. Zde jsou uloženy vzorové soubory (pokud existují) pro balíčky aplikace Dynamo. Níže uvedené snímky obrazovky popisují koncepty demonstrované v jednotlivých vzorových souborech.
Tento vzorový soubor ukazuje, jak lze pomocí uzlu PointsToSurface panelizovat povrch na základě osnovy obdélníků. Mělo by vám to připadat povědomé, protože jsme viděli podobný pracovní postup v předchozí kapitole.
Pomocí podobného pracovního postupu se v tomto souboru cvičení zobrazí nastavení pro mapování kružnic (nebo polygonů reprezentujících kružnice) z jednoho povrchu na druhý. Používá se uzel PolygonsToSurface.
Tento vzorový soubor přidává určitou složitost při práci s uzlem NurbsCrvToSurface. Cílový povrch je odsazen o danou vzdálenost a křivka nurbs je mapována na původní cílový povrch a odsazený povrch. Od této chvíle jsou obě mapované křivky šablonovány, aby vytvořily povrch, který bude poté zesílen. Výsledné těleso má zaoblení, které je reprezentativní pro normály cílového povrchu.
Tento vzorový soubor ukazuje, jak mapovat skládaný objekt polysurface ze zdrojového povrchu na cílový povrch. Zdrojový a cílový povrch je pravoúhlý povrch pokrývající rastr a orotovaný povrch.
Zdrojový objekt polysurface mapovaný ze zdrojového povrchu na cílový povrch.
Protože vlastní uzly mohou mapovat různé typy křivek, odkazuje tento poslední soubor na soubor SVG exportovaný z aplikace Illustrator a mapuje importované křivky na cílový povrch.
Analýzou syntaxe souboru .svg se oblouky převedou z formátu .xml na objekty polycurve aplikace Dynamo.
Importované křivky jsou mapovány na cílový povrch. To nám umožňuje přímo navrhnout panelizaci (klikáním) v aplikaci Illustrator, importovat do aplikace Dynamo a použít na cílový povrch.
V předchozích částech jsme se zabývali podrobnostmi o tom, jak je balíček MapToSurface nastaven pomocí vlastních uzlů a vzorových souborů. Ale jak publikujeme balíček, který byl vyvinut místně? Tato případová studie ukazuje, jak publikovat balíček ze sady souborů v místní složce.
Balíček lze publikovat mnoha způsoby. Níže je popsán proces, který doporučujeme: publikovat místně, vyvíjet místně a poté publikovat online. Začneme složkou obsahující všechny soubory v balíčku.
Před přechodem k publikování balíčku MapToSurface nejprve odinstalujte balíček z předchozí lekce, abyste nepracovali se stejnými balíčky.
Začněte přechodem na kartu Balíčky > Package Manager > Instalované balíčky > vedle položky MapToSurface klikněte na nabídku se svislými tečkami > Odstranit.
Poté restartujte aplikaci Dynamo. Při opakovaném otevření by se v okně Správa balíčků již neměla nacházet položka MapToSurface. Teď jsme připraveni začít od začátku.
Vlastní uzly a balíčky z aplikace Dynamo Sandbox ve verzi 2.17 a novějších můžete publikovat, pokud nemají žádné závislosti na hostitelském rozhraní API. Ve starších verzích je publikování vlastních uzlů a balíčků povoleno pouze v aplikacích Dynamo for Revit a Dynamo for Civil 3D.
Kliknutím na odkaz níže si stáhněte vzorový soubor.
Úplný seznam vzorových souborů najdete v dodatku.
Toto je první odeslání pro náš balíček a všechny ukázkové soubory a vlastní uzly souborů jsme umístili do jedné složky. Když je tato složka připravena, jsme připraveni k odeslání do správce Dynamo Package Manager.
Tato složka obsahuje pět vlastních uzlů (.dyf).
Tato složka také obsahuje pět vzorových souborů (.dyn) a jeden importovaný vektorový soubor (.svg). Tyto soubory budou sloužit jako úvodní cvičení, která uživateli ukážou, jak pracovat s vlastními uzly.
V aplikaci Dynamo začněte kliknutím na kartu Balíčky > Package Manager > Publikovat nový balíček.
Na kartě Publikovat balíček vyplňte příslušná pole v levé části okna.
Dále přidáme soubory balíčku. Soubory můžete přidat po jednom nebo můžete přidat celou složku výběrem možnosti Přidat adresář (1). Chcete-li přidat soubory, které nejsou soubory .dyf, změňte typ souboru v okně prohlížeče na Všechny soubory (.). Všimněte si, že budeme přidávat soubor, vlastní uzel (.dyf) nebo ukázkový soubor (.dyn), bez rozdílu. Aplikace Dynamo tyto položky kategorizuje při publikování balíčku.
Po výběru složky MapToSurface nástroj Package Manager zobrazí obsah složky. Pokud nahráváte vlastní balíček se složitou strukturou složek a nechcete, aby aplikace Dynamo provedla změny ve struktuře složek, můžete povolit přepínač Zachovat strukturu složek. Tato možnost je určena pro pokročilé uživatele, a pokud balíček není záměrně nastaven určitým způsobem, je nejlepší nechat tento přepínač vypnutý a umožnit aplikaci Dynamo uspořádat soubory podle potřeby. Pokračujte kliknutím na tlačítko Další.
Zde si můžete prohlédnout, jak aplikace Dynamo uspořádá soubory balíčku před publikováním. Pokračujte kliknutím na tlačítko Dokončit.
Publikujte balíček kliknutím na tlačítko Publikovat místně (1).. Pokud pracujete s námi, klikněte na tlačítko Publikovat místně a ne Publikovat online, abychom v nástroji Package Manager neměli duplicitní balíčky.
Po publikování by měly být vlastní uzly dostupné ve skupině DynamoPrimer nebo v knihovně aplikace Dynamo.
Nyní se podívejme na kořenový adresář a uvidíme, jak aplikace Dynamo formátovala balíček, který jsme právě vytvořili. Proveďte to tak, že přejdete na kartu Nainstalované balíčky > vedle položky MapToSurface klikněte na nabídku se svislými tečkami > vyberte možnost Zobrazit kořenový adresář.
Všimněte si, že kořenový adresář se nachází v místním umístění balíčku (balíček jsme publikovali „místně“). Aplikace Dynamo aktuálně odkazuje na tuto složku pro čtení vlastních uzlů. Proto je důležité místně publikovat adresář do trvalého umístění složky (například ne na plochu). Zde je struktura složky balíčku Dynamo.
Složka bin obsahuje soubory .dll vytvořené pomocí knihoven C# nebo Zero-Touch. Pro tento balíček žádné nemáme, proto je tato složka v tomto příkladu prázdná.
Složka dyf slouží k umístění vlastních uzlů. Otevřením tohoto okna se zobrazí všechny vlastní uzly (soubory .dyf) pro tento balíček.
Složka navíc obsahuje všechny další soubory. Tyto soubory budou pravděpodobně soubory aplikace Dynamo (.dyn) nebo jakékoli další požadované soubory (.svg, .xls, .jpeg, .sat atd.).
Soubor pkg je základní textový soubor, který definuje nastavení balíčku. To je v aplikaci Dynamo automatické, ale pokud se chcete dostat do detailů, můžete je upravit.
Poznámka: Tento krok neprovádějte, pokud skutečně nepublikujete vlastní balíček!
Až budete připraveni k publikování, v okně Balíčky > Package Manager > Instalované balíčky vyberte tlačítko vpravo od balíčku, který chcete publikovat, a zvolte možnost Publikovat.
Pokud aktualizujete balíček, který již byl publikován, klikněte na tlačítko Publikovat verzi a aplikace Dynamo aktualizuje balíček online podle nových souborů v kořenovém adresáři daného balíčku. Je to tak jednoduché.
Při aktualizaci souborů v kořenové složce publikovaného balíčku můžete také publikovat novou verzi balíčku výběrem možnosti Publikovat verzi na kartě Moje balíčky. Jedná se o snadný způsob, jak provést nezbytné aktualizace vašeho obsahu a sdílet jej s komunitou. Možnost Publikovat verzi bude fungovat pouze v případě, že udržujete balíček.
Aplikace Dynamo nabízí velké množství funkcí, které jsou k dispozici ihned po instalaci, a také spravuje rozsáhlou knihovnu balíčků, která může možnosti aplikace Dynamo podstatně rozšířit. Balíček je kolekce vlastních uzlů nebo dalších funkcí. Nástroj Dynamo Package Manager je portál pro komunitu, kde lze stáhnout všechny balíčky, které byly publikovány online. Tyto sady nástrojů jsou vyvinuty třetími stranami, aby bylo možné rozšířit základní funkce aplikace Dynamo, jsou přístupné všem a připraveny ke stažení kliknutím na tlačítko.
Projektu s otevřeným zdrojovým kódem, jako je Dynamo, tento druh zapojení komunity prospívá. Díky specializovaným vývojářům třetích stran je aplikace Dynamo schopna rozšířit svůj dosah na pracovní postupy napříč různými odvětvími. Z tohoto důvodu tým aplikace Dynamo vyvinul společné úsilí, aby zefektivnil vývoj a zveřejňování balíčků (které budou podrobněji popsány v následujících částech).
Nejjednodušším způsobem instalace balíčku je použití příkazu nabídky Balíčky v rozhraní aplikace Dynamo. Pojďme se do toho hned pustit a nainstalovat ho. V tomto rychlém příkladu nainstalujeme oblíbený balíček k vytvoření čtyřúhelníkových panelů v osnově.
V aplikaci Dynamo přejděte na kartu Balíčky > Package Manager.
Na panelu hledání vyhledejte „quads from rectangular grid“. Za chvíli by se měly zobrazit všechny balíčky, které odpovídají tomuto vyhledávacímu dotazu. Chceme vybrat první balíček s odpovídajícím názvem.
Kliknutím na tlačítko Instalovat přidejte tento balíček do knihovny a potvrďte jej. Hotovo!
Všimněte si, že v knihovně aplikace Dynamo je nyní k dispozici další skupina s názvem „buildz“. Tento název odkazuje na vývojáře balíčku a uživatelský uzel je umístěn do této skupiny. Můžete ji začít ihned používat.
Pomocí uzlu Code Block rychle definujte pravoúhlou osnovu, výsledek odešlete do uzlu Polygon.ByPoints a následně do uzlu Surface.ByPatch, čímž zobrazíte seznam právě vytvořených obdélníkových panelů.
Výše uvedený příklad se zaměřuje na balíček s jedním uživatelským uzlem, ale stejný postup se používá ke stahování balíčků s několika uživatelskými uzly a podpůrnými datovými soubory. Nyní si předvedeme složitější balíček: Dynamo Unfold.
Stejně jako ve výše uvedeném příkladu začněte výběrem položek Balíčky > Package Manager.
Tentokrát vyhledáme výraz DynamoUnfold. Jedná se o jedno slovo. Když se balíčky zobrazí, stáhněte je kliknutím na tlačítko Instalovat a přidejte balíček Dynamo Unfold do své knihovny aplikace Dynamo.
V knihovně aplikace Dynamo je k dispozici skupina aplikace DynamoUnfold s více kategoriemi a s vlastními uzly.
Nyní se podíváme na strukturu souborů balíčku.
Nejprve přejděte do nabídky Balíčky > Package Manager > Instalované balíčky.
Poté kliknutím na možnost Zobrazit kořenový adresář otevřete kořenovou složku pro tento balíček.
Tak se dostaneme do kořenového adresáře balíčku. Všimněte si, že máme tři složky a soubor.
Složka bin slouží k ukládání souborů .dll. Tento balíček Dynamo byl vyvinut pomocí možnosti Zero-Touch, proto jsou vlastní uzly uloženy v této složce.
Složka dyf slouží k umístění vlastních uzlů. Tento balíček nebyl vytvořen pomocí vlastních uzlů aplikace Dynamo, proto je tato složka pro tento balíček prázdná.
Složka extra obsahuje všechny další soubory včetně vzorových souborů.
Soubor pkg je základní textový soubor, který definuje nastavení balíčku. Můžeme ho zatím ignorovat.
Při otevření složky extra se zobrazí několik vzorových souborů, které byly staženy spolu s instalací. Ne všechny balíčky mají vzorové soubory, ale zde je můžete najít, pokud jsou součástí balíčku.
Otevřeme položku SphereUnfold.
Po otevření souboru a stisknutí tlačítka Spustit na řešiči máme rozvinutou kouli. Ukázkové soubory, jako jsou tyto, jsou užitečné při studiu práce s novým balíčkem Dynamo.
V nástroji Package Manager můžete procházet balíčky pomocí možností třídění a filtrování na kartě Vyhledat balíčky. K dispozici je několik filtrů pro hostitelský program, stav (nový, odmítnutý nebo neodmítnutý) a informace o tom, zda má balíček závislosti.
Seřazením balíčků můžete identifikovat vysoce hodnocené nebo nejčastěji stahované balíčky nebo vyhledat balíčky s nejnovějšími aktualizacemi.
Další podrobnosti o jednotlivých balíčcích můžete také zobrazit kliknutím na možnost Zobrazit podrobnosti. Tím se v nástroji Package Manager otevře postranní panel, kde najdete podrobné informace o balíčku, jako je správa verzí a závislosti, adresa URL webu nebo úložiště, informace o licenci atd.
Další způsob, jak objevovat balíčky aplikace Dynamo, je prozkoumat web nástroje nástroj Dynamo Package Manager. Zde najdete statistiky balíčků a žebříčky autorů. Soubory balíčku můžete také stáhnout z aplikace Dynamo Package Manager, ale přímo z aplikace Dynamo je proces jednodušší.
Pokud chcete zjistit, kde jsou uloženy soubory balíčku, klikněte v horní části navigace na možnosti Dynamo > Předvolby > Nastavení balíčku > Umístění souborů uzlů a balíčků, kde najdete aktuální adresář kořenové složky.
Ve výchozím nastavení jsou balíčky nainstalovány do umístění podobného této cestě: C:/Users/[uživatelské jméno]/AppData/Roaming/Dynamo/[verze aplikace Dynamo].
Komunita aplikace Dynamo neustále roste a vyvíjí se. Průběžně prohlížením aplikace Dynamo Package Manager najdete nové zajímavé informace. V následujících částech se podrobněji podíváme na balíčky, z pohledu koncového uživatele na tvorbu vlastního balíčku aplikace Dynamo.
V dalším kroku vaše vlastní uzly uspořádáte a publikujete jako balíčky – ty představují dobrý způsob, jak uzly uložit a sdílet s komunitou aplikace Dynamo.
Aplikace Dynamo nabízí několik různých metod vytváření vlastních uzlů. Vlastní uzly můžete vytvořit zcela od začátku, z existujícího grafu nebo explicitně v jazyce C#. V této části se budeme zabývat vytvořením vlastního uzlu v uživatelském rozhraní aplikace Dynamo z existujícího grafu. Tato metoda je ideální k začištění pracovního prostoru a zabalení sekvence uzlů k opakovanému použití na jiném místě.
Na obrázku níže namapujeme bod z jednoho povrchu na jiný pomocí souřadnic UV. Pomocí tohoto konceptu vytvoříme panelizovaný povrch, který odkazuje na křivky v rovině XY. Zde vytvoříme čtyřhranné panely pro naši panelizaci, ale pomocí stejné logiky můžeme vytvořit širokou řadu panelů s mapováním UV. Jedná se o skvělou příležitost k vývoji vlastního uzlu, protože v tomto grafu nebo v jiných pracovních postupech aplikace Dynamo budeme moci snadněji opakovat podobný proces.
Kliknutím na odkaz níže si stáhněte vzorový soubor.
Úplný seznam vzorových souborů najdete v dodatku.
Začneme vytvořením grafu, který chceme vnořit do vlastního uzlu. V tomto příkladu vytvoříme graf, který mapuje polygony ze základního povrchu na cílový povrch pomocí souřadnic UV. Tento proces mapování UV často používáme, proto je vhodným kandidátem pro vlastní uzel. Další informace o površích a prostoru UV naleznete na stránce Povrch. Úplný graf je UVmapping_Custom-Node.dyn ze souboru ZIP staženého výše.
Code Block: Pomocí tohoto řádku vytvořte rozsah 10 čísel v rozmezí -45 až 45:
45..45..#10;
.Point.ByCoordinates: Připojte výstup uzlu Code Block ke vstupům „x“ a „y“ a nastavte vázání na kartézský součin. Nyní byste měli mít osnovu bodů.
Plane.ByOriginNormal: Spojením výstupu Point se vstupem origin vytvořte rovinu v každém z bodů. Bude použit výchozí normálový vektor (0,0,1).
Rectangle.ByWidthLength: Spojte roviny z předchozího kroku do vstupu plane a pomocí uzlu Code Block s hodnotou 10 určete šířku a délku.
Nyní byste měli vidět osnovu obdélníků. Tyto obdélníky namapujeme na cílový povrch pomocí souřadnic UV.
Polygon.Points: Spojením výstupu uzlu Rectangle.ByWidthLength z předchozího kroku se vstupem polygon extrahujte rohové body každého obdélníku. Jedná se o body, které namapujeme na cílový povrch.
Rectangle.ByWidthLength: Pomocí uzlu Code Block s hodnotou 100 určete šířku a délku obdélníku. Toto bude hranice našeho základního povrchu.
Surface.ByPatch: Připojte uzel Rectangle.ByWidthLength z předchozího kroku ke vstupu closedCurve a vytvořte tak základní povrch.
Surface.UVParameterAtPoint: Připojte výstup Point uzlu Polygon.Points a výstup Surface uzlu Surface.ByPatch k vrácení parametru UV v každém bodu.
Nyní, když máme základní povrch a sadu souřadnic UV, můžete importovat cílový povrch a mapovat body mezi povrchy.
File Path: Vyberte cestu k souboru povrchu, který chcete importovat. Typ souboru by měl být .SAT. Klikněte na tlačítko Procházet a přejděte k souboru UVmapping_srf.sat ze souboru .zip staženého výše.
Geometry.ImportFromSAT: Připojte cestu k souboru a importujte povrch. Importovaný povrch uvidíte v náhledu geometrie.
UV: Připojte výstup parametru UV k uzlu UV.U a UV.V.
Surface.PointAtParameter: Připojte importovaný povrch a také souřadnice U a V. Nyní byste měli na cílovém povrchu vidět rastr 3D bodů.
Posledním krokem je použití 3D bodů k vytvoření pravoúhlých záplat povrchů.
PolyCurve.ByPoints: Spojením bodů na povrchu se vytvoří objekt polycurve procházející body.
Boolean: Do pracovního prostoru přidejte uzel Boolean, připojte jej ke vstupu connectLastToFirst a přepnutím na hodnotu True uzavřete objekt polycurve. Nyní byste měli vidět obdélníky namapované na povrch.
Surface.ByPatch: Propojte objekty polycurve se vstupem closedCurve a vytvořte tak záplaty povrchů.
Nyní vybereme uzly, které chceme vnořit do vlastního uzlu, a zvážíme, co chceme použít jako vstupy a výstupy našeho uzlu. Chceme, aby byl vlastní uzel co nejflexibilnější, a proto by měl být schopen mapovat libovolné polygony, nikoli pouze obdélníky.
Vyberte následující uzly (počínaje uzlem Polygon.Points), klikněte pravým tlačítkem na pracovní prostor a vyberte možnost Vytvořit vlastní uzel.
V dialogu Vlastnosti vlastního uzlu přiřaďte k vlastnímu uzlu název, popis a kategorii.
Název: MapPolygonsToSurface
Popis: Mapuje polygony ze základního na cílový povrch.
Kategorie doplňků: Geometry.Curve
Vlastní uzel výrazně začistil pracovní prostor. Vstupy a výstupy byly pojmenovány na základě původních uzlů. Upravte vlastní uzel, aby byly názvy popisnější.
Dvakrát klikněte na vlastní uzel, který chcete upravit. Tím se otevře pracovní prostor se žlutým pozadím, které představuje vnitřek uzlu.
Vstupy: Změňte názvy vstupů na baseSurface a targetSurface.
Výstupy: Přidejte další výstup pro mapované polygony.
Uložte vlastní uzel a vraťte se do domovského pracovního prostoru. Všimněte si, že uzel MapPolygonsToSurface odráží změny, které jsme právě provedli.
Robustnost vlastního uzlu lze také zvýšit přidáním vlastních komentářů. Komentáře mohou pomoci u typů vstupů a výstupů nebo vysvětlovat funkci uzlu. Komentáře se zobrazí, když uživatel umístí kurzor nad vstup, nebo výstup vlastního uzlu.
Dvakrát klikněte na vlastní uzel, který chcete upravit. Tím se znovu otevře pracovní prostor se žlutým pozadím.
Začněte upravovat vstupní kód bloku. Chcete-li vytvořit komentář, zadejte výraz "//" následovaný textem komentáře. Zadejte vše, co může pomoci objasnit uzel – zde budeme popisovat položku targetSurface.
Také nastavíme výchozí hodnotu inputSurface nastavením typu vstupu rovnajícího se hodnotě. Zde nastavíme výchozí hodnotu na původní nastavení Surface.ByPatch.
Komentáře lze použít také na výstupy.
Začněte upravovat text ve výstupním bloku kódu. Zadejte „//“ a za ním text komentáře. Zde vyjasníme výstupy Polygons a surfacePatches přidáním podrobnějšího popisu.
Přesunutím kurzoru nad vstupy vlastního uzlu zobrazíte komentáře.
S výchozí hodnotou nastavenou pro položku inputSurface můžeme také spustit definici bez zadání povrchu.
Vytvořili jsme vlastní uzel a použili jej na proces v grafu aplikace Dynamo. Nyní tento uzel chceme zachovat v knihovně aplikace Dynamo pro později použití v dalších grafech. Z tohoto důvodu provedeme místní publikování uzlu. Tento postup je podobný jako publikování balíčku, další informace budou uvedeny v další kapitole.
Po místním publikování uzlu bude uzel dostupný v knihovně aplikace Dynamo po otevřené nové relace. Pokud by uzel publikován nebyl, graf aplikace Dynamo odkazující na vlastní uzel by musel tento uzel obsahovat ve své složce (další možností je uzel importovat do aplikace Dynamo pomocí možnosti Soubor > Importovat knihovnu).
Vlastní uzly a balíčky z aplikace Dynamo Sandbox ve verzi 2.17 a novějších můžete publikovat, pokud nemají žádné závislosti na hostitelském rozhraní API. Ve starších verzích je publikování vlastních uzlů a balíčků povoleno pouze v aplikacích Dynamo for Revit a Dynamo for Civil 3D.
Kliknutím na odkaz níže si stáhněte vzorový soubor.
Úplný seznam vzorových souborů najdete v dodatku.
V této části budeme pokračovat v práci s vlastním uzlem vytvořeným dříve. Po otevření vlastního uzlu PointsToSurface se graf zobrazí v Editoru uživatelských uzlů aplikace Dynamo. Vlastní uzel je možné otevřít také dvojitým kliknutím v Editoru grafu aplikace Dynamo.
Chcete-li provést místní publikování vlastního uzlu, klikněte pravým tlačítkem myši na pracovní plochu a vyberte možnost Publikovat tento vlastní uzel.
Vyplňte informace podle obrázku výše a klikněte na tlačítko Publikovat místně. Všimněte si, že pole Skupina určuje místo v nabídce aplikace Dynamo, kde bude uzel dostupný.
Vyberte složku, ve které se budou nacházet všechny místně publikované vlastní uzly. Aplikace Dynamo bude tuto složku kontrolovat při každém spuštění, proto by se mělo jednat o trvalé umístění. Přejděte do této složky a klikněte na tlačítko Vybrat složku. Uzel aplikace Dynamo je nyní místně publikován a bude k dispozici v knihovně aplikace Dynamo po každém spuštění aplikace.
Chcete-li zjistit umístění složky vlastních uzlů, klikněte na nabídku Dynamo > Předvolby > Nastavení balíčku > Cesty uzlů a balíčků.
V tomto okně se zobrazí seznam cest.
Dokumenty\DynamoCustomNodes... odkazuje na umístění místně publikovaných vlastních uzlů.
AppData\Roaming\Dynamo... odkazuje na výchozí umístění balíčků aplikace Dynamo nainstalovaných online.
Cestu k vaší místní složce můžete v seznamu přesunout dolů (výběrem cesty ke složce a kliknutím na šipku dolů). Složka uvedená nejvýše se používá jako výchozí složka pro instalace balíčků. Pokud jako výchozí složku nastavíte výchozí cestu pro instalaci balíčků aplikace Dynamo, online balíčky budou odděleny od místně publikovaných uzlů.
Změnili jsme pořadí cest, aby se pro instalaci balíčků použila výchozí cesta aplikace Dynamo.
Pokud přejdete do této místní složky, ve složce „.dyf“ (což je přípona pro soubor vlastního uzlu aplikace Dynamo) naleznete původní vlastní uzel. Po úpravě souborů v této složce se uzly aktualizují v uživatelském rozhraní. Do složky DynamoCustomNode je možné přidat další uzly a aplikace Dynamo je přidá do knihovny po restartování.
Aplikace Dynamo se nyní pokaždé načte s uzlem PointsToSurface ve skupině DynamoPrimer v knihovně.
Import pomocí funkce Zero-Touch odkazuje na metodu jednoduchého importu knihoven C# pomocí najetí kurzoru a kliknutí. Aplikace Dynamo přečte veřejné metody souboru .dll a převede je na uzly aplikace Dynamo. Pomocí funkce Zero-Touch můžete vyvinout vlastní uzly a balíčky a importovat externí knihovny do prostředí aplikace Dynamo.
Soubory .dll
Uzly aplikace Dynamo
Pomocí funkce Zero-Touch můžete skutečně importovat knihovnu, která nebyla nezbytně vyvinuta pro aplikaci Dynamo, a vytvořit sady nových uzlů. Aktuální funkce Zero-Touch znázorňuje multiplatformní povahu projektu aplikace Dynamo.
Tato část předvádí, jak pomocí funkce Zero-Touch importovat knihovnu třetích stran. Informace o vývoji vlastní knihovny funkce Zero-Touch naleznete na stránce Wiki k aplikaci Dynamo.
Balíčky funkce Zero-Touch jsou dobrým doplňkem k uživatelským vlastním uzlům. V tabulce níže je uvedeno několik balíčků, které používají knihovny C#. Podrobnější informace o balíčcích naleznete v části Balíčky v dodatku.
Tato případová studie popisuje, jak importovat AForge – externí knihovnu .dll. AForge je robustní knihovna, která nabízí celou řadu funkcí od zpracování obrázků po umělou inteligenci. Níže rozebereme několik cvičení týkající se zpracování obrázků, a přitom se budeme odkazovat na třídu k práci s obrázky v knihovně AForge.
Začněte stažením knihovny AForge. Na stránce stažení knihovny AForge vyberte položku [Download Installer] a po dokončení stahování proveďte instalaci knihovny.
V aplikaci Dynamo vytvořte nový soubor a vyberte možnost Soubor > Importovat knihovnu.
Dále vyhledejte soubor knihovny DLL.
V místním okně přejděte do složky Release instalačního programu AForge. Pravděpodobně se bude jednat o složku podobnou této: C:\Program Files (x86)\AForge.NET\Framework\Release.
AForge.Imaging.dll: Pro tuto případovou studii chceme použít pouze tento soubor z knihovny AForge. Vyberte tento soubor .dll a klikněte na Otevřít.
V aplikaci Dynamo byste měli vidět skupinu uzlů AForge přidanou do knihovny. Nyní máme přístup ke knihovně práce s obrázky AForge z našeho vizuálního programu.
Kliknutím na odkaz níže si stáhněte vzorový soubor.
Úplný seznam vzorových souborů najdete v dodatku.
Jakmile bude knihovna importována, začněte jednoduše tímto prvním cvičením (01-EdgeDetection.dyn). V něm provedeme základní zpracování obrázků s ukázkovým obrázkem a ukážeme si, jak fungují filtry obrázků AForge. Pomocí uzlu Watch Image zobrazíme výsledky a v aplikaci Dynamo použijeme filtry podobné těm, které jsou v aplikaci Photoshop.
Chcete-li importovat obrázek, přidejte na pracovní plochu uzel File Path a ve složce cvičení vyberte soubor „soapbubble.jpg“ (autor fotografie: flickr).
Uzel File Path jednoduše předá řetězec s cestou k vybranému obrázku. Dále je potřeba jej převést na použitelný soubor obrázku v aplikaci Dynamo.
Pomocí uzlu File From Path převeďte položku cesty k souboru na obrázek v prostředí aplikace Dynamo.
Připojte uzel File Path k uzlu File.FromPath.
K převodu tohoto souboru na obrázek použijte uzel Image.ReadFromFile.
Nakonec zobrazte výsledek. Přetáhněte uzel Watch Image na kreslicí plochu a připojte jej k uzlu Image.ReadFromFile. Ještě jsme nepoužili AForge, ale úspěšně jsme importovali obrázek do aplikace Dynamo.
Pod uzlem AForge.Imaging.AForge.Imaging.Filters (v navigační nabídce) si všimněte, že je k dispozici celá řada filtrů. Nyní pomocí jednoho z těchto filtrů odbarvíme obrázek podle hodnot prahů.
Umístěte tři posuvníky na kreslicí plochu, změňte jejich rozsahy na 0 až 1 a jejich hodnoty kroku na 0.01.
Přidejte na kreslicí plochu uzel Grayscale.Grayscale. Jedná se o filtr AForge, který na obrázek použije filtr odstínů šedé. Spojte tři posuvníky z kroku 1 ke vstupům cr, cg a cb. Změňte horní a dolní posuvník, tak aby měly hodnotu 1, a střední posuvník, tak aby měl hodnotu 0.
Aby bylo možné použít filtr odstínů šedi, je nutné provést s obrázkem určitou akci. K tomu používáme uzel BaseFilter.Apply. Připojte obrázek ke vstupu image a uzel Grayscale.Grayscale ke vstupu baseFilter.
Připojením k uzlu Watch Image získáte odbarvený obrázek.
Kontrola nad odbarvením obrázku se odvíjí od hodnot prahů pro červenou, zelenou a modrou. Tyto hodnoty jsou definovány vstupy uzlu Grayscale.Grayscale. Všimněte si, že obrázek vypadá značně ztlumeně – je to kvůli tomu, že hodnota zelené barvy je posuvníkem nastavena na 0.
Změňte horní a dolní posuvník, tak aby měly hodnotu 0, a střední posuvník, tak aby měl hodnotu 1. Tímto získáte čitelnější odbarvený obrázek.
Nyní na odbarvený obrázek použijeme další filtr. Odbarvený obrázek má určitý kontrast, čili nyní otestujeme detekci hran.
Na kreslicí plochu přidejte uzel SobelEdgeDetector.SobelEdgeDetector.
Připojte jej k uzlu BaseUsingCopyPartialFilter.Apply a připojte odbarvený obrázek ke vstupu image tohoto uzlu.
Sobelův detektor hran zvýraznil hrany v novém obrázku.
Při přiblížení detektor hran zvýraznil obrysy bublin pomocí pixelů. Knihovna AForge obsahuje nástroje, které umožňují vytvořit pomocí těchto výsledků geometrii aplikace Dynamo. Tato funkce je rozebrána v následujícím cvičení.
Nyní, když jste se seznámili s určitým základním zpracováním obrázků, můžete pomocí obrázku řídit geometrii aplikace Dynamo. Na základní úrovni se v tomto cvičení snažíme provést Aktivní trasování obrázku pomocí příkazů AForge a Dynamo. Budeme se držet jednoduchého postupu a extrahujeme obdélníky z referenčního obrázku, v knihovně AForge jsou však k dispozici i nástroje pro složitější operace. Budeme pracovat se souborem 02-RectangleCreation.dyn ze stažených souborů cvičení.
Pomocí uzlu File Path přejděte do složky cvičení a k souboru grid.jpg.
Propojte zbývající řadu uzlů výše, tak abyste odhalili parametrickou osnovu.
V následujícím kroku je potřeba se odkázat na bílé čtverce v obrázku, které se poté převedou ve skutečnou geometrii aplikace Dynamo. Knihovna AForge má mnoho výkonných nástrojů počítačového vidění, přičemž zde se použije zvlášť důležitý nástroj zvaný BlobCounter.
Po přidání objektu BlobCounter na kreslicí plochu je třeba zpracovat obrázek (podobně jako u nástroje BaseFilter.Apply v předchozím cvičení).
Uzel „Process Image“ však bohužel není ihned viditelný v knihovně aplikace Dynamo. Je tomu tak proto, že funkce nemusí být ve zdrojovém kódu AForge viditelná. Tento problém vyřešíte prostřednictvím náhradního řešení.
Přidejte na kreslicí plochu uzel jazyka Python a přidejte do něj následující kód. Tento kód importuje knihovnu AForge a poté zpracuje importovaný obrázek.
Pokud připojíte výstup obrázku ke vstupu uzlu Python, získáte z uzlu Python výsledek AForge.Imaging.BlobCounter.
Následující postup ukáže několik triků, které znázorní provázanost s rozhraním API AForge Imaging. K práci v aplikaci Dynamo není nutné se naučit úplně vše. Jedná se spíše o demonstraci práce s externími knihovnami v rámci flexibility prostředí aplikace Dynamo.
Připojte výstup skriptu v jazyce Python k uzlu BlobCounterBase.GetObjectRectangles. Tímto se načtou objekty v obrázku podle prahové hodnoty a extrahují se kvantifikované obdélníky z pixelového prostoru.
Přidáním dalšího uzlu Python připojte objekt GetObjectRectangles a zadejte níže uvedený kód. Tím se vytvoří uspořádaný seznam objektů Dynamo.
Transponujte výstup uzlu Python z předchozího kroku. Tím vzniknou 4 seznamy, přičemž každý z nich představuje hodnoty X, Y, šířky a výšky každého obdélníku.
Pomocí bloku kódu uspořádejte data do struktury, která odpovídá uzlu Rectangle.ByCornerPoints (kód níže).
Nyní je vidět pole obdélníků představujících bílé čtverce v obrázku. Pomocí programování jsme právě provedli (zhruba) podobnou věc jako aktivní sledování v aplikaci Illustrator.
Stále však je potřeba provést začištění. Po přiblížení je vidět určité množství malých nežádoucích obdélníků.
Dále napíšeme kódy, abychom se zbavili nežádoucích obdélníků.
Vložte uzel jazyka Python mezi uzel GetObjectRectangles a jiný uzel jazyka Python. Kód uzlu je uveden níže a odstraní všechny obdélníky, které jsou menší než daná velikost.
Jakmile budou přebytečné obdélníky pryč, zkusíme jen tak pro radost vytvořit z těchto obdélníků jeden povrch a vysunout je o určitou vzdálenost podle jejich ploch.
Nakonec změňte vstup both_sides na hodnotu false. Tím získáte vysunutí v jednom směru. Použijte trochu pryskyřice a máte perfektní stůl.
Toto jsou základní příklady, zde popsané koncepty však je možné přetvořit ve skvělé reálné projekty. Počítačové vidění je možné použít v celé řadě procesů. Mezi tyto patří například: čtečky čárových kódů, spojování perspektivy, mapování promítání a rozšířená realita. Další rozšířená témata s funkcí AForge související s tímto cvičením naleznete v tomto článku.
Vedle položky DynamoUnfold vyberte nabídku možností .
Logo/obrázek
Název