Changes between Version 28 and Version 29 of PythonOcc/primitives


Ignore:
Timestamp:
Nov 26, 2013, 3:56:50 PM (10 years ago)
Author:
ptomsic
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • PythonOcc/primitives

    v28 v29  
    638638
    639639=== Izdelava kota nagiba ( Draft_Angle ) ===
     640[[Image(32.png, 300, right)]]
     641Z ukazom modificiramo obstoječo geometrijo s tem, da dodamo nagibne kote na planarne, cilindrične ali konične ploskve na modelu. Uporabimo knjižnico ukazov BRepOffsetAPI. Uporabo ukaza določimo z:
     642{{{
     643#!python
     644nagib = BRepOffsetAPI_DraftAngle(oblika)
     645}}}
     646Pri tem je potrebno odločiti še parametre, kot so smer normale, kot nagiba v radianih ter nevtralno ravnino. Primer dodajanja kota nagiba na objekt:
     647{{{
     648#!python
     649nagib = BRepOffsetAPI_DraftAngle(Oblika)
     650for f in topo.faces():
     651    surf = Handle_Geom_Plane_DownCast(BRep_Tool_Surface(f)).GetObject()
     652    dirf = surf.Pln().Axis().Direction()
     653    ddd = gp_Dir(0,0,1)
     654    if dirf.IsNormal(ddd, Precision_Angular()):
     655        nagib.Add(f, ddd, math.radians(25), gp_Pln(gp_Ax3(gp_XOY())))
     656nagib.Build()
     657}}}
     658[[BR]][[BR]]
    640659
    641660=== Izdelava rebra ( MakeLinerForm ) ===
     661[[Image(32.png, 300, right)]]
     662Za izdelavo ojačitvenega rebra med dvema planarnima površinama se uporabi ukaz BRepFeat. Za izvedbo ukaza je potrebno vključiti naslednjo knjižnico:
     663{{{
     664#!python
     665from OCC.BRepFeat import *
     666from OCC.BRepAlgoAPI import *
     667}}}
     668Pri izdelavi rebra je potrebno imeti najprej že predhodno narejen model, ki vsebuje dve povšini, med katerima lahko napravimo rebro. Izdelava rebra poteka v parih preprostih korakih. Najprej je potrebno napraviti črto, ki povezuje obe površini. To naredimo tako, da določimo dve točki, ki se nahajata vsaka na eni izmed površin. Nato naredimo referenčno ravnino, ki služi kot referenca za prerez rebra:
     669{{{
     670#!python
     671Povezava = BRepBuilderAPI_MakeWire(BRepBuilderAPI_MakeEdge(Tocka_1, Tocka_2.Edge() )
     672ravnina = Geom_Plane(U_X,U_Y,U_Z,Velikost_U)
     673}}}
     674Za izdelavo rebra uporabimo ukaz MakeLinearForm, kjer uporabimo poznano obliko, povezavo med površinama, referenčno ravnino, ter dva vektorja, ki nam določita smer oziroma debelino rebra v eni ter v drugi smeri glede na normalo ravnine:
     675{{{
     676#!python
     677rebro = BRepFeat_MakeLinearForm( Oblika, Povezava, ravnina,Vect_1, Vect_2, 1, True )
     678}}}
     679[[BR]][[BR]]
     680
     681=== Zrcaljenje ( Mirror ) ===
     682[[Image(33.png, 300, right)]]
     683Za zrcaljenje poljubne oblike se uporabi ukaz iz knjižnice BRepBuilderAPI:
     684{{{
     685#!python
     686from OCC.BRepBuilderAPI import *
     687}}}
     688Pri zrcaljenju objekta preko točke je potrebno najprej definirati točko zrcaljenja ter nato določiti izbrano točko za zrcaljenje:
     689{{{
     690#!python
     691Transformacija = gp_Trsf()
     692Tocka_zrcaljenja = gp_Pnt(110.,60.,60.)
     693Vozlisce = BRepBuilderAPI_MakeVertex(Tocka_zrcaljenja) 
     694Transformacija.SetMirror(Tocka_zrcaljenja);
     695}}}
     696Za izvedbo zrcaljenja uporabimo ukaz BRepBuilderAPI_Transform, kjer v prvem argumentu določimo objekt ki ga zrcalimo, v drugem argumentu pa transformacijsko obliko, ki že vsebuje podatek o tipu transformacije ter parametre.
     697{{{
     698#!python
     699myBRepTransformation = BRepBuilderAPI_Transform(Prizma,Transformacija)
     700Zrcalna_oblika = myBRepTransformation.Shape()
     701}}}