Changes between Version 9 and Version 10 of OpenCascade


Ignore:
Timestamp:
Oct 11, 2011, 11:14:25 AM (9 years ago)
Author:
skulovec
Comment:

Spreminjanje referiranja na slike

Legend:

Unmodified
Added
Removed
Modified
  • OpenCascade

    v9 v10  
    3030Open, Components, Services: Odprti dostop, komponente – osnovne, vzdrževanje
    3131
    32 Na sliki 15.1 je prikazana struktura in modularna zgradba OC. Predstavljena je sestava in pozicija posameznega modula v OC. V nadaljevanju bomo predstavili značilnosti vseh pomembnih vsebin posameznih modulov.
     32Na sliki 1 je prikazana struktura in modularna zgradba OC. Predstavljena je sestava in pozicija posameznega modula v OC. V nadaljevanju bomo predstavili značilnosti vseh pomembnih vsebin posameznih modulov.
    3333
    3434=== Osnovne transformacije (ang. Fundation Classes) ===
     
    102102
    103103WOK (Workshop Organization Kit) je podprogramski sklop, ki omogoča odpošiljanje enega ali več nizov strukturnih elementov programske kode velikih razvojnih projektov. Tak projekt je lahko sklop razvojnih podprojektov, ki jih nato razvijalci uporabijo za nadaljnji razvoj s standardnimi orodji in v sistemu organizacije različnih razvojnih timov v distribuiranih delovnih področjih. WOK omogoča prost dostop do standardnih nalog razvojnega procesa z raznimi orodji, kot so: urejevalniki (editorji), prevajalniki, povezovalniki (linkerji), iskalniki napak (debugerji) itd.
    104 Na sliki 15.2 je prikazan kompleksni 3D-model. Model je narejen s CAD-jedrom OC. Poleg izdelave omenjenih geometrij je v prikazovalniku predstavljena možnost zaslonskega izbiranja posameznih komponent.
     104Na sliki 2 je prikazan kompleksni 3D-model. Model je narejen s CAD-jedrom OC. Poleg izdelave omenjenih geometrij je v prikazovalniku predstavljena možnost zaslonskega izbiranja posameznih komponent.
    105105[[BR]]
    106106[[Image(slika15-3.png, width=480px,align=center)]]
    107107[[BR]]
    108108
    109 Slika 15.3 prikazuje pomreženi 3D-model v OC. Po izdelavi mreže lahko naredimo analizo z MKE (metoda končnih elementov). Rezultate analize MKE nato v nadaljevanju prikažemo na istem modelu. Predstavitve so mogoče za različne parametre: napetosti, pomiki, temperatura z različnimi atributi.
     109Slika 3 prikazuje pomreženi 3D-model v OC. Po izdelavi mreže lahko naredimo analizo z MKE (metoda končnih elementov). Rezultate analize MKE nato v nadaljevanju prikažemo na istem modelu. Predstavitve so mogoče za različne parametre: napetosti, pomiki, temperatura z različnimi atributi.
    110110
    111111= Predstavitev CAD-jedra Open CASCADE na primerih =
     
    114114
    115115Na enostavnem primeru je prikazan postopek izdelave 3D-modela. Izdelava 3D-modela se začne na nivoju točk, nato pa se preko definiranja robov in uporabe funkcije za zrcaljene izvleče nastalo ravninsko površino v 3D-model. V nadaljevanju so prikazani ukazi za 3D-modeliranje z uporabo knjižnic Open CASCADE. Vsi zapisi bodo uporabljali programski jezik C++.
    116 Na sliki 15.4 je prikazan 3D-model, ki ga želimo izdelati. Model je orientiran glede na globalni kartezični koordinatni sistem XYZ, prikazan na sliki 15.4. Model je parametrično popisan z dimenzijami višine, dolžine in širine.
     116Na sliki 4 je prikazan 3D-model, ki ga želimo izdelati. Model je orientiran glede na globalni kartezični koordinatni sistem XYZ, prikazan na sliki 4. Model je parametrično popisan z dimenzijami višine, dolžine in širine.
    117117Velikost parametrov modela:
    118118višina: myHeight = 70 mm,
     
    138138        gp_Pnt je določen z izbrano vrednostjo in ima enako kot podobni objekti omejeno življenjsko dobo.
    139139Geom_CartesianPoint je opredeljen glede na pozicijo handla, lahko je večkrat naslovljen in ima daljšo življenjsko dobo kot gp_Pnt. Vse točke so uporabljene le za pomoč pri tvorjenju krivulj za objekt omejene življenjske dobe.
    140 V našem primeru izberemo za kreiranje točk gp_Pnt objekt. Po izbiri gp_Pnt moramo definirati koordinate X, Y in Z v globalnem kartezičnem koordinatnem sistemu (slika 15.6).
     140V našem primeru izberemo za kreiranje točk gp_Pnt objekt. Po izbiri gp_Pnt moramo definirati koordinate X, Y in Z v globalnem kartezičnem koordinatnem sistemu (slika 6).
    141141[[BR]]
    142142[[Image(slika15-6.png, width=480px,align=center)]]
     
    144144
    145145Če se odločimo uporabiti za kreiranje objekta Geom_CartesianPoint, pa je sintaksa izdelave posamezne točke drugačna. Vsi objekti, zgrajeni s kazalcem handle, morajo uporabljati standarden C++ operator new. Podatki se zbirajo po principu, ki je prikazan na
    146 sliki 15.7. Grajenje objektov različnih velikosti je izvedeno na enak način.
     146sliki 7. Grajenje objektov različnih velikosti je izvedeno na enak način.
    147147[[BR]]
    148148[[Image(slika15-7.png, width=480px,align=center)]]
    149149[[BR]]
    150150
    151 Če želimo v nadaljevanju programa prebrati podatke (npr. koordinate) o katerikoli izbrani točki v kartezičnem koordinatnem sistemu, lahko to opravimo na način, prikazan na sliki 15.8.
     151Če želimo v nadaljevanju programa prebrati podatke (npr. koordinate) o katerikoli izbrani točki v kartezičnem koordinatnem sistemu, lahko to opravimo na način, prikazan na sliki 8.
    152152[[BR]]
    153153[[Image(slika15-8.png, width=480px,align=center)]]
     
    161161[[BR]]
    162162
    163 Za risanje krivulj, prikazanih na sliki 15.9 moramo v programsko kodo vključiti trodimenzionalne geometrijske objekte, ki se nahajajo v paketu OC Geom. Za vse vrste krivulj (npr. daljica je krivulja) uporabimo specifičen ukaz. V našem primeru za izdelavo segmenta (ravna linija – daljica) uporabimo objekt GC_MakeSegment. Segment se izdela tako, da določimo dve robni točki P1 in P2 in za povezavo med njima določimo ravno linijo. Za objekt po sliki 15.9 moramo povezati oba konca segmentov s krivuljo, ki je določena s tremi točkami. Izbor zaporednih ukazov za posamezne geometrijske elemente, to je dveh segmentov in loka, je prikazan na sliki 15.10. Obe funkciji za izdelavo krivulj uporabljata ukaz handle Geom_TrimmedCurve.
     163Za risanje krivulj, prikazanih na sliki 9 moramo v programsko kodo vključiti trodimenzionalne geometrijske objekte, ki se nahajajo v paketu OC Geom. Za vse vrste krivulj (npr. daljica je krivulja) uporabimo specifičen ukaz. V našem primeru za izdelavo segmenta (ravna linija – daljica) uporabimo objekt GC_MakeSegment. Segment se izdela tako, da določimo dve robni točki P1 in P2 in za povezavo med njima določimo ravno linijo. Za objekt po sliki 9 moramo povezati oba konca segmentov s krivuljo, ki je določena s tremi točkami. Izbor zaporednih ukazov za posamezne geometrijske elemente, to je dveh segmentov in loka, je prikazan na sliki 10. Obe funkciji za izdelavo krivulj uporabljata ukaz handle Geom_TrimmedCurve.
    164164[[BR]]
    165165[[Image(slika15-10.png, width=480px,align=center)]]
     
    170170[[BR]]
    171171
    172 V primeru, da se pred risanjem izbrane krivulje želimo prepričati o možnosti izdelave krivulje, uporabimo ukaza isDone in Value. Uporaba obeh ukazov je predstavljena na primeru kreiranja segmenta po sliki 15.11.
     172V primeru, da se pred risanjem izbrane krivulje želimo prepričati o možnosti izdelave krivulje, uporabimo ukaza isDone in Value. Uporaba obeh ukazov je predstavljena na primeru kreiranja segmenta po sliki 11.
    173173
    174174=== Definiranje podatkovne topološke strukture ===
     
    190190[[BR]]
    191191
    192 Posamezne izrisane krivulje združimo glede na ukazje po tabeli 15.1 tako, da dobimo tri robove, ki so med seboj povezani (slika 15.12), zato jih omenjeni ukazi tudi označijo ter atribute zapišejo v bazo podatkov.
     192Posamezne izrisane krivulje združimo glede na ukazje po tabeli 1 tako, da dobimo tri robove, ki so med seboj povezani (slika 12), zato jih omenjeni ukazi tudi označijo ter atribute zapišejo v bazo podatkov.
    193193Ukazni sklop TopoDS določa le podatkovno topološko strukturo elementov. Algoritmi za izračun standardnih topoloških elementov se nahajajo v paketu BrepBuilder API. Za izdelavo roba se uporabi objekt BRepBuilderAPI_MakeEdge z že določenimi krivuljami.
    194194[[BR]]
     
    220220[[BR]]
    221221
    222 Pred procesom zrcaljenja pa moramo opredeliti širši prostor, v katerem bomo nato uporabili 3D-transformacije. V ta namen vključimo modul za trodimenzionalno geometrijsko transformacijo (gp_Trsf). Omenjeni modul vsebuje značilne funkcije transformacij, kot so translacija, rotacija, skaliranje, zrcaljene itd., in omogoča različne kombinacije med njimi. V našem primeru se osredotočimo na zrcaljene okrog osi X globalnega koordinatnega sistema XYZ (glej sliko 15.4).
     222Pred procesom zrcaljenja pa moramo opredeliti širši prostor, v katerem bomo nato uporabili 3D-transformacije. V ta namen vključimo modul za trodimenzionalno geometrijsko transformacijo (gp_Trsf). Omenjeni modul vsebuje značilne funkcije transformacij, kot so translacija, rotacija, skaliranje, zrcaljene itd., in omogoča različne kombinacije med njimi. V našem primeru se osredotočimo na zrcaljene okrog osi X globalnega koordinatnega sistema XYZ (glej sliko 4).
    223223        Os X, okoli katere bomo izvajali rotacijo, lahko določimo na dva načina: 1) točka P1 in smer vektorja, ki poteka skozi točko P1, 2) s posebnim ukazom za določitev osi X.
    2242241)      točka P1 in smer vektorja, ki poteka skozi točko P1
     
    294294=== Zaokroževanje robov ===
    295295
    296 Ker so robovi nastale prizme ostri, jih želimo zaokrožiti. Za zaokroževanje robov se uporabi v OC ukaz Fillet (zaokroževanje). V našem primeru zapleteno zaokroževanje robov poenostavimo na način, da so vsi robovi enako zaokroženi s polmerom myThickness/12 (glej sliko 15.28).
     296Ker so robovi nastale prizme ostri, jih želimo zaokrožiti. Za zaokroževanje robov se uporabi v OC ukaz Fillet (zaokroževanje). V našem primeru zapleteno zaokroževanje robov poenostavimo na način, da so vsi robovi enako zaokroženi s polmerom myThickness/12 (glej sliko 28).
    297297[[BR]]
    298298[[Image(slika15-28.png, width=300px,align=center)]]
     
    338338= Izdelava 3D-modela vozlišča jeklene konstrukcije =
    339339
    340 Izdelava CAD-modela vozlišča jeklene konstrukcije je prikazana na primeru izdelave nosilnega vozliščnega elementa v poljubni mrežni strukturi, prikazani na sliki 15.35. Pri predstavitvi bomo uporabljali programski jezik C++ in odprtokodno CAD-jedro Open CASCADE (OC). Odločitev za uporabo OC je bila v tem primeru osnovana na zahtevi popolnega prosto površinskega modela, ki bi bil generiran v posebnem generatorju oblik, nato prenesen v inženirski model za analizo napetostnih stanj, zatem pa preverjan glede na detajlno obliko v vozliščih, ki bi se v končni uporabi prenesli v mikrookolje za končno varjenje vozliščnega sklopa v robotiziranih sistemih. Omenjeni model CAD je potrebno izdelati za poljubne mrežne točke, ki se nahajajo v prostoru in imajo različno orientacijo. Vsaka točka mrežne strukture je povezana z najmanj tremi točkami. Poudarjamo, da je bilo prav zaradi kompleksnosti problema uporabljeno CAD-jedro OC, ki omogoča izdelavo splošnega modela in ga bo mogoče izdelati za poljubno mrežno strukturo.
     340Izdelava CAD-modela vozlišča jeklene konstrukcije je prikazana na primeru izdelave nosilnega vozliščnega elementa v poljubni mrežni strukturi, prikazani na sliki 35. Pri predstavitvi bomo uporabljali programski jezik C++ in odprtokodno CAD-jedro Open CASCADE (OC). Odločitev za uporabo OC je bila v tem primeru osnovana na zahtevi popolnega prosto površinskega modela, ki bi bil generiran v posebnem generatorju oblik, nato prenesen v inženirski model za analizo napetostnih stanj, zatem pa preverjan glede na detajlno obliko v vozliščih, ki bi se v končni uporabi prenesli v mikrookolje za končno varjenje vozliščnega sklopa v robotiziranih sistemih. Omenjeni model CAD je potrebno izdelati za poljubne mrežne točke, ki se nahajajo v prostoru in imajo različno orientacijo. Vsaka točka mrežne strukture je povezana z najmanj tremi točkami. Poudarjamo, da je bilo prav zaradi kompleksnosti problema uporabljeno CAD-jedro OC, ki omogoča izdelavo splošnega modela in ga bo mogoče izdelati za poljubno mrežno strukturo.
    341341[[BR]]
    342342[[Image(slika15-35.png, width=480px,align=center)]]
     
    344344
    345345Primer, ki ga obravnavamo, je predstavljen zato, da lahko potrdimo možnost celotnega procesa razvoja, inženirske analize, konstrukcije, izdelave, transporta, montaže in finalne uporabe. Pri tem je bil razvit poseben program, ki omogoča spremljanje vseh faz procesa zato, ker je v celoti določena geometrija in so sprotno obvladljivi vsi podatki, potrebni za kakršnekoli analize in določanja oblike. Zaradi povečane hitrosti procesiranja je bila prednost takega pristopa izkazana že v treh ponovljenih izvedbah.
    346 Na sliki 15.35 je prikazan mrežni model CAD, izdelan s programskim jezikom C++ in CAD-jedrom OC. Mrežni model je izdelan iz poljubne vhodne mrežne strukture, ki je sestavljena iz petnajstih vozlišč. Za vsako vozlišče bomo glede na orientacijo posameznega vozlišča izdelali cilindrični vozliščni element, na katerega se varijo oziroma po potrebi vijačijo I-profili, ki jih modeliramo v poenostavljeni obliki.
     346Na sliki 35 je prikazan mrežni model CAD, izdelan s programskim jezikom C++ in CAD-jedrom OC. Mrežni model je izdelan iz poljubne vhodne mrežne strukture, ki je sestavljena iz petnajstih vozlišč. Za vsako vozlišče bomo glede na orientacijo posameznega vozlišča izdelali cilindrični vozliščni element, na katerega se varijo oziroma po potrebi vijačijo I-profili, ki jih modeliramo v poenostavljeni obliki.
    347347[[BR]]
    348348[[Image(slika15-36.png, width=300px,align=center)]]
     
    377377
    378378Predstavljene točke moramo združiti v linijske robne elemente, ki jih v nadaljevanju uporabimo za tvorjenje mreže robov, nato v zaprte mreže robov oz. zanke, površine in na koncu po izvajanju izvleka opredelimo še pravi 3D-model.
    379 Iz robov myEdge1 … myEdge12 v nadaljevanju tvorimo mrežo myWire1 … myWire3. Ker lahko v eno mrežo vključimo največ štiri robove, je potrebno izdelati tri mreže, ki jih združimo (Add) in ustvarimo eno mrežo z imenom myWire, kakor je prikazano na sliki 15.40.
     379Iz robov myEdge1 … myEdge12 v nadaljevanju tvorimo mrežo myWire1 … myWire3. Ker lahko v eno mrežo vključimo največ štiri robove, je potrebno izdelati tri mreže, ki jih združimo (Add) in ustvarimo eno mrežo z imenom myWire, kakor je prikazano na sliki 40.
    380380[[BR]]
    381381[[Image(slika15-40.png, width=480px,align=center)]]
     
    389389=== Rezanje profilnih elementov ===
    390390
    391 Vozliščni element v realnem svetu predstavlja določen premer valja, ki ima središčno os enako, kot je središčni vektor vozlišča. Da lahko opredelimo ravnino, kjer se I-profil v dotiku z valjem vozliščnega elementa konča, moramo najprej opredeliti ravnino, ki je tangencialna na valj vozliščnega elementa. Ne pozabite, da ves čas razumemo, da je vozliščni element postavljen v 3D-prostoru. Zaradi postopka moramo najprej določiti valj vozliščnega elementa (slika 15.42).
     391Vozliščni element v realnem svetu predstavlja določen premer valja, ki ima središčno os enako, kot je središčni vektor vozlišča. Da lahko opredelimo ravnino, kjer se I-profil v dotiku z valjem vozliščnega elementa konča, moramo najprej opredeliti ravnino, ki je tangencialna na valj vozliščnega elementa. Ne pozabite, da ves čas razumemo, da je vozliščni element postavljen v 3D-prostoru. Zaradi postopka moramo najprej določiti valj vozliščnega elementa (slika 42).
    392392[[BR]]
    393393[[Image(slika15-42.png, width=480px,align=center)]]
     
    399399
    400400
    401 V prvem delu (slika 15.43) kode določimo pozicijo, smer in premer valja, ki ga generiramo kot del vozliščnega elementa. Nato pa v nadaljevanju odrežemo že generirane I-profile od po sliki 15.43 generiranega valja vozliščnega elementa. Ukaz za Booleanovo operacijo je predstavljen na sliki 15.44.
     401V prvem delu (slika 43) kode določimo pozicijo, smer in premer valja, ki ga generiramo kot del vozliščnega elementa. Nato pa v nadaljevanju odrežemo že generirane I-profile od po sliki 43 generiranega valja vozliščnega elementa. Ukaz za Booleanovo operacijo je predstavljen na sliki 44.
    402402[[BR]]
    403403[[Image(slika15-44.png, width=480px,align=center)]]
     
    416416
    417417Valj vozliščnega elementa ima določene dimenzije, ki jih moramo določiti vnaprej. Vnos podatkov je postopen in v bistvu parametričen. Če so določene dimenzije znane, pa jih vnašamo kar z dejanskimi vrednostmi.
    418 Parameter oz. spremenljivka radius (slika 15.45) določa polmer cilindra, ki je 75 mm. S spremenljivko radius_axis se popiše polmer srednje izvrtine v valju, višino valja določa spremenljivka height z 31 mm. Izvrtino v večji valj se naredi z uporabo Booleanove operacije razlike BrepAlgo_Cut.
    419 Po opredelitvi valja, ki še nima določene lokacije v prostoru, pristopimo k opredelitvi izhodiščne točke oziroma njene umestitve v lokalnem koordinatnem sistemu, z definiranjem spremenljivke circleLocation (glej sliko 15.45).
     418Parameter oz. spremenljivka radius (slika 45) določa polmer cilindra, ki je 75 mm. S spremenljivko radius_axis se popiše polmer srednje izvrtine v valju, višino valja določa spremenljivka height z 31 mm. Izvrtino v večji valj se naredi z uporabo Booleanove operacije razlike BrepAlgo_Cut.
     419Po opredelitvi valja, ki še nima določene lokacije v prostoru, pristopimo k opredelitvi izhodiščne točke oziroma njene umestitve v lokalnem koordinatnem sistemu, z definiranjem spremenljivke circleLocation (glej sliko 45).
    420420[[BR]]
    421421[[Image(slika15-46.png, width=480px,align=center)]]
     
    435435[[BR]]
    436436
    437 Na sliki 15.49 imamo predstavljen model CAD našega vozliščnega elementa z vsemi priključenimi I-profili, ki je uvožen v formatu STEP/IGES v ProE Wildfire 3.0. Na ta način dokazujemo splošno uporabnost takega nevtralnega formata.
    438 
    439 15.4.2 Izdelava modela CAD I-profila
     437Na sliki 49 imamo predstavljen model CAD našega vozliščnega elementa z vsemi priključenimi I-profili, ki je uvožen v formatu STEP/IGES v ProE Wildfire 3.0. Na ta način dokazujemo splošno uporabnost takega nevtralnega formata.
     438
     439Izdelava modela CAD I-profila
    440440
    441441Z namenom, da predstavimo pomembne prednosti modeliranja v programskem okolju OC, bomo v nadaljevanju predstavili model CAD poenostavljenega I-profila, ki je bil izdelan s programskim jezikom C++.
     
    444444[[BR]]
    445445
    446 Slika 15.50 prikazuje model CAD poenostavljenega I-profila. Predstavljeni elementi I-profilov so odrezani glede na zunanjo površino cilindričnega vozlišča. V nadaljevanju je predstavljen algoritem poteka izdelave modela CAD poenostavljenega I-profila.
     446Slika 50 prikazuje model CAD poenostavljenega I-profila. Predstavljeni elementi I-profilov so odrezani glede na zunanjo površino cilindričnega vozlišča. V nadaljevanju je predstavljen algoritem poteka izdelave modela CAD poenostavljenega I-profila.
    447447
    448448=== Izbira poljubnega roba ali celotne mrežne strukture ===
     
    472472[[BR]]
    473473
    474 === Tvorjenje robnih točk poenostavljenega I-profila (glej sliko 15.48) ===
    475 
    476 Prerez v splošnem popišemo najmanj s tremi točkami. Število točk za popis posameznega prereza določa njegova zahtevnost oziroma naša zahteva po natančnosti popisa. I-profil v našem primeru poenostavimo in ga popišemo z dvanajstimi točkami (glej sliko 15.48). Točka a.XYZ() določa tudi začetek I-profila. Začetna točka a nam omogoča opredelitev celotnega prereza ter njegovo lokacijo v prostoru, saj je točka a izhodiščna točka. Razdalja startI predstavlja odmik profila od začetne vozliščne točke mreže vozlišč jeklene konstrukcije v smeri robne normale normal.XYZ(). Glavne dimenzije prereza določamo s širino I- profila in jo določa parameter widthI1. Parameter widthI1 je usmerjen v smeri pravokotno na normalo roba normal2.XYZ(). Širino pasnice istega poenostavljenega I-profila popisuje parameter lengthI1.
     474=== Tvorjenje robnih točk poenostavljenega I-profila (glej sliko 48) ===
     475
     476Prerez v splošnem popišemo najmanj s tremi točkami. Število točk za popis posameznega prereza določa njegova zahtevnost oziroma naša zahteva po natančnosti popisa. I-profil v našem primeru poenostavimo in ga popišemo z dvanajstimi točkami (glej sliko 48). Točka a.XYZ() določa tudi začetek I-profila. Začetna točka a nam omogoča opredelitev celotnega prereza ter njegovo lokacijo v prostoru, saj je točka a izhodiščna točka. Razdalja startI predstavlja odmik profila od začetne vozliščne točke mreže vozlišč jeklene konstrukcije v smeri robne normale normal.XYZ(). Glavne dimenzije prereza določamo s širino I- profila in jo določa parameter widthI1. Parameter widthI1 je usmerjen v smeri pravokotno na normalo roba normal2.XYZ(). Širino pasnice istega poenostavljenega I-profila popisuje parameter lengthI1.
    477477[[BR]]
    478478[[Image(slika15-54.png, width=480px,align=center)]]
     
    488488=== Tvorjenje mreže robov (zanke) iz robov prereza ===
    489489
    490 Če želimo opredeliti zaprto mrežo robov (zanke) iz robov prereza, moramo robove myEdge1…myEdge12 združiti. Omenjene robove smo opredelili z ukazi po sliki 15.53. Najprej izvedemo združevanje v mreže myWire1…myWire3, ki jih v naslednjem koraku združimo z ukazom Add v skupno mrežo myWire.
     490Če želimo opredeliti zaprto mrežo robov (zanke) iz robov prereza, moramo robove myEdge1…myEdge12 združiti. Omenjene robove smo opredelili z ukazi po sliki 53. Najprej izvedemo združevanje v mreže myWire1…myWire3, ki jih v naslednjem koraku združimo z ukazom Add v skupno mrežo myWire.
    491491[[BR]]
    492492[[Image(slika15-56.png, width=480px,align=center)]]
     
    517517= Literatura =
    518518
    519 1 OpenCascadeTM 3D modelling kernel. OpenCascade inc. 2009, www. opencascade.org/.[[BR]]
     5191 OpenCascadeTM 3D modelling kernel. OpenCascade inc. 2009, http://www. opencascade.org/.[[BR]]
    5205202 Copyright© 2003 by Open CASCADE – A. Immeuble, Domaine Technologique de Saclay 4, rue Rene Razel, 91400 SACLAY – France.[[BR]]
    5215213 L. Kos, S. Kulovec, V. Zaletelj, J. Duhovnik, Support Structure for Freeform Arhitectural Desing (TMCE 2010).[[BR]]