3D मॉडलिंग और डेटा एक्सचेंज के लिए ओपन सोर्स पायथन लाइब्रेरी
3D मॉडलिंग और डेटा एक्सचेंज हैंडलिंग के लिए मुफ्त पायथन लाइब्रेरी। यह ऑनलाइन पायथन API के माध्यम से 3D CAD, BIM, PLM और CAM फ़ाइल फ़ॉर्मेट्स के साथ काम करने की अनुमति देता है।
PythonOCC-Core लाइब्रेरी क्या है ?
PythonOCC-Core एक मुफ्त 3D मॉडलिंग और CAD ऑटोमेशन लाइब्रेरी है। यह OpenCASCADE टेक्नोलॉजी (OCCT) कर्नेल के ऊपर Python, एक व्यापक रूप से उपयोग की जाने वाली प्रोग्रामिंग भाषा, का उपयोग करता है। यह संयोजन जटिल 3D आकार बनाने, बदलने और अध्ययन करने के लिए एक मजबूत आधार प्रदान करता है। Python की सरलता को OCCT के शक्तिशाली मॉडलिंग टूल्स के साथ मिलाकर, आपके पास एक बहुमुखी और प्रभावी उपकरण उपलब्ध होता है। इसके सहज Python इंटरफ़ेस और व्यापक कार्यात्मकताओं के साथ, यह लाइब्रेरी शुरुआती और अनुभवी डेवलपर्स दोनों के लिए एक सहज अनुभव प्रदान करती है। यह आर्किटेक्ट्स और इंजीनियर्स को पैरामीट्रिक मॉडल बनाने, बिल्डिंग लेआउट तैयार करने, और संरचनात्मक विश्लेषण करने में सक्षम बनाती है। यह टूल डिज़ाइन वर्कफ़्लो को सुधारता है, सटीक विज़ुअलाइज़ेशन और प्रभावी टीमवर्क की अनुमति देता है। यह ऑटोमोटिव, एयरोस्पेस, और प्रोडक्ट डिज़ाइन जैसे विभिन्न क्षेत्रों में जटिल 3D मॉडल विकसित करने और परिष्कृत करने के लिए लोकप्रिय है। इस लाइब्रेरी के साथ, आप प्रोटोटाइपिंग, सिमुलेशन, और डिज़ाइन विश्लेषण को तेज़ कर सकते हैं, जिससे उत्पाद विकास प्रक्रिया सरल हो जाती है।
PythonOCC-Core की विज़ुअलाइज़ेशन सुविधाएँ गेम और वर्चुअल रियलिटी अनुभव बनाने के लिए एकदम उपयुक्त हैं। इस टूल के साथ, आप आकर्षक वातावरण, वास्तविक सिमुलेशन और इंटरैक्टिव साहसिक कार्य बना सकते हैं। इसके अलावा, लाइब्रेरी में मेडिकल इमेजिंग के साथ काम करना, 3D ज्योमेट्री को हेरफेर करना, CAD डेटा को आयात और निर्यात करना, 3D मॉडलों पर उन्नत सिमुलेशन चलाना, वेब ब्राउज़रों में 3D सामग्री को विज़ुअलाइज़ करना, और लोकप्रिय Python GUI के माध्यम से 3D विज़ुअल्स प्रदर्शित करना जैसी आवश्यक कार्यक्षमताएँ शामिल हैं। लाइब्रेरी वैज्ञानिक अनुसंधान क्षेत्रों जैसे कम्प्यूटेशनल फिज़िक्स, मैटेरियल साइंस, और बायोमेडिकल इंजीनियरिंग में भी महत्वपूर्ण भूमिका निभाती है। विभिन्न उद्योगों के कई सॉफ़्टवेयर पेशेवर और डेवलपर PythonOCC-Core को आकर्षक पाते हैं क्योंकि यह Python की सरलता और OCCT की शक्ति को मिलाता है। PythonOCC-Core के साथ, आप अपनी रचनात्मकता को बढ़ा सकते हैं और जटिल CAD प्रक्रियाओं को सरल बना सकते हैं। यह 3D मॉडलिंग और डिज़ाइन में नवाचार और उत्पादकता के नए अवसर खोलता है।
PythonOCC-Core के साथ शुरूआत
PythonOCC-Core के स्थिर रिलीज़ को स्थापित करने का सबसे आसान तरीका pip का उपयोग करना है। सुगम स्थापना के लिए कृपया निम्नलिखित कमांड का उपयोग करें।
pip के माध्यम से PythonOCC-Core स्थापित करें
pip install pythonocc-coreConda के माध्यम से PythonOCC-Core स्थापित करें
conda install -c conda-forge pythonocc-coreआप निम्नलिखित कमांड का उपयोग करके Conda के माध्यम से PythonOCC-Core भी स्थापित कर सकते हैं।
conda install -c 1adrianb face_alignmentआप संकलित साझा लाइब्रेरी को Github रिपॉजिटरी से डाउनलोड कर सकते हैं।
Python के माध्यम से 3D ज्यामितियों को बनाएं और प्रबंधित करें
ओपन सोर्स PythonOCC-Core लाइब्रेरी ने Python अनुप्रयोगों के भीतर 3D मॉडल बनाने और प्रबंधित करने के लिए पूर्ण समर्थन शामिल किया है। इसके अलावा, लाइब्रेरी 3D ज्यामितीय आकारों जैसे बिंदु, वक्र, सतह और ठोस को बनाने और हेरफेर करने के लिए उपकरणों का एक विस्तृत सेट प्रदान करती है। यह बूलियन ऑपरेशन्स, फ़िलेटिंग और चेम्फरिंग जैसी जटिल वस्तुओं के निर्माण और संशोधन के लिए विभिन्न एल्गोरिदम प्रदान करती है। निम्नलिखित उदाहरण दिखाता है कि सॉफ़्टवेयर डेवलपर्स पायथन कमांड्स का उपयोग करके कोर ज्योमेट्री बाउंडिंग बॉक्स कैसे बना सकते हैं।
Python ऐप्स के भीतर बाउंडिंग बॉक्स कैसे गणना करें और प्रदर्शित करें?
def get_boundingbox(shape, tol=1e-6, use_mesh=True):
bbox = Bnd_Box()
bbox.SetGap(tol)
if use_mesh:
mesh = BRepMesh_IncrementalMesh()
mesh.SetParallelDefault(True)
mesh.SetShape(shape)
mesh.Perform()
if not mesh.IsDone():
raise AssertionError("Mesh not done.")
brepbndlib_Add(shape, bbox, use_mesh)
xmin, ymin, zmin, xmax, ymax, zmax = bbox.Get()
return xmin, ymin, zmin, xmax, ymax, zmax, xmax - xmin, ymax - ymin, zmax - zmin
print("Box bounding box computation")
box_shape = BRepPrimAPI_MakeBox(10.0, 20.0, 30.0).Shape()
bb1 = get_boundingbox(box_shape)
print(bb1)
print("Cylinder bounding box computation")
cyl_shape = BRepPrimAPI_MakeCylinder(10.0, 20.0).Shape()
bb2 = get_boundingbox(cyl_shape)
print(bb2)
print("Torus bounding box computation")
torus_shape = BRepPrimAPI_MakeCylinder(15.0, 5.0).Shape()
bb3 = get_boundingbox(torus_shape)
print(bb3)
Python API का उपयोग करके CAD स्वचालन
ओपन सोर्स PythonOCC-Core लाइब्रेरी ने CAD आरेखों से संबंधित विभिन्न कार्यों को संभालने के लिए बहुत उपयोगी सुविधाएँ प्रदान की हैं। यह लाइब्रेरी CAD में सामान्यतः उपयोग किए जाने वाले विभिन्न फ़ाइल फ़ॉर्मेट, जैसे STEP, IGES, STL, और BREP, को समर्थन देती है। यह लाइब्रेरी डेवलपर्स को दोहराए जाने वाले CAD कार्यों को स्वचालित करने में सक्षम बनाती है, जैसे पैरामीट्रिक डिज़ाइन बनाना, ज्यामितीय रूपांतरण करना, और ज्यामितीय विश्लेषण करना। यह एक उच्च-स्तरीय API प्रदान करती है जो CAD वर्कफ़्लो के कार्यान्वयन को सरल बनाती है, जिससे CAD ऑटोमेशन टूल्स बनाने के लिए यह एक आदर्श विकल्प बन जाता है।
Python API के माध्यम से आकार कैसे बनाएं और इसे CAD STEP फ़ाइल फ़ॉर्मेट में निर्यात करें?
from __future__ import print_function
from OCC.Core.BRepPrimAPI import BRepPrimAPI_MakeBox
from OCC.Core.STEPControl import STEPControl_Writer, STEPControl_AsIs
from OCC.Core.Interface import Interface_Static_SetCVal
from OCC.Core.IFSelect import IFSelect_RetDone
# creates a basic shape
box_s = BRepPrimAPI_MakeBox(10, 20, 30).Shape()
# initialize the STEP exporter
step_writer = STEPControl_Writer()
dd = step_writer.WS().TransferWriter().FinderProcess()
print(dd)
Interface_Static_SetCVal("write.step.schema", "AP203")
# transfer shapes and write file
step_writer.Transfer(box_s, STEPControl_AsIs)
status = step_writer.Write("box.stp")
if status != IFSelect_RetDone:
raise AssertionError("load failed")