Часто задаваемые вопросы

Часто задаваемые вопросы

Часто задаваемые вопросы

Как установить @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() — синхронные вызовы. Если вам нужен неблокирующий ввод/вывод, запустите их внутри worker‑потока 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 файловой системы на альтернативы в памяти.


Является ли библиотека потокобезопасной?

Каждый объект Scene независим. Использование отдельных экземпляров Scene из разных потоков‑работников Node.js безопасно, при условии что вы не делите одну сцену между потоками без внешней синхронизации.


Какие версии Node.js поддерживаются?

Node.js 18, 20 и 22 официально поддерживаются. TypeScript 5.0+ рекомендуется.


Поддерживает ли @aspose/3d анимацию?

Да. Система анимации включает AnimationClip, AnimationChannel и типы кривых ключевых кадров, доступные из @aspose/3d/animation.


См. также

 Русский