Често задавани въпроси
Често задавани въпроси
Как да инсталирам @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.