Foire aux questions
Foire aux questions
Comment installer @aspose/3d ?
Installez depuis npm. Node.js 18 ou une version ultérieure est requis :
npm install @aspose/3dVérifiez l’installation :
import { Scene } from '@aspose/3d';
const scene = new Scene();
console.log('@aspose/3d ready');Les définitions de type TypeScript sont incluses dans le package. Aucun package séparé @types/ n’est nécessaire.
Quels formats de fichiers sont pris en charge ?
| Format | Importation | Exportation |
|---|---|---|
| OBJ (Wavefront) | Oui | Oui |
| glTF 2.0 / GLB | Oui | Oui |
| FBX (Autodesk) | Non* | Non* |
| STL (Stereo Lithography) | Oui | Oui |
| 3MF (3D Manufacturing) | Oui | Oui |
| COLLADA (.dae) | Oui | Oui |
Comment charger un fichier 3D ?
Créez un Scene et appelez scene.open():
import { Scene } from '@aspose/3d';
import { ObjLoadOptions } from '@aspose/3d/formats/obj';
const scene = new Scene();
scene.open('model.obj', new ObjLoadOptions());Pour les formats qui n’ont pas besoin d’options spéciales, omettez le deuxième argument :
const scene = new Scene();
scene.open('model.glb');scene.open() est‑il asynchrone ?
Non. scene.open() et scene.openFromBuffer() sont des appels synchrones. Si vous avez besoin d’E/S non bloquantes, exécutez‑les dans un thread de travail Node.js ou encapsulez‑les avec setImmediate.
Comment enregistrer au format glTF/GLB ?
Appelez scene.save() avec un chemin de fichier. Le format est détecté automatiquement à partir de l’extension :
scene.save('output.glb'); // binary glTF
scene.save('output.gltf'); // JSON glTF
scene.save('output.obj'); // OBJ
scene.save('output.stl'); // STL
Comment charger depuis un tampon (en mémoire) ?
Utilisez 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());Erreur : Impossible de trouver le module ‘@aspose/3d/formats/obj’
Cela nécessite la résolution des exportations de package Node.js 12.7+. Assurez‑vous d’utiliser Node.js 18+. Pour TypeScript, définissez "moduleResolution": "node16" ou "bundler" dans tsconfig.json :
{
"compilerOptions": {
"moduleResolution": "node16",
"target": "ES2020"
}
}Quel est le type de node.entity ?
node.entity est typé de manière générale. Pour accéder aux propriétés spécifiques aux maillages, vérifiez leur présence avec 'controlPoints' in node.entity ou utilisez la 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);
}La bibliothèque fonctionne-t-elle dans le navigateur ?
La bibliothèque est conçue pour Node.js. La prise en charge du navigateur dépend de la configuration du bundler et du remplacement des file system APIs par des alternatives en mémoire.
La bibliothèque est‑elle thread‑safe ?
Chaque objet Scene est indépendant. Utiliser des instances séparées de Scene provenant de threads de travail Node.js distincts est sûr tant que vous ne partagez pas une même scène entre les threads sans synchronisation externe.
Quelles versions de Node.js sont prises en charge ?
Node.js 18, 20 et 22 sont officiellement pris en charge. TypeScript 5.0+ est recommandé.
Le @aspose/3d prend‑il en charge les animations ?
Oui. Le système d’animation comprend AnimationClip, AnimationChannel et les types de courbes d’images clés accessibles depuis @aspose/3d/animation.