Поширені запитання
Поширені запитання
Як встановити @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 worker thread або обгорніть за допомогою 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 файлової системи на альтернативи в пам’яті.
Чи є бібліотека потокобезпечна?
Кожен Scene об’єкт є незалежним. Використання окремих Scene екземплярів у різних робочих потоках Node.js безпечно, за умови, що ви не ділите одну сцену між потоками без зовнішньої синхронізації.
Які версії Node.js підтримуються?
Node.js 18, 20 і 22 офіційно підтримуються. Рекомендується TypeScript 5.0+.
Чи підтримує @aspose/3d анімації?
Так. Система анімації включає AnimationClip, AnimationChannel та типи кривих ключових кадрів, доступні з @aspose/3d/animation.