1. Termékek
  2.   3D
  3.   Python
  4.   PythonOCC-Core
 
  

Nyílt forráskódú Python könyvtár 3D modellezéshez és adatcseréhez

Ingyenes Python könyvtár 3D modellezéshez és adatcsere kezeléséhez. Lehetővé teszi a 3D CAD, BIM, PLM és CAM fájlformátumokkal való munkát online Python API-n keresztül.

Mi az a PythonOCC-Core könyvtár ?

PythonOCC-Core egy ingyenes 3D modellező és CAD automatizálási könyvtár. A Python, egy széles körben használt programozási nyelv, az OpenCASCADE Technology (OCCT) kernelre épül. Ez a kombináció erős alapot nyújt összetett 3D alakzatok létrehozásához, módosításához és tanulmányozásához. A Python könnyedségének és az OCCT erőteljes modellező eszközeinek ötvözésével egy sokoldalú és hatékony eszközt kap a rendelkezésére. Intuitív Python felületével és kiterjedt funkciókészletével a könyvtár zökkenőmentes élményt biztosít kezdőknek és tapasztalt fejlesztőknek egyaránt. Lehetővé teszi, hogy olyan építészek és mérnökök, mint Ön, paraméteres modelleket készítsenek, építészeti terveket állítsanak elő, és szerkezeti elemzéseket végezzenek. Ez az eszköz javítja a tervezési munkafolyamatot, lehetővé téve a pontos megjelenítést és a hatékony csapatmunkát. Számos ágazatban népszerű, például az autóiparban, a repülőgépiparban és a terméktervezésben, összetett 3D modellek fejlesztésére és finomítására. Ezzel a könyvtárral felgyorsíthatja a prototípusgyártást, a szimulációkat és a tervezési elemzéseket, ezáltal egyszerűsítve a termékfejlesztés folyamatát.

PythonOCC-Core vizualizációs funkciói tökéletesek játékok és virtuális valóság élmények létrehozásához. Ezzel az eszközzel lebilincselő környezeteket, élethű szimulációkat és interaktív kalandokat építhetsz. Emellett a könyvtár alapvető funkciókat kínál, mint az orvosi képalkotás kezelése, 3D geometria manipulálása, CAD adatok importálása és exportálása, fejlett szimulációk futtatása 3D modelleken, 3D tartalom megjelenítése webböngészőkben, valamint 3D vizuálok bemutatása népszerű Python GUI-kkal. A könyvtár fontos szerepet játszik a tudományos kutatási területeken, például a számítási fizikában, anyagtudományban és biomedikai mérnöki területen. Sok szoftverprofesszionális és fejlesztő különböző iparágakban vonzónak találja a PythonOCC-Core-t, mivel ötvözi a Python könnyedségét az OCCT erősségével. A PythonOCC-Core segítségével fokozhatod kreativitásodat és egyszerűsítheted a bonyolult CAD folyamatokat. Ez új lehetőségeket nyit az innováció és a termelékenység terén a 3D modellezés és tervezés során.

Previous Next

Első lépések a PythonOCC-Core használatával

A PythonOCC-Core stabil kiadás legkönnyebb telepítési módja a pip használata. Kérjük, használja a következő parancsot a zökkenőmentes telepítéshez.

PythonOCC-Core telepítése pip segítségével

pip install pythonocc-core

PythonOCC-Core telepítése Conda segítségével

conda install -c conda-forge pythonocc-core

A PythonOCC-Core-t a Conda segítségével is telepítheti a következő parancs használatával.

conda install -c 1adrianb face_alignment

Letöltheti az összeállított megosztott könyvtárat a Github tárolóból.

3D geometria létrehozása és kezelése Pythonon keresztül

Az nyílt forráskódú PythonOCC-Core könyvtár teljes támogatást nyújt 3D modellek létrehozásához és kezeléséhez Python alkalmazásokban. Emellett a könyvtár kiterjedt eszközkészletet kínál 3D geometriai alakzatok, például pontok, görbék, felületek és szilárd testek létrehozásához és manipulálásához. Széles körű algoritmusokat biztosít összetett objektumok, például logikai műveletek, lekerekítések és letörések építéséhez és módosításához. Az alábbi példa bemutatja, hogyan hozhatnak létre szoftverfejlesztők alapvető geometriai határoló dobozokat python parancsokkal.

Hogyan számítsuk ki és jelenítsük meg a határoló dobozokat Python alkalmazásokban?

def get_boundingbox(shape, tol=1e-6, use_mesh=True):

bbox = Bnd_Box()
    bbox.SetGap(tol)
    if use_mesh:
        mesh = BRepMesh_IncrementalMesh()
        mesh.SetParallelDefault(True)
        mesh.SetShape(shape)
        mesh.Perform()
        if not mesh.IsDone():
            raise AssertionError("Mesh not done.")
    brepbndlib_Add(shape, bbox, use_mesh)

    xmin, ymin, zmin, xmax, ymax, zmax = bbox.Get()
    return xmin, ymin, zmin, xmax, ymax, zmax, xmax - xmin, ymax - ymin, zmax - zmin


print("Box bounding box computation")
box_shape = BRepPrimAPI_MakeBox(10.0, 20.0, 30.0).Shape()
bb1 = get_boundingbox(box_shape)
print(bb1)

print("Cylinder bounding box computation")
cyl_shape = BRepPrimAPI_MakeCylinder(10.0, 20.0).Shape()
bb2 = get_boundingbox(cyl_shape)
print(bb2)

print("Torus bounding box computation")
torus_shape = BRepPrimAPI_MakeCylinder(15.0, 5.0).Shape()
bb3 = get_boundingbox(torus_shape)
print(bb3)

 

CAD automatizálás Python API használatával

A nyílt forráskódú PythonOCC-Core könyvtár nagyon hasznos funkciókat biztosít a CAD diagramokkal kapcsolatos különféle feladatok kezeléséhez. A könyvtár támogatja a CAD-ben gyakran használt különböző fájlformátumokat, beleértve a STEP, IGES, STL és BREP formátumokat. A könyvtár lehetővé teszi a fejlesztők számára, hogy automatizálják az ismétlődő CAD feladatokat, például paraméteres tervek generálását, geometriai transzformációk végrehajtását és geometriai elemzések elvégzését. Magas szintű API-t kínál, amely egyszerűsíti a CAD munkafolyamatok megvalósítását, így ideális választás CAD automatizálási eszközök építéséhez.

Hogyan hozzunk létre alakzatot, és exportáljuk CAD STEP fájlformátumba a Python API-n keresztül?

from __future__ import print_function

from OCC.Core.BRepPrimAPI import BRepPrimAPI_MakeBox

from OCC.Core.STEPControl import STEPControl_Writer, STEPControl_AsIs
from OCC.Core.Interface import Interface_Static_SetCVal
from OCC.Core.IFSelect import IFSelect_RetDone

# creates a basic shape
box_s = BRepPrimAPI_MakeBox(10, 20, 30).Shape()

# initialize the STEP exporter
step_writer = STEPControl_Writer()
dd = step_writer.WS().TransferWriter().FinderProcess()
print(dd)

Interface_Static_SetCVal("write.step.schema", "AP203")

# transfer shapes and write file
step_writer.Transfer(box_s, STEPControl_AsIs)
status = step_writer.Write("box.stp")

if status != IFSelect_RetDone:
    raise AssertionError("load failed")
 
 Magyar