= Python OCC = == Struktura programa v Python OCC == Rabimo uvoziti uporabniški vmesnik, ki nam omogoči preprosto manipulacijo predstavljenega objekta (glava dokumenta): {{{ #!python from OCC.Display.SimpleGui import * }}} Z ukazno vrstico uvozimo v program knjižnico, ki vsebuje modelno okno ter preprosti uporabniški vmesnik, ki ga lahko uporabimo za prikaz različnih geometrijskih oblik v 3D okolju. Uvedba funkcij za iniciacijo prikaza: {{{ #!python display, start_display, add_menu, add_function_to_menu = init_display() }}} Z ukazno vrstico uvedemo v program prikaz v modelnem oknu ter možnost uporabe preprostega menija. Iniciacija prikaznega okna: {{{ #!python start_display() }}} S tem ukazom iniciramo modelno okno. Definicija uporabljenih geometrijskih oblik mora biti podana preden se ukaz izvede.[[Image(display.png, right)]] Uporaba miške v uporabniškem vmesniku: * Rotacija objekta: levi gumb na miški * Translacija objekta: srednji gumb na miški * Povečava objekta: desni gumb na miški, premik levo-desno Uporaba tipkovnice v uporabniškem vmesniku: * Tipka'w'- prikaz žičnega modela * Tipka 'e'- prikaz vidnih robov * Tipka 's'- prikaz volumskega modela * Tipka 'f'- prikaz celega objekta v prikaznem oknu * Tipka 'q'- prikaz vidnih robov Za izdelavo modela v okolju Python OCC je potrebna predhodna uvedba knjižnic OpenCascade (OCC), ki vsebujejo različne nabore ukazov: {{{ #!python from OCC.Display.SimpleGui import * # Knjižnica z modelnim oknom ter uporabniškim vmesnikom (GUI) from OCC.gp import * # Knjižnica z naborom osnovnih gradnikov -točk from OCC.GC import * # from OCC.TopoDS import * # Knjižnica z naborom topoloških gradnikov (krivulje,...) from OCC.BRepBuilderAPI import * # Knjižnica z naborom osnovnih gradnikov skice (vozlišča, robovi, segmenti, mreže ...) from OCC.BRepPrimAPI import * # Knjižnica z naborom osnovnih geometrijskih primitivov from OCC.BRepFilletAPI import * # Knjižnica z naborom orodij za izdelavo zaokrožitev }}} V program uvedemo zgolj knjižnice, ki jih tudi rabimo za učinkovito delovanje. == Preprosti program- Primer izdelave izvleka v prostor (Extrude) == Primer izdelave kocke z dimenzijami 10x10x10. Postopek modeliranja v komercialnih modelirnikih (SolidWorks, Catia, NX, ProEngineer, Inventor,...) je sledeči: * izbira ravnine, na katero se nariše skica * izris oblike skice (kvadrat) * definiranje skice (dimenzije, geometrijske relacije, pozicija v prostoru) * izbira ustrezne značilke za izdelavo 3D objekta (Izvlek- Extrude) * določitev parametrov izvleka (smer, dolžina izvleka) * model je zmodeliran V okolju Python OCC poteka izris objekta nekoliko drugače. Razložen je preprosti postopek izdelave kocke, ki poteka v večih korakih. Pri izdelavi je potrebno manualno določiti vse parametre, ki jih komercialni modelirnik običajno določi namesto nas. Korak 01: Izdelava točke v prostoru {{{ #!python Tocka = gp_Pnt(x_1 , y_1 , z_1) }}} Korak 02: Izdelava robov iz točk {{{ #!python Rob = BRepBuilderAPI_MakeEdge(Zacetna_tocka, Koncna_tocka) }}} Korak 03: Izdelava mrežnega modela iz točk {{{ #!python Mreza = BRepBuilderAPI_MakeWire(Rob1.Edge() , Rob2.Edge() ,Rob3.Edge(), Rob4.Edge()) Mreza2 = BRepBuilderAPI_MakeWire(Mreza.Wire(), Rob1.Edge()) }}} Korak 04: Izdelava površine iz obstoječe mreže {{{ #!python Povrsina = BRepBuilderAPI_MakeFace(Mreza.Wire()) }}} Korak 05: Izdelava izvleka v prostor {{{ #!python Izvlek = BRepPrimAPI_MakePrism(Povrsina.Face() , Vektor) Izvlek = BRepPrimAPI_MakePrism(Povrsina.Face() , Smer) }}}