مقدمة

يسعدنا أن نعلن عن توفر Aspose.3D FOSS لـ TypeScript كـ @aspose/3d حزمة npm. هذه المكتبة المرخصة بموجب رخصة MIT تجلب معالجة مشاهد ثلاثية الأبعاد بجودة الإنتاج إلى تطبيقات TypeScript وNode.js دون الحاجة إلى ثنائيات أصلية أو سلاسل أدوات مخصصة للمنصة أو تراخيص تجارية.

تم تصميم المكتبة حول نهج بسيط Scene API: تحميل ملف ثلاثي الأبعاد باستخدام scene.open(),، فحص أو تحويل مخطط المشهد، وكتابة النتيجة باستخدام scene.save(). تعريفات TypeScript الكاملة مدمجة؛ لا @types/ حزمة مطلوبة.

الميزات الرئيسية

إدخال/إخراج متعدد الصيغ. تقرأ الحزمة وتكتب ست صيغ ثلاثية الأبعاد رئيسية في تثبيت واحد. تدعم OBJ و glTF 2.0 و GLB و STL و 3MF و COLLADA كلًا من الاستيراد والتصدير. توجد فئات مستورد/مصدّر FBX لكن الكشف التلقائي عن الصيغة لم يُفعَّل بعد، لذا لا يمكن تحميل ملفات FBX عبر scene.open().

دعم TypeScript من الدرجة الأولى. جميع الفئات العامة، والتعدادات، وأنواع الخيارات مكتوبة بالكامل. توفر بيئات التطوير المتكاملة (IDEs) التي تدعم خدمة لغة TypeScript (VS Code، WebStorm، إلخ) إكمالًا تلقائيًا دقيقًا وتوثيقًا مدمجًا لكل استدعاء API.

توافق مع Node.js 18–22+. تم اختبار الحزمة على إصدارات Node.js LTS 18 و 20 و 22. لا يتم تجميع أي إضافات أصلية أثناء التثبيت، لذا تعمل على جميع المنصات التي يدعمها Node.js.

اعتماد واحد أثناء التشغيل. الاعتماد الوحيد هو xmldom, يُستخدم حصريًا لتحليل XML الخاص بـ COLLADA. جميع محللات الصيغ الأخرى هي تنفيذات JavaScript صافية.

رخصة MIT. استخدام @aspose/3d في المشاريع التجارية أو مفتوحة المصدر أو الداخلية دون أي قيود.

البدء السريع

تثبيت الحزمة:

npm install @aspose/3d

تحميل ملف OBJ وتحويله إلى GLB ثنائي:

import { Scene } from '@aspose/3d';
import { ObjLoadOptions } from '@aspose/3d/formats/obj';
import { GltfSaveOptions, GltfFormat } from '@aspose/3d/formats/gltf';

const scene = new Scene();
scene.open('model.obj', new ObjLoadOptions());

const saveOpts = new GltfSaveOptions();
saveOpts.binaryMode = true;   // produce a single .glb file
scene.save('output.glb', GltfFormat.getInstance(), saveOpts);

console.log('Converted to GLB successfully');

التكرار على عقد المشهد لتفقد الهندسة:

import { Scene } from '@aspose/3d';
import { ObjLoadOptions } from '@aspose/3d/formats/obj';

const scene = new Scene();
scene.open('model.obj', new ObjLoadOptions());

for (const node of scene.rootNode.childNodes) {
    console.log(`Node: ${node.name}`);
    if (node.entity) {
        console.log(`  Entity type: ${node.entity.constructor.name}`);
    }
}

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

الصيغةالامتداداستيرادتصديرملاحظات
Wavefront OBJ.objنعمنعمقراءة/كتابة .mtl ملفات المواد
glTF 2.0.gltfنعمنعمJSON مع خارجي .bin مخزن
GLB ثنائي.glbنعمنعممجموعة binaryMode: true في GltfSaveOptions
STL.stlنعمنعمASCII و STL ثنائي
3MF.3mfنعمنعمأرشيف Open Packaging Convention
FBX.fbxلا*لا*المستورد/المصدر موجود لكن الكشف التلقائي عن الصيغة غير موصول
COLLADA.daeنعمنعميتطلب مدمج xmldom اعتماد

مزايا TypeScript

العمل مع @aspose/3d في TypeScript يلتقط أخطاء الفئة أثناء وقت التجميع بدلاً من وقت التشغيل. عندما تستدعي scene.save(), يتحقق المترجم من أن كائن الخيارات يطابق المتوقع SaveOptions النوع الفرعي للتنسيق المختار. خيارات التحميل والحفظ الخاصة بالتنسيق تكشف فقط عن الخصائص ذات الصلة بذلك التنسيق؛ لا توجد حقيبة خيارات غير مُعرفة للتخمين.

على سبيل المثال،, GltfSaveOptions.binaryMode هو مكتوب بنوع boolean, لذا يرفض المترجم saveOpts.binaryMode = 'yes' قبل تشغيل أي شفرة. خصائص الرسوم المتحركة على AnimationClip, قنوات المواد على PbrMaterial, وأنواع عناصر القمم على VertexElement جميعها مُصنَّفة بشكل مماثل ويمكن اكتشافها عبر IntelliSense دون الحاجة إلى استشارة الوثائق الخارجية.

المصدر المفتوح

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

المكتبة لديها اعتماد تشغيل واحد: xmldom الإصدار 0.9+، يُستخدم فقط عند قراءة أو كتابة ملفات COLLADA. جميع المحللات والكتّاب الآخرين مستقلون ذاتيًا، تنفيذات pure-JavaScript دون مكوّنات ثنائية.

البدء

الخاتمة

@aspose/3d الإصدار 24.12.0 يوفر أساسًا ثابتًا ومُعَرَّفًا وخفيف الاعتماد لمعالجة ملفات 3D في TypeScript وNode.js. سواء كان حالة الاستخدام تحويل الصيغ، فحص المشهد، استخراج الهندسة، أو دمج الأنابيب، تغطي المكتبة أكثر صيغ تبادل 3D شيوعًا تحت ترخيص مفتوح المصدر مرن.

ثبّتها اليوم وأخبرنا بما تبنيه.