Întrebări frecvente
Întrebări frecvente
Cum pot instala @aspose/3d?
Instalați din npm. Este necesar Node.js 18 sau o versiune ulterioară:
npm install @aspose/3dVerificați instalarea:
import { Scene } from '@aspose/3d';
const scene = new Scene();
console.log('@aspose/3d ready');Definițiile de tip TypeScript sunt incluse în pachet. Nu este necesar niciun pachet separat @types/.
Ce formate de fișiere sunt acceptate?
| Format | Import | Export |
|---|---|---|
| OBJ (Wavefront) | Da | Da |
| glTF 2.0 / GLB | Da | Da |
| FBX (Autodesk) | Nu* | Nu* |
| STL (Stereo Lithography) | Da | Da |
| 3MF (3D Manufacturing) | Da | Da |
| COLLADA (.dae) | Da | Da |
Cum pot încărca un fișier 3D?
Creează un Scene și apelează scene.open():
import { Scene } from '@aspose/3d';
import { ObjLoadOptions } from '@aspose/3d/formats/obj';
const scene = new Scene();
scene.open('model.obj', new ObjLoadOptions());Pentru formatele care nu necesită opţiuni speciale, omite al doilea argument:
const scene = new Scene();
scene.open('model.glb');Este scene.open() asincron?
Nu. scene.open() și scene.openFromBuffer() sunt apeluri sincrone. Dacă aveți nevoie de I/O non-blocant, rulați-le în interiorul unui fir de lucru Node.js sau înfășurați-le cu setImmediate.
Cum pot salva în glTF/GLB?
Apelă scene.save() cu o cale de fișier. Formatul este detectat automat din extensie:
scene.save('output.glb'); // binary glTF
scene.save('output.gltf'); // JSON glTF
scene.save('output.obj'); // OBJ
scene.save('output.stl'); // STL
Cum încarc dintr-un Buffer (în memorie)?
Utilizați 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());Eroare: Nu se poate găsi modulul ‘@aspose/3d/formats/obj’
Aceasta necesită rezoluția exporturilor de pachet Node.js 12.7+. Asigurați-vă că utilizați Node.js 18+. Pentru TypeScript, setați "moduleResolution": "node16" sau "bundler" în tsconfig.json:
{
"compilerOptions": {
"moduleResolution": "node16",
"target": "ES2020"
}
}Care este tipul node.entity?
node.entity este tipizat în mod larg. Pentru a accesa proprietățile specifice mesh-ului, verificați prezența lor cu 'controlPoints' in node.entity sau utilizați clasa Mesh din @aspose/3d/entities:
import { Mesh } from '@aspose/3d/entities';
if (node.entity instanceof Mesh) {
const mesh = node.entity;
console.log(mesh.controlPoints.length);
}Rulează biblioteca în browser?
Biblioteca este concepută pentru Node.js. Suportul pentru browser depinde de configurația bundler-ului și de înlocuirea API-urilor de sistem de fișiere cu alternative în memorie.
Este biblioteca thread‑safe?
Fiecare obiect Scene este independent. Utilizarea de instanțe separate Scene din fire de lucru separate Node.js este sigură atâta timp cât nu partajaţi o singură scenă între fire fără sincronizare externă.
Ce versiuni de Node.js sunt suportate?
Node.js 18, 20 și 22 sunt suportate oficial. TypeScript 5.0+ este recomandat.
Suportă @aspose/3d animații?
Da. Sistemul de animație include AnimationClip, AnimationChannel și tipuri de curbe de cadre cheie accesibile din @aspose/3d/animation.