Domande frequenti

Domande frequenti

Domande frequenti

Come installo @aspose/3d?

Installa da npm. È richiesto Node.js 18 o versioni successive:

npm install @aspose/3d

Verifica l’installazione:

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

Le definizioni di tipo TypeScript sono incluse nel pacchetto. Non è necessario alcun pacchetto @types/ separato.


Quali formati di file sono supportati?

FormatoImportazioneEsportazione
OBJ (Wavefront)
glTF 2.0 / GLB
FBX (Autodesk)No*No*
STL (Stereo Lithography)
3MF (3D Manufacturing)
COLLADA (.dae)

Come carico un file 3D?

Crea un Scene e chiama scene.open():

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

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

Per i formati che non richiedono opzioni speciali, omettere il secondo argomento:

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

scene.open() è asincrono?

No. scene.open() e scene.openFromBuffer() sono chiamate sincrone. Se hai bisogno di I/O non bloccante, eseguili all’interno di un thread worker di Node.js o avvolgili con setImmediate.


Come salvo in glTF/GLB?

Chiama scene.save() con un percorso file. Il formato viene rilevato automaticamente dall’estensione:

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

Come carico da un buffer (in memoria)?

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

Errore: Impossibile trovare il modulo ‘@aspose/3d/formats/obj’

Questo richiede la risoluzione delle esportazioni dei pacchetti di Node.js 12.7+. Assicurati di utilizzare Node.js 18+. Per TypeScript, imposta "moduleResolution": "node16" o "bundler" in tsconfig.json:

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

Qual è il tipo di node.entity?

node.entity è tipizzato in modo generico. Per accedere alle proprietà specifiche della mesh, verifica la loro presenza con 'controlPoints' in node.entity o utilizza la classe Mesh da @aspose/3d/entities:

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

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

La libreria funziona nel browser?

La libreria è progettata per Node.js. Il supporto del browser dipende dalla configurazione del bundler e dalla sostituzione delle API del file system con alternative in memoria.


La libreria è thread‑safe?

Ogni oggetto Scene è indipendente. L’uso di istanze separate di Scene da thread worker separati di Node.js è sicuro purché non si condivida una singola scena tra i thread senza sincronizzazione esterna.


Quali versioni di Node.js sono supportate?

Node.js 18, 20 e 22 sono supportati ufficialmente. TypeScript 5.0+ è consigliato.


Il @aspose/3d supporta le animazioni?

Sì. Il sistema di animazione include AnimationClip, AnimationChannel e i tipi di curve dei fotogrammi chiave accessibili da @aspose/3d/animation.


Vedi anche

 Italiano