Често задавани въпроси

Често задавани въпроси

Често задавани въпроси

Как да инсталирам @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. Поддръжката в браузъра зависи от конфигурацията на bundler и от заменянето на file system APIs с алтернативи в паметта.


Библиотеката е безопасна за многопоточна работа?

Всеки Scene обект е независим. Използването на отделни Scene екземпляри от отделни работни нишки на Node.js е безопасно, стига да не споделяте една и съща сцена между нишките без външна синхронизация.


Кои версии на Node.js се поддържат?

Node.js 18, 20 и 22 са официално поддържани. Препоръчва се TypeScript 5.0+.


Поддържа ли @aspose/3d анимации?

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


Вижте също

 Български