Changes between Version 6 and Version 7 of OpenCascade


Ignore:
Timestamp:
Oct 10, 2011, 6:05:42 PM (12 years ago)
Author:
Leon Kos
Comment:

width, center

Legend:

Unmodified
Added
Removed
Modified
  • OpenCascade

    v6 v7  
    1515== Modularna struktura CAD-jedra Open CASCADE ==
    1616[[BR]]
    17 [[Image(slika15-1.png)]]
     17[[Image(slika15-1.png, width=480px,align=center)]]
    1818[[BR]]
    1919Other CAD systems: Ostali modelirniki CAD
    20 Input   : Vstop v OC
     20Input   : Vstop v OC
    2121GUI Framework (JAD,QAD,MFC): Programski okvir GUI (JAD, QAD,MFC)
    2222Developmnet Tools (WOK, Wizards, Draw): Razvojna orodja (WOK, Wizards, Draw)
     
    9898Open CASCADE vsebuje celoten sklop razvijalnih orodij, ki so primerni tako za posamezne razvijalce kode CAD kot tudi za uporabo pri večjih industrijskih projektih CAD. OC Test Harness ali Draw sta orodji, napisani v programskem jeziku C++ in namenjeni testiranju geometrijsko modelirnih knjižnic. Tako orodje omogoča testiranje in demonstracijo modeliranih komponent pred izdelavo celotne aplikacije. Sestavljeno je iz programskih podsklopov, in sicer: ukaznega interpreterja v jeziku TCL, 2D- in 3D-pregledovalnika, osnovanega na X v sistemih Unix in Win32 API v sistemih Windows, in sklopa preddefiniranih ukazov.
    9999[[BR]]
    100 [[Image(slika15-2.png)]]
     100[[Image(slika15-2.png, width=480px,align=center)]]
    101101[[BR]]
    102102
     
    104104Na 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.
    105105[[BR]]
    106 [[Image(slika15-3.png)]]
     106[[Image(slika15-3.png, width=480px,align=center)]]
    107107[[BR]]
    108108
     
    119119dolžina: myWidth = 50 mm,
    120120[[BR]]
    121 [[Image(slika15-4.png)]]
     121[[Image(slika15-4.png, width=480px,align=center)]]
    122122[[BR]]
    123123
     
    128128Če želimo izdelati želeni 3D-profil, je potrebno v prvem koraku kreirati točke v ravnini XY0, ki ležijo na isti ravnini.
    129129[[BR]]
    130 [[Image(slika15-5.png)]]
     130[[Image(slika15-5.png, width=480px,align=center)]]
    131131[[BR]]
    132132
     
    134134tvorjenje točke s primitivom gp_Pnt
    135135dinamična točka Geom_CartesiaPoint, ki je vodena s kazalcem handle
    136        
     136
    137137handle je kazalec, ki ima avtomatsko povezavo s spominom, v katerega se skladno z našo zahtevo zapisujejo podatki o trenutni lokaciji točke.
    138         gp_Pnt je določen z izbrano vrednostjo in ima enako kot podobni objekti omejeno življenjsko dobo.
     138        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.
    140140V 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).
    141141[[BR]]
    142 [[Image(slika15-6.png)]]
     142[[Image(slika15-6.png, width=480px,align=center)]]
    143143[[BR]]
    144144
     
    146146sliki 15.7. Grajenje objektov različnih velikosti je izvedeno na enak način.
    147147[[BR]]
    148 [[Image(slika15-7.png)]]
     148[[Image(slika15-7.png, width=480px,align=center)]]
    149149[[BR]]
    150150
    151151Č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.
    152152[[BR]]
    153 [[Image(slika15-8.png)]]
     153[[Image(slika15-8.png, width=480px,align=center)]]
    154154[[BR]]
    155155
     
    158158Predhodno določene točke med sabo povežemo tako, da tvorijo geometrijo, sestavljeno iz dveh segmentov in enega loka, ki je napet med tremi točkami.
    159159[[BR]]
    160 [[Image(slika15-9.png)]]
     160[[Image(slika15-9.png, width=480px,align=center)]]
    161161[[BR]]
    162162
    163163Za 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.
    164164[[BR]]
    165 [[Image(slika15-10.png)]]
    166 [[BR]]
    167 
    168 [[BR]]
    169 [[Image(slika15-11.png)]]
     165[[Image(slika15-10.png, width=480px,align=center)]]
     166[[BR]]
     167
     168[[BR]]
     169[[Image(slika15-11.png, width=480px,align=center)]]
    170170[[BR]]
    171171
     
    205205Sklop katerihkoli oblik
    206206[[BR]]
    207 [[Image(slika15-12.png)]]
     207[[Image(slika15-12.png, width=480px,align=center)]]
    208208[[BR]]
    209209
     
    211211Ukazni 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.
    212212[[BR]]
    213 [[Image(slika15-13.png)]]
     213[[Image(slika15-13.png, width=480px,align=center)]]
    214214[[BR]]
    215215
    216216V OC je poleg izdelave robov s preddoločenimi krivuljami mogoča tudi izdelava robov neposredno s pomočjo določitve posameznih točk. Omenjeni način pa velja samo za izdelavo ravnih krivulj med dvema poljubnima točkama.
    217217[[BR]]
    218 [[Image(slika15-14.png)]]
     218[[Image(slika15-14.png, width=480px,align=center)]]
    219219[[BR]]
    220220
    221221=== Mreženje skupine robov ===
    222 1)      Mreženje skupine robov, ki je odprto
     2221)      Mreženje skupine robov, ki je odprto
    223223
    224224V skupini robov, ki so topološko med seboj določeni, lahko njihove povezave strnemo v mrežo. Mreža robov je lahko odprta ali zaprta. Izdelamo jo na dva načina, in sicer:
     
    228228Za izdelavo mreže se v primeru treh robov uporabi neposredno metodo izdelovanja mreže, ki je prikazana v naslednji formi C++:
    229229[[BR]]
    230 [[Image(slika15-15.png)]]
    231 [[BR]]
    232 
    233 2)      Mreženje skupine robov, ki je zaprto
     230[[Image(slika15-15.png, width=480px,align=center)]]
     231[[BR]]
     232
     2332)      Mreženje skupine robov, ki je zaprto
    234234
    235235Robove, ki so povezani med seboj tako, da so v zaprti zanki, lahko uporabimo za različne namene. Najpogostejša uporaba je izvlek, ki fizično lahko opredeljuje različne profile (npr. U, I ipd.). Tako dobimo zelo hitro različne 3D-modele profilov, ki jih v vsakdanjem življenju najpogosteje uporabljamo. Najlažji način za izdelavo zaprtega profila je, da določen rob ali skupino robov prezrcalimo in nato prezrcaljeni rob ali skupino robov pridružimo prvotni mreži profila.
    236236[[BR]]
    237 [[Image(slika15-16.png)]]
     237[[Image(slika15-16.png, width=480px,align=center)]]
    238238[[BR]]
    239239
    240240Pred 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).
    241         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.
    242 1)      točka P1 in smer vektorja, ki poteka skozi točko P1
     241        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.
     2421)      točka P1 in smer vektorja, ki poteka skozi točko P1
    243243os X poteka skozi točko P1(0, 0, 0) – uporabimo ukaz gp_Pnt
    244244smer osi X določa enotski vektor (1, 0, 0) – uporabimo ukaz gp_Dir
    245245[[BR]]
    246 [[Image(slika15-17.png)]]
    247 [[BR]]
    248 
    249 2)      opredelitev osi X v prostoru z neposrednim ukazom
    250 [[BR]]
    251 [[Image(slika15-18.png)]]
     246[[Image(slika15-17.png, width=480px,align=center)]]
     247[[BR]]
     248
     2492)      opredelitev osi X v prostoru z neposrednim ukazom
     250[[BR]]
     251[[Image(slika15-18.png, width=480px,align=center)]]
    252252[[BR]]
    253253
    254254Če želimo izvajati zrcaljenje okoli prej opredeljene osi X, v nadaljevanju uporabimo zrcalno metodo SetMirror.
    255255[[BR]]
    256 [[Image(slika15-19.png)]]
     256[[Image(slika15-19.png, width=480px,align=center)]]
    257257[[BR]]
    258258
    259259Sedaj imamo vse parametre, ki jih potrebujemo za izvedbo zrcaljenja mreže robov okrog osi X. Za samo zrcaljenje pa uporabimo ukaz, ki vsebuje argument zrcaljene geometrije in podatke o osi, okrog katere izvedemo zrcaljenje.
    260260[[BR]]
    261 [[Imag(slika15-20.png)]]
     261[[Imag(slika15-20.png, width=480px,align=center)]]
    262262[[BR]]
    263263
    264264Funkcija BrepBuilderAPI_Transform ne spreminja narave zrcaljene oblike, zato smo dobili poleg zrcalne slike mreže tudi samo mrežo robov. Da vrnemo mrežo robov nazaj, moramo uporabiti reverzno funkcijo oziroma ukaz BrepBuilderAPI_Transform::Shape, ki vrne objekt TopoDS_Shape v prvotno lego.
    265265[[BR]]
    266 [[Image(slika15-21.png)]]
     266[[Image(slika15-21.png, width=480px,align=center)]]
    267267[[BR]]
    268268
    269269Sedaj imamo dve mreži robov. Ena je osnovna, druga pa zrcaljena v enem delu. Da lahko začnemo sestavljati novo mrežo robov, moramo najprej stare povezave, določene s staro topologijo, prestaviti v skupino krivulj. Za tako operacijo uporabimo sklop ukazov TopoDS. Z ukazom TopoDS::Wire tako vrnemo mrežo robov v skupino krivulj.
    270270[[BR]]
    271 [[Image(slika15-22.png)]]
    272 [[BR]]
    273 
    274 [[BR]]
    275 [[Image(slika15-23.png)]]
     271[[Image(slika15-22.png, width=480px,align=center)]]
     272[[BR]]
     273
     274[[BR]]
     275[[Image(slika15-23.png, width=480px,align=center)]]
    276276[[BR]]
    277277
     
    297297
    298298[[BR]]
    299 [[Image(slika15-24.png)]]
     299[[Image(slika15-24.png, width=480px,align=center)]]
    300300[[BR]]
    301301
     
    303303Na začetku predvidene operacije imamo samo zanko robov, zato moramo najprej opredeliti površino osnovnega lika. Za opredelitev površine uporabimo poseben ukaz BrepBuilderAPI_MakeFace. Kot smo že povedali, je površina sestavljena iz zaključene mreže robov, to je zanke. Če vse točke in celotna zanka robov ležijo na isti ravnini, se lahko ukaz za izvlek uporabi neposredno.
    304304[[BR]]
    305 [[Image(slika15-25.png)]]
     305[[Image(slika15-25.png, width=480px,align=center)]]
    306306[[BR]]
    307307
    308308Podprogrami BrepBuilderAPI omogočajo izdelavo topoloških primitivov konstrukcij, kot so škatle, stožci, valji, krogle itd. V tej skupini podprogramov je tudi ukaz za izdelavo prizme BrepPrimAPI_MakePrism. Za uporabo tega ukaza potrebujemo naslednja parametra: 1) osnovni lik, ki je določen s površino in 2) smerni vektor, v smer katerega se izdela izvlek osnovne oblike. Smerni vektor za izdelavo prizme v smeri površinske normale na določeno višino prizme je določen z ukazom myHeight:
    309309[[BR]]
    310 [[Image(slika15-26.png)]]
     310[[Image(slika15-26.png, width=480px,align=center)]]
    311311[[BR]]
    312312
    313313Na osnovi obeh parametrov lahko s sklepnim ukazom izvedemo model prizme. Zato uporabimo ukaz BrepPrimAPI_MakePrism, ki določi vse topološke podatke za prizmo, ki tako postane trdno telo.
    314314[[BR]]
    315 [[Image(slika15-27.png)]]
     315[[Image(slika15-27.png, width=480px,align=center)]]
    316316[[BR]]
    317317
     
    320320Ker 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).
    321321[[BR]]
    322 [[Image(slika15-28.png)]]
     322[[Image(slika15-28.png, width=480px,align=center)]]
    323323[[BR]]
    324324
     
    328328po izvedenih ukazih stalno spremljamo, kakšne oblike telesa se pojavijo za vsak rob posebej.
    329329[[BR]]
    330 [[Image(slika15-29.png)]]
     330[[Image(slika15-29.png, width=480px,align=center)]]
    331331[[BR]]
    332332
    333333Prav pri zaokrožitvah se velikokrat pojavi zahteva po dopolnjevanju ali spreminjanju podatkov. Zato moramo uporabiti funkcijo prikazovanja podatkov na zaslonu neposredno. Z namenom, da imamo podatke predstavljene na zaslonu in jih nato po potrebi spreminjamo, uporabimo ukaz TopExp_Explorer, ki pregleda zapisane podatke o izbranem modelu in nam vrne klicane parametre:
    334334[[BR]]
    335 [[Image(slika15-30.png)]]
     335[[Image(slika15-30.png, width=480px,align=center)]]
    336336[[BR]]
    337337
     
    341341Next – premik na naslednji še neraziskani podmodel.
    342342[[BR]]
    343 [[Image(slika15-31.png)]]
     343[[Image(slika15-31.png, width=480px,align=center)]]
    344344[[BR]]
    345345
    346346S pomočjo raziskovalne zanke (explorer loop) lahko odkrijemo vse robove na izbranem modelu. Če želimo posamezni rob pridodati v nabor zaokroženih robov, to izvedemo z ukazom za dodajanje Add v ukaznem sestavu BrepFilletAPI_MakeFillet. Poleg podatka o zaokroženem robu moramo določiti še polmer zaokrožitve robov:
    347347[[BR]]
    348 [[Image(slika15-32.png)]]
    349 [[BR]]
    350 
    351 [[BR]]
    352 [[Image(slika15-33.png)]]
     348[[Image(slika15-32.png, width=480px,align=center)]]
     349[[BR]]
     350
     351[[BR]]
     352[[Image(slika15-33.png, width=480px,align=center)]]
    353353[[BR]]
    354354
    355355Po zaporednem določanju robov in polmerov zaokrožitev nato z zadnjim ukazom postavimo zahtevo za eksekutivno izvedbo oblike za vse izbrane robove. Na ta način zapišemo vse zaokrožene oziroma spremenjene površine v bazo podatkov za obravnavano trdno telo.
    356356[[BR]]
    357 [[Image(slika15-34.png)]]
     357[[Image(slika15-34.png, width=480px,align=center)]]
    358358[[BR]]
    359359
     
    364364Izdelava 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.
    365365[[BR]]
    366 [[Image(slika15-35.png)]]
     366[[Image(slika15-35.png, width=480px,align=center)]]
    367367[[BR]]
    368368
     
    370370Na 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.
    371371[[BR]]
    372 [[Image(slika15-36.png)]]
     372[[Image(slika15-36.png, width=480px,align=center)]]
    373373[[BR]]
    374374
     
    385385V spremenljivko aResVertex se shrani sestav cilindričnega vozlišča. Spremenljivka aResI je rezervirana za poenostavljene vozliščne I-profile. Profile v nadaljevanju s pomočjo Booleanove operacije razlike odrežemo s plaščem cilindra vozlišča in shranimo v novo spremenljivko aResI_cut.
    386386[[BR]]
    387 [[Image(slika15-37.png)]]
     387[[Image(slika15-37.png, width=480px,align=center)]]
    388388[[BR]]
    389389
     
    392392Na začetku določimo pozicijo točk v prostoru, ki bodo sestavljale prerez poenostavljenega vozliščnega I-profila. Za popis prereza poenostavljenega I-profila potrebujemo dvanajst točk aPnt1, …, aPnt12, ki jih razporedimo glede na vozlišče mrežne strukture in se nahajajo na isti ravnini. Poudarjamo, da je upoštevano, da je prerez v isti ravnini. Pravimo, da je prerez je planaren.
    393393[[BR]]
    394 [[Image(slika15-38.png)]]
     394[[Image(slika15-38.png, width=480px,align=center)]]
    395395[[BR]]
    396396
    397397V nadaljevanju določimo robove vozliščnega elementa, ki so odvisni od dimenzij I-profila.
    398398[[BR]]
    399 [[Image(slika15-39.png)]]
     399[[Image(slika15-39.png, width=480px,align=center)]]
    400400[[BR]]
    401401
     
    403403Iz 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.
    404404[[BR]]
    405 [[Image(slika15-40.png)]]
     405[[Image(slika15-40.png, width=480px,align=center)]]
    406406[[BR]]
    407407
    408408Zaprto mrežo robov ali zanko v nadaljevanju uporabimo za določitev površine myFace. Ko je površina osnovne ploskve (ali bolje osnovni lik) določena, lahko izvedemo njen izvlek s pomočjo smernega vektorja vector, ki ga izračunamo glede na začetno in končno točko dolžine realnega I-profila. Tako dobimo 3D-model I-profila, ki ga opredelimo z ukazom myShape.
    409409[[BR]]
    410 [[Image(slika15-41.png)]]
     410[[Image(slika15-41.png, width=480px,align=center)]]
    411411[[BR]]
    412412
     
    415415Vozlišč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).
    416416[[BR]]
    417 [[Image(slika15-42.png)]]
    418 [[BR]]
    419 
    420 [[BR]]
    421 [[Image(slika15-43.png)]]
     417[[Image(slika15-42.png, width=480px,align=center)]]
     418[[BR]]
     419
     420[[BR]]
     421[[Image(slika15-43.png, width=480px,align=center)]]
    422422[[BR]]
    423423
     
    425425V 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.
    426426[[BR]]
    427 [[Image(slika15-44.png)]]
     427[[Image(slika15-44.png, width=480px,align=center)]]
    428428[[BR]]
    429429
     
    434434Za skrbno določitev prostorske postavitve vseh delov sestava našega vozlišča, to je I-profilov in samega vozliščnega elementa, moramo določiti za vsak I-profil njegovo oddaljenost od centralne osi vozlišča mrežne strukture jeklene konstrukcije. Posebej poudarjamo, da je vsako vozlišče mrežne strukture jeklene konstrukcije postavljeno različno v globalnem koordinatnem sistemu, torej niti eno ni enako pozicionirano. Pri tem imamo pred seboj tako vse tri koordinate globalnega koordinatnega sistema kot tudi kote in značilne za usmeritev lokalnega koordinatnega sistema v primerjavi z globalnim. Zaradi tega moramo s posebnim programom določiti lokalni koordinatni sistem za vsako vozlišče mrežne strukture jeklene konstrukcije posebej.
    435435[[BR]]
    436 [[Image(slika15-45.png)]]
     436[[Image(slika15-45.png, width=480px,align=center)]]
    437437[[BR]]
    438438
     
    443443Po 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).
    444444[[BR]]
    445 [[Image(slika15-46.png)]]
     445[[Image(slika15-46.png, width=480px,align=center)]]
    446446[[BR]]
    447447
    448448Drugi del sestava vozliščnega elementa vozliščnega cilindra je osrednji (ožji) del. Določimo ga tako, da najprej določimo premer srednjega dela cilindra, ki ga popisuje spremenljivka radius z dimenzijo 21,2 mm. Višina valja je 109 mm in jo lahko programsko vpišemo kot spremenljivko height. Tako določenemu in poimenovanemu srednjemu delu vozliščnega elementa nato s pomočjo Booleanove operacije razlike izvrtamo skoznjo izvrtino premera 31,2 mm (pazite, to je polmer 15,6 mm!). Zgornji del srednjega dela vozliščnega elementa priključimo spodnji površini zgornjega vozliščnega elementa takrat, kadar sta centrični glede na isto srednjico. Poudarimo naj, da spodnja površina velikega valja (prvi, ki smo ga generirali) leži na zgornji površini srednjega dela, to je drugega valja.
    449449[[BR]]
    450 [[Image(slika15-47.png)]]
    451 [[BR]]
    452 
    453 [[BR]]
    454 [[Image(slika15-48.png)]]
    455 [[BR]]
    456 
    457 [[BR]]
    458 [[Image(slika15-49.png)]]
     450[[Image(slika15-47.png, width=480px,align=center)]]
     451[[BR]]
     452
     453[[BR]]
     454[[Image(slika15-48.png, width=480px,align=center)]]
     455[[BR]]
     456
     457[[BR]]
     458[[Image(slika15-49.png, width=480px,align=center)]]
    459459[[BR]]
    460460
     
    465465Z 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++.
    466466[[BR]]
    467 [[Image(slika15-50.png)]]
     467[[Image(slika15-50.png, width=480px,align=center)]]
    468468[[BR]]
    469469
     
    476476Ta postopek je obvezen pred vsakim definiranjem geometrije in zagotavlja ustrezno pomnilno kapaciteto za vsak poimenovani sestav.
    477477[[BR]]
    478 [[Image(slika15-51.png)]]
     478[[Image(slika15-51.png, width=480px,align=center)]]
    479479[[BR]]
    480480
     
    485485Pri narisanem I-profilu preberemo začetno in končno točko na isti tvornici (lahko srednjici) profila. Lahko pa določimo dolžino profila sami z vnaprejšnjim določanjem izhodiščne točke in vektorja dolžine. Glede na podan rob eh določimo začetno from in končno to točko izbranega profila.
    486486[[BR]]
    487 [[Image(slika15-52.png)]]
     487[[Image(slika15-52.png, width=480px,align=center)]]
    488488[[BR]]
    489489
     
    493493Izbranemu robu določimo normalo n, ki jo uporabimo za določitev usmerjenosti I- profila v prostoru.
    494494[[BR]]
    495 [[Image(slika15-53.png)]]
     495[[Image(slika15-53.png, width=480px,align=center)]]
    496496[[BR]]
    497497
     
    500500Prerez 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.
    501501[[BR]]
    502 [[Image(slika15-54.png)]]
     502[[Image(slika15-54.png, width=480px,align=center)]]
    503503[[BR]]
    504504
     
    507507Na osnovi podanih točk aPnt1…aPnt12 lahko opredelimo skupino robov myEdge1…myEdge12. Zaprta mreža ali zanka robov predstavlja lik oziroma prerez poenostavljenega I-profila.
    508508[[BR]]
    509 [[Image(slika15-55.png)]]
     509[[Image(slika15-55.png, width=480px,align=center)]]
    510510[[BR]]
    511511
     
    514514Č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.
    515515[[BR]]
    516 [[Image(slika15-56.png)]]
     516[[Image(slika15-56.png, width=480px,align=center)]]
    517517[[BR]]
    518518
     
    522522Opredeljeno površino nato izvlečemo v smeri normale na ravnino in dobimo model CAD poenostavljenega I-profila. Operacijo izvleka izvedemo tako, da iz ravninskega lika ustvarimo 3D-prizmo, kar smo že večkrat prikazali. Smer površine določa normalni vektor myVector, ki kaže v smeri normale na rob in je po razdalji enak dolžini roba profila.
    523523[[BR]]
    524 [[Image(slika15-57.png)]]
     524[[Image(slika15-57.png, width=480px,align=center)]]
    525525[[BR]]
    526526
     
    529529Za izvoz v format STEP ali IGES moramo vsakemu I-profilu najprej nastaviti plast profila. Šele nato ga lahko izvozimo v nevtralni format STEP ali IGES. Ukaz za določanje plasti in geometrije profilov je Profile.
    530530[[BR]]
    531 [[Image(slika15-58.png)]]
    532 [[BR]]
    533 
    534 [[BR]]
    535 [[Image(slika15-59.png)]]
     531[[Image(slika15-58.png, width=480px,align=center)]]
     532[[BR]]
     533
     534[[BR]]
     535[[Image(slika15-59.png, width=480px,align=center)]]
    536536[[BR]]
    537537
     
    555555
    556556
    557 
    558 
    559