مكتبة بايثون مفتوحة المصدر للنمذجة ثلاثية الأبعاد وتبادل البيانات
مكتبة بايثون مجانية للنمذجة ثلاثية الأبعاد ومعالجة تبادل البيانات. تتيح العمل مع صيغ ملفات 3D CAD، BIM، PLM و CAM عبر واجهة برمجة تطبيقات بايثون على الإنترنت.
ما هي مكتبة PythonOCC-Core؟
PythonOCC-Core هي مكتبة مجانية للنمذجة ثلاثية الأبعاد وأتمتة CAD. تستخدم بايثون، لغة برمجة واسعة الانتشار، فوق نواة OpenCASCADE Technology (OCCT). يقدم هذا الجمع أساسًا قويًا لإنشاء وتعديل ودراسة الأشكال ثلاثية الأبعاد المعقدة. من خلال دمج سهولة بايثون مع أدوات النمذجة القوية لـ OCCT، تحصل على أداة متعددة الاستخدامات وفعّالة تحت تصرفك. بفضل واجهتها البديهية للبايثون ومجموعة واسعة من الوظائف، توفر المكتبة تجربة سلسة لكل من المبتدئين والمطورين المخضرمين في المجال. تمكّن المهندسين المعماريين والمهندسين مثلك من إنشاء نماذج بارامترية، وإنتاج مخططات المباني، وإجراء التحليل الهيكلي. تحسّن هذه الأداة سير عمل التصميم، مما يسمح بتصوير دقيق وعمل جماعي فعال. وهي شائعة في قطاعات مختلفة مثل السيارات، والفضاء الجوي، وتصميم المنتجات لتطوير وتحسين نماذج ثلاثية الأبعاد معقدة. باستخدام هذه المكتبة، يمكنك تسريع النمذجة الأولية، والمحاكاة، وتحليل التصميم، وبالتالي تبسيط عملية تطوير المنتج.
تعد ميزات التصور في PythonOCC-Core مثالية لإنشاء الألعاب وتجارب الواقع الافتراضي. باستخدام هذه الأداة، يمكنك بناء بيئات جذابة، ومحاكاة واقعية، ومغامرات تفاعلية. بالإضافة إلى ذلك، توفر المكتبة وظائف أساسية مثل العمل مع التصوير الطبي، ومعالجة الهندسة ثلاثية الأبعاد، واستيراد وتصدير بيانات CAD، وتشغيل محاكاة متقدمة على نماذج ثلاثية الأبعاد، وتصور المحتوى ثلاثي الأبعاد على متصفحات الويب، وعرض الرسوميات ثلاثية الأبعاد عبر واجهات المستخدم الرسومية الشهيرة في Python. . تلعب المكتبة أيضًا دورًا حيويًا في مجالات البحث العلمي مثل الفيزياء الحاسوبية، وعلوم المواد، والهندسة الطبية الحيوية. يجد العديد من المتخصصين في البرمجيات والمطورين في مختلف الصناعات PythonOCC-Core جذابًا لأنه يجمع بين سهولة Python وقوة OCCT. مع PythonOCC-Core، يمكنك تعزيز إبداعك وتبسيط عمليات CAD المعقدة. هذا يفتح إمكانيات جديدة للابتكار والإنتاجية في نمذجة وتصميم ثلاثي الأبعاد.
البدء مع PythonOCC-Core
أسهل طريقة لتثبيت إصدار PythonOCC-Core المستقر هي باستخدام pip. يرجى استخدام الأمر التالي لتثبيت سلس.
تثبيت PythonOCC-Core عبر pip
pip install pythonocc-coreتثبيت PythonOCC-Core عبر Conda
conda install -c conda-forge pythonocc-coreيمكنك أيضًا تثبيت PythonOCC-Core عبر Conda باستخدام الأمر التالي.
conda install -c 1adrianb face_alignmentيمكنك تنزيل المكتبة المشتركة المجمعة من مستودع Github.
إنشاء وإدارة الأشكال ثلاثية الأبعاد عبر بايثون
تتضمن مكتبة PythonOCC-Core المفتوحة المصدر دعمًا كاملاً لإنشاء وإدارة النماذج ثلاثية الأبعاد داخل تطبيقات بايثون. علاوة على ذلك، توفر المكتبة مجموعة واسعة من الأدوات لإنشاء وتعديل الأشكال الهندسية ثلاثية الأبعاد، بما في ذلك النقاط، والمنحنيات، والأسطح، والكتل الصلبة. كما تقدم مجموعة متنوعة من الخوارزميات لبناء وتعديل الكائنات المعقدة، مثل عمليات الجمع والطرح المنطقي، وتنعيم الحواف، وإضافة الشطب. يوضح المثال التالي كيف يمكن لمطوري البرمجيات إنشاء صناديق حدودية للجيومتري الأساسية باستخدام أوامر بايثون.
كيف تحسب وتعرض صناديق الحدود داخل تطبيقات بايثون؟
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)
أتمتة CAD باستخدام واجهة برمجة تطبيقات بايثون
توفر مكتبة PythonOCC-Core مفتوحة المصدر ميزات مفيدة للغاية للتعامل مع مختلف المهام المتعلقة بمخططات CAD. تدعم المكتبة صيغ ملفات متعددة تُستخدم عادةً في CAD، بما في ذلك STEP و IGES و STL و BREP. تمكّن المكتبة المطورين من أتمتة المهام المتكررة في CAD، مثل إنشاء تصاميم بارامترية، وإجراء التحولات الهندسية، وإجراء التحليل الهندسي. كما توفر واجهة برمجة تطبيقات عالية المستوى تُبسّط تنفيذ سير عمل CAD، مما يجعلها خيارًا مثاليًا لبناء أدوات أتمتة CAD.
كيف تنشئ شكلًا وتصدّره إلى تنسيق ملف 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")