Bibliothèque Python Open Source pour la modélisation 3D & les échanges de données
Bibliothèque Python gratuite pour la modélisation 3D et la gestion des échanges de données. Elle permet de travailler avec les formats de fichiers 3D CAD, BIM, PLM et CAM via l'API Python en ligne.
Qu'est-ce que la bibliothèque PythonOCC-Core ?
PythonOCC-Core est une bibliothèque gratuite de modélisation 3D et d'automatisation CAO. Elle utilise Python, un langage de programmation largement utilisé, au-dessus du noyau OpenCASCADE Technology (OCCT). Cette combinaison offre une base solide pour créer, modifier et étudier des formes 3D complexes. En combinant la facilité de Python avec les puissants outils de modélisation d'OCCT, vous obtenez un outil polyvalent et efficace à votre disposition. Grâce à son interface Python intuitive et à son ensemble étendu de fonctionnalités, la bibliothèque offre une expérience fluide tant pour les débutants que pour les développeurs expérimentés du domaine. Elle permet aux architectes et aux ingénieurs comme vous de concevoir des modèles paramétriques, de produire des plans de bâtiment et de réaliser des analyses structurelles. Cet outil améliore le flux de travail de conception, permettant une visualisation précise et un travail d'équipe efficace. Il est populaire dans divers secteurs tels que l'automobile, l'aérospatiale et la conception de produits pour développer et affiner des modèles 3D complexes. Avec cette bibliothèque, vous pouvez accélérer le prototypage, les simulations et l'analyse de conception, simplifiant ainsi le processus de développement de produit.
Les fonctionnalités de visualisation de PythonOCC-Core sont parfaites pour créer des jeux et des expériences de réalité virtuelle. Avec cet outil, vous pouvez construire des environnements immersifs, des simulations réalistes et des aventures interactives. Au-delà, la bibliothèque offre des fonctions essentielles telles que le travail avec l'imagerie médicale, la manipulation de géométrie 3D, l'importation et l'exportation de données CAD, l'exécution de simulations avancées sur des modèles 3D, la visualisation de contenu 3D dans les navigateurs web, et la présentation de visuels 3D via les interfaces graphiques Python populaires. La bibliothèque joue également un rôle crucial dans les domaines de recherche scientifique tels que la physique computationnelle, la science des matériaux et le génie biomédical. De nombreux professionnels du logiciel et développeurs dans différents secteurs trouvent PythonOCC-Core attrayant car il combine la facilité de Python et la puissance d'OCCT. Avec PythonOCC-Core, vous pouvez stimuler votre créativité et rationaliser des processus CAD complexes. Cela ouvre de nouvelles possibilités d'innovation et de productivité dans la modélisation et la conception 3D.
Premiers pas avec PythonOCC-Core
La façon la plus simple d'installer la version stable de PythonOCC-Core est d'utiliser pip. Veuillez utiliser la commande suivante pour une installation fluide.
Installer PythonOCC-Core via pip
pip install pythonocc-coreInstaller PythonOCC-Core via Conda
conda install -c conda-forge pythonocc-coreVous pouvez également installer PythonOCC-Core via Conda en utilisant la commande suivante.
conda install -c 1adrianb face_alignmentVous pouvez télécharger la bibliothèque partagée compilée depuis le dépôt Github.
Créer et gérer des géométries 3D via Python
La bibliothèque open source PythonOCC-Core inclut une prise en charge complète de la création et de la gestion de modèles 3D dans les applications Python. De plus, la bibliothèque offre un ensemble étendu d'outils pour créer et manipuler des formes géométriques 3D, y compris les points, les courbes, les surfaces et les solides. Elle fournit une large gamme d'algorithmes pour construire et modifier des objets complexes, tels que les opérations booléennes, les arrondis et les chanfreins. L'exemple suivant montre comment les développeurs peuvent créer des boîtes englobantes de géométrie de base à l'aide de commandes Python.
Comment calculer et afficher les boîtes englobantes dans les applications 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)
Automatisation CAO avec l'API Python
La bibliothèque open source PythonOCC-Core offre des fonctionnalités très utiles pour gérer diverses tâches liées aux diagrammes CAO. La bibliothèque prend en charge plusieurs formats de fichiers couramment utilisés en CAO, notamment STEP, IGES, STL et BREP. La bibliothèque permet aux développeurs d'automatiser les tâches répétitives de CAO, telles que la génération de conceptions paramétriques, l'exécution de transformations géométriques et la réalisation d'analyses géométriques. Elle fournit une API de haut niveau qui simplifie la mise en œuvre des flux de travail CAO, ce qui en fait un choix idéal pour créer des outils d'automatisation CAO.
Comment créer une forme et l'exporter au format CAD STEP via 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")