Vanliga frågor
Vanliga frågor
Hur installerar jag @aspose/3d?
Installera från npm. Node.js 18 eller senare krävs:
npm install @aspose/3dVerifiera installationen:
import { Scene } from '@aspose/3d';
const scene = new Scene();
console.log('@aspose/3d ready');TypeScript type definitions är med i paketet. Inget separat @types/-paket behövs.
Vilka filformat stöds?
| Format | Import | Export |
|---|---|---|
| OBJ (Wavefront) | Ja | Ja |
| glTF 2.0 / GLB | Ja | Ja |
| FBX (Autodesk) | Nej* | Nej* |
| STL (Stereo Lithography) | Ja | Ja |
| 3MF (3D Manufacturing) | Ja | Ja |
| COLLADA (.dae) | Ja | Ja |
Hur laddar jag en 3D-fil?
Skapa en Scene och anropa scene.open():
import { Scene } from '@aspose/3d';
import { ObjLoadOptions } from '@aspose/3d/formats/obj';
const scene = new Scene();
scene.open('model.obj', new ObjLoadOptions());För format som inte kräver speciella alternativ, utelämna det andra argumentet:
const scene = new Scene();
scene.open('model.glb');Är scene.open() asynkron?
Nej. scene.open() och scene.openFromBuffer() är synkrona anrop. Om du behöver icke‑blockerande I/O, kör dem i en Node.js‑arbetstråd eller omslut med setImmediate.
Hur sparar jag till glTF/GLB?
Anropa scene.save() med en filväg. Formatet upptäcks automatiskt från filändelsen:
scene.save('output.glb'); // binary glTF
scene.save('output.gltf'); // JSON glTF
scene.save('output.obj'); // OBJ
scene.save('output.stl'); // STL
Hur laddar jag från en buffert (i minnet)?
Använd 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());Fel: Kan inte hitta modulen ‘@aspose/3d/formats/obj’
Detta kräver Node.js 12.7+ paketexportslösning. Se till att du använder Node.js 18+. För TypeScript, ställ in "moduleResolution": "node16" eller "bundler" i tsconfig.json:
{
"compilerOptions": {
"moduleResolution": "node16",
"target": "ES2020"
}
}Vad är typen av node.entity?
node.entity är typad brett. För att komma åt mesh‑specifika egenskaper, kontrollera deras närvaro med 'controlPoints' in node.entity eller använd Mesh‑klassen från @aspose/3d/entities:
import { Mesh } from '@aspose/3d/entities';
if (node.entity instanceof Mesh) {
const mesh = node.entity;
console.log(mesh.controlPoints.length);
}Kör biblioteket i webbläsaren?
Biblioteket är utformat för Node.js. Webbläsarstöd beror på bundlerkonfiguration och att filsystem‑API:er ersätts med minnesbaserade alternativ.
Är biblioteket trådsäkert?
Varje Scene-objekt är oberoende. Att använda separata Scene-instanser från separata Node.js-arbetstrådar är säkert så länge du inte delar en enda scen över trådar utan extern synkronisering.
Vilka Node.js-versioner stöds?
Node.js 18, 20 och 22 stöds officiellt. TypeScript 5.0+ rekommenderas.
Stöder @aspose/3d animationer?
Ja. Animationssystemet inkluderar AnimationClip, AnimationChannel och nyckelbildkurvtyper som är åtkomliga från @aspose/3d/animation.