OCCT

 
 

Plateforme open source C++ de modélisation 3D et de simulation

Créez des modèles 3D paramétriques, simulez la physique et visualisez les données CAO via une bibliothèque C++ open source.

Qu’est-ce que OCCT ?

Open CASCADE Technology (OCCT) est une plateforme de développement logiciel C++ open source puissante pour les applications 3D de CAO, FAO et IAE. Elle fournit des bibliothèques complètes pour la modélisation géométrique, la génération de maillages, l'échange de données (STEP, IGES, STL), la visualisation et la simulation. Conçue pour les flux de travail d'ingénierie et de fabrication de haute précision, OCCT permet aux développeurs de créer des outils de modélisation paramétrique robustes, des visualiseurs CAO et des applications de simulation avec des capacités conformes aux normes de l'industrie.

La bibliothèque prend en charge des opérations avancées de modélisation solide telles que les opérations booléennes, les congés, les chanfreins et les balayages, ainsi que la modélisation de surfaces, la géométrie NURBS et la modélisation paramétrique de fonctionnalités. L'architecture modulaire d'OCCT comprend des boîtes à outils dédiées à la topologie, la géométrie, la visualisation, l'échange de données et le cadre d'application, ce qui la rend idéale pour le développement de logiciels d'ingénierie complexes. Grâce à un soutien communautaire actif et à des versions régulières, OCCT sert de base à de nombreuses applications 3D commerciales et de recherche à l'échelle mondiale.

Previous Next

Premiers pas avec OCCT

OCCT est distribué sous forme de bibliothèques C++ open source et peut être installé via une compilation à partir des sources ou des binaires précompilés. La façon la plus simple de commencer est de télécharger la dernière version depuis le dépôt [OCCT GitHub](https://github.com/Open-Cascade-SAS/OCCT). Pour les utilisateurs Linux, de nombreuses distributions fournissent des paquets OCCT via leurs gestionnaires de paquets (par exemple, `apt install libocct-dev` sur Ubuntu). Les développeurs Windows peuvent utiliser des binaires précompilés ou compiler à partir des sources en utilisant CMake et Visual Studio. La documentation officielle comprend des guides de construction étape par étape pour toutes les plateformes prises en charge.

Installer OCCT via le gestionnaire de paquets (Ubuntu/Debian)

sudo apt update
sudo apt install libocct-dev libocct-data-exchange-dev libocct-visualization-dev

Opérations booléennes et modélisation solide

OCCT fournit des opérations booléennes robustes (union, intersection, soustraction) pour les solides 3D, permettant la création de formes complexes à partir de primitives de base. Son noyau de topologie prend en charge des fonctionnalités avancées telles que les congés, les chanfreins, les trous et les nervures avec une grande précision. Les développeurs peuvent créer des fonctionnalités paramétriques en utilisant les API C++ et les intégrer aux flux de travail CAD. La bibliothèque gère efficacement les structures de données topologiques, prenant en charge à la fois la modélisation B-Rep et la géométrie solide constructive (CSG). Cela fait d'OCCT un choix idéal pour développer des applications d'ingénierie nécessitant des calculs géométriques précis et une modélisation basée sur les caractéristiques.

Effectuer l'union booléenne de deux solides via C++

TopoDS_Shape box1 = BRepPrimAPI_MakeBox(10, 10, 10);
TopoDS_Shape box2 = BRepPrimAPI_MakeBox(20, 5, 5);
BRepAlgoAPI_Fuse fuseOp(box1, box2);
if (fuseOp.IsDone()) {
    TopoDS_Shape result = fuseOp.Shape();
    // Save or visualize result
}

Échange de données (STEP & IGES)

OCCT comprend des modules d'échange de données complets prenant en charge les formats normés ISO tels que STEP (AP203/AP214) et IGES. Ces modules permettent l'importation et l'exportation de modèles CAO tout en préservant la géométrie, la topologie, les métadonnées et la structure du produit. Le lecteur/écrivain STEP prend en charge la conformité complète à l'AP214 pour les données de conception automobile et mécanique. Les développeurs peuvent traiter programmatiquement les modèles importés, extraire les faces/arêtes, modifier la géométrie et réexporter dans différents formats. Cette interopérabilité est cruciale pour la collaboration CAO entre différents écosystèmes logiciels et garantit une intégration transparente dans les flux de travail de conception existants.

Importer un fichier STEP et l'exporter en STL via C++

Handle(STEPCAFControl_Reader) reader = new STEPCAFControl_Reader();
IFSelect_ReturnStatus status = reader->ReadFile("model.step");
if (status == IFSelect_RetDone) {
    Handle(TDocStd_Document) doc;
    reader->Transfer(doc);
    // Export to STL
    STEPCAFControl_Writer writer;
    writer.Write("output.stl");
}

Visualisation 3D et rendu

Le kit d'outils de visualisation d'OCCT offre de puissantes capacités de rendu 3D avec prise en charge d'OpenGL accéléré par le matériel, du ray tracing et d'un éclairage avancé. Les développeurs peuvent créer des visionneuses CAD interactives avec des outils de sélection, de mise en évidence et de navigation. Le kit comprend des classes pour la gestion des vues 3D, la manipulation du graphe de scène et des pipelines de rendu personnalisés. Des fonctionnalités telles que l'anticrénelage, la transparence et les modes d'affichage fil de fer/ligne cachée garantissent une visualisation de qualité professionnelle. Cela rend OCCT adapté au développement d'outils de visualisation d'ingénierie, d'applications de réalité virtuelle et de navigateurs de résultats de simulation avec des performances en temps réel.

Créer un visualiseur 3D interactif avec OCCT

Handle(V3d_Viewer) aViewer = new V3d_Viewer();
Handle(AIS_InteractiveContext) aContext = new AIS_InteractiveContext(aViewer);
Handle(AIS_Shape) anActor = new AIS_Shape(aShape);
aContext->Display(anActor, Standard_True);
// Enable rotation, zoom, pan
aViewer->InitActiveView();
aViewer->ActiveView()->SetDegenerateModeOn();

Génération de maillage et analyse

OCCT comprend des outils de génération de maillages qui convertissent les modèles B-Rep en maillages triangulés pour la simulation et la visualisation. Le module Mesh prend en charge le maillage adaptatif avec un contrôle de la précision de la tessellation des arêtes et des faces. Les développeurs peuvent générer des maillages d'éléments finis pour l'analyse CAE, calculer des métriques de qualité du maillage et effectuer des opérations de maillage telles que le raffinement et le lissage. La bibliothèque fournit également des outils d'échange de données de maillage (STL, OBJ) et l'intégration avec des solveurs FEM externes. Cette capacité relie la conception CAO et les flux de travail de simulation, permettant le développement de bout en bout d'applications d'analyse d'ingénierie.

Générer un maillage à partir d'une forme B-Rep via C++

BRepMesh_IncrementalMesh aMesh(aShape, 0.01);
// Access mesh data
TopExp_Explorer anExp(aShape, TopAbs_FACE);
for (; anExp.More(); anExp.Next()) {
    TopoDS_Face aFace = TopoDS::Face(anExp.Current());
    Handle(Poly_Triangulation) aTriangulation =
        BRep_Tool::Triangulation(aFace, aLoc);
    if (!aTriangulation.IsNull()) {
        // Process triangulation nodes and triangles
    }
}
 Français