
OCCT
Açıq Mənbəli C++ 3D Modelləşdirmə və Simulyasiya Platforması
Parametrik 3D Modellər Yaradın, Fizikanı Simulyasiya Edin və Açıq Mənbəli C++ Kitabxanası vasitəsilə CAD Məlumatlarını Vizuallaşdırın.
OCCT nədir?
Open CASCADE Technology (OCCT) güclü açıq mənbəli C++ proqram təminatı inkişaf platformasıdır, 3D CAD, CAM və CAE tətbiqləri üçün. O, həndəsi modelləşdirmə, şəbəkə yaradılması, məlumat mübadiləsi (STEP, IGES, STL), vizuallaşdırma və simulasiya üçün geniş kitabxanalar təqdim edir. Yüksək dəqiqlikli mühəndislik və istehsal iş axınları üçün nəzərdə tutulmuş OCCT, inkişafçılara sənaye standartlı imkanlarla güclü parametrik modelləşdirmə alətləri, CAD görüntüləyiciləri və simulasiya tətbiqləri yaratmağa imkan verir.
Kitabxana Boolean əməliyyatları, yuvarlaq künclər (fillet), kənar kəsiklər (chamfer) və süpürmə (sweep) kimi qabaqcıl bərk modelləşdirmə əməliyyatlarını, həmçinin səth modelləşdirmə, NURBS həndəsəsi və parametrik xüsusiyyət modelləşdirməsini dəstəkləyir. OCCT‑nin modul arxitekturası topologiya, həndəsə, vizuallaşdırma, məlumat mübadiləsi və tətbiq çərçivəsi üçün xüsusi alət dəstlərini ehtiva edir, bu da onu mürəkkəb mühəndislik proqram təminatı inkişafı üçün ideal edir. Aktiv icma dəstəyi və mütəmadi buraxılışlarla OCCT, dünya miqyasında bir çox kommersiya və tədqiqat səviyyəli 3D tətbiqlərin təməli kimi xidmət edir.
OCCT ilə Başlamaq
OCCT açıq mənbəli C++ kitabxanaları kimi paylanır və mənbə kodundan quraraq və ya əvvəlcədən tərtib olunmuş ikili fayllarla quraşdırıla bilər. Başlamağın ən asan yolu, son buraxılışı [OCCT GitHub](https://github.com/Open-Cascade-SAS/OCCT) deposundan yükləməkdir. Linux istifadəçiləri üçün bir çox paylamalar OCCT paketlərini paket menecerləri vasitəsilə təqdim edir (məsələn, Ubuntu-da `apt install libocct-dev`). Windows proqramçıları əvvəlcədən tərtib olunmuş ikili fayllardan istifadə edə və ya CMake və Visual Studio ilə mənbədən tərtib edə bilərlər. Rəsmi sənədləşdirmə bütün dəstəklənən platformalar üçün addım-addım qurma təlimatlarını ehtiva edir.
OCCT-ni Paket Meneceri vasitəsilə quraşdırın (Ubuntu/Debian)
sudo apt update
sudo apt install libocct-dev libocct-data-exchange-dev libocct-visualization-devBoolean Əməliyyatları və Bərk Modelləşdirmə
OCCT 3D bərk cisimlər üçün güclü Boolean əməliyyatları (birləşdirmə, kəsişmə, çıxarma) təmin edir, əsas primitivlərdən mürəkkəb forma yaratmağa imkan verir. Onun topologiya nüvəsi filletlər, çamferlər, dəliklər və riblər kimi qabaqcıl xüsusiyyətləri yüksək dəqiqliklə dəstəkləyir. İnkişafçılar C++ API-lərindən istifadə edərək parametrik xüsusiyyətlər yarada və onları CAD iş axınlarına inteqrasiya edə bilərlər. Kitabxana topoloji məlumat strukturlarını səmərəli idarə edir, həm B-Rep, həm də konstruktiv bərk cisim geometriyası (CSG) modelləşdirmə yanaşmalarını dəstəkləyir. Bu, OCCT-i dəqiq geometrik hesablamalar və xüsusiyyət əsaslı modelləşdirmə tələb edən mühəndislik tətbiqləri üçün ideal edir.
C++ vasitəsilə iki bərk obyekt üzərində Boolean Birləşdirmə icra edin
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
}Məlumat Mübadiləsi (STEP & IGES)
OCCT, STEP (AP203/AP214) və IGES kimi ISO-standart formatlarını dəstəkləyən geniş məlumat mübadiləsi modullarını ehtiva edir. Bu modullar CAD modellərinin idxalı və ixracını, həndəsi forma, topologiya, metadata və məhsul strukturunu qoruyaraq mümkün edir. STEP oxuyucu/yazıcı, avtomobil və mexaniki dizayn məlumatları üçün tam AP214 uyğunluğunu dəstəkləyir. İnkişafçılar idxal edilmiş modelləri proqramlaşdırma yolu ilə emal edə, üzləri/kənarları çıxara, həndəsi formaları dəyişdirə və müxtəlif formatlarda yenidən ixrac edə bilərlər. Bu qarşılıqlı əlaqə, müxtəlif proqram ekosistemləri arasında CAD əməkdaşlığı üçün vacibdir və mövcud dizayn iş axınlarına problemsiz inteqrasiyanı təmin edir.
STEP faylını idxal edin və C++ vasitəsilə STL kimi ixrac edin
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 Vizualizasiya və Renderinq
OCCT-nin vizualizasiya alət dəsti güclü 3D renderləmə imkanları təqdim edir, hardware sürətli OpenGL, şüa izləmə və qabaqcıl işıqlandırma dəstəyi ilə. İnkişafçılar seçmə, vurğulama və naviqasiya alətləri ilə interaktiv CAD görüntüləyiciləri yarada bilərlər. Alət dəsti 3D görüntü idarəetməsi, səhnə qrafı idarəçiliyi və xüsusi renderləmə boru kəmərləri üçün sinifləri ehtiva edir. Anti-aliasing, şəffaflıq və tel/gizli xətt görüntüləmə rejimləri kimi xüsusiyyətlər peşəkar keyfiyyətli vizualizasiyanı təmin edir. Bu, OCCT-ni mühəndislik vizualizasiya alətləri, virtual reallıq tətbiqləri və real‑vaxt performanslı simulasiya nəticələri brauzerləri inkişaf etdirmək üçün uyğun edir.
OCCT ilə interaktiv 3D görüntüləyici yaradın
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();Şəbəkə Yaradılması və Təhlil
OCCT, B-Rep modellərini simulyasiya və vizuallaşdırma üçün üçbucaqlı şəbəkələrə çevirən şəbəkə yaratma alətlərini ehtiva edir. Mesh modulu, kənar və üz təbəqələşdirmə dəqiqliyinə nəzarət ilə adaptiv şəbəkələşdirməni dəstəkləyir. İnkişafçılar CAE təhlili üçün sonlu element şəbəkələri yarada, şəbəkə keyfiyyəti ölçülərini hesablaya və təkmilləşdirmə və hamarlaşdırma kimi şəbəkə əməliyyatlarını həyata keçirə bilərlər. Kitabxana həmçinin şəbəkə məlumat mübadiləsi (STL, OBJ) alətləri və xarici FEM həll ediciləri ilə inteqrasiya təklif edir. Bu imkan CAD dizaynı və simulyasiya iş axınlarını birləşdirir, mühəndislik təhlili tətbiqlərinin tam inkişafını təmin edir.
C++ vasitəsilə B-Rep formadan şəbəkə yaradın
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
}
}