Otwarta biblioteka Python do modelowania 3D i wymiany danych
Darmowa biblioteka Python do modelowania 3D i obsługi wymiany danych. Umożliwia pracę z formatami plików 3D CAD, BIM, PLM i CAM za pośrednictwem API Pythona online.
Czym jest biblioteka PythonOCC-Core?
PythonOCC-Core to darmowa biblioteka do modelowania 3D i automatyzacji CAD. Wykorzystuje Pythona, szeroko stosowany język programowania, na bazie jądra OpenCASCADE Technology (OCCT). To połączenie zapewnia solidne podstawy do tworzenia, modyfikacji i badania skomplikowanych kształtów 3D. Łącząc łatwość Pythona z potężnymi narzędziami modelowania OCCT, otrzymujesz wszechstronne i skuteczne narzędzie w swoim zasięgu. Dzięki intuicyjnemu interfejsowi Pythona i rozbudowanemu zestawowi funkcji, biblioteka zapewnia płynne doświadczenie zarówno dla początkujących, jak i doświadczonych programistów w tej dziedzinie. Umożliwia architektom i inżynierom, takim jak Ty, tworzenie modeli parametrycznych, generowanie układów budynków oraz przeprowadzanie analiz strukturalnych. To narzędzie usprawnia przepływ pracy projektowej, umożliwiając precyzyjną wizualizację i efektywną współpracę zespołową. Jest popularne w różnych sektorach, takich jak motoryzacja, lotnictwo i projektowanie produktów, do opracowywania i udoskonalania skomplikowanych modeli 3D. Dzięki tej bibliotece możesz przyspieszyć prototypowanie, symulacje i analizę projektową, upraszczając proces rozwoju produktu.
Funkcje wizualizacji PythonOCC-Core są idealne do tworzenia gier i doświadczeń wirtualnej rzeczywistości. Dzięki temu narzędziu możesz budować angażujące środowiska, realistyczne symulacje i interaktywne przygody. Ponadto biblioteka oferuje niezbędne funkcje, takie jak praca z obrazowaniem medycznym, manipulacja geometrią 3D, import i eksport danych CAD, przeprowadzanie zaawansowanych symulacji modeli 3D, wizualizacja treści 3D w przeglądarkach internetowych oraz prezentacja wizualizacji 3D za pomocą popularnych interfejsów GUI w Pythonie. Biblioteka odgrywa także kluczową rolę w badaniach naukowych, takich jak fizyka obliczeniowa, nauka o materiałach i inżynieria biomedyczna. Wielu specjalistów oprogramowania i deweloperów w różnych branżach uważa PythonOCC-Core za atrakcyjne, ponieważ łączy łatwość Pythona z mocą OCCT. Dzięki PythonOCC-Core możesz zwiększyć swoją kreatywność i usprawnić skomplikowane procesy CAD. Otwiera to nowe możliwości innowacji i produktywności w modelowaniu i projektowaniu 3D.
Rozpoczęcie pracy z PythonOCC-Core
Najłatwiejszy sposób zainstalowania stabilnej wersji PythonOCC-Core to użycie pip. Proszę użyć poniższego polecenia, aby przeprowadzić płynną instalację.
Zainstaluj PythonOCC-Core za pomocą pip
pip install pythonocc-coreZainstaluj PythonOCC-Core za pomocą Conda
conda install -c conda-forge pythonocc-coreMożesz także zainstalować PythonOCC-Core za pomocą Conda, używając następującego polecenia.
conda install -c 1adrianb face_alignmentMożesz pobrać skompilowaną bibliotekę współdzieloną z repozytorium Github.
Tworzenie i zarządzanie geometrią 3D przy użyciu Pythona
Biblioteka open source PythonOCC-Core zawiera pełne wsparcie dla tworzenia i zarządzania modelami 3D w aplikacjach Python. Co więcej, biblioteka oferuje rozbudowany zestaw narzędzi do tworzenia i manipulacji geometrycznymi kształtami 3D, w tym punktami, krzywymi, powierzchniami i bryłami. Dostarcza szeroką gamę algorytmów do konstruowania i modyfikacji złożonych obiektów, takich jak operacje boolowskie, zaokrąglanie i fazowanie. Poniższy przykład pokazuje, jak programiści mogą tworzyć ramki ograniczające podstawowej geometrii przy użyciu poleceń Pythona.
Jak obliczyć i wyświetlić ramki ograniczające w aplikacjach Python?
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)
Automatyzacja CAD przy użyciu API Pythona
Biblioteka open source PythonOCC-Core zapewnia bardzo przydatne funkcje do obsługi różnych zadań związanych z diagramami CAD. Biblioteka obsługuje różne formaty plików powszechnie używane w CAD, w tym STEP, IGES, STL i BREP. Biblioteka umożliwia programistom automatyzację powtarzalnych zadań CAD, takich jak generowanie projektów parametrycznych, wykonywanie transformacji geometrycznych oraz przeprowadzanie analiz geometrycznych. Dostarcza wysokopoziomowe API, które upraszcza implementację przepływów pracy CAD, co czyni ją idealnym wyborem do tworzenia narzędzi automatyzacji CAD.
Jak utworzyć kształt i wyeksportować go do formatu pliku CAD STEP za pomocą API Pythona?
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")