Perguntas Frequentes
Perguntas Frequentes
Como faço para instalar @aspose/3d?
Instale via npm. Node.js 18 ou posterior é necessário:
npm install @aspose/3dVerifique 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?
| Formato | Importar | Exportar |
|---|---|---|
| OBJ (Wavefront) | Sim | Sim |
| glTF 2.0 / GLB | Sim | Sim |
| FBX (Autodesk) | Não* | Não* |
| STL (Stereo Lithography) | Sim | Sim |
| 3MF (3D Manufacturing) | Sim | Sim |
| COLLADA (.dae) | Sim | Sim |
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.