wiki:PythonOcc/primitives

Version 8 (modified by ptomsic, 10 years ago) (diff)

--

Python OCC

Struktura programa v Python OCC

Rabimo uvoziti uporabniški vmesnik, ki nam omogoči preprosto manipulacijo predstavljenega objekta (glava dokumenta):

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:

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:

start_display()

S tem ukazom iniciramo modelno okno. Definicija uporabljenih geometrijskih oblik mora biti podana preden se ukaz izvede.

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:

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

Tocka = gp_Pnt(x_1 , y_1 , z_1)

Korak 02: Izdelava robov iz točk

Rob = BRepBuilderAPI_MakeEdge(Zacetna_tocka, Koncna_tocka)

Korak 03: Izdelava mrežnega modela iz točk

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

Povrsina = BRepBuilderAPI_MakeFace(Mreza.Wire())

Korak 05: Izdelava izvleka v prostor

Izvlek = BRepPrimAPI_MakePrism(Povrsina.Face() , Vektor)
Izvlek = BRepPrimAPI_MakePrism(Povrsina.Face() , Smer)

Attachments (38)