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

OCCT

 
 

Piattaforma Open Source C++ per Modellazione e Simulazione 3D

Crea Modelli 3D Parametrici, Simula la Fisica e Visualizza i Dati CAD tramite Libreria C++ Open Source.

Che cos'è OCCT?

Open CASCADE Technology (OCCT) è una potente piattaforma di sviluppo software open-source in C++ per applicazioni CAD 3D, CAM e CAE. Fornisce librerie complete per la modellazione geometrica, la generazione di mesh, lo scambio di dati (STEP, IGES, STL), la visualizzazione e la simulazione. Progettata per flussi di lavoro di ingegneria e produzione ad alta precisione, OCCT consente agli sviluppatori di creare strumenti di modellazione parametrica robusti, visualizzatori CAD e applicazioni di simulazione con capacità standard del settore.

La libreria supporta operazioni avanzate di modellazione solida come operazioni booleane, raccordi, smussi e sweep, insieme alla modellazione di superfici, geometria NURBS e modellazione parametrica delle caratteristiche. L'architettura modulare di OCCT include toolkit dedicati per topologia, geometria, visualizzazione, scambio dati e framework applicativo, rendendola ideale per lo sviluppo di software ingegneristico complesso. Con il supporto attivo della community e rilasci regolari, OCCT funge da base per numerose applicazioni 3D commerciali e di ricerca a livello mondiale.

Previous Next

Iniziare con OCCT

OCCT è distribuito come librerie C++ open-source e può essere installato tramite compilazione dal sorgente o binari precompilati. Il modo più semplice per iniziare è scaricare l'ultima versione dal repository [OCCT GitHub](https://github.com/Open-Cascade-SAS/OCCT). Per gli utenti Linux, molte distribuzioni forniscono pacchetti OCCT tramite i loro gestori di pacchetti (ad esempio `apt install libocct-dev` su Ubuntu). Gli sviluppatori Windows possono utilizzare binari precompilati o compilare dal sorgente usando CMake e Visual Studio. La documentazione ufficiale include guide passo‑passo per la compilazione su tutte le piattaforme supportate.

Installa OCCT tramite gestore pacchetti (Ubuntu/Debian)

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

Operazioni booleane e modellazione solida

OCCT fornisce robuste operazioni booleane (unione, intersezione, sottrazione) per solidi 3D, consentendo la creazione di forme complesse a partire da primitive di base. Il suo kernel di topologia supporta funzionalità avanzate come raccordi, smussi, fori e nervature con alta precisione. Gli sviluppatori possono creare funzionalità parametriche utilizzando le API C++ e integrarle nei flussi di lavoro CAD. La libreria gestisce efficientemente le strutture dati topologiche, supportando sia la modellazione B-Rep che quella di geometria solida costruttiva (CSG). Questo rende OCCT ideale per lo sviluppo di applicazioni ingegneristiche che richiedono calcoli geometrici precisi e modellazione basata su feature.

Esegui l'unione booleana di due solidi tramite 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
}

Scambio dati (STEP e IGES)

OCCT include moduli completi di scambio dati che supportano formati standard ISO come STEP (AP203/AP214) e IGES. Questi moduli consentono l'importazione e l'esportazione di modelli CAD preservando geometria, topologia, metadati e struttura del prodotto. Il lettore/scrittore STEP supporta la piena conformità AP214 per i dati di progettazione automobilistica e meccanica. Gli sviluppatori possono elaborare programmaticamente i modelli importati, estrarre facce/bordi, modificare la geometria e riesportare in diversi formati. Questa interoperabilità è fondamentale per la collaborazione CAD tra diversi ecosistemi software e garantisce un'integrazione fluida nei flussi di lavoro di progettazione esistenti.

Importa file STEP ed esporta come STL tramite 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");
}

Visualizzazione 3D e rendering

Il toolkit di visualizzazione di OCCT offre potenti capacità di rendering 3D con supporto per OpenGL accelerato dall'hardware, ray tracing e illuminazione avanzata. Gli sviluppatori possono creare visualizzatori CAD interattivi con strumenti di selezione, evidenziazione e navigazione. Il toolkit include classi per la gestione della vista 3D, la gestione del grafo della scena e pipeline di rendering personalizzate. Funzionalità come l'anti-aliasing, la trasparenza e le modalità di visualizzazione wireframe/linee nascoste garantiscono una visualizzazione di qualità professionale. Questo rende OCCT adatto allo sviluppo di strumenti di visualizzazione ingegneristica, applicazioni di realtà virtuale e browser di risultati di simulazione con prestazioni in tempo reale.

Crea visualizzatore 3D interattivo con 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();

Generazione e analisi della mesh

OCCT include strumenti di generazione di mesh che convertono i modelli B-Rep in mesh triangolate per simulazione e visualizzazione. Il modulo Mesh supporta la mesh adattiva con controllo sulla precisione della tessellazione di spigoli e facce. Gli sviluppatori possono generare mesh agli elementi finiti per analisi CAE, calcolare metriche di qualità della mesh e eseguire operazioni sulla mesh come raffinamento e levigatura. La libreria fornisce anche strumenti per lo scambio di dati di mesh (STL, OBJ) e l'integrazione con solver FEM esterni. Questa capacità collega il design CAD e i flussi di lavoro di simulazione, consentendo lo sviluppo end-to-end di applicazioni di analisi ingegneristica.

Genera mesh da forma B-Rep tramite 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
    }
}
 Italiano