
OCCT
منصة نمذجة ومحاكاة ثلاثية الأبعاد C++ مفتوحة المصدر
أنشئ نماذج ثلاثية الأبعاد بارامترية، حاكي الفيزياء، وصوّر بيانات CAD عبر مكتبة C++ مفتوحة المصدر.
ما هو OCCT؟
تقنية Open CASCADE (OCCT) هي منصة تطوير برمجيات قوية مفتوحة المصدر بلغة C++ لتطبيقات CAD ثلاثية الأبعاد، CAM، و CAE. توفر مكتبات شاملة للنمذجة الهندسية، توليد الشبكات، تبادل البيانات (STEP، IGES، STL)، التصور، والمحاكاة. صُممت لتدفقات عمل الهندسة الدقيقة والتصنيع، وتمكن OCCT المطورين من بناء أدوات نمذجة بارامترية قوية، عارضات CAD، وتطبيقات محاكاة بقدرات معيارية صناعية.
تدعم المكتبة عمليات النمذجة الصلبة المتقدمة مثل عمليات Boolean، الحواف المستديرة (fillets)، الشطب (chamfers)، والمسارات (sweeps)، بالإضافة إلى نمذجة الأسطح، هندسة NURBS، ونمذجة الميزات البارامترية. تشمل بنية OCCT المعيارية مجموعات أدوات مخصصة للطبولوجيا، الهندسة، التصور، تبادل البيانات، وإطار التطبيق، مما يجعلها مثالية لتطوير برمجيات هندسية معقدة. بفضل دعم المجتمع النشط والإصدارات المنتظمة، تُعد OCCT الأساس للعديد من التطبيقات ثلاثية الأبعاد التجارية والبحثية حول العالم.
البدء مع OCCT
يتم توزيع OCCT كمكتبات C++ مفتوحة المصدر ويمكن تثبيتها عبر بناء المصدر أو الثنائيات المسبقة التجميع. أسهل طريقة للبدء هي تنزيل أحدث إصدار من مستودع [OCCT GitHub](https://github.com/Open-Cascade-SAS/OCCT). لمستخدمي لينكس، توفر العديد من التوزيعات حزم OCCT عبر مديري الحزم الخاص بهم (مثال، `apt install libocct-dev` على أوبونتو). يمكن لمطوري ويندوز استخدام الثنائيات المسبقة التجميع أو التجميع من المصدر باستخدام CMake وVisual Studio. تشمل الوثائق الرسمية أدلة بناء خطوة بخطوة لجميع المنصات المدعومة.
تثبيت OCCT عبر مدير الحزم (Ubuntu/Debian)
sudo apt update
sudo apt install libocct-dev libocct-data-exchange-dev libocct-visualization-devالعمليات البوليانية والنمذجة الصلبة
توفر OCCT عمليات بوليانية قوية (الاتحاد، التقاطع، الطرح) للأجسام ثلاثية الأبعاد، مما يتيح إنشاء أشكال معقدة من البدائل الأساسية. يدعم نواة الطوبولوجيا ميزات متقدمة مثل الحواف المستديرة، الزوايا المشطوفة، الثقوب، والضلوع بدقة عالية. يمكن للمطورين إنشاء ميزات بارامترية باستخدام واجهات برمجة التطبيقات 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 تفاعلية مع أدوات الاختيار، والتسليط، والتنقل. تتضمن مجموعة الأدوات فئات لإدارة العرض ثلاثي الأبعاد، ومعالجة رسم المشهد، وأنابيب التصيير المخصصة. تضمن ميزات مثل مكافحة التعرجات (anti-aliasing)، والشفافية، وعرض أوضاع السلك/الخط المخفي جودة تصوير احترافية. يجعل هذا 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 إلى شبكات مثلثية للمحاكاة والتصوير. يدعم وحدة Mesh توليد الشبكات المتكيف مع التحكم في دقة تجزئة الحواف والسطوح. يمكن للمطورين إنشاء شبكات العناصر المحدودة لتحليل 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
}
}