Поширені запитання

Поширені запитання

Поширені запитання

Як встановити @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.


Дивіться також

 Українська