Unterstützung für 3D-Format

Aspose.3D FOSS für TypeScript liest und schreibt sieben wichtige 3D-Dateiformate. Die Formaterkennung ist beim Laden automatisch: die Bibliothek prüft binäre magische Zahlen, so dass Sie das Quellformat nicht angeben müssen. Formatspezifische Optionsklassen werden aus Unterwegen des Typografieranschlusses importiert. @aspose/3d - Das Paket.

Unterstützte Formate

Format der DatenbankErweiterungLesen Sie .Schreiben .FormatsklasseAnmerkungen
OBJ.obj- Ja , das ist gut .- Ja , das ist gut .ObjFormatWellenfront-OJ; Lies: .mtl Materialien; schreibt .mtl neben dem .obj
GFT-Systeme.gltf / .glb- Ja , das ist gut .- Ja , das ist gut .GltfFormatglTF 2.0 JSON und GLB binär
STL.stl- Ja , das ist gut .- Ja , das ist gut .StlFormatBinär- und ASCII-Modus
3MF.3mf- Ja , das ist gut .- Ja , das ist gut .ThreeMfFormat3D Manufacturing Format
FBX.fbxNicht verfügbar*Nicht verfügbar*FbxFormatImporteur/Exporter existiert, aber die automatische Erkennung des Formats ist nicht verkabelt; über das Format kann nicht genutzt werden. scene.open()
COLLADA.dae- Ja , das ist gut .- Ja , das ist gut .ColladaFormatErfordernisse xmldom (Automatisch installiert)

OBJ (Wellenfront)

OBJ unterstützt sowohl den Import als auch die Ausfuhr in der EU. @aspose/3d.Bei der Speicherung als OBJ wird die Materialbibliothek (.mtl) wird automatisch neben den .obj Die Datei. ObjLoadOptions die Materialbelastung zu steuern und das Systemverhalten zu koordinieren.

Die wichtigsten Optionen für die ObjLoadOptions:

OptionTyp derStandard-NummerWirkung
enableMaterialsbooleantrueDie Daten werden analysiert. .mtl Datei, auf die verwiesen wird: mtllib
flipCoordinateSystembooleanfalseUmdrehen der Y/Z-Achsen, um mit Rechtshändigen Systemen übereinstimmen zu können
scalenumber1.0Einheitliche Skala, die auf alle Spitzen bei Belastung angewendet wird.
normalizeNormalbooleantrueNormalisieren Sie die normalen Winkel auf eine Längeneinheit
import { Scene } from '@aspose/3d';
import { ObjLoadOptions } from '@aspose/3d/formats/obj';

const scene = new Scene();
const opts = new ObjLoadOptions();
opts.enableMaterials = true;
opts.normalizeNormal = true;

scene.open('model.obj', opts);
console.log(`Loaded ${scene.rootNode.childNodes.length} top-level node(s)`);

Um ein OBJ in irgendein schreibbares Format zu konvertieren, laden Sie es und rufen Sie scene.save() mit der Zielformatsklasse.

glTF und GLB

glTF 2.0 ist das empfohlene Austauschformat für die Verwendung von Web- und Spieleanlagen. Die Bibliothek verwendet dieselbe GltfFormat Klasse für beide .gltf (JSON + Seitenwagen) und .glb (binär, eigenständig) Ausgabe. Schalten Sie zwischen ihnen mit GltfSaveOptions.binaryMode.

Last glTF oder GLB:

import { Scene } from '@aspose/3d';
import { GltfLoadOptions } from '@aspose/3d/formats/gltf';

const scene = new Scene();
scene.open('model.gltf', new GltfLoadOptions());
// or
scene.open('model.glb');  // format detected from magic bytes

Exportieren als JSON glTF (.gltf + .bin):

import { Scene } from '@aspose/3d';
import { GltfSaveOptions, GltfFormat } from '@aspose/3d/formats/gltf';

const scene = new Scene();
scene.open('input.fbx');

const opts = new GltfSaveOptions();
opts.binaryMode = false;  // produces output.gltf + output.bin
scene.save('output.gltf', GltfFormat.getInstance(), opts);

Ausfuhr als binäre GLB (.glb):

import { Scene } from '@aspose/3d';
import { GltfSaveOptions, GltfFormat } from '@aspose/3d/formats/gltf';

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

const opts = new GltfSaveOptions();
opts.binaryMode = true;  // single self-contained file
scene.save('output.glb', GltfFormat.getInstance(), opts);

Verwendung binaryMode = true Die Kommission hat die .glb Die Daten werden in Browsern und Motoren schneller geladen als das Split Text + Binary Pair.

STL

STL ist ein trianguliertes Mesh-Format, das im CAD und 3D-Druck verwendet wird. Sowohl binär als auch ASCII ST L werden für Eingabe und Ausgabe unterstützt. StlSaveOptions.binaryMode kontrolliert, ob die Ausgabe binär (kompakte) oder ASCII (menschlich lesbar) ist.

import { Scene } from '@aspose/3d';
import { StlLoadOptions, StlSaveOptions } from '@aspose/3d/formats/stl';

const scene = new Scene();
scene.open('model.stl', new StlLoadOptions());

// Export as binary STL (default, compact)
const binaryOpts = new StlSaveOptions();
binaryOpts.binaryMode = true;
scene.save('output_binary.stl', binaryOpts);

// Export as ASCII STL (human-readable)
const asciiOpts = new StlSaveOptions();
asciiOpts.binaryMode = false;
scene.save('output_ascii.stl', asciiOpts);

STL speichert nur die triangulierte Geometrie und Vertexnormale. Material- und UV-Daten werden in ST L nicht gespeichern.

3MF (3D Manufacturing Format)

3MF is an XML-based format designed for additive manufacturing. It supports color and material metadata alongside geometry. Use it when exchanging files with 3D printing slicers or manufacturing workflows.

import { Scene } from '@aspose/3d';
import { ThreeMfSaveOptions } from '@aspose/3d/formats/3mf';

const scene = new Scene();
scene.open('model.3mf');

// Re-export as 3MF
scene.save('output.3mf', new ThreeMfSaveOptions());

3MF files are ZIP archives internally. The library handles archive creation and extraction automatically.

FBX

Warnung: FBX-Klassen für Importeure und Exporteuren (FbxImporter, FbxExporter) in der Bibliothek vorhanden, aber FBX-Format Autodetection ist ohne Drahtverbindung in die scene.open() oder scene.save().- Ich rufe . scene.open('file.fbx') wird nicht den FBX-Importeur aufrufen die Datei fällt durch das STL-Suffall. scene.save('output.fbx', opts) wird den FBX-Exporteur nicht aufrufen. Die obige Tabelle für die Unterstützung des Formats markiert FBx als No* Die Kommission hat die Möglichkeit, den Zugang zu Informationen über das Internet und andere Datenbanken zu erleichtern. scene.open() / scene.save().

COLLADA (DAE)

COLLADA ist ein XML-basiertes Austauschformat, das von einer Vielzahl von DCC-Tools (Blender, Maya, Cinema 4D) unterstützt wird. Die Bibliothek verwendet die xmldom Abhängigkeit für XML-Parsing; es wird automatisch mit npm install @aspose/3d.

import { Scene } from '@aspose/3d';
import { ColladaSaveOptions } from '@aspose/3d/formats/collada';

const scene = new Scene();
scene.open('model.dae');

// Re-export as COLLADA
const saveOpts = new ColladaSaveOptions();
scene.save('output.dae', saveOpts);

COLLADA-Dateien können Metadaten zur Einheitsskalierung enthalten (<unit> Die Bibliothek wendet die Einheitskonvertierung beim Laden automatisch an.

Autodetection des Formats

Beim Laden von einem Dateipfad versucht die Bibliothek Formatserkennung aus binären magischen Zahlen, bevor sie zur Dateierweiterung zurückfällt. Das bedeutet, dass Sie eine GLB-Datei mit dem Namen laden können .bin oder eine STL-Datei mit dem Namen: .model ohne das Format ausdrücklich anzugeben.

Bei der Beförderung von einem Buffer mit: scene.openFromBuffer(), Magische Zahl-Erkennung ist der primäre Mechanismus:

import { Scene } from '@aspose/3d';
import * as fs from 'fs';

const buffer = fs.readFileSync('model.glb');
const scene = new Scene();
scene.openFromBuffer(buffer);  // format detected from magic bytes: 'glTF'

console.log(`Root has ${scene.rootNode.childNodes.length} child node(s)`);

Formate mit zuverlässigen Zauberzahlen: GLB (glTF), STL-Binär (80-byte Header + Dreieckenzahl), 3MF (ZIP-Magie) und PK) OBJ und COLLADA sind textbasiert und werden von der Dateierweiterung oder durch die Optionsklasse, die Sie passieren, erkannt.

Tipps für die Kinder

  • OBJ unterstützt sowohl den Import als auch den Export: beim Speichern als OBJ, die .mtl Die Datenbank wird automatisch neben der .obj Die Akte.
  • GLB für die Web-Delivery verwenden:Das selbstständige binäre Format vermeidet CORS-Probleme mit der Verwendung von .bin Die Veröffentlichung des Berichts ist in der Tat nicht zu verwerten.
  • Pass-Format-spezifische Optionen:Generische: scene.open(path) Funktioniert für die meisten Formate, ermöglicht aber das Übergeben der Klasse Loader Options ein formatspezifisches Verhalten wie OBJ-Materialladen oder STL-Koordinatennormalisierung.
  • xmldom ist für COLLADA erforderlich.: es wird automatisch installiert. peerDependencies oder versuchen, es zu entfernen; der COLLADA-Reader ruft ihn direkt an.

Häufige Probleme

Symptom derWahrscheinliche UrsacheBehebung
OBJ-Materialien sind nach der Beladung leer.enableMaterials nicht festgelegtPass . ObjLoadOptions mit: enableMaterials = true
GLB produziert eine .bin SeitenwagenbinaryMode Verzug auf falseSetz opts.binaryMode = true in der GltfSaveOptions
scene.open() Wirft “ununterstütztes Format”Dateierweiterung nicht erkanntPass den Abgleich. *LoadOptions Klasse oder Verwendungszweck openFromBuffer()
COLLADA-Aufladung mit XML-Fehler fehlschlägtxmldom fehlt oder nicht übereinstimmtLauf ! npm install @aspose/3d nochmals; xmldom ist eine direkte Abhängigkeit von der
Bei ASCII-Ausfuhren verlorene STL-NormaleASCII STL fällt normal pro GesichtVerwendung binaryMode = true für normaler Erhalt

Siehe auch:

 Deutsch