Libreria Python Open Source per la Modellazione 3D e lo Scambio Dati
Libreria Python gratuita per la modellazione 3D e la gestione dello scambio dati. Consente di lavorare con formati di file 3D CAD, BIM, PLM e CAM tramite API Python online.
Che cos'è la libreria PythonOCC-Core?
PythonOCC-Core è una libreria gratuita per la modellazione 3D e l'automazione CAD. Utilizza Python, un linguaggio di programmazione ampiamente usato, sopra il kernel OpenCASCADE Technology (OCCT). Questa combinazione offre una solida base per creare, modificare e studiare forme 3D complesse. Unendo la semplicità di Python con gli potenti strumenti di modellazione di OCCT, ottieni uno strumento versatile ed efficace a tua disposizione. Con la sua interfaccia Python intuitiva e un ampio set di funzionalità, la libreria fornisce un'esperienza fluida sia per i principianti sia per gli sviluppatori esperti del settore. Essa consente a architetti e ingegneri come te di realizzare modelli parametrici, produrre layout edilizi e condurre analisi strutturali. Questo strumento migliora il flusso di lavoro di progettazione, permettendo una visualizzazione precisa e una collaborazione efficace. È popolare in vari settori come automotive, aerospaziale e design di prodotto per lo sviluppo e la raffinazione di modelli 3D complessi. Con questa libreria, puoi accelerare la prototipazione, le simulazioni e l'analisi di progetto, semplificando così il processo di sviluppo del prodotto.
Le funzionalità di visualizzazione di PythonOCC-Core sono perfette per creare giochi e esperienze di realtà virtuale. Con questo strumento, puoi costruire ambienti coinvolgenti, simulazioni realistiche e avventure interattive. Inoltre, la libreria offre funzioni essenziali come la gestione dell'imaging medico, la manipolazione della geometria 3D, l'importazione e l'esportazione di dati CAD, l'esecuzione di simulazioni avanzate su modelli 3D, la visualizzazione di contenuti 3D nei browser web e la presentazione di visualizzazioni 3D tramite le popolari GUI Python. La libreria svolge anche un ruolo fondamentale nella ricerca scientifica in settori come la fisica computazionale, la scienza dei materiali e l'ingegneria biomedica. Molti professionisti del software e sviluppatori in diversi settori trovano PythonOCC-Core attraente perché combina la semplicità di Python con la potenza di OCCT. Con PythonOCC-Core, puoi potenziare la tua creatività e semplificare processi CAD complessi. Questo apre nuove possibilità per l'innovazione e la produttività nella modellazione e progettazione 3D.
Iniziare con PythonOCC-Core
Il modo più semplice per installare la versione stabile di PythonOCC-Core è utilizzare pip. Per favore, usa il comando seguente per un'installazione senza problemi.
Installa PythonOCC-Core via pip
pip install pythonocc-coreInstalla PythonOCC-Core via Conda
conda install -c conda-forge pythonocc-corePuoi anche installare PythonOCC-Core tramite Conda usando il seguente comando.
conda install -c 1adrianb face_alignmentPuoi scaricare la libreria condivisa compilata dal repository Github.
Creare e gestire geometrie 3D con Python
La libreria open source PythonOCC-Core include un supporto completo per la creazione e la gestione di modelli 3D all'interno delle applicazioni Python. Inoltre, la libreria offre un ampio set di strumenti per creare e manipolare forme geometriche 3D, inclusi punti, curve, superfici e solidi. Fornisce una vasta gamma di algoritmi per costruire e modificare oggetti complessi, come operazioni booleane, arrotondamenti e smussature. L'esempio seguente mostra come gli sviluppatori software possano creare bounding box di geometria di base utilizzando comandi Python.
Come calcolare e visualizzare le bounding box nelle app 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)
Automazione CAD usando l'API Python
La libreria open source PythonOCC-Core ha fornito funzionalità molto utili per gestire varie attività legate ai diagrammi CAD. La libreria supporta diversi formati di file comunemente usati nel CAD, tra cui STEP, IGES, STL e BREP. La libreria consente agli sviluppatori di automatizzare compiti CAD ripetitivi, come la generazione di progetti parametrici, l'esecuzione di trasformazioni geometriche e l'esecuzione di analisi geometriche. Fornisce un'API di alto livello che semplifica l'implementazione dei flussi di lavoro CAD, rendendola una scelta ideale per costruire strumenti di automazione CAD.
Come creare una forma ed esportarla nel formato file CAD STEP tramite l'API Python?
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")