
OCCT
ओपन सोर्स C++ 3D मॉडलिंग और सिमुलेशन प्लेटफ़ॉर्म
ओपन सोर्स C++ लाइब्रेरी के माध्यम से पैरामीट्रिक 3D मॉडल बनाएं, भौतिकी का सिमुलेशन करें और CAD डेटा को विज़ुअलाइज़ करें।
OCCT क्या है?
Open CASCADE Technology (OCCT) एक शक्तिशाली ओपन-सोर्स C++ सॉफ़्टवेयर विकास प्लेटफ़ॉर्म है जो 3D CAD, CAM, और CAE अनुप्रयोगों के लिए है। यह ज्यामितीय मॉडलिंग, मेष जनरेशन, डेटा एक्सचेंज (STEP, IGES, STL), विज़ुअलाइज़ेशन और सिमुलेशन के लिए व्यापक लाइब्रेरी प्रदान करता है। उच्च-परिशुद्धता इंजीनियरिंग और निर्माण कार्यप्रवाहों के लिए डिज़ाइन किया गया, OCCT डेवलपर्स को उद्योग-मानक क्षमताओं के साथ मजबूत पैरामीट्रिक मॉडलिंग टूल, CAD व्यूअर, और सिमुलेशन एप्लिकेशन बनाने में सक्षम बनाता है।
यह लाइब्रेरी बूलियन ऑपरेशन्स, फ़िलेट्स, चैंफ़र्स, और स्वीप्स जैसी उन्नत ठोस मॉडलिंग ऑपरेशन्स के साथ-साथ सतह मॉडलिंग, NURBS ज्यामिति, और पैरामीट्रिक फीचर मॉडलिंग को समर्थन देती है। OCCT की मॉड्यूलर आर्किटेक्चर में टोपोलॉजी, ज्यामिति, विज़ुअलाइज़ेशन, डेटा एक्सचेंज, और एप्लिकेशन फ्रेमवर्क के लिए समर्पित टूलकिट शामिल हैं, जिससे यह जटिल इंजीनियरिंग सॉफ़्टवेयर विकास के लिए आदर्श बनता है। सक्रिय समुदाय समर्थन और नियमित रिलीज़ के साथ, OCCT विश्वभर में कई व्यावसायिक और अनुसंधान-स्तर के 3D अनुप्रयोगों के लिए आधार के रूप में कार्य करता है।
OCCT के साथ शुरुआत
OCCT को ओपन‑सोर्स C++ लाइब्रेरीज़ के रूप में वितरित किया जाता है और इसे स्रोत बिल्ड या प्री‑कम्पाइल्ड बाइनरीज़ के माध्यम से स्थापित किया जा सकता है। शुरू करने का सबसे आसान तरीका है नवीनतम रिलीज़ को [OCCT GitHub](https://github.com/Open-Cascade-SAS/OCCT) रिपॉज़िटरी से डाउनलोड करना। Linux उपयोगकर्ताओं के लिए, कई वितरण अपने पैकेज मैनेजर्स के माध्यम से OCCT पैकेज प्रदान करते हैं (उदाहरण के लिए Ubuntu पर `apt install libocct-dev`)। Windows डेवलपर्स प्री‑बिल्ट बाइनरीज़ का उपयोग कर सकते हैं या CMake और Visual Studio का उपयोग करके स्रोत से कंपाइल कर सकते हैं। आधिकारिक दस्तावेज़ में सभी समर्थित प्लेटफ़ॉर्म के लिए चरण‑दर‑चरण बिल्ड गाइड शामिल हैं।
पैकेज मैनेजर (Ubuntu/Debian) के माध्यम से OCCT स्थापित करें
sudo apt update
sudo apt install libocct-dev libocct-data-exchange-dev libocct-visualization-devबूलियन ऑपरेशन्स और ठोस मॉडलिंग
OCCT 3D ठोसों के लिए मजबूत बूलियन ऑपरेशन्स (संघ, प्रतिच्छेदन, घटाव) प्रदान करता है, जिससे बुनियादी प्रिमिटिव्स से जटिल आकार निर्माण संभव होता है। इसका टोपोलॉजी कर्नेल फ़िलेट्स, चैंफ़र्स, छेद, और रिब्स जैसी उन्नत सुविधाओं को उच्च सटीकता के साथ समर्थन करता है। डेवलपर्स C++ APIs का उपयोग करके पैरामीट्रिक फीचर्स बना सकते हैं और उन्हें 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 व्यापक डेटा एक्सचेंज मॉड्यूल शामिल करता है जो STEP (AP203/AP214) और IGES जैसे ISO-मानक फ़ॉर्मेट का समर्थन करते हैं। ये मॉड्यूल CAD मॉडल को आयात और निर्यात करने में सक्षम बनाते हैं जबकि ज्यामिति, टोपोलॉजी, मेटाडेटा और उत्पाद संरचना को संरक्षित रखते हैं। STEP रीडर/राइटर ऑटोमोटिव और मैकेनिकल डिज़ाइन डेटा के लिए पूर्ण AP214 अनुपालन का समर्थन करता है। डेवलपर्स प्रोग्रामेटिक रूप से आयातित मॉडलों को प्रोसेस कर सकते हैं, फ़ेस/एज निकाल सकते हैं, ज्यामिति को संशोधित कर सकते हैं, और विभिन्न फ़ॉर्मेट में पुनः निर्यात कर सकते हैं। यह इंटरऑपरेबिलिटी विभिन्न सॉफ़्टवेयर इकोसिस्टम्स में CAD सहयोग के लिए महत्वपूर्ण है और मौजूदा डिज़ाइन वर्कफ़्लो में सहज एकीकरण सुनिश्चित करती है।
STEP फ़ाइल आयात करें और C++ के माध्यम से STL के रूप में निर्यात करें
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 विज़ुअलाइज़ेशन और रेंडरिंग
OCCT का विज़ुअलाइज़ेशन टूलकिट शक्तिशाली 3D रेंडरिंग क्षमताएँ प्रदान करता है, जिसमें हार्डवेयर-त्वरित OpenGL, रे ट्रेसिंग, और उन्नत लाइटिंग का समर्थन शामिल है। डेवलपर्स चयन, हाइलाइटिंग, और नेविगेशन टूल्स के साथ इंटरैक्टिव CAD व्यूअर्स बना सकते हैं। टूलकिट में 3D व्यू प्रबंधन, सीन ग्राफ हैंडलिंग, और कस्टम रेंडरिंग पाइपलाइन के लिए क्लासेस शामिल हैं। एंटी-एलियासिंग, ट्रांसपैरेंसी, और वायरफ़्रेम/हिडन-लाइन डिस्प्ले मोड जैसी सुविधाएँ प्रोफेशनल-गुणवत्ता वाली विज़ुअलाइज़ेशन सुनिश्चित करती हैं। यह OCCT को इंजीनियरिंग विज़ुअलाइज़ेशन टूल्स, वर्चुअल रियलिटी एप्लिकेशन्स, और सिमुलेशन परिणाम ब्राउज़र्स को रीयल-टाइम प्रदर्शन के साथ विकसित करने के लिए उपयुक्त बनाता है।
OCCT के साथ इंटरैक्टिव 3D व्यूअर बनाएं
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 डिज़ाइन और सिमुलेशन वर्कफ़्लो को जोड़ती है, जिससे इंजीनियरिंग विश्लेषण अनुप्रयोगों का अंत‑से‑अंत विकास संभव होता है।
C++ के माध्यम से B-Rep आकार से मेष उत्पन्न करें
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
}
}