1. Produkty
  2.   CHAM
  3.   C++
  4.   OCCT

OCCT

 
 

Otwarta platforma C++ do modelowania i symulacji 3D

Twórz parametryczne modele 3D, symuluj fizykę i wizualizuj dane CAD za pomocą otwarto‑źródłowej biblioteki C++.

Czym jest OCCT?

Open CASCADE Technology (OCCT) to potężna otwarto‑źródłowa platforma programistyczna w C++ przeznaczona do aplikacji 3D CAD, CAM i CAE. Dostarcza kompleksowe biblioteki do modelowania geometrycznego, generowania siatek, wymiany danych (STEP, IGES, STL), wizualizacji i symulacji. Zaprojektowana z myślą o wysokiej precyzji w procesach inżynieryjnych i produkcyjnych, OCCT umożliwia programistom tworzenie solidnych narzędzi modelowania parametrycznego, przeglądarek CAD oraz aplikacji symulacyjnych z funkcjami spełniającymi standardy branżowe.

Biblioteka obsługuje zaawansowane operacje modelowania brył, takie jak operacje boolowskie, zaokrąglenia (fillet), fazety (chamfer) i wyciągnięcia (sweep), a także modelowanie powierzchni, geometrię NURBS oraz modelowanie funkcji parametrycznych. Modułowa architektura OCCT zawiera dedykowane zestawy narzędzi do topologii, geometrii, wizualizacji, wymiany danych i frameworka aplikacji, co czyni ją idealną do tworzenia złożonego oprogramowania inżynieryjnego. Dzięki aktywnej społeczności i regularnym wydaniom, OCCT jest podstawą licznych komercyjnych i badawczych aplikacji 3D na całym świecie.

Previous Next

Rozpoczęcie pracy z OCCT

OCCT jest dystrybuowany jako otwarte biblioteki C++ i może być instalowany poprzez budowanie ze źródeł lub gotowe binaria. Najłatwiejszy sposób rozpoczęcia to pobranie najnowszej wersji z repozytorium [OCCT GitHub](https://github.com/Open-Cascade-SAS/OCCT). Dla użytkowników Linuxa wiele dystrybucji udostępnia pakiety OCCT poprzez ich menedżery pakietów (np. `apt install libocct-dev` na Ubuntu). Programiści Windows mogą używać gotowych binariów lub kompilować ze źródeł przy użyciu CMake i Visual Studio. Oficjalna dokumentacja zawiera szczegółowe przewodniki budowania krok po kroku dla wszystkich obsługiwanych platform.

Zainstaluj OCCT za pomocą menedżera pakietów (Ubuntu/Debian)

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

Operacje logiczne i modelowanie bryłowe

OCCT zapewnia solidne operacje boolowskie (sumowanie, przecięcie, odejmowanie) dla brył 3D, umożliwiając tworzenie złożonych kształtów z podstawowych prymitywów. Jego jądro topologiczne obsługuje zaawansowane funkcje, takie jak zaokrąglenia, fazety, otwory i żebra, z wysoką precyzją. Programiści mogą tworzyć cechy parametryczne przy użyciu interfejsów API C++ i integrować je w przepływach pracy CAD. Biblioteka efektywnie obsługuje struktury danych topologicznych, wspierając zarówno modelowanie B-Rep, jak i konstrukcyjne modelowanie brył (CSG). Dzięki temu OCCT jest idealny do opracowywania aplikacji inżynierskich wymagających precyzyjnych obliczeń geometrycznych i modelowania opartego na cechach.

Wykonaj operację sumy logicznej na dwóch bryłach w 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
}

Wymiana danych (STEP i IGES)

OCCT zawiera kompleksowe moduły wymiany danych obsługujące formaty zgodne ze standardem ISO, takie jak STEP (AP203/AP214) i IGES. Moduły te umożliwiają import i eksport modeli CAD, zachowując geometrię, topologię, metadane oraz strukturę produktu. Czytnik/zapisujący STEP obsługuje pełną zgodność z AP214 dla danych projektowych w przemyśle motoryzacyjnym i mechanicznym. Programiści mogą programowo przetwarzać zaimportowane modele, wyodrębniać powierzchnie/krawędzie, modyfikować geometrię i ponownie eksportować w różnych formatach. Ta interoperacyjność jest kluczowa dla współpracy CAD w różnych ekosystemach oprogramowania i zapewnia płynne włączenie do istniejących przepływów pracy projektowej.

Importuj plik STEP i eksportuj jako STL przy użyciu 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");
}

Wizualizacja 3D i renderowanie

Zestaw narzędzi wizualizacji OCCT zapewnia potężne możliwości renderowania 3D z obsługą przyspieszanego sprzętowo OpenGL, śledzenia promieni i zaawansowanego oświetlenia. Programiści mogą tworzyć interaktywne przeglądarki CAD z funkcjami wyboru, podświetlania i nawigacji. Zestaw narzędzi zawiera klasy do zarządzania widokiem 3D, obsługi grafu sceny oraz własnych potoków renderowania. Funkcje takie jak antyaliasing, przezroczystość oraz tryby wyświetlania siatki/ukrytych linii zapewniają wizualizację o jakości profesjonalnej. Dzięki temu OCCT nadaje się do opracowywania narzędzi wizualizacji inżynierskiej, aplikacji wirtualnej rzeczywistości oraz przeglądarek wyników symulacji z wydajnością w czasie rzeczywistym.

Utwórz interaktywną przeglądarkę 3D z 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();

Generowanie siatek i analiza

OCCT zawiera narzędzia do generowania siatek, które konwertują modele B-Rep na trójkątne siatki do symulacji i wizualizacji. Moduł Mesh obsługuje adaptacyjne siatkowanie z kontrolą dokładności teselacji krawędzi i powierzchni. Programiści mogą generować siatki elementów skończonych do analizy CAE, obliczać metryki jakości siatki oraz wykonywać operacje na siatce, takie jak refinowanie i wygładzanie. Biblioteka zapewnia także narzędzia do wymiany danych siatek (STL, OBJ) i integracji z zewnętrznymi solverami FEM. Ta funkcjonalność łączy projektowanie CAD z przepływami pracy symulacji, umożliwiając kompleksowy rozwój aplikacji analizy inżynierskiej.

Generuj siatkę z kształtu B-Rep przy użyciu 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
    }
}
 Polski