
OCCT
פלטפורמת מודלינג וסימולציה תלת‑ממדית ב‑C++ קוד פתוח
בנו מודלים פרמטריים תלת‑ממדיים, הדמיינו פיזיקה והציגו נתוני CAD באמצעות ספריית C++ קוד פתוח.
מהו OCCT?
Open CASCADE Technology (OCCT) היא פלטפורמת פיתוח תוכנה בקוד פתוח בשפת C++ חזקה עבור יישומי CAD, CAM ו‑CAE תלת‑ממדיים. היא מספקת ספריות מקיפות למידול גיאומטרי, יצירת רשת, חילופי נתונים (STEP, IGES, STL), הדמיה וסימולציה. תוכננה עבור זרימות עבודה הנדסיות וייצור ברמת דיוק גבוהה, ו‑OCCT מאפשרת למפתחים לבנות כלי מידול פרמטריים חזקים, מציגי CAD ויישומי סימולציה עם יכולות סטנדרטיות בתעשייה.
הספרייה תומכת בפעולות מודלינג מוצק מתקדמות כגון פעולות בוליאניות, קצוות מעוגלים, שיפועים והזפות, יחד עם מודלינג משטחי, גיאומטריית NURBS ומידול תכונות פרמטריות. הארכיטקטורה המודולרית של OCCT כוללת ערכות כלים ייעודיות לטופולוגיה, גיאומטריה, הדמיה, חילופי נתונים ומסגרת יישום, מה שהופך אותה לאידיאלית לפיתוח תוכנה הנדסית מורכבת. עם תמיכה קהילתית פעילה וגרסאות שוטפות, OCCT משמשת כבסיס למספר רב של יישומי 3D מסחריים ובמחקר ברחבי העולם.
התחלת עבודה עם OCCT
OCCT מופץ כספריות קוד פתוח ב‑C++ וניתן להתקין אותו באמצעות בניית מקור או קבצים בינאריים מוכנים מראש. הדרך הקלה ביותר להתחיל היא להוריד את הגרסה האחרונה מהמאגר [OCCT GitHub](https://github.com/Open-Cascade-SAS/OCCT). למשתמשי לינוקס, הפצות רבות מספקות חבילות OCCT דרך מנהלי החבילות שלהן (למשל `apt install libocct-dev` ב‑Ubuntu). מפתחים ב‑Windows יכולים להשתמש בקבצים בינאריים מוכנים מראש או לקמפל מהמקור באמצעות CMake ו‑Visual Studio. התיעוד הרשמי כולל מדריכים מפורטים לבנייה לכל הפלטפורמות הנתמכות.
התקנת OCCT דרך מנהל החבילות (Ubuntu/Debian)
sudo apt update
sudo apt install libocct-dev libocct-data-exchange-dev libocct-visualization-devפעולות בוליאניות & מודלינג מוצק
OCCT מספקת פעולות בוליאניות חזקות (איחוד, חיתוך, חיסור) עבור מוצקים תלת‑ממדיים, המאפשרת יצירת צורות מורכבות מפרימיטיבים בסיסיים. ליבת הטופולוגיה שלה תומכת בתכונות מתקדמות כגון פינות מעוגלות, שיפועים, חורים וריברים בדיוק גבוה. מפתחים יכולים ליצור תכונות פרמטריות באמצעות API של C++ ולשלב אותן בתהליכי עבודה של CAD. הספרייה מטפלת במבני נתונים טופולוגיים ביעילות, ותומכת הן בגישה של B-Rep והן בגישה של מודלינג של גאומטריה מוצקה קונסטרוקטיבית (CSG). זה עושה את OCCT אידיאלית לפיתוח יישומי הנדסה הדורשים חישובים גאומטריים מדויקים ומידול מבוסס תכונות.
ביצוע איחוד בוליאני של שני מוצקים באמצעות 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
}החלפת נתונים (STEP & IGES)
OCCT כולל מודולי החלפת נתונים מקיפים התומכים בפורמטים תקניים של ISO כגון STEP (AP203/AP214) ו‑IGES. מודולים אלה מאפשרים ייבוא וייצוא של מודלים CAD תוך שמירה על גאומטריה, טופולוגיה, מטא‑נתונים ומבנה המוצר. קורא/כותב ה‑STEP תומך בהתאמה מלאה ל‑AP214 עבור נתוני עיצוב רכב ומכניקה. מפתחים יכולים לעבד תכנותית מודלים מיובאים, לחלץ משטחים/קצוות, לשנות גאומטריה ולייצא מחדש בפורמטים שונים. אינטראופרביליות זו קריטית לשיתוף פעולה ב‑CAD בין מערכות תוכנה שונות ומבטיחה אינטגרציה חלקה בתהליכי העיצוב הקיימים.
ייבא קובץ STEP וייצא כ‑STL באמצעות 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");
}הדמיה תלת‑ממדית & רינדור
ערכת ההדמיה של OCCT מספקת יכולות רינדור תלת‑ממד חזקות עם תמיכה ב‑OpenGL מואץ בחומרה, ריי‑ט्रेसינג ותאורה מתקדמת. מפתחים יכולים לבנות מציגי CAD אינטראקטיביים עם בחירה, הדגשה וכלי ניווט. ערכת הכלים כוללת מחלקות לניהול תצוגת תלת‑ממד, טיפול בגרף סצנה וצינורות רינדור מותאמים. תכונות כגון אנטי‑אליאסינג, שקיפות ומצב תצוגת קווי רשת/קווים מוסתרים מבטיחות הדמיה באיכות מקצועית. זה עושה את OCCT מתאימה לפיתוח כלי הדמיה הנדסיים, יישומי מציאות מדומה, ודפדפני תוצאות סימולציה עם ביצועים בזמן אמת.
צור מציג תלת‑ממדי אינטראקטיבי עם 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();יצירת רשת & ניתוח
OCCT כולל כלי יצירת רשתות שממירים מודלים B-Rep לרשתות משולשות עבור סימולציה והדמיה. מודול הרשתות תומך ברשתות אדפטיביות עם שליטה על דיוק הטסלציה של קצוות ופנים. מפתחים יכולים ליצור רשתות אלמנטים סופיים לניתוח CAE, לחשב מדדי איכות רשת, ולבצע פעולות רשת כגון שיפור והחלקה. הספרייה גם מספקת כלי להחלפת נתוני רשת (STL, OBJ) ושילוב עם ממירי FEM חיצוניים. יכולת זו מגשרת בין תכנון CAD לתהליכי סימולציה, ומאפשרת פיתוח מקצה לקצה של יישומי ניתוח הנדסי.
צור רשת מצורת B-Rep באמצעות 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
}
}