Aspose.3D FOSS for .NET يدعم سبعة صيغ ملفات ثلاثية الأبعاد: OBJ, STL, glTF, GLB, FBX, Collada,، و 3MF. هذه المقالة دليل عملي، صيغة‑بصيغة يوضح كيفية تحميل وحفظ كل واحدة، وما الخيارات المتاحة، وكيفية التحويل بينها.
جميع الأمثلة تستخدم الـ Aspose.ThreeD نطاق الاسم:
using Aspose.ThreeD;
using Aspose.ThreeD.Formats;
حزمة NuGet:
dotnet add package Aspose.3D.Converter --version 1.0.0
OBJ (Wavefront)
OBJ هو صيغة نصية مدعومة على نطاق واسع لتمثيل هندسة الشبكة. Aspose.3D FOSS يحمل ملفات OBJ مع مرافقها .mtl ملفات المواد.
تحميل OBJ
var scene = new Scene();
scene.Open("model.obj");
Console.WriteLine("Nodes: " + scene.RootNode.ChildNodes.Count);
جارٍ التحميل مع الخيارات
var opts = new ObjLoadOptions();
// Configure loading behavior as needed
var scene = new Scene();
scene.Open("model.obj", opts);
حفظ كـ OBJ
var scene = new Scene();
var box = new Entities.Box(2, 2, 2);
scene.RootNode.CreateChildNode("BoxNode", box);
scene.Save("output.obj");
OBJ مع خيارات الحفظ
var opts = new ObjSaveOptions();
scene.Save("output.obj", opts);
STL (Stereolithography)
STL هو التنسيق القياسي للطباعة ثلاثية الأبعاد. يخزن الهندسة المثلثية الخام دون مواد أو هيكلية. Aspose. يدعم 3D FOSS كلًا من STL الثنائي وASCII.
تحميل STL
var scene = new Scene();
scene.Open("part.stl");
Console.WriteLine("Nodes: " + scene.RootNode.ChildNodes.Count);
حفظ كـ STL
var scene = new Scene();
var sphere = new Entities.Sphere(1);
scene.RootNode.CreateChildNode("SphereNode", sphere);
scene.Save("output.stl");
STL مع خيارات الحفظ
var opts = new StlSaveOptions();
// Control binary mode, scale, and coordinate flipping
scene.Save("output.stl", opts);
STL دورة كاملة
// Load an STL file and re-save it -- geometry is preserved
var scene = new Scene();
scene.Open("original.stl");
scene.Save("copy.stl");
glTF 2.0 و GLB
glTF هو المعيار الحديث للويب والـ3D في الوقت الحقيقي. يدعم مواد PBR، هياكل المشاهد الكاملة، وصُمم لنقل فعال. استخدم glTF عند بناء عارضات ويب، أو العمل مع three.js أو Babylon.js، أو استهداف أي خط أنابيب للتصيير في الوقت الحقيقي.
تحميل glTF
var scene = new Scene();
scene.Open("model.gltf");
جارٍ التحميل مع الخيارات
var opts = new GltfLoadOptions();
var scene = new Scene();
scene.Open("model.gltf", opts);
حفظ كـ glTF
var scene = new Scene();
var box = new Entities.Box(2, 2, 2);
scene.RootNode.CreateChildNode("BoxNode", box);
scene.Save("output.gltf");
حفظ كـ GLB (glTF ثنائي)
لإنشاء ملف ثنائي مستقل .glb ملف، احفظه ب .glb امتداد. تستنتج المكتبة تنسيق glTF الثنائي من الامتداد:
scene.Save("output.glb");
FBX (Filmbox)
يُستخدم FBX على نطاق واسع في تطوير الألعاب وإنشاء المحتوى الرقمي. Aspose.3D FOSS لـ .NET يدعم FBX استيراد وتصدير في كل من وضعية ASCII والثنائية.
جارٍ تحميل FBX
var scene = new Scene();
scene.Open("model.fbx");
جارٍ التحميل مع الخيارات
var opts = new FbxLoadOptions();
var scene = new Scene();
scene.Open("model.fbx", opts);
حفظ كـ FBX ASCII
var scene = new Scene();
var box = new Entities.Box(2, 2, 2);
scene.RootNode.CreateChildNode("BoxNode", box);
var opts = new FbxSaveOptions() { IsAscii = true };
scene.Save("output.fbx", opts);
حفظ كـ FBX Binary
var opts = new FbxSaveOptions() { IsAscii = false };
scene.Save("output.fbx", opts);
3MF (3D Manufacturing Format)
3MF is a modern 3D printing format developed by the 3MF Consortium. It supports rich metadata, materials, and multi-object scenes in a single ZIP-based package.
جارٍ تحميل 3MF
var scene = new Scene();
scene.Open("model.3mf");
جارٍ التحميل مع الخيارات
var opts = new TmfLoadOptions();
var scene = new Scene();
scene.Open("model.3mf", opts);
حفظ كـ 3MF
var scene = new Scene();
var box = new Entities.Box(2, 2, 2);
scene.RootNode.CreateChildNode("BoxNode", box);
scene.Save("output.3mf");
حفظ مع الخيارات
var opts = new TmfSaveOptions();
scene.Save("output.3mf", opts);
إدخال/إخراج قائم على التدفق
جميع الصيغ تدعم التحميل من التدفقات والحفظ إليها، وهو ما يكون مفيدًا لخدمات الويب ومعالجة السحابة:
using var stream = File.OpenRead("model.obj");
var scene = new Scene();
var opts = new ObjLoadOptions();
scene.Open(stream, opts);
// Save to a memory stream
using var output = new MemoryStream();
var saveOpts = new GltfSaveOptions();
scene.Save(output, saveOpts);
اكتشاف الصيغة
يمكن للمكتبة اكتشاف الصيغ تلقائيًا من امتدادات الملفات أو محتوى التدفق:
// Auto-detect from extension
var scene = new Scene();
scene.Open("model.obj"); // Detects OBJ from .obj extension
// Auto-detect from stream content
using var stream = File.OpenRead("model.obj");
scene.Open(stream); // Inspects stream content to determine format
نمط التحويل الدفعي
لتحويل ملفات متعددة، قم بالتكرار عبر دليل وتحويل كل ملف على حدة:
using Aspose.ThreeD;
using Aspose.ThreeD.Formats;
var inputDir = "assets/";
var outputDir = "converted/";
foreach (var file in Directory.GetFiles(inputDir, "*.fbx"))
{
var scene = new Scene();
scene.Open(file);
var outputPath = Path.Combine(outputDir,
Path.GetFileNameWithoutExtension(file) + ".glb");
scene.Save(outputPath);
Console.WriteLine("Converted: " + file);
}
مقارنة الصيغ
| الميزة | OBJ | STL | glTF | FBX | 3MF |
|---|---|---|---|---|---|
| المواد | MTL | لا | PBR | نعم | نعم |
| تسلسل المشهد | لا | لا | نعم | نعم | نعم |
| قوالب الرسوم المتحركة | لا | لا | نعم | نعم | لا |
| الوضع الثنائي | لا | يرجى ت | GLB | نعم | ZIP |
| 3D printing ready | محدود | نعم | لا | لا | نعم |
| تسليم عبر الويب | لا | لا | نعم | لا | لا |
ملخص
Aspose.3D FOSS for .NET يمنحك واجهة برمجة تطبيقات واحدة ومتسقة للعمل مع جميع صيغ ملفات 3D الرئيسية. النمط دائمًا هو نفسه: أنشئ Scene,، استدعِ Open() للتحميل، اختياريًا قم بتكوين الخيارات الخاصة بالصيغة، واستدعِ Save() للتصدير. اكتشاف الصيغة، الإدخال/الإخراج القائم على التدفق، والتحويل الدفعي يجعل من السهل دمجه في أي خط أنابيب .NET.
لمزيد من المعلومات:
- مرجع API – وثائق مفصلة للفئة والطريقة.
- قاعدة المعرفة – مقالات إرشادية عملية.
- GitHub – الشيفرة المصدرية ومتعقب المشكلات.