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

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ě.

Previous Next

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-dev

Booleovské 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
    }
}
 Čeština