
OCCT
Öppen källkod C++ 3D-modellering & simuleringsplattform
Skapa parametriska 3D-modeller, simulera fysik och visualisera CAD-data via öppen källkod C++-bibliotek.
Vad är OCCT?
Open CASCADE Technology (OCCT) är en kraftfull öppen källkod C++-utvecklingsplattform för 3D CAD-, CAM- och CAE-applikationer. Den tillhandahåller omfattande bibliotek för geometrisk modellering, meshgenerering, datautbyte (STEP, IGES, STL), visualisering och simulering. Designad för högprecisions‑ingenjörs‑ och tillverkningsarbetsflöden möjliggör OCCT för utvecklare att bygga robusta parametriska modelleringsverktyg, CAD‑visare och simuleringsapplikationer med branschstandardfunktioner.
Biblioteket stödjer avancerade solidmodelleringsoperationer som booleska operationer, avrundningar, avfasningar och svepningar, samt ytmotmodellering, NURBS-geometri och parametrisk funktionsmodellering. OCCT:s modulära arkitektur inkluderar dedikerade verktygssatser för topologi, geometri, visualisering, datautbyte och applikationsramverk, vilket gör det idealiskt för komplex mjukvaruutveckling inom ingenjörsvetenskap. Med aktivt communitystöd och regelbundna releaser fungerar OCCT som grunden för många kommersiella och forskningsklassade 3D-applikationer världen över.
Komma igång med OCCT
OCCT distribueras som öppen källkod C++-bibliotek och kan installeras via källkodsbyggnad eller förkompilerade binärer. Det enklaste sättet att komma igång är att ladda ner den senaste versionen från [OCCT GitHub](https://github.com/Open-Cascade-SAS/OCCT)‑arkivet. För Linux‑användare tillhandahåller många distributioner OCCT‑paket via sina paket‑hanterare (t.ex. `apt install libocct-dev` på Ubuntu). Windows‑utvecklare kan använda förbyggda binärer eller kompilera från källkod med CMake och Visual Studio. Den officiella dokumentationen innehåller steg‑för‑steg‑byggguider för alla stödda plattformar.
Installera OCCT via paketchef (Ubuntu/Debian)
sudo apt update
sudo apt install libocct-dev libocct-data-exchange-dev libocct-visualization-devBooleska operationer & solidmodellering
OCCT tillhandahåller robusta booleska operationer (union, intersektion, subtraktion) för 3D-solider, vilket möjliggör skapande av komplexa former från grundläggande primitiva former. Dess topologikärna stöder avancerade funktioner som avrundningar, avfasningar, hål och ribbor med hög precision. Utvecklare kan skapa parametriska funktioner med C++-API:er och integrera dem i CAD-arbetsflöden. Biblioteket hanterar topologiska datastrukturer effektivt och stödjer både B-Rep- och konstruktiv solidgeometri (CSG)-modellering. Detta gör OCCT idealiskt för att utveckla ingenjörsapplikationer som kräver precisa geometriska beräkningar och funktionsbaserad modellering.
Utför boolesk förening på två solider via 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
}Datautbyte (STEP & IGES)
OCCT inkluderar omfattande datautbytesmoduler som stödjer ISO-standardformat som STEP (AP203/AP214) och IGES. Dessa moduler möjliggör import och export av CAD-modeller samtidigt som geometri, topologi, metadata och produktstruktur bevaras. STEP-läsaren/skrivaren stödjer full AP214-efterlevnad för fordons- och mekanisk designdata. Utvecklare kan programmässigt bearbeta importerade modeller, extrahera ytor/kantsegment, modifiera geometri och återexportera i olika format. Denna interoperabilitet är avgörande för CAD-samarbete över olika mjukvaruekosystem och säkerställer sömlös integration i befintliga designarbetsflöden.
Importera STEP-fil och exportera som STL via 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-visualisering & rendering
OCCT:s visualiseringsverktygssats erbjuder kraftfulla 3D-renderingsmöjligheter med stöd för hårdvaruaccelererad OpenGL, ray tracing och avancerad belysning. Utvecklare kan bygga interaktiva CAD-visare med urval, markering och navigationsverktyg. Verktygssatsen innehåller klasser för 3D-vyhantverk, scengrafshantering och anpassade renderingspipeline. Funktioner som kantutjämning, transparens och trådrams-/dolda linjemodeller säkerställer visualisering av professionell kvalitet. Detta gör OCCT lämplig för att utveckla ingenjörsvisualiseringsverktyg, virtuell verklighetsapplikationer och simuleringsresultatbläddrare med realtidsprestanda.
Skapa interaktiv 3D-visare med 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();Meshgenerering & analys
OCCT inkluderar verktyg för meshgenerering som konverterar B-Rep-modeller till triangulerade meshar för simulering och visualisering. Mesh-modulen stöder adaptiv meshing med kontroll över kant- och yttessellationens noggrannhet. Utvecklare kan generera finita element‑meshar för CAE‑analys, beräkna meshkvalitetsmått och utföra meshoperationer som förfining och jämning. Biblioteket erbjuder också verktyg för meshdatautbyte (STL, OBJ) och integration med externa FEM‑lösare. Denna funktion förenar CAD‑design och simuleringsarbetsflöden, vilket möjliggör end‑to‑end‑utveckling av ingenjörsanalysapplikationer.
Generera mesh från B-Rep-form via 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
}
}