مقدمة

نحن نطلق Aspose.3D FOSS لـ Python,، مكتبة pure-Python لقراءة وكتابة وتحويل صيغ ملفات 3D الشائعة. المكتبة منشورة على PyPI باسم aspose-3d-foss,، تحمل رخصة MIT، ولا تعتمد على أي مكتبات خارجية.

إذا احتجت يومًا إلى فحص أو تحويل ملفات ثلاثية الأبعاد برمجيًا (استخراج عدد رؤوس الشبكة، تمرير هندسة OBJ إلى سكريبت معالجة، أو تحويل مجموعة من ملفات STL إلى glTF لعرضها على الويب)، فهذه المكتبة مصممة لهذا الغرض. لا تحتاج إلى برنامج تشغيل رسومي، ولا إلى وحدة امتداد أصلية، ولا إلى أي اتصال سحابي.


ما الذي يتضمنه

الرسم البياني الأساسي للمشهد

كل ملف يُحمَّل في Scene كائن يعكس تسلسل العقد الأصلي للملف. العقد تحمل Transform (الترجمة، الدوران، المقياس) وواحدة أو أكثر من الكيانات المرفقة مثل Mesh, Camera,، أو Light. مخطط المشهد هو نفسه بغض النظر عن صيغة المصدر، لذا فإن الشيفرة المكتوبة لتجوال ومعالجة الهندسة تعمل عبر جميع الصيغ المدعومة دون تعديل.

الوصول إلى الهندسة

Mesh الكائنات تعرض:

  • control_points: قائمة مواضع الرؤوس كـ Vector4 (x, y, z, w)
  • polygons: قائمة قوائم فهارس الوجوه (عدد أضلاع متعدد، ليس فقط مثلثات)
  • get_element(VertexElementType): يسترجع طبقات بيانات الرؤوس المسماة للمتجهات العمودية، إحداثيات UV، ألوان الرؤوس، ومجموعات التنعيم

المواد

LambertMaterial و PhongMaterial تحمل خصائص المادة المقروءة من ملفات OBJ .mtl الملفات (البيئة، الانتشار، الانعكاس، الانبعاث، الشفافية، اللمعان). تبقى المواد صالحة عبر عملية التحميل والحفظ للأنساق التي تدعمها.

أدوات الرياضيات

Vector2, Vector3, Vector4, FVector3, Quaternion, Matrix4, و BoundingBox مُدرجة كأنواع قيمة خفيفة الوزن لحسابات الهندسة.

التحريك

ال AnimationClip, AnimationNode, KeyframeSequence,، و KeyFrame توفر الفئات إمكانية الوصول إلى بيانات الرسوم المتحركة ذات الإطارات المفتاحية من الصيغ التي تحملها، مثل glTF و COLLADA.


البدء السريع

pip install aspose-3d-foss

حمّل ملفًا ثلاثي الأبعاد واطبع عدد الرؤوس في كل شبكة:

from aspose.threed import Scene
from aspose.threed.entities import Mesh

scene = Scene.from_file("model.obj")

def visit(node):
    for entity in node.entities:
        if isinstance(entity, Mesh):
            print(f"{node.name}: {len(entity.control_points)} vertices, "
                  f"{len(entity.polygons)} polygons")
    for child in node.child_nodes:
        visit(child)

visit(scene.root_node)

حوّل نفس الملف إلى glTF:

from aspose.threed import Scene
from aspose.threed.formats import GltfSaveOptions

scene = Scene.from_file("model.obj")
scene.save("model.gltf", GltfSaveOptions())

هذا هو البرنامج الكامل. لا ملفات تكوين، لا مفاتيح API، لا استدعاءات شبكة.


الصيغ المدعومة

الصيغةExtension(s)تحميلحفظملاحظات
Wavefront OBJ.objنعمنعم.mtl دعم تحميل المواد
STL.stlنعمنعمثنائي و ASCII؛ خيار عكس نظام الإحداثيات
glTF 2.0.gltf, .glbنعمنعمدعم GLB (ثنائي مستقل)
COLLADA.daeنعمنعمColladaSaveOptions متاح مع flip_coordinate_system, enable_materials, indented
3MF.3mfنعمنعممناسب لتدفقات عمل الطباعة ثلاثية الأبعاد
FBX.fbxجزئيN/Aمجرد محلل رموز؛ محلل كامل قيد التطوير

اكتشاف الصيغة يتم تلقائيًا من امتداد الملف. خيارات التحميل والحفظ الخاصة بالصيغ (ObjLoadOptions, StlSaveOptions, GltfSaveOptions, ThreeMfSaveOptions) متاحة للتحكم الدقيق.


مفتوح المصدر ومجاني

المكتبة مرخصة تحت رخصة MIT. يمكنك استخدامها في التطبيقات التجارية، تعديلها، وإعادة توزيعها دون أي قيود. الشيفرة المصدرية متاحة على GitHub تحت منظمة Aspose.

لا توجد مستويات استخدام، ولا حدود للرموز، ولا تتبع. تقوم المكتبة بتنفيذ جميع المعالجة محليًا.

الاعتمادات: لا شيء. الحزمة تُثبت كعجلة pure-Python دون امتدادات C ولا متطلبات تشغيل من طرف ثالث.


البدء


الخاتمة

Aspose.3D FOSS for Python 26.1.0 يغطي أكثر صيغ الملفات ثلاثية الأبعاد شيوعًا المستخدمة في الأدوات، خطوط الأنابيب، وتطبيقات الويب (OBJ, STL, glTF, COLLADA, و 3MF) مع API Python متسق وبدون أي عوائق في التثبيت. إذا صادفت خطأً، حالة حافة غير مدعومة، أو صيغة تحتاج إلى إضافتها، يرجى فتح مشكلة على GitHub. نحن نقوم بصيانة المكتبة بنشاط ونرحب بالمساهمات.