الأسئلة المتكررة
الأسئلة المتكررة
كيف أقوم بتثبيت @aspose/3d؟
التثبيت من npm. يتطلب Node.js 18 أو أحدث:
npm install @aspose/3dتحقق من التثبيت:
import { Scene } from '@aspose/3d';
const scene = new Scene();
console.log('@aspose/3d ready');تعريفات نوع TypeScript مدمجة مع الحزمة. لا حاجة إلى حزمة @types/ منفصلة.
ما هي صيغ الملفات المدعومة؟
| Format | Import | Export |
|---|---|---|
| OBJ (Wavefront) | نعم | نعم |
| glTF 2.0 / GLB | نعم | نعم |
| FBX (Autodesk) | لا* | لا* |
| STL (Stereo Lithography) | نعم | نعم |
| 3MF (3D Manufacturing) | نعم | نعم |
| COLLADA (.dae) | نعم | نعم |
كيف يمكنني تحميل ملف ثلاثي الأبعاد؟
إنشاء Scene واستدعاء scene.open():
import { Scene } from '@aspose/3d';
import { ObjLoadOptions } from '@aspose/3d/formats/obj';
const scene = new Scene();
scene.open('model.obj', new ObjLoadOptions());بالنسبة للملفات التي لا تحتاج إلى خيارات خاصة، احذف الوسيط الثاني:
const scene = new Scene();
scene.open('model.glb');هل scene.open() غير متزامن؟
لا. scene.open() و scene.openFromBuffer() هما استدعاءات متزامنة. إذا كنت بحاجة إلى I/O غير محجوب، شغّلها داخل خيط عمل Node.js أو غلفها بـ setImmediate.
كيف أحفظ إلى glTF/GLB؟
استدعِ scene.save() بمسار ملف. يتم اكتشاف التنسيق تلقائيًا من الامتداد:
scene.save('output.glb'); // binary glTF
scene.save('output.gltf'); // JSON glTF
scene.save('output.obj'); // OBJ
scene.save('output.stl'); // STL
كيف يمكنني التحميل من المخزن المؤقت (في الذاكرة)؟
استخدم scene.openFromBuffer():
import * as fs from 'fs';
import { Scene } from '@aspose/3d';
import { ObjLoadOptions } from '@aspose/3d/formats/obj';
const buffer = fs.readFileSync('model.obj');
const scene = new Scene();
scene.openFromBuffer(buffer, new ObjLoadOptions());خطأ: لا يمكن العثور على الوحدة ‘@aspose/3d/formats/obj’
يتطلب هذا حل تصدير الحزمة في Node.js 12.7+. تأكد من أنك تستخدم Node.js 18+. بالنسبة لـ TypeScript، اضبط "moduleResolution": "node16" أو "bundler" في tsconfig.json:
{
"compilerOptions": {
"moduleResolution": "node16",
"target": "ES2020"
}
}ما هو نوع node.entity؟
node.entity مكتوب بشكل عام. للوصول إلى خصائص الشبكة المحددة، تحقق من وجودها باستخدام 'controlPoints' in node.entity أو استخدم الفئة Mesh من @aspose/3d/entities:
import { Mesh } from '@aspose/3d/entities';
if (node.entity instanceof Mesh) {
const mesh = node.entity;
console.log(mesh.controlPoints.length);
}هل تعمل المكتبة في المتصفح؟
المكتبة مصممة لـ Node.js. يعتمد دعم المتصفح على تكوين الحزمة واستبدال واجهات برمجة تطبيقات نظام الملفات ببدائل في الذاكرة.
هل المكتبة آمنة للخيوط؟
كل كائن Scene مستقل. استخدام مثيلات Scene منفصلة من خيوط عمل Node.js منفصلة آمن طالما أنك لا تشارك مشهدًا واحدًا عبر الخيوط دون مزامنة خارجية.
ما إصدارات Node.js المدعومة؟
Node.js 18 و 20 و 22 مدعومان رسميًا. يُنصح باستخدام TypeScript 5.0+.
هل يدعم @aspose/3d الرسوم المتحركة؟
نعم. يتضمن نظام الرسوم المتحركة AnimationClip، AnimationChannel، وأنواع منحنيات الإطار الرئيسي المتاحة من @aspose/3d/animation.