Atviro kodo Python biblioteka 3D modeliui ir duomenų mainams
Nemokama Python biblioteka 3D modeliui ir duomenų mainų valdymui. Ji leidžia dirbti su 3D CAD, BIM, PLM ir CAM failų formatais per Python API internetu.
Kas yra PythonOCC-Core biblioteka?
PythonOCC-Core yra nemokama 3D modeliavimo ir CAD automatizavimo biblioteka. Ji naudoja Python, plačiai naudojamą programavimo kalbą, ant OpenCASCADE Technology (OCCT) branduolio. Ši kombinacija suteikia tvirtą pagrindą kurti, keisti ir nagrinėti sudėtingas 3D formas. Sujungdama Python paprastumą su OCCT galingais modeliavimo įrankiais, gaunate universalų ir efektyvų įrankį savo naudai. Dėl intuityvios Python sąsajos ir plačios funkcionalumo rinkos, biblioteka suteikia sklandžią patirtį tiek pradedantiesiems, tiek patyrusiems kūrėjams šioje srityje. Ji suteikia galimybę architektams ir inžinieriams, kaip jūs, kurti parametrinius modelius, gaminti pastatų planus ir atlikti struktūrinę analizę. Šis įrankis pagerina dizaino darbo eigą, leidžiant tiksliai vizualizuoti ir efektyviai dirbti komandoje. Jis yra populiarus įvairiuose sektoriuose, tokiose kaip automobilių pramonė, aerokosmos ir produktų dizainas, kuriant ir tobulinant sudėtingus 3D modelius. Su šia biblioteka galite pagreitinti prototipų kūrimą, simuliacijas ir dizaino analizę, taip supaprastindami produktų kūrimo procesą.
PythonOCC-Core vizualizacijos funkcijos yra puikios kuriant žaidimus ir virtualios realybės patirtis. Su šiuo įrankiu galite kurti įtraukiantį aplinką, realistiškas simuliacijas ir interaktyvias nuotykius. Be to, biblioteka siūlo esmines funkcijas, tokias kaip darbas su medicinine vaizdų analize, 3D geometrijos manipuliavimas, CAD duomenų importavimas ir eksportavimas, pažangių simuliacijų vykdymas ant 3D modelių, 3D turinio vizualizavimas interneto naršyklėse ir 3D vizualų demonstravimas populiariomis Python GUI. Biblioteka taip pat atlieka svarbų vaidmenį mokslinių tyrimų srityse, tokiose kaip skaitmeninė fizika, medžiagų mokslas ir biomedicininis inžinerija. Daugelis programinės įrangos specialistų ir kūrėjų įvairiose pramonės šakose mano, kad PythonOCC-Core yra patrauklus, nes sujungia Python paprastumą ir OCCT stiprumą. Su PythonOCC-Core galite padidinti kūrybiškumą ir supaprastinti sudėtingus CAD procesus. Tai atveria naujas galimybes inovacijoms ir produktyvumui 3D modeliavimo ir dizaino srityje.
Pradžia su PythonOCC-Core
Paprasčiausias būdas įdiegti PythonOCC-Core stabilų leidimą yra naudoti pip. Prašome naudoti šią komandą sklandžiam įdiegimui.
Įdiekite PythonOCC-Core per pip
pip install pythonocc-coreĮdiekite PythonOCC-Core per Conda
conda install -c conda-forge pythonocc-coreTaip pat galite įdiegti PythonOCC-Core per Conda naudodami šią komandą.
conda install -c 1adrianb face_alignmentGalite atsisiųsti sukompiliuotą bendrinamą biblioteką iš Github saugyklos.
Kurti ir valdyti 3D geometrijas naudojant Python
Atviro kodo PythonOCC-Core biblioteka suteikia visišką palaikymą 3D modelių kūrimui ir valdymui Python programose. Be to, biblioteka siūlo platų įrankių rinkinį 3D geometrinių formų kūrimui ir manipuliavimui, įskaitant taškus, kreives, paviršius ir kūnus. Ji teikia platų algoritmų spektrą sudėtingų objektų konstravimui ir modifikavimui, tokių kaip Boole operacijos, apvalinimas ir šlaitavimas. Žemiau pateiktas pavyzdys parodo, kaip programinės įrangos kūrėjai gali sukurti pagrindinės geometrijos ribinius dėžutes naudojant Python komandas.
Kaip apskaičiuoti ir rodyti ribines dėžutes Python programose?
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 automatizavimas naudojant Python API
Atviro kodo PythonOCC-Core biblioteka suteikė labai naudingų funkcijų, leidžiančių tvarkyti įvairias su CAD schemomis susijusias užduotis. Biblioteka palaiko įvairius CAD dažnai naudojamus failų formatus, įskaitant STEP, IGES, STL ir BREP. Biblioteka leidžia kūrėjams automatizuoti pasikartojančias CAD užduotis, tokias kaip parametrinių dizainų generavimas, geometrinių transformacijų atlikimas ir geometrinės analizės vykdymas. Ji teikia aukšto lygio API, supaprastinantį CAD darbo srautų įgyvendinimą, todėl tai yra idealus pasirinkimas kuriant CAD automatizavimo įrankius.
Kaip sukurti formą ir eksportuoti ją į CAD STEP failų formatą naudojant 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")