Wie man 3D-Modelle in TypeScript speichert

Wie man 3D-Modelle in TypeScript speichert

Aspose.3D FOSS für TypeScript speichert Szenen in alle unterstützten Formate mit einem einzigen scene.save() Die Ausgabeformate werden automatisch von der Dateierweiterung erkannt. Dieser Leitfaden behandelt das Speichern in jedes Format und die Verwendung formatspezifischer Optionen.

Schritt für Schritte

Schritt 1: Installieren @aspose/3d

asposefoss/3d is not yet published — build from source until it ships. See the project README for build instructions.


Schritt 2: Laden oder Erstellen einer Szene

Entweder laden Sie eine vorhandene Datei oder erstellen Sie die Szene programmatisch, bevor Sie sie speichern.

import { Scene } from '@aspose/3d';
import { ObjLoadOptions } from '@aspose/3d/formats/obj';

// Load from file
const scene = new Scene();
scene.open('source.obj', new ObjLoadOptions());

// Or create a new empty scene
const emptyScene = new Scene();

Schritt 3: Speichern mit automatisch erkannter Formate

scene.save(path) Erkennt das Ausgangsformat der Dateierweiterung:

import { Scene } from '@aspose/3d';
import { ObjLoadOptions } from '@aspose/3d/formats/obj';

const scene = new Scene();
scene.open('input.obj', new ObjLoadOptions());

// Save as binary glTF
scene.save('output.glb');

// Save as JSON glTF
scene.save('output.gltf');

// Save as STL
scene.save('output.stl');

// Save as OBJ
scene.save('output.obj');

// Save as 3MF
scene.save('output.3mf');

// Save as COLLADA
scene.save('output.dae');

Schritt 4: Verwenden Sie Format-spezifische SaveOptions

Für die Feinkörnerkontrolle wird ein formatspezifisches Optionsobjekt übergeben:

import { Scene } from '@aspose/3d';
import { ObjLoadOptions } from '@aspose/3d/formats/obj';
import { GltfSaveOptions } from '@aspose/3d/formats/gltf';

const scene = new Scene();
scene.open('model.obj', new ObjLoadOptions());

// Export to GLB with specific options
const saveOptions = new GltfSaveOptions();
saveOptions.binaryMode = true;   // produce GLB (binary glTF)

scene.save('output.glb', saveOptions);

Schritt 5: Speichern in einen Puffer (In-Memory)

Verwendung scene.saveToBuffer() Um die Ausgabe als eine Buffer ohne auf Festplatte zu schreiben:

import { Scene } from '@aspose/3d';
import { ObjLoadOptions } from '@aspose/3d/formats/obj';

const scene = new Scene();
scene.open('model.obj', new ObjLoadOptions());

const buffer = scene.saveToBuffer('glb');
console.log(`Buffer size: ${buffer.length} bytes`);

// Send via HTTP, upload to S3, etc.

Schritt 6: Überprüfen Sie die Ausgabe

Nach dem Speichern überprüfen Sie, ob die Datei existiert und eine nicht-null Größe hat:

import * as fs from 'fs';

const stats = fs.statSync('output.glb');
console.log(`Saved output.glb: ${stats.size} bytes`);

Formatunterstützung Matrix

ErweiterungFormat der DatenbankAnmerkungen
.glbglTF 2.0 BinärFür glTF empfohlen; alle Vermögenswerte in einer einzigen Datei eingebettet
.gltfGeltungsbereich:Getrennte .bin und Texturdateien neben JSON
.objWellenfront-OJSchreibt .mtl Materialdatei neben dem .obj wenn die Stoffe vorhanden sind,
.stlSTLStandard: binärer STL; verwenden StlSaveOptions.binaryMode = false für ASCII-Text
.fbxAutodesk FBX (auf Englisch)Nicht angeschlossen. scene.save() Autodetection; Verwendung von StlExporter Rückfallweg
.3mf3D Manufacturingfür 3D-Druckarbeiten geeignet
.daeCOLLADAXML-basiertes Austauschformat

Häufige Probleme und Lösungen

Error: Unsupported format bei der Sparung

Überprüfen Sie, ob die Datei-Erweiterung einem unterstützten Format entspricht. Die Bibliothek verwendet die Erweiderung zum Erkennen von Format; eine Datenbank mit dem Namen “Datei” wird nicht mehr als ein Dateinhalt erfasst. output.xyz wird scheitern.

.obj Datei wird gespeichert, aber es fehlen Materialien.

Bei der Speicherung von OBJ wird die Materialbibliothek (.mtl) wird automatisch neben den .obj.Wenn Sie nur Geometrie benötigen, setzen Sie die Datenbank auf das Datein. ObjSaveOptions.enableMaterials = false.

Großes .gltf mit einer Dicke von mehr als 0,15 mm, jedoch nicht mehr

Verwendung .glb statt der .gltf; es bündelt binäre Daten in eine einzelne, selbstständige Datei. Set GltfSaveOptions.binaryMode = true bei der Übergabe einer GltfSaveOptions In diesem Fall.


Häufig gestellte Fragen

Kann ich auf mehrere Formate speichern?

Ja, rufen Sie an. scene.save() mehrere Male mit verschiedenen Wegen:

scene.save('output.glb');
scene.save('output.stl');
scene.save('output.obj');

Ändert das Sparen die Szene?

  • Nein, ich bin nicht. scene.save() Sie können die gleiche Szene in mehrere Formate ohne Nebenwirkungen speichern.

Kann ich die Quelldatei überschreiben?

Gehen Sie den gleichen Weg zu… scene.save() Sie haben in der scene.open().Die Bibliothek schreibt in einen Puffer und dann auf die Festplatte.


Siehe auch:

 Deutsch