سوالات متداول
سوالات متداول
چگونه @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/ نیست.
کدام فرمتهای فایل پشتیبانی میشوند؟
| فرمت | واردات | صادرات |
|---|---|---|
| OBJ (Wavefront) | بله | بله |
| glTF 2.0 / GLB | بله | بله |
| FBX (Autodesk) | خیر* | خیر* |
| STL (Stereo Lithography) | بله | بله |
| 3MF (3D Manufacturing) | بله | بله |
| COLLADA (.dae) | بله | بله |
چگونه یک فایل 3D را بارگذاری کنم؟
یک 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 طراحی شده است. پشتیبانی مرورگر بستگی به پیکربندی باندلر و جایگزینی APIهای سیستم فایل با گزینههای در‑حافظه دارد.
آیا کتابخانه thread-safe است؟
هر شیء Scene مستقل است. استفاده از نمونههای جداگانه Scene از رشتههای کارگر Node.js جداگانه ایمن است به شرطی که یک صحنهٔ واحد را بین رشتهها بدون همگامسازی خارجی به اشتراک نگذارید.
کدام نسخههای Node.js پشتیبانی میشوند؟
Node.js 18، 20 و 22 بهصورت رسمی پشتیبانی میشوند. TypeScript 5.0+ توصیه میشود.
آیا @aspose/3d از انیمیشنها پشتیبانی میکند؟
بله. سیستم انیمیشن شامل AnimationClip، AnimationChannel و انواع منحنیهای فریم کلیدی است که از @aspose/3d/animation قابل دسترسی هستند.