Avoimen lähdekoodin Python-kirjasto 3D-mallinnukseen ja tietojenvaihtoon
Ilmainen Python-kirjasto 3D-mallinnukseen ja tietojenvaihdon käsittelyyn. Se mahdollistaa 3D CAD-, BIM-, PLM- ja CAM-tiedostomuotojen kanssa työskentelyn Python API:n kautta verkossa.
Mikä on PythonOCC-Core -kirjasto?
PythonOCC-Core on ilmainen 3D-mallinnus- ja CAD-automaatio kirjasto. Se käyttää Pythonia, laajasti käytettyä ohjelmointikieltä, OpenCASCADE Technology (OCCT) -ytimen päällä. Tämä yhdistelmä tarjoaa vahvan perustan monimutkaisten 3D-muotojen luomiseen, muokkaamiseen ja tutkimiseen. Yhdistämällä Pythonin helppokäyttöisyyden OCCT:n tehokkaisiin mallinnustyökaluihin, saat monipuolisen ja tehokkaan työkalun käyttöön. Intuitiivisen Python-käyttöliittymänsä ja laajan toiminnallisuuksien valikoimansa ansiosta kirjasto tarjoaa saumattoman kokemuksen sekä aloittelijoille että kokeneille kehittäjille alalla. Se antaa arkkitehdeille ja insinööreille, kuten sinulle, mahdollisuuden luoda parametrisia malleja, tuottaa rakennussuunnitelmia ja suorittaa rakenteellista analyysiä. Tämä työkalu parantaa suunnittelutyöskentelyä, mahdollistaa tarkan visualisoinnin ja tehokkaan tiimityön. Se on suosittu eri sektoreilla, kuten autoteollisuudessa, ilmailussa ja tuotesuunnittelussa, monimutkaisten 3D-mallien kehittämiseen ja hiomiseen. Tämän kirjaston avulla voit nopeuttaa prototyyppien, simulointien ja suunnittelu-analyysien toteuttamista, mikä yksinkertaistaa tuotekehitysprosessia.
PythonOCC-Core:n visualisointiominaisuudet ovat täydellisiä pelien ja virtuaalitodellisuuskokemusten luomiseen. Tämän työkalun avulla voit rakentaa mukaansatempaavia ympäristöjä, elävän näköisiä simulaatioita ja interaktiivisia seikkailuja. Lisäksi kirjasto tarjoaa olennaisia toimintoja, kuten työskentelyn lääketieteellisessä kuvantamisessa, 3D-geometrian käsittelyn, CAD-tietojen tuonnin ja viennin, kehittyneiden simulaatioiden suorittamisen 3D-malleilla, 3D-sisällön visualisoinnin verkkoselaimissa sekä 3D-kuvien esittelyn suosittujen Python GUI -käyttöliittymien kautta. Kirjasto näyttelee myös keskeistä roolia tieteellisessä tutkimuksessa, kuten laskennallisessa fysiikassa, materiaalitieteessä ja biolääketieteellisessä tekniikassa. Monet ohjelmistoprofessionaalit ja kehittäjät eri toimialoilla pitävät PythonOCC-Core:a houkuttelevana, koska se yhdistää Pythonin helppokäyttöisyyden ja OCCT:n voiman. PythonOCC-Core:n avulla voit lisätä luovuuttasi ja tehostaa monimutkaisia CAD-prosesseja. Tämä avaa uusia mahdollisuuksia innovaatioon ja tuottavuuteen 3D-mallinnuksessa ja -suunnittelussa.
Aloittaminen PythonOCC-Core:n kanssa
Helpoin tapa asentaa PythonOCC-Core:n vakaa julkaisu on käyttää pipiä. Käytä seuraavaa komentoa sujuvaa asennusta varten.
Asenna PythonOCC-Core pipin kautta
pip install pythonocc-coreAsenna PythonOCC-Core Condan kautta
conda install -c conda-forge pythonocc-coreVoit myös asentaa PythonOCC-Core:n Condan kautta käyttämällä seuraavaa komentoa.
conda install -c 1adrianb face_alignmentVoit ladata käännetyn jaetun kirjaston Github-varastosta.
Luo & hallitse 3D-geometrian Pythonin avulla
PythonOCC-Core -avoin lähdekoodikirjasto sisältää täyden tuen 3D-mallien luomiseen ja hallintaan Python-sovelluksissa. Lisäksi kirjasto tarjoaa laajan työkalupaketin 3D-geometristen muotojen, kuten pisteiden, käyrien, pintojen ja kappaleiden, luomiseen ja muokkaamiseen. Se tarjoaa laajan valikoiman algoritmeja monimutkaisten objektien rakentamiseen ja muokkaamiseen, kuten Boolen operaatioita, pyöristämistä ja viistämistä. Seuraava esimerkki näyttää, miten ohjelmistokehittäjät voivat luoda ydingeometrian rajaustilavuuksia Python-komentoja käyttäen.
Kuinka laskea ja näyttää rajauslaatikot Python-sovelluksissa?
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-automaatio Python API:n avulla
PythonOCC-Core -avoin lähdekoodikirjasto on tarjonnut erittäin hyödyllisiä ominaisuuksia CAD-diagrammeihin liittyvien erilaisten tehtävien käsittelyyn. Kirjasto tukee useita CAD:ssa yleisesti käytettyjä tiedostomuotoja, kuten STEP, IGES, STL ja BREP. Kirjasto mahdollistaa kehittäjille toistuvien CAD-tehtävien automatisoinnin, kuten parametristen suunnitelmien luomisen, geometristen muunnosten suorittamisen ja geometrisen analyysin tekemisen. Se tarjoaa korkean tason API:n, joka yksinkertaistaa CAD-työnkulkujen toteuttamista, tehden siitä ihanteellisen valinnan CAD-automaatio-työkalujen rakentamiseen.
Kuinka luoda muoto ja viedä se CAD STEP -tiedostomuotoon Python API:n kautta?
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")