Öppen källkod Python-bibliotek för 3D-modellering och datautbyte
Gratis Python-bibliotek för 3D-modellering och datautbyte. Det möjliggör arbete med 3D CAD, BIM, PLM och CAM-filformat via Python API online.
Vad är PythonOCC-Core-biblioteket?
PythonOCC-Core är ett gratis 3D-modellerings- och CAD-automatiseringsbibliotek. Det använder Python, ett allmänt använt programmeringsspråk, ovanpå OpenCASCADE Technology (OCCT)-kärnan. Denna kombination erbjuder en stark grund för att skapa, förändra och studera intrikata 3D-former. Genom att kombinera Pythons enkelhet med OCCT:s kraftfulla modelleringsverktyg får du ett mångsidigt och effektivt verktyg till ditt förfogande. Med sitt intuitiva Python‑gränssnitt och omfattande funktionsuppsättning ger biblioteket en sömlös upplevelse för både nybörjare och erfarna utvecklare inom området. Det ger arkitekter och ingenjörer som du möjlighet att skapa parametriska modeller, producera byggplaner och utföra strukturanalyser. Detta verktyg förbättrar designarbetsflödet, vilket möjliggör exakt visualisering och effektivt samarbete. Det är populärt inom olika sektorer såsom fordonsindustrin, flyg‑ och rymdindustrin samt produktdesign för att utveckla och förfina intrikata 3D-modeller. Med detta bibliotek kan du påskynda prototypframtagning, simuleringar och designanalys, vilket förenklar produktutvecklingsprocessen.
PythonOCC-Cores visualiseringsfunktioner är perfekta för att skapa spel och virtuella verklighetsupplevelser. Med detta verktyg kan du bygga engagerande miljöer, livslika simuleringar och interaktiva äventyr. Dessutom erbjuder biblioteket viktiga funktioner som att arbeta med medicinsk bildbehandling, manipulera 3D-geometri, importera och exportera CAD-data, köra avancerade simuleringar på 3D-modeller, visualisera 3D-innehåll i webbläsare och visa 3D-grafik genom populära Python-GUI:er. Biblioteket spelar också en avgörande roll inom vetenskaplig forskning som beräkningsfysik, materialvetenskap och biomedicinsk teknik. Många mjukvaruprofessionella och utvecklare i olika branscher finner PythonOCC-Core attraktivt eftersom det kombinerar Pythons enkelhet med OCCT:s styrka. Med PythonOCC-Core kan du öka din kreativitet och förenkla komplexa CAD-processer. Detta öppnar nya möjligheter för innovation och produktivitet inom 3D-modellering och design.
Komma igång med PythonOCC-Core
Det enklaste sättet att installera PythonOCC-Core stabil version är att använda pip. Använd följande kommando för en smidig installation.
Installera PythonOCC-Core via pip
pip install pythonocc-coreInstallera PythonOCC-Core via Conda
conda install -c conda-forge pythonocc-coreDu kan också installera PythonOCC-Core via Conda med följande kommando.
conda install -c 1adrianb face_alignmentDu kan ladda ner det kompilerade delade biblioteket från GitHub-arkivet.
Skapa och hantera 3D-geometrier via Python
Det öppna källkods‑biblioteket PythonOCC-Core har fullständigt stöd för att skapa och hantera 3D‑modeller i Python‑applikationer. Dessutom erbjuder biblioteket ett omfattande verktygssats för att skapa och manipulera 3D‑geometriska former, inklusive punkter, kurvor, ytor och solider. Det tillhandahåller ett brett utbud av algoritmer för att konstruera och modifiera komplexa objekt, såsom booleska operationer, filning och fasning. Följande exempel visar hur mjukvaruutvecklare kan skapa kärngeometri‑begränsningslådor med hjälp av python‑kommandon.
Hur beräknar och visar man avgränsningslådor i Python-appar?
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-automatisering med Python API
Det öppna källkodsbiblioteket PythonOCC-Core har tillhandahållit mycket användbara funktioner för att hantera olika uppgifter relaterade till CAD-diagram. Biblioteket stöder olika filformat som vanligtvis används i CAD, inklusive STEP, IGES, STL och BREP. Biblioteket möjliggör för utvecklare att automatisera repetitiva CAD-uppgifter, såsom att generera parametriska designer, utföra geometriska transformationer och genomföra geometrisk analys. Det erbjuder ett hög nivå‑API som förenklar implementeringen av CAD‑arbetsflöden, vilket gör det till ett idealiskt val för att bygga CAD‑automatiseringsverktyg.
Hur skapar man en form och exporterar den till CAD STEP-filformat via Python API?
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")