Domande frequenti
Domande frequenti
Come installo @aspose/3d?
Installa da npm. È richiesto Node.js 18 o versioni successive:
npm install @aspose/3dVerifica 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?
| Formato | Importazione | Esportazione |
|---|---|---|
| OBJ (Wavefront) | Sì | Sì |
| glTF 2.0 / GLB | Sì | Sì |
| FBX (Autodesk) | No* | No* |
| STL (Stereo Lithography) | Sì | Sì |
| 3MF (3D Manufacturing) | Sì | Sì |
| COLLADA (.dae) | Sì | Sì |
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.