Preskoči na sadržaj
FORTRONIQ

MODUL 1 · MODELIRANJE DIGITALNIH OBJEKATA ZA VIRTUALNU STVARNOST

Nastavna jedinica 1.2

Parametarsko modeliranje i izvoz CAD modela

Kako strojni sklop iz CAD sustava postaje model za virtualnu stvarnost: što iz parametarskog modela zadržati, a što ukloniti, kako se plohe pretvaraju u trokute i koji format izvoza odabrati. Primjer je sklop mobilnog robota MR-1 od dvanaest dijelova.

Moći ću:
  • prepoznati koji su podaci parametarskog modela korisni za virtualnu stvarnost, a koji nisu
  • pripremiti sklop u CAD sustavu tako da se dijelovi mogu zasebno hvatati u sceni
  • objasniti teselaciju i ulogu kordne i kutne tolerancije
  • usporediti formate STEP, glTF i FBX prema namjeni i sadržaju
  • provjeriti izvezeni model prije daljnje obrade
  • izračunati broj segmenata i trokuta pri teselaciji valjka i vidljivost odstupanja u naočalama

Parametarski model kao izvor

Većina strojnih dijelova koji se pojavljuju u industrijskim VR aplikacijama već postoji kao parametarski model u CAD sustavu. To je prednost: mjere su točne, sklop je složen, dijelovi su imenovani. Ali parametarski model nosi i mnogo toga što prikazu u stvarnom vremenu ne treba ili mu smeta.

Načela parametarskog modeliranja — skice, ograničenja, značajke, stablo izrade i sklopovi — obrađena su u području Proširena stvarnost, u jedinici Parametarsko modeliranje. Ovdje polazimo od gotovog modela i pitamo: što iz njega treba virtualnom laboratoriju VR-1?

Podatak CAD modelaTreba li u VR-uPostupak
Vanjska geometrija dijelovadateselira se u trokute
Struktura sklopa i nazivi dijelovadapostaje hijerarhija objekata u sceni
Izgled (boje, osnovni materijali)djelomičnosluži kao polazište, materijali se rade iznova (jedinica 1.5)
Masa i težištekorisnoprepisuje se u fizikalna svojstva objekta (1,2 kg za sklop)
Parametri, ograničenja, povijest izradeneostaju u CAD sustavu kao izvor istine
Navoji, sitna skošenja, oznake, vijciuglavnom neuklanjaju se ili zamjenjuju teksturom
Unutarnji dijelovi koji se ne videneizostavljaju se iz izvoza

Pojednostavljenje i priprema sklopa

Pojednostavljenje modela (engl. defeaturing) znači uklanjanje značajki koje u prikazu ne donose ništa, a troše trokute. Kriterij nije konstrukcijski nego vizualni: što korisnik može vidjeti s udaljenosti s koje gleda. Na udaljenosti od 0,6 m detalj od 1 mm na uređaju A zauzima oko 2 piksela. Sve sitnije od toga — navoji, zaobljenja rubova polumjera ispod milimetra, utisnuti natpisi — bolje je prenijeti u teksturu ili mapu normala nego u geometriju.

Dobra praksa je u CAD sustavu napraviti posebnu konfiguraciju ili inačicu sklopa za prikaz. Izvorni konstrukcijski model tako ostaje netaknut, a pojednostavljena inačica ažurira se s njim. Za robot MR-1 priprema izgleda ovako:

  1. Sklop ostaje podijeljen na 12 dijelova koje korisnik zasebno hvata i ugrađuje: šasija, poklopac, dva pogonska kotača Ø65 mm, dva motora s reduktorom, kuglični oslonac, baterija, upravljačka pločica, ultrazvučni senzor udaljenosti, modul s dva IR senzora linije i prekidač.
  2. Vijci, matice i odstojnici nisu zasebni dijelovi u sceni. Vidljivi se spajaju s dijelom koji drže, a skriveni se izostavljaju.
  3. Elektronika na pločici svodi se na vanjski obris i nekoliko većih komponenata; sitne komponente prelaze u teksturu.
  4. Sklop se postavlja u sklopljeni referentni položaj, s ishodištem na podlozi između dodirnih točaka kotača i s prednjom stranom (senzor udaljenosti) u dogovorenom smjeru osi.
  5. Svaki dio dobiva naziv prema dogovoru projekta, npr. MR1_motor_L, jer se po nazivu u sceni veže logika.
MR1_sklop šasija poklopac kuglični oslonac baterija 7,4 V upravljačka pločica prekidač kotač L (vrti se) kotač D (vrti se) motor L motor D ultrazvučni senzor IR modul linije dio uz točku interesa ostali dijelovi
Slika 1.3 — Hijerarhija sklopa MR-1 za izvoz: dvanaest dijelova ispod jednog korijenskog objekta. Tirkizno su označeni dijelovi uz koje se nalazi šest točaka interesa (motor, kotač, baterija, pločica, senzor udaljenosti, prekidač); kotači su pokretni objekti.

Masa i težište iz CAD sustava ne prenose se kroz formate za prikaz, nego se ručno upisuju u fizikalna svojstva objekta u razvojnom okruženju. Za sklop MR-1 to je 1,2 kg, a za dijelove njihove mase iz CAD modela. Težište određuje kako se dio ponaša kad ga korisnik ispusti ili gurne; ako je ishodište dijela u težištu, dio u ruci djeluje prirodnije.

Pažnja

Ako se sklop izveze kao jedna spojena mreža, dijelovi se u sceni više ne mogu zasebno hvatati ni pokretati. Provjerite da izvoznik zadržava strukturu sklopa, odnosno da je svaki dio zaseban objekt.

Teselacija: od ploha do trokuta

CAD model opisuje oblik egzaktnim plohama. Grafički procesor iscrtava samo trokute, pa se pri izvozu plohe aproksimiraju mrežom trokuta. Taj postupak zove se teselacija (engl. tessellation). Ravna ploha pravokutne šasije dobiva dva trokuta bez obzira na veličinu, dok zakrivljene plohe trebaju mnogo trokuta: tetive zamjenjuju luk, a što su tetive kraće, odstupanje je manje.

hRθ stvarna ploha (CAD) tetive = bridovi trokuta h — najveće odstupanje tetive θ = 2 · arccos(1 − h / R) n = 2π / θ kotač Ø65, h = 0,1 mm: n = 41 kotač Ø65, h = 0,5 mm: n = 18
Slika 1.4 — Teselacija luka: tetive (tirkizno) zamjenjuju stvarnu plohu. Kordna tolerancija h ograničava najveće odstupanje tetive od plohe i time određuje kut segmenta θ i broj segmenata n po opsegu.

Izvoznici obično nude tri postavke, a naziv se može razlikovati po inačici programa:

  • Kordna tolerancija (engl. chordal deviation) — najveće dopušteno odstupanje h tetive od plohe, u milimetrima.
  • Kutna tolerancija (engl. angular tolerance) — najveći kut između normala susjednih trokuta; čuva oblik malih polumjera.
  • Najveća duljina brida — sprječava vrlo dugačke, uske trokute na velikim plohama.

Mjerodavna je ona postavka koja daje više segmenata. Za kotač Ø65 mm s kordnom tolerancijom 0,1 mm dobiva se 41 segment po opsegu, a s kutnom tolerancijom od 15° samo 24; vrijedi dakle 41. Glatke normale uz to mogu sakriti da je ploha sastavljena od ravnih trokuta, pa se nepravilnost vidi uglavnom na obrisu.

Normale i sjenčanje bridova

Uz položaje vrhova izvoznik zapisuje i normale — vektore koji određuju kako se ploha sjenča. Prednost izvoza iz CAD sustava je što se normale računaju iz egzaktne plohe, pa su na zakrivljenim površinama točne i bez teselacijskih artefakata. Na oštrom bridu, primjerice između gornje i bočne plohe šasije, normala se mijenja naglo. Zato se vrh na takvom bridu u mreži zapisuje dvaput, jednom sa svakom normalom. To je razlog zašto broj vrhova u gotovom modelu redovito premašuje teorijski minimum.

U virtualnoj stvarnosti greške sjenčanja vidljivije su nego na monitoru. Glava se stalno pomiče, pa se odsjaji na metalnim i lakiranim plohama pomiču s njom, a svako oko vidi odsjaj na malo drugom mjestu. Ploha s pogrešno okrenutim ili neujednačenim normalama tada „treperi“ i djeluje nemirno. Ovo je procjena iz iskustva s prikazom, a ne pravilo: rješenje je dosljedno postaviti granični kut izglađivanja (npr. 30–40°) i pregledati model u naočalama, ne samo na zaslonu.

Formati izvoza: STEP, glTF i FBX

Za put od CAD sustava do razvojnog okruženja koriste se dvije vrste formata. Neutralni CAD formati prenose egzaktne plohe, a formati za prikaz u stvarnom vremenu prenose gotove trokute s materijalima.

FormatŠto zapisujeJedinica i osiUloga u lancu VR-1
STEP (ISO 10303)egzaktne plohe (B-rep), strukturu sklopa, nazive, osnovne bojejedinica zapisanaarhiva i razmjena između CAD sustava; ulaz za teselaciju
glTF 2.0 (.gltf + .bin ili binarni .glb)trokute, hijerarhiju, PBR materijale, teksture, animacije, kostureuvijek metar, Y goreglavni format predaje modela u razvojno okruženje
FBXtrokute ili poligone, hijerarhiju, materijale, animacije, kosturezapisani u datoteci, razlikuju se po izvoznikualternativa, česta kod animiranih objekata
STL, OBJsamo trokute (STL); trokute i jednostavne materijale (OBJ)jedinica se ne zapisujeza brzu provjeru oblika, ne za predaju

U primjeru VR-1 izvorni model u formatu STEP ima 38 MB, a gotov model u formatu glTF, nakon obrade opisane u jedinici 1.3, 3,2 MB — gotovo dvanaest puta manje, iako sadrži i materijale. Razlika nije posljedica sažimanja nego sadržaja: STEP nosi točan opis svake plohe, a glTF samo ono što treba za iscrtavanje.

Neka razvojna okruženja nude izravan uvoz CAD formata putem dodatka (engl. plugin) koji teselira model pri uvozu i pamti vezu s izvornom datotekom. To ubrzava ponovni uvoz nakon izmjene konstrukcije, ali ne zamjenjuje optimizaciju: trokuti su i dalje neobrađeni, a UV mape slabe. Dostupnost i naziv takvog alata ovise o okruženju, inačici i licenci.

Format glTF postoji u dva oblika: tekstualni .gltf s odvojenom binarnom datotekom i teksturama te jedna binarna datoteka .glb u kojoj je sve zajedno. Za predaju modela u projektu praktičniji je .glb, jer se ne mogu izgubiti pripadne datoteke.

Provjera izvezenog modela

Prije daljnje obrade izvezeni model otvorite u programu za obradu mreže ili u pregledniku formata i provjerite ga prema kratkoj listi. Svaka pogreška koja prođe ovdje pojavit će se kasnije, kad ju je teže pronaći.

ProvjeraOčekivano za MR-1Tipična pogreška
Obuhvatni kvadar220 × 180 × 110 mm10 ili 1000 puta veći zbog jedinice
Os gore i prednja stranaprema dogovoru projektarobot leži na boku ili gleda unatrag
Broj objekata12 dijelova ispod jednog korijenajedna spojena mreža ili stotine vijaka
Broj trokutapoznat i zapisan (fina teselacija 312 000)nekoliko milijuna zbog pretjerano stroge tolerancije
Normalegledaju prema vanploha se iz jednog smjera ne vidi
Naziviprema dogovoru, npr. MR1_kotac_Lautomatski nazivi iz CAD sustava s brojevima

Postavke izvoza (jedinica, os, tolerancije, izostavljeni dijelovi) zapišite u izvozni zapis uz model. Kad konstruktor promijeni dio, izvoz se ponavlja s istim postavkama, a rezultat se provjerava prema istoj listi. Ako se to radi češće od nekoliko puta, provjeru obuhvatnog kvadra, broja objekata i broja trokuta isplati se prepustiti kratkoj skripti u programu za obradu mreže umjesto da se svaki put gleda ručno.

Zapamtite

Točnost koja se traži za proizvodnju (stotinke milimetra) i točnost koja se traži za prikaz nisu iste. Tolerancija teselacije bira se prema tome koliko će piksela odstupanje zauzeti u naočalama, a ne prema tolerancijama crteža.

Teselacija i vidljivost odstupanja u naočalama

Kut segmenta pri zadanoj kordnoj toleranciji h i polumjeru R iznosi θ = 2 · arccos(1 − h/R), a broj segmenata po opsegu n = ⌈2π / θ⌉. Kutna tolerancija α daje drugi uvjet, n ≥ 360° / α, i vrijedi veći od dvaju brojeva. Jednostavan valjak s n segmenata ima 2n trokuta na plaštu i po n − 2 na svakoj bazi, ukupno 4n − 4.

θ = 2 · arccos(1 − h / R)    n = max(⌈2π / θ⌉, ⌈360° / α⌉)    Tvaljak = 4n − 4

Računski prikaz uz to procjenjuje koliko piksela odstupanje h zauzima na zaslonu uređaja A (prosječno 21,1 piksela po stupnju) kad se dio gleda s udaljenosti d.

Teselacija valjka i vidljivost odstupanjaRačunski prikaz

Iz promjera, kordne i kutne tolerancije računa broj segmenata po opsegu i broj trokuta jednostavnog valjka, te koliko piksela odstupanje zauzima na uređaju A s udaljenosti gledanja.

Segmenata po opsegu—
Trokuta valjka—
Odstupanje na zaslonu—

Za kotač Ø65 mm i kordnu toleranciju 0,1 mm dobiva se 41 segment i 160 trokuta za jednostavan valjak. Na udaljenosti od 0,6 m to odstupanje zauzima samo oko 0,2 piksela, dakle nevidljivo je. S tolerancijom 0,5 mm kordni uvjet daje samo 18 segmenata, pa mjerodavna postaje kutna tolerancija od 15° s 24 segmenta (92 trokuta); stvarno odstupanje tada je oko 0,28 mm, a puno dopušteno odstupanje od 0,5 mm zauzelo bi oko 1 piksel, što je granica vidljivosti (računski prikaz pokazuje piksele za zadanu toleranciju h). Dio koji korisnik drži u ruci i gleda s 0,3 m zato zahtijeva nešto strožu toleranciju, oko 0,2 mm (29 segmenata, oko 0,8 piksela). Stvarni kotač s gumom, naplatkom i glavinom ima više ploha, pa ukupni broj trokuta raste, ali odnos ostaje isti: tolerancija 0,01 mm dala bi 127 segmenata i 504 trokuta bez ikakve vidljive razlike.

Ključni pojmovi

PojamZnačenje
parametarsko modeliranje (engl. parametric modeling)modeliranje značajkama upravljanim mjerama i ograničenjima, s poviješću izrade
pojednostavljenje modela (engl. defeaturing)uklanjanje značajki koje se u prikazu ne vide, a troše trokute
teselacija (engl. tessellation)aproksimacija egzaktnih ploha mrežom trokuta
kordna tolerancija (engl. chordal deviation)najveće dopušteno odstupanje tetive od stvarne plohe
kutna tolerancija (engl. angular tolerance)najveći dopušteni kut između normala susjednih trokuta
normala (engl. normal)vektor okomit na plohu; određuje sjenčanje i s koje se strane ploha vidi
STEP (engl. Standard for the Exchange of Product model data)neutralni format za razmjenu CAD modela s egzaktnim plohama, ISO 10303
glTF (engl. GL Transmission Format)otvoreni format za prijenos trokutnih modela s PBR materijalima za prikaz u stvarnom vremenu

Provjeri se

Kratka provjera prije prelaska na sljedeću jedinicu. Odgovor se potvrđuje klikom, a obrazloženje se prikazuje odmah.

Pitanje 1 od 4

Što od navedenoga iz parametarskog modela robota MR-1 treba prenijeti u VR scenu?

Struktura sklopa postaje hijerarhija objekata, a dijelovi moraju biti zasebni da bi se mogli hvatati. Parametri ostaju u CAD sustavu, a nevidljivi detalji se uklanjaju.

Pitanje 2 od 4

Kordna tolerancija pri teselaciji je:

Kordna tolerancija h ograničava koliko se tetiva smije udaljiti od luka; manja tolerancija daje više segmenata.

Pitanje 3 od 4

Zašto je glTF 2.0 dobar format za predaju modela razvojnom okruženju?

glTF je format za prikaz u stvarnom vremenu s jasno zadanim jedinicama i osima; egzaktne plohe i povijest izrade nisu mu namjena.

Pitanje 4 od 4

Kotač Ø65 mm teseliran je s kordnom tolerancijom 0,1 mm i gleda se s 0,6 m. Što vrijedi?

Odstupanje 0,1 mm na 0,6 m zauzima oko 0,2 piksela na uređaju A. Valjak s 41 segmentom ima 4 · 41 − 4 = 160 trokuta.

Odgovoreno 0 od 4.

Vježbe uz jedinicu

Gradivo ove jedinice priprema za sljedeće vježbe: