شكل الدعم
يمكن لـ Aspose.3D FOSS for Python قراءة وكتابة سبعة تنسيقات 3D باستخدام تمثيل مشهد واحد في الذاكرة. Scene يمكن حفظ المشهد الذي يتم تحميله من OBJ مباشرة إلى glTF دون أي خطوات التحويل المتوسطة.
تنسيقات مدعومة
| شكل | التمديد | قراءة | كتب | خيارات الفئة | ملاحظات |
|---|---|---|---|---|---|
| OBJ | .obj | نعم | نعم | ObjLoadOptions | جبهة الموجة OBJ؛; .mtl المواد المعدنية مدعومة |
| STL | .stl | نعم | نعم | StlSaveOptions | قراءة البناني و ASCII؛ حفظ الافتراضات إلى البنك المركزي |
| GLTF | .gltf / .glb | نعم | نعم | GltfSaveOptions | GLTF 2.0 JSON و GLB حاوية ثنائية |
| COLLADA | .dae | نعم | نعم | ColladaLoadOptions / ColladaSaveOptions | الهرم والمواد |
| 3MF | .3mf | نعم | نعم | ThreeMfSaveOptions | تنسيق التصنيع الإضافي |
| FBX | .fbx | الجزء | لا | N/A | يُعد التداول في المتاجر (المتداول كاملة)لا تنتج جاهزة) |
إعداد OBJ
Wavefront OBJ هو شكل التبادل الأكثر دعمًا للمساحات الثابتة. Aspose.3D FOSS يحمل الهندسة الجيومترية (المتحولات ، العادية ، إحداثيات الأشعة فوق البنفسجية ، وجوه متعددة) وبديلً .mtl المواد الملفات .
ObjLoadOptions
| الممتلكات | نوع | الافتراضية | وصف |
|---|---|---|---|
enable_materials | bool | True | شارك في .mtl الملفات التي يشير إليها عنوان OBJ |
flip_coordinate_system | bool | False | تحويل من Y-up اليد اليمنى إلى Z-Up اليمين |
normalize_normal | bool | True | - تقويم جميع المعايير السطحية المستوردة إلى طول وحدة. |
scale | float | 1.0 | عامل مقياس موحد ينطبق على جميع مواقف الوركست |
تحميل ملف OBJ
from aspose.threed import Scene
from aspose.threed.formats import ObjLoadOptions
options = ObjLoadOptions()
options.enable_materials = True
options.flip_coordinate_system = False
options.scale = 1.0
scene = Scene()
scene.open("model.obj", options)
print(f"Top-level nodes: {len(scene.root_node.child_nodes)}")الادخار إلى OBJ
scene.save("output.obj")OBJ export يكتب مواقع الورق والوجهات البوليفون.إذا كانت المشهد يحتوي على LambertMaterial أو PhongMaterial الكتب المكتبية، يكتب رفيق .mtl الملفات تلقائياً.
إلغاء format
STL (STereoLithography) تخزين المقاييس الثلاثية كقائمة غير مؤشر من الجوانب.يتم دعم كل من الخيارات الثنائية و ASCII للقراءة؛ يضع مكتبة الافتراضات إلى الخيار الثانوي على الادخار.
StlSaveOptions
StlSaveOptions لا يوجد مكونات إلزامية، فمن الأفضل أن تصل إلى scene.save():
from aspose.threed.formats import StlSaveOptions
opts = StlSaveOptions()
scene.save("output.stl", opts)مثال جولة
from aspose.threed import Scene
##Load
scene = Scene.from_file("model.stl")
##Inspect
for node in scene.root_node.child_nodes:
if node.entity:
print(f"{node.name}: {len(node.entity.control_points)} vertices")
##Save
scene.save("roundtrip.stl")STL تخزين فقط الهندسة المثلث، مع لا عادات تتجاوز الجانب الطبيعي، لا إحداثيات الأشعة فوق البنفسجية، ولا مواد، وليس هناك الهرم.إذا كان المشهد يحتوي على الكوات أو الأوامر العليا من البوليغونات، يتم تثريها تلقائيا على التخزينة.
تنسيق GLB / GLTF
يُعد فكرة (الخريطة) من نوع 3D، ويحتفظ بالرسوم البيانية الكاملة (هيراخي العقدي، وسميت العوامل، وتحويلات)، والمواد (LambertMaterial, PhongMaterial → PBR التحويل) ، و الرسوم المتحركة. GLB هو واحد ملف ثنائي حاوية الخيار.
GltfSaveOptions
from aspose.threed.formats import GltfSaveOptions
opts = GltfSaveOptions()
scene.save("output.gltf", opts) # JSON + external .bin
scene.save("output.glb", opts) # Self-contained binaryالمواد الدعم
المواد Aspose.3D FOSS يتم خرائطها إلى glTF pbrMetallicRoughness على الصادرات :
from aspose.threed import Scene
from aspose.threed.shading import PhongMaterial
from aspose.threed.utilities import Vector3
scene = Scene()
node = scene.root_node.create_child_node("object")
mat = PhongMaterial()
mat.diffuse_color = Vector3(0.8, 0.2, 0.2) # red
mat.specular_color = Vector3(1.0, 1.0, 1.0)
mat.shininess = 50.0
node.material = mat
scene.save("colored.gltf")التحقق من إنتاج GLTF
import json
with open("output.gltf") as f:
data = json.load(f)
print(f"Asset version : {data['asset']['version']}")
print(f"Nodes : {len(data.get('nodes', []))}")
print(f"Meshes : {len(data.get('meshes', []))}")شكل كولادا
COLLADA (.dae) هو تنسيق على أساس XML يدعم الهرمات المسرحية والمواد والعديد من قنوات الأشعة فوق البنفسجية والرسوم المتحركة العظام. Aspose.3D FOSS يقرأ ويكتب الكامل شجرة النود ومواصفات المادة.
from aspose.threed import Scene
##Load a COLLADA file
scene = Scene.from_file("model.dae")
##Inspect top-level nodes
for node in scene.root_node.child_nodes:
print(f" {node.name}")
##Save back to COLLADA
scene.save("output.dae")COLLADA هو خيار جيد عندما تحتاج إلى إجراء سلسلة من الأقواس مع العقد المسمى والمواد دون أي خسارة البيانات.
3MF Format
3MF (3D Manufacturing Format) targets additive manufacturing (3D printing) workflows. It stores triangle geometry, colour, and print-specific metadata in a ZIP-based container.
from aspose.threed import Scene
from aspose.threed.formats import ThreeMfSaveOptions
scene = Scene.from_file("part.stl") # Load from STL
opts = ThreeMfSaveOptions()
scene.save("part.3mf", opts) # Write as 3MF3MF is the recommended export format when targeting slicer software (Cura, PrusaSlicer, Bambu Studio, etc.).
إصدار FBX
حالة: في التقدم (لا إعداد للإنتاج).
FBX (.fbx) الدعم في Aspose.3D FOSS هو حاليا في مرحلة التوكينيز. يمكن لتوكينيزر FBX الثنائية أن يقطع بنية الملفات، ولكن النقاط الكاملة والخشب والمواد الوسائط قد عرف الأخطاء وليس كاملا.
لا تستخدم FBX في أنابيب الإنتاج مع هذا الإصدار. إذا كانت بيانات المصدر الخاصة بك في FBX، تحويلها إلى glTF أو OBJ أولا باستخدام Blender أو FBx مراجعة قبل تحميل مع Aspose.3D FOSS.
لا يتم دعم FBX الكتابة.
شكل التعرف الذاتي
Scene.from_file() و scene.open() اكتشاف النموذج تلقائيًا باستخدام امتداد الملف، وإذا كان ذلك متاحًّا، فإن البيتات السحرية في عنوان المجلد:
from aspose.threed import Scene
##The library detects each format without being told explicitly
scene_obj = Scene.from_file("model.obj")
scene_glb = Scene.from_file("model.glb")
scene_stl = Scene.from_file("model.stl")
scene_dae = Scene.from_file("model.dae")
scene_3mf = Scene.from_file("model.3mf")إذا كان التمديد غائباً أو مضللاً، فإن المكتبة تعود إلى فحص العناوين (البيتات السحرية). IOError مع رسالة وصفية.
نصائح وأفضل الممارسات
- استخدم GLTF أو GLB للأنابيب الحديثة. يحافظ glTF على الرسم البياني الكامل للمشهد والمواد والبيانات الرسوم المتحركة.وهذا هو النموذج الأكثر اكتمالا للتبادل مع محركات اللعبة ومشاهدة الويب.
- استخدم OBJ للحصول على أقصى قدر من التوافق. يدعم OBJ تقريبا كل أداة 3D. انها محدودة إلى الماسات الثابتة ولكنها قابلة للتحميل بشكل كبير.
- استخدم 3MF للطباعة. 3MF carries colour, orientation hints, and print settings that STL cannot express.
- تجنب FBX حتى تكون جاهزة للإنتاج. تحقق من ملاحظات الإصدار للنسخة التي يتم فيها إكمال التلخيص الكامل لـ FBX.
- يُحفظ المباراة التمديد إلى النموذج. لا تذهب إلى A
.gltfالتمديد عند رغبتك في GLB الثنائي؛ استخدام.glbيحدد التمديد الذي يتم استخدامه. - تحقق من متوافقية البوليغون. STL و 3MF يتطلب المثلثات. يتم تريغولا الكوادر و N-gons تلقائيا على التخزين، ولكن العد العمودي سوف ترتفع.
mesh.triangulate()قبل أن ينقذ.