1. Termékek
  2.   CAD
  3.   C++
  4.   OCCT

OCCT

 
 

Nyílt forráskódú C++ 3D modellező és szimulációs platform

Paraméteres 3D modellek építése, fizika szimulálása és CAD adatok megjelenítése nyílt forráskódú C++ könyvtáron keresztül.

Mi az OCCT?

Az Open CASCADE Technology (OCCT) egy erőteljes nyílt forráskódú C++ szoftverfejlesztő platform 3D CAD, CAM és CAE alkalmazásokhoz. Átfogó könyvtárakat biztosít geometriai modellezéshez, háló generáláshoz, adatcseréhez (STEP, IGES, STL), megjelenítéshez és szimulációhoz. Magas pontosságú mérnöki és gyártási munkafolyamatokra tervezve, az OCCT lehetővé teszi a fejlesztők számára robusztus paraméteres modellező eszközök, CAD nézők és szimulációs alkalmazások építését ipari szabványú képességekkel.

A könyvtár támogatja a fejlett szilárdtest modellezési műveleteket, mint a Boole-műveletek, lekerekítések, letörések és szaggatások, valamint a felületi modellezést, NURBS geometriát és paraméteres jellemző modellezést. Az OCCT moduláris architektúrája dedikált eszközkészleteket tartalmaz a topológia, geometria, megjelenítés, adatcsere és alkalmazáskeret számára, így ideálissá teszi összetett mérnöki szoftverfejlesztéshez. Aktív közösségi támogatással és rendszeres kiadásokkal az OCCT számos kereskedelmi és kutatási szintű 3D alkalmazás alapját képezi világszerte.

Previous Next

Az OCCT elkezdése

Az OCCT nyílt forráskódú C++ könyvtáraként kerül terjesztésre, és telepíthető forráskódból vagy előre lefordított binárisokból. A legegyszerűbb kezdés a legújabb kiadás letöltése a [OCCT GitHub](https://github.com/Open-Cascade-SAS/OCCT) tárolóból. Linux felhasználók számára számos disztribúció biztosít OCCT csomagokat a csomagkezelőiken keresztül (például `apt install libocct-dev` Ubuntu-n). Windows fejlesztők használhatnak előre lefordított binárisokat, vagy fordíthatják le a forráskódból a CMake és a Visual Studio segítségével. A hivatalos dokumentáció lépésről lépésre útmutatókat tartalmaz az összes támogatott platformhoz.

OCCT telepítése csomagkezelőn keresztül (Ubuntu/Debian)

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

Logikai műveletek és szilárdtest modellezés

Az OCCT robusztus logikai műveleteket (unió, metszet, kivonás) biztosít 3D szilárdtestekhez, lehetővé téve összetett alakzatok létrehozását alap primitívekből. Topológiai magja fejlett funkciókat támogat, mint például lekerekítések, letörések, lyukak és bordák nagy pontossággal. A fejlesztők paraméteres funkciókat hozhatnak létre C++ API-k használatával, és integrálhatják azokat CAD munkafolyamatokba. A könyvtár hatékonyan kezeli a topológiai adatstruktúrákat, támogatva mind a B-Rep, mind a konstrukciós szilárdtestgeometriát (CSG) modellezési megközelítéseket. Ez teszi az OCCT-t ideálissá olyan mérnöki alkalmazások fejlesztéséhez, amelyek pontos geometriai számításokat és funkcióalapú modellezést igényelnek.

Logikai unió végrehajtása két szilárdtesten C++-ban

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
}

Adatcsere (STEP és IGES)

Az OCCT átfogó adatcsere-modulokat tartalmaz, amelyek támogatják az ISO-szabványú formátumokat, mint a STEP (AP203/AP214) és az IGES. Ezek a modulok lehetővé teszik CAD modellek importálását és exportálását, miközben megőrzik a geometriát, topológiát, metaadatokat és a termékstruktúrát. A STEP olvasó/író teljes AP214 megfelelőséget biztosít az autóipari és gépészeti tervezési adatokhoz. A fejlesztők programozottan feldolgozhatják az importált modelleket, kinyerhetik a felületeket/élőket, módosíthatják a geometriát, és különböző formátumokba újraexportálhatják. Ez az interoperabilitás kulcsfontosságú a CAD együttműködéshez különböző szoftverkörnyezetek között, és biztosítja a zökkenőmentes integrációt a meglévő tervezési munkafolyamatokba.

STEP fájl importálása és STL exportálása C++-ban

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 megjelenítés és renderelés

Az OCCT vizualizációs eszközkészlete erőteljes 3D renderelési képességeket biztosít hardveresen gyorsított OpenGL, sugárkövetés és fejlett megvilágítás támogatásával. A fejlesztők interaktív CAD megjelenítőket építhetnek ki kiválasztási, kiemelési és navigációs eszközökkel. Az eszközkészlet osztályokat tartalmaz a 3D nézetkezeléshez, a jelenetgráf feldolgozásához és egyedi renderelési csővezetékekhez. Az olyan funkciók, mint az élsimítás, átlátszóság és a drótváz/rejtett vonal megjelenítési módok professzionális minőségű vizualizációt biztosítanak. Ez teszi az OCCT-t alkalmasá a mérnöki vizualizációs eszközök, virtuális valóság alkalmazások és szimulációs eredményböngészők valós idejű teljesítményű fejlesztésére.

Interaktív 3D megjelenítő létrehozása OCCT-vel

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

Hálókészítés és elemzés

Az OCCT tartalmaz háló generáló eszközöket, amelyek B-Rep modelleket alakítanak át háromszögelt hálókra szimuláció és megjelenítés céljából. A Mesh modul támogatja az adaptív hálózást, az él- és felület tesszelláció pontosságának szabályozásával. A fejlesztők véges elem hálókat hozhatnak létre CAE elemzéshez, számíthatnak háló minőségi mutatókat, és végezhetnek háló műveleteket, mint a finomítás és simítás. A könyvtár eszközöket biztosít a háló adatcseréhez (STL, OBJ) és külső FEM megoldókkal való integrációhoz. Ez a képesség összeköti a CAD tervezést és a szimulációs munkafolyamatokat, lehetővé téve a mérnöki elemzési alkalmazások végponttól végpontig terjedő fejlesztését.

Háló generálása B-Rep alakzatból C++-ban

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