Întrebări frecvente

Î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/3d

Verificaț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?

FormatImportExport
OBJ (Wavefront)DaDa
glTF 2.0 / GLBDaDa
FBX (Autodesk)Nu*Nu*
STL (Stereo Lithography)DaDa
3MF (3D Manufacturing)DaDa
COLLADA (.dae)DaDa

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.


Vezi și

 Română