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);
}

مقارنة الصيغ

الميزةOBJSTLglTFFBX3MF
الموادMTLلاPBRنعمنعم
تسلسل المشهدلالانعمنعمنعم
قوالب الرسوم المتحركةلالانعمنعملا
الوضع الثنائيلايرجى تGLBنعمZIP
3D printing readyمحدودنعملالانعم
تسليم عبر الويبلالانعملالا

ملخص

Aspose.3D FOSS for .NET يمنحك واجهة برمجة تطبيقات واحدة ومتسقة للعمل مع جميع صيغ ملفات 3D الرئيسية. النمط دائمًا هو نفسه: أنشئ Scene,، استدعِ Open() للتحميل، اختياريًا قم بتكوين الخيارات الخاصة بالصيغة، واستدعِ Save() للتصدير. اكتشاف الصيغة، الإدخال/الإخراج القائم على التدفق، والتحويل الدفعي يجعل من السهل دمجه في أي خط أنابيب .NET.

لمزيد من المعلومات: