
OCCT
Open Source C++ platforma pro 3D modelování a simulaci
Vytvářejte parametrické 3D modely, simulujte fyziku a vizualizujte CAD data pomocí Open Source C++ knihovny.
Co je OCCT?
Open CASCADE Technology (OCCT) je výkonná open-source platforma pro vývoj softwaru v C++ určená pro 3D CAD, CAM a CAE aplikace. Poskytuje komplexní knihovny pro geometrické modelování, generování sítí, výměnu dat (STEP, IGES, STL), vizualizaci a simulaci. Navržena pro vysoce přesné inženýrské a výrobní pracovní postupy, OCCT umožňuje vývojářům vytvářet robustní nástroje parametrického modelování, CAD prohlížeče a simulační aplikace s průmyslovými standardy.
Knihovna podporuje pokročilé operace pevného modelování, jako jsou Booleovské operace, zaoblení, zkosení a tahy, spolu s povrchovým modelováním, geometrií NURBS a parametrickým modelováním funkcí. Modulární architektura OCCT zahrnuje specializované sady nástrojů pro topologii, geometrii, vizualizaci, výměnu dat a aplikační rámec, což ji činí ideální pro vývoj komplexního inženýrského softwaru. Díky aktivní podpoře komunity a pravidelným vydáním slouží OCCT jako základ pro řadu komerčních a výzkumných 3D aplikací po celém světě.
Začínáme s OCCT
OCCT je distribuován jako open-source knihovny v C++ a lze jej nainstalovat buď ze zdrojového kódu, nebo pomocí předkompilovaných binárek. Nejjednodušší způsob, jak začít, je stáhnout nejnovější verzi z repozitáře [OCCT GitHub](https://github.com/Open-Cascade-SAS/OCCT). Pro uživatele Linuxu mnoho distribucí poskytuje balíčky OCCT prostřednictvím svých správců balíčků (např. `apt install libocct-dev` na Ubuntu). Vývojáři pro Windows mohou použít předpřipravené binárky nebo kompilovat ze zdroje pomocí CMake a Visual Studio. Oficiální dokumentace obsahuje podrobné průvodce krok za krokem pro všechny podporované platformy.
Instalace OCCT pomocí správce balíčků (Ubuntu/Debian)
sudo apt update
sudo apt install libocct-dev libocct-data-exchange-dev libocct-visualization-devBooleovské operace a modelování těles
OCCT poskytuje robustní Booleovské operace (sjednocení, průnik, odčítání) pro 3D tělesa, umožňující tvorbu složitých tvarů z základních primitiv. Jeho topologické jádro podporuje pokročilé funkce jako zaoblení, zkosení, otvory a výztuhy s vysokou přesností. Vývojáři mohou vytvářet parametrické prvky pomocí C++ API a integrovat je do CAD pracovních postupů. Knihovna efektivně zpracovává topologické datové struktury a podporuje jak B-Rep, tak konstrukční solidní geometrii (CSG) modelovací přístupy. To činí OCCT ideálním pro vývoj inženýrských aplikací vyžadujících přesné geometrické výpočty a modelování založené na funkcích.
Proveďte Booleovské sjednocení dvou těles pomocí 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
}Výměna dat (STEP a IGES)
OCCT obsahuje komplexní moduly pro výměnu dat podporující formáty podle ISO standardů, jako jsou STEP (AP203/AP214) a IGES. Tyto moduly umožňují import a export CAD modelů při zachování geometrie, topologie, metadat a struktury produktu. Čtečka/zapisovač STEP podporuje plnou shodu s AP214 pro data automobilového a mechanického designu. Vývojáři mohou programově zpracovávat importované modely, extrahovat plochy/hranice, upravovat geometrii a znovu exportovat do různých formátů. Tato interoperabilita je klíčová pro spolupráci v CAD napříč různými softwarovými ekosystémy a zajišťuje bezproblémovou integraci do existujících pracovních postupů návrhu.
Importujte STEP soubor a exportujte jako STL pomocí 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");
}3D vizualizace a renderování
Vizualizační toolkit OCCT poskytuje výkonné 3D renderovací schopnosti s podporou hardwarově akcelerovaného OpenGL, ray tracingu a pokročilého osvětlení. Vývojáři mohou vytvářet interaktivní CAD prohlížeče s výběrem, zvýrazněním a navigačními nástroji. Toolkit zahrnuje třídy pro správu 3D pohledu, manipulaci se scénovým grafem a vlastní renderovací pipeline. Funkce jako anti-aliasing, průhlednost a režimy zobrazení drátěného modelu/skrytých čar zajišťují vizualizaci profesionální kvality. To činí OCCT vhodným pro vývoj inženýrských vizualizačních nástrojů, aplikací virtuální reality a prohlížečů výsledků simulací s výkonem v reálném čase.
Vytvořte interaktivní 3D prohlížeč s 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();Generování sítí a analýza
OCCT zahrnuje nástroje pro generování sítí, které převádějí B-Rep modely na triangulované sítě pro simulaci a vizualizaci. Modul Mesh podporuje adaptivní síťování s řízením přesnosti tessellace hran a ploch. Vývojáři mohou generovat sítě konečných prvků pro CAE analýzu, vypočítávat metriky kvality sítě a provádět operace se sítí, jako je zjemňování a vyhlazování. Knihovna také poskytuje nástroje pro výměnu dat sítí (STL, OBJ) a integraci s externími FEM řešiči. Tato schopnost propojuje CAD návrh a simulační pracovní postupy, umožňující vývoj aplikací pro inženýrskou analýzu od začátku do konce.
Generujte síť z B-Rep tvaru pomocí 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
}
}