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.
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.
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í ř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 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.
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.
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.
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.
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.
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.
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.
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.
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.
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 .
Vedle položky DynamoUnfold vyberte nabídku možností .
Další způsob, jak objevovat balíčky aplikace Dynamo, je prozkoumat web nástroje nástroj . 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šší.
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 .
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 v dodatku.
Tato případová studie popisuje, jak importovat – 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 vyberte položku [Download Installer] a po dokončení stahování proveďte instalaci knihovny.
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: ).
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ý .
Následující postup ukáže několik triků, které znázorní provázanost s . 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.
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, a . Další rozšířená témata s funkcí AForge související s tímto cvičením naleznete v .
Logo/obrázek | Název |