Zbierka - Voronoiove objekty - OpenSCAD

Zo stránky Parametrické a Generatívne 3D modelovanie
Verzia z 13:57, 5. máj 2024, ktorú vytvoril Admin (diskusia | príspevky)
   https://kempelen.dai.fmph.uniba.sk/design/images/6/63/Voronoi_object_openscad.stl

Voronoiove objekty - OpenSCAD

Trvanie:
1 hod
Náročnosť:
ťažký
Nástroje:
OpenSCAD
Inštrukcie pre učiteľov:
Voronoiove objekty - OpenSCAD

V parametrickom a generatívnom dizajne veľmi často vidíme modely, ktoré sú "dieravé," táto dierovosť sa implementuje z viacerých dôvodov, napríklad kvôli šetreniu na materiáloch, kvôli nižšej hmotnosti objektov, vyššej priepustnosti a podobne. Môžete si prezrieť ako takéto generatívne modely vyzerajú vyhľadaním frázy "generative design" a pochopíte ako často sa táto technika využíva. Pre ukážku jedného zo spôsobov ako vieme implementovať Voronoiove objekty si vytvoríme nasledujúci objekt.


Zadanie úlohy

Budeme vytvárať viac Voronoiových objektov, ktoré budú mať spoločný základ implementácie. Tento základ bude tvoriť rozdelenie priestoru na určité náhodne rozmiestnené časti pomocou kvázi algoritmu, ktorý sa snaží napodobniť robustnejšie algoritmy implementujúce rozdelenie 3D priestoru pomocou Voronoiových diagramov. Pre predstavu a pochopenie pred implementáciou odporúčame vyhľadať si obrázky "voronoi object" a naštudovať si Voronoiove diagramy.

Odkazy na materiály

V tejto sekcii nájdete odkazy na materiály, ktoré vám môžu pomôcť pri riešení daných problémov a naučia vás ako používať požívané nástroje:

  • Teória - rozcestník stručnej teórie pre koncepty, ktoré potrebujeme
  • OpenSCAD manuál - miesto kde nájdete všetky potrebné informácie k OpenSCADu vrátane všetkých príkazov, dokumentácie či syntaxe
  • Voronoiove diagramy - Wikipedia o Voronoiových diagramoch
  • Teória

Inštrukcie

  1. Otvorte si nástroj OpenSCAD.
  2. Skúste si vyhľadať vovonoiove objekty a analyzovať ako vyzerajú a ako to asi môžeme docieliť.
  3. Takéto diery sa budeme snažiť vytvoriť najmä odčítaním určitých objektov z priestoru od nejakého nášho celistvého objektu. Preto najprv treba takéto objekty v riestore vytvoriť.
  4. Tieto objekty sú pravdepodobne náhodne generované na určitých pozíciach v priestore, ktorý si nejakým spôsobom ohraničíme. Pre náhodnosť môžeme použiť funkciu rands. Počet týchto pozícii musíme ale generovať roumne aby sa nestalo, že na renderovanie budeme čakať príliš dlho. Chceme teda vygenerovať nejaký kvázi voronoiov idagram v priestore v ohraničenom priestore, z ukážky si to vieme lepšie predstaviť:
    ukážka voronoiovho diagramu v 3D s ohraničením
  5. Aby sa tieto objekty čo najviac podobali náhodnému prerozdeleniu priestoru a aby sa neprekrývali, potrebujeme implementovať nejaké natočenia, deformácie a medzery medzi nimi. Takže budeme musieť počítať vzdialenosti medzi bodmi a taktiež si treba porieť ako fungujú goniometrické a cyklometrické funkcie v OpenSCADe. Zamyslite sa ako a pokúste sa o implementáciu.
  6. Ak sme implementovali generovanie takýchto objektov a sme s ním spokojní, môžeme postupovať k hlavnému objektu, od ktorého pomocou CSG operácií odrátame vygenerované náhodné objekty.

Testovanie a úpravy

Prezrite a skontrolujte si objekt a odpovedzte si na to či daný 3D model zodpovedá zadaniu a či ste s ním spokojní. Ak chcete skúsiť model upraviť, navrhujeme:

  • namiesto rozdelenia skúsiť rôzne kombinácie viacerých CSG operácií a hlavných objektov ako v zakomentovaných ukážkach a vytvorte podobné modely:
    Voronoiov objekt 1 Voronoiov objekt 2 Voronoiov objekt 3
  • vyskúšať si generovať objekty v menšom priestore s viac bodmi a naopak
  • vytvoriť inú implementáciu dierovosti ako je vo vzorovom riešení
  • vyskúšať zmeniť parametre a pozície, s ktorými algoritmus pracuje

Spätná väzba

Ak ste spokojní so svojím výsledným modelom, prezentujte ho ostatným, zhodnoťte koncepty, ktoré ste použili a ako ste ho implementovali, buďte otvorení k hodnoteniam od ostatných a k prípadným návrhom na zlepšenie.

Vzorové riešenie

Ak budete potrebovať motiváciu alebo si skontrolovať váš výsledný model, v nasledujúcich odkazoch nájdete implementáciu daného modelu v nástrojoch, ktoré ste na implementáciu mohli použiť:

Záver

Pri týchto objektoch sme si ukázali jeden z mnohých spôsobov akými sa dajú generovať Voronoiove objekty aj v OpenSCADe. Voronoiove objekty sú základom pre mnoho generatívnych dizajnov a využívajú sa do veľkej miery pri optimalizácií modelov. Dajú sa vytvárať viacerými algoritmami, ktoré implementujú Voronoiov diagram a teda dierovosť objektu. Taktiež sme prišli na to, že myšlienkové pochody sú často najzdĺhavejšou fázou programovania a že OpenSCAD nie je ideálnym nástrojom, s ktorým by sme chceli generovať naozaj komplexné objekty rýchlo.