Najczęściej zadawane pytania
Najczęściej zadawane pytania
Jak zainstalować @aspose/3d?
Zainstaluj z npm. Wymagany Node.js w wersji 18 lub nowszej:
npm install @aspose/3dSprawdź instalację:
import { Scene } from '@aspose/3d';
const scene = new Scene();
console.log('@aspose/3d ready');Definicje typów TypeScript są dołączone do pakietu. Nie jest potrzebny osobny pakiet @types/.
Jakie formaty plików są obsługiwane?
| Format | Import | Eksport |
|---|---|---|
| OBJ (Wavefront) | Tak | Tak |
| glTF 2.0 / GLB | Tak | Tak |
| FBX (Autodesk) | Nie* | Nie* |
| STL (Stereo Lithography) | Tak | Tak |
| 3MF (3D Manufacturing) | Tak | Tak |
| COLLADA (.dae) | Tak | Tak |
Jak załadować plik 3D?
Utwórz Scene i wywołaj scene.open():
import { Scene } from '@aspose/3d';
import { ObjLoadOptions } from '@aspose/3d/formats/obj';
const scene = new Scene();
scene.open('model.obj', new ObjLoadOptions());Dla formatów, które nie wymagają specjalnych opcji, pomiń drugi argument:
const scene = new Scene();
scene.open('model.glb');Czy scene.open() jest asynchroniczne?
Nie. scene.open() i scene.openFromBuffer() to wywołania synchroniczne. Jeśli potrzebujesz nieblokującego I/O, uruchom je w wątku roboczym Node.js lub opakuj przy użyciu setImmediate.
Jak zapisać do glTF/GLB?
Wywołaj scene.save() z ścieżką do pliku. Format jest wykrywany automatycznie na podstawie rozszerzenia:
scene.save('output.glb'); // binary glTF
scene.save('output.gltf'); // JSON glTF
scene.save('output.obj'); // OBJ
scene.save('output.stl'); // STL
Jak załadować z bufora (w pamięci)?
Użyj 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());Błąd: Nie można znaleźć modułu ‘@aspose/3d/formats/obj’
To wymaga rozwiązywania eksportów pakietu Node.js 12.7+. Upewnij się, że używasz Node.js 18+. Dla TypeScript ustaw "moduleResolution": "node16" lub "bundler" w tsconfig.json:
{
"compilerOptions": {
"moduleResolution": "node16",
"target": "ES2020"
}
}Jaki jest typ node.entity?
node.entity jest typowany ogólnie. Aby uzyskać dostęp do właściwości specyficznych dla siatki, sprawdź ich obecność za pomocą 'controlPoints' in node.entity lub użyj klasy Mesh z @aspose/3d/entities:
import { Mesh } from '@aspose/3d/entities';
if (node.entity instanceof Mesh) {
const mesh = node.entity;
console.log(mesh.controlPoints.length);
}Czy biblioteka działa w przeglądarce?
Biblioteka jest przeznaczona dla Node.js. Obsługa przeglądarki zależy od konfiguracji bundlera oraz od zastąpienia interfejsów API systemu plików alternatywami w pamięci.
Czy biblioteka jest bezpieczna wątkowo?
Każdy obiekt Scene jest niezależny. Używanie oddzielnych instancji Scene z oddzielnych wątków pracowników Node.js jest bezpieczne, o ile nie udostępniasz jednej sceny pomiędzy wątkami bez zewnętrznej synchronizacji.
Jakie wersje Node.js są obsługiwane?
Node.js 18, 20 i 22 są oficjalnie wspierane. TypeScript 5.0+ jest zalecany.
Czy @aspose/3d obsługuje animacje?
Tak. System animacji zawiera AnimationClip, AnimationChannel i typy krzywych klatek kluczowych dostępne z @aspose/3d/animation.