Changes between Version 26 and Version 27 of PythonOcc/primitives


Ignore:
Timestamp:
Nov 22, 2013, 1:09:18 PM (7 years ago)
Author:
ptomsic
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • PythonOcc/primitives

    v26 v27  
    570570
    571571=== Izdelava posnetij (Chamfer) ===
    572 
    573 === Izdelava lupine (Shell) ===
    574 
    575 === Izdelava odmika (OffsetShape) ===
    576 
    577 === Izdelava kota nagiba (Draft_Angle) ===
    578 
    579 === Izdelava rebra (MakeLinerForm) ===
     572Pri izdelavi posnetij v programskem okolju je potrebno predhodno uvesti knjižnico orodij za izdelavo posnetij:
     573{{{
     574#!python
     575from OCC.TopExp import* #knjiznica z topoloskimi elementi
     576from OCC.BRepFilletAPI import * #Knjiznica z zaokrozitvami
     577from OCC.Utils.Topology import *
     578from OCC.BRep import *
     579}}}
     580Izdelava posnetja poteka podobno, kakor izdelava zaokrožitve, saj imamo za vir ukazov isto knjižnico BRepFilletAPI. Na enak način, kot v primeru zaokrožitve, določimo uporabo posnetja:
     581{{{
     582#!python
     583posnetje = BRepFilletAPI_MakeChamfer(kocka.Shape())
     584}}}
     585Operacija za izdelavo posnetja pa zahteva nekoliko več argumentov, saj je lokacija posnetja določena z izbiro robu ter referenčne površine. Pri določitvi velikosti posnetja imamo lahko primer posnetja pod kotom 45°, za kar rabimo določiti samo eno razdaljo posnetja, ali pa primer ko imamo kot posnetja različen od 45°. V tem primeru je potrebno določiti razdalji posnetja na površinah, ki obdajata rob. Dodajanje posnetja na obliko poteka:
     586{{{
     587#!python
     588posnetje.Add(Razdalja, Rob, Povrsina)
     589posnetje.Add(Razdalja_1, Razdalja_2, Rob, Povrsina)
     590}}}
     591Primer izdelave posnetja na zgornji in spodnji ploskvi kocke:
     592{{{
     593#!python
     594posnetje = BRepFilletAPI_MakeChamfer(Oblika)
     595topology_traverser = Topo(Oblika)
     596for aEdge in topology_traverser.edges():
     597    first, last = TopExp().FirstVertex(aEdge), TopExp().LastVertex(aEdge)
     598    first_vert, last_vert = BRep_Tool().Pnt(first), BRep_Tool().Pnt(last)
     599    if first_vert.Z()==Visina and last_vert.Z()==Visina:
     600        for aFace in topology_traverser.faces():
     601                posnetje.Add(Razdalja, Rob, Povrsina)
     602#                posnetje.Add(Razdalja_1, Razdalja_2, Rob, Povrsina)
     603    if first_vert.Z()==0 and last_vert.Z()==0:
     604        for aFace in topology_traverser.faces():
     605                posnetje.Add(Razdalja, Rob, Povrsina)
     606#                posnetje.Add(Razdalja_1, Razdalja_2, Rob, Povrsina)
     607kocka = posnetje
     608}}}
     609
     610=== Izdelava lupine ( Shell ) ===
     611Volumski model lahko pretvorimo tudi v tenkostenski objekt z orodjem za izdelavo lupin. Pri tem uporabimo nabor ukazov iz knjižnice BRepOffsetAPI:
     612{{{
     613#!python
     614from OCC.BRepOffsetAPI import *
     615}}}
     616Pri izdelavi lupine je potrebno določiti geometrijo iz katere hočemo narediti lupiono, ploskve, ki jih hočemo odstraniti, debelino lupine ter toleranco izdelave modela:
     617{{{
     618#!python
     619lupina = BRepOffsetAPI_MakeThickSolid(Oblika, Odstr_ploskve, debelina, toleranca)
     620}}}
     621
     622=== Izdelava odmika ( OffsetShape ) ===
     623Z orodjem za izdelavo odmika lahko napravimo nov objekt, ki bazira na obstoječi geometriji, le da je nekoliko večji ali pa manjši. Za uporabo ukaza je potrebno v program uvesti knjižnico:
     624{{{
     625#!python
     626from OCC.BRepOffsetAPI import *
     627}}}
     628Napravimo vzporedni odmik posamezne ploskve ali pa vzamemo kar celotni objekt. Najbolj preprosta operacija zahteva argumente geometrije, dolžine vzporednega odmika ter tolerace. Vzporedni odmik lahko poteka v obe smeri- lahko naredimo element, ki je večji ali manjši od osnovnega modela.
     629{{{
     630#!python
     631odmik = BRepOffsetAPI_MakeOffsetShape(Oblika,debelina,toleranca)
     632odmik = BRepOffsetAPI_MakeOffsetShape(Oblika,debelina,toleranca, BRepOffset_Skin, Standard_False, Standard_False, GeomAbs_Intersection)
     633}}}
     634=== Izdelava kota nagiba ( Draft_Angle ) ===
     635
     636=== Izdelava rebra ( MakeLinerForm ) ===