Perguntas Frequentes

Perguntas Frequentes

Perguntas Frequentes

Como faço para instalar @aspose/3d?

Instale via npm. Node.js 18 ou posterior é necessário:

npm install @aspose/3d

Verifique a instalação:

import { Scene } from '@aspose/3d';
const scene = new Scene();
console.log('@aspose/3d ready');

As definições de tipo TypeScript são incluídas no pacote. Não é necessário um pacote @types/ separado.


Quais formatos de arquivo são suportados?

FormatoImportarExportar
OBJ (Wavefront)SimSim
glTF 2.0 / GLBSimSim
FBX (Autodesk)Não*Não*
STL (Stereo Lithography)SimSim
3MF (3D Manufacturing)SimSim
COLLADA (.dae)SimSim

Como faço para carregar um arquivo 3D?

Crie um Scene e chame scene.open():

import { Scene } from '@aspose/3d';
import { ObjLoadOptions } from '@aspose/3d/formats/obj';

const scene = new Scene();
scene.open('model.obj', new ObjLoadOptions());

Para formatos que não precisam de opções especiais, omita o segundo argumento:

const scene = new Scene();
scene.open('model.glb');

O scene.open() é assíncrono?

Não. scene.open() e scene.openFromBuffer() são chamadas síncronas. Se precisar de I/O não bloqueante, execute-as dentro de uma thread de trabalho do Node.js ou envolva-as com setImmediate.


Como salvo em glTF/GLB?

Chame scene.save() com um caminho de arquivo. O formato é detectado automaticamente a partir da extensão:

scene.save('output.glb');   // binary glTF
scene.save('output.gltf');  // JSON glTF
scene.save('output.obj');   // OBJ
scene.save('output.stl');   // STL

Como faço para carregar a partir de um Buffer (na memória)?

Use 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());

Erro: Não foi possível encontrar o módulo ‘@aspose/3d/formats/obj’

Isto requer resolução de exportação de pacotes do Node.js 12.7+. Certifique‑se de estar no Node.js 18+. Para TypeScript, defina "moduleResolution": "node16" ou "bundler" em tsconfig.json:

{
  "compilerOptions": {
    "moduleResolution": "node16",
    "target": "ES2020"
  }
}

Qual é o tipo de node.entity?

node.entity é tipado de forma geral. Para acessar propriedades específicas de malha, verifique sua presença com 'controlPoints' in node.entity ou use a classe Mesh de @aspose/3d/entities:

import { Mesh } from '@aspose/3d/entities';

if (node.entity instanceof Mesh) {
    const mesh = node.entity;
    console.log(mesh.controlPoints.length);
}

A biblioteca roda no navegador?

A biblioteca foi projetada para Node.js. O suporte ao navegador depende da configuração do bundler e da substituição das APIs do sistema de arquivos por alternativas em memória.


A biblioteca é thread‑safe?

Cada objeto Scene é independente. Usar instâncias separadas de Scene a partir de threads de trabalho Node.js separados é seguro, desde que você não compartilhe uma única cena entre threads sem sincronização externa.


Quais versões do Node.js são suportadas?

Node.js 18, 20 e 22 são oficialmente suportados. TypeScript 5.0+ é recomendado.


O @aspose/3d suporta animações?

Sim. O sistema de animação inclui AnimationClip, AnimationChannel e tipos de curva de quadro‑chave acessíveis a partir de @aspose/3d/animation.


Veja Também

 Português