1. Produkte
  2.   CAD
  3.   C++
  4.   OCCT

OCCT

 
 

Open‑Source‑C++‑3D‑Modellierungs‑&‑Simulationsplattform

Erstellen Sie parametrische 3D‑Modelle, simulieren Sie Physik & visualisieren Sie CAD‑Daten über eine Open‑Source‑C++‑Bibliothek.

Was ist OCCT?

Open CASCADE Technology (OCCT) ist eine leistungsstarke Open‑Source‑C++‑Entwicklungsplattform für 3D‑CAD-, CAM‑ und CAE‑Anwendungen. Sie bietet umfassende Bibliotheken für geometrische Modellierung, Netzgenerierung, Datenaustausch (STEP, IGES, STL), Visualisierung und Simulation. Entwickelt für hochpräzise Ingenieur‑ und Fertigungsabläufe ermöglicht OCCT Entwicklern, robuste parametrische Modellierungswerkzeuge, CAD‑Betrachter und Simulationsanwendungen mit branchenüblichen Funktionen zu erstellen.

Die Bibliothek unterstützt fortgeschrittene Volumenmodellierungsoperationen wie Boolesche Operationen, Rundungen, Fasen und Sweeps sowie Oberflächenmodellierung, NURBS‑Geometrie und parametrische Merkmalmodellierung. Die modulare Architektur von OCCT umfasst dedizierte Toolkits für Topologie, Geometrie, Visualisierung, Datenaustausch und Anwendungsframework, was sie ideal für die Entwicklung komplexer ingenieurtechnischer Software macht. Mit aktiver Community‑Unterstützung und regelmäßigen Releases dient OCCT als Grundlage für zahlreiche kommerzielle und forschungsorientierte 3D‑Anwendungen weltweit.

Previous Next

Erste Schritte mit OCCT

OCCT wird als Open-Source-C++-Bibliotheken bereitgestellt und kann über den Quellcode-Build oder vorgefertigte Binärdateien installiert werden. Der einfachste Weg, um zu beginnen, ist das Herunterladen des neuesten Releases aus dem [OCCT GitHub](https://github.com/Open-Cascade-SAS/OCCT)-Repository. Für Linux‑Benutzer stellen viele Distributionen OCCT‑Pakete über ihre Paketmanager bereit (z. B. `apt install libocct-dev` unter Ubuntu). Windows‑Entwickler können vorgefertigte Binärdateien verwenden oder aus dem Quellcode mit CMake und Visual Studio kompilieren. Die offizielle Dokumentation enthält schritt‑für‑Schritt‑Build‑Anleitungen für alle unterstützten Plattformen.

OCCT über Paketmanager installieren (Ubuntu/Debian)

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

Boolesche Operationen & Festkörpermodellierung

OCCT bietet robuste Boolesche Operationen (Vereinigung, Schnittmenge, Subtraktion) für 3D‑Körper, die die Erstellung komplexer Formen aus Grundprimitiven ermöglichen. Sein Topologie‑Kernel unterstützt erweiterte Funktionen wie Rundungen, Fasen, Bohrungen und Verstärkungen mit hoher Präzision. Entwickler können parametrische Features mit C++‑APIs erstellen und in CAD‑Workflows integrieren. Die Bibliothek verarbeitet topologische Datenstrukturen effizient und unterstützt sowohl B‑Rep‑ als auch konstruktive Festkörpergeometrie (CSG)‑Modellierungsansätze. Dies macht OCCT ideal für die Entwicklung von Ingenieuranwendungen, die präzise geometrische Berechnungen und feature‑basierte Modellierung erfordern.

Boolesche Vereinigung von zwei Festkörpern mit C++ durchführen

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
}

Datenaustausch (STEP & IGES)

OCCT enthält umfassende Daten­austausch­module, die ISO‑Standardformate wie STEP (AP203/AP214) und IGES unterstützen. Diese Module ermöglichen das Importieren und Exportieren von CAD‑Modellen, wobei Geometrie, Topologie, Metadaten und Produktstruktur erhalten bleiben. Der STEP‑Reader/Writer unterstützt die vollständige AP214‑Konformität für Daten aus dem Automobil‑ und Maschinendesign. Entwickler können importierte Modelle programmgesteuert verarbeiten, Flächen/Kanten extrahieren, Geometrie ändern und in verschiedene Formate erneut exportieren. Diese Interoperabilität ist entscheidend für die CAD‑Zusammenarbeit über verschiedene Software‑Ökosysteme hinweg und gewährleistet eine nahtlose Integration in bestehende Design‑Workflows.

STEP-Datei importieren und als STL über C++ exportieren

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");
}

3D-Visualisierung & Rendering

Das Visualisierungstoolkit von OCCT bietet leistungsstarke 3D-Rendering-Funktionen mit Unterstützung für hardwarebeschleunigtes OpenGL, Raytracing und fortschrittliche Beleuchtung. Entwickler können interaktive CAD-Viewer mit Auswahl, Hervorhebung und Navigationswerkzeugen erstellen. Das Toolkit enthält Klassen für die 3D-Ansichtsverwaltung, die Szenengraphverarbeitung und benutzerdefinierte Rendering-Pipelines. Funktionen wie Antialiasing, Transparenz und Drahtgitter-/Verdeckte-Linien-Anzeigemodi gewährleisten eine Visualisierung von professioneller Qualität. Dies macht OCCT geeignet für die Entwicklung von Engineering-Visualisierungstools, Virtual-Reality-Anwendungen und Simulations-Ergebnisbrowsern mit Echtzeitleistung.

Interaktiven 3D-Viewer mit OCCT erstellen

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();

Netzgenerierung & Analyse

OCCT enthält Werkzeuge zur Mesh-Erstellung, die B-Rep-Modelle in triangulierte Netze für Simulation und Visualisierung umwandeln. Das Mesh-Modul unterstützt adaptives Meshing mit Kontrolle über die Genauigkeit der Kant- und Flächentessellation. Entwickler können Finite-Elemente-Netze für CAE-Analysen erzeugen, Mesh-Qualitätsmetriken berechnen und Mesh-Operationen wie Verfeinerung und Glättung durchführen. Die Bibliothek bietet zudem Werkzeuge zum Austausch von Mesh-Daten (STL, OBJ) und zur Integration mit externen FEM-Lösern. Diese Fähigkeit verbindet CAD-Design und Simulations-Workflows und ermöglicht die End-to-End-Entwicklung von Anwendungen für ingenieurtechnische Analysen.

Netz aus B-Rep-Form über C++ erzeugen

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
    }
}
 Deutsch