Jak zaoszczędzić modele 3D w typografie

Jak zaoszczędzić modele 3D w typografie

Aspose.3D FOSS dla TypeScript przechowuje sceny do wszystkich obsługiwanych formatów z jednym scene.save() Formatu wyjścia jest automatycznie wykrywane z rozszerzenia pliku. ta instrukcja obejmuje oszczędności dla każdego formatu i wykorzystuje opcje specyficzne dla formata.

Przewodnik krok po kroku

Krok 1: Instalacja @aspose/3d

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


Krok 2: Pobierz lub zbudować scenę

Czy można pobrać istniejący plik, czy też tworzyć scenę programicznie przed oszczędzaniem.

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();

Krok 3: Zapisz za pomocą automatycznie wykrytego formatu

scene.save(path) wykrywa format wyjścia z rozszerzenia pliku:

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');

Krok 4: Użyj opcji Save-Specific Format

W przypadku kontroly wrodzonej, przejdź do obiektu opcji określonych w formacie:

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);

Krok 5: Zapisz do bufera (w pamięci)

Używanie scene.saveToBuffer() Aby uzyskać produkt jako A Buffer Bez pisania na dysku:

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.

Krok 6: Sprawdź wyjście

Po przechowywaniu, sprawdź, że plik istnieje i ma nie-zero rozmiar:

import * as fs from 'fs';

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

Format wsparcia Matrix

RozszerzenieFormatowanieNotatki
.glbGTTF 2.0 binaryZalecane dla glTF; wszystkie aktywa wbudowane w jeden plik
.gltfGTTF 2.0 JSONoddzielnie .bin i pliki tekstur wraz z JSON
.objWavefront OBJpisanie .mtl Materiał po stronie .obj Kiedy materiały są obecne
.stlSTLPodstawowe: binary STL; użycie StlSaveOptions.binaryMode = false Wpisy ASCII
.fbxAutodesk FBXNie wkracza do scene.save() Auto-detekcja i wykorzystanie StlExporter Powrót drogi
.3mf3D ManufacturingOdpowiedni do 3D drukowania
.daeCOLLADAFormat wymiany XML

Wspólne problemy i rozwiązania

Error: Unsupported format Kiedy oszczędność

Sprawdź, czy rozszerzenie pliku odpowiada obsługiwanemu formatu. biblioteka wykorzystuje rozciąganie do wykrywania formata; nazwa plików output.xyz Będzie się nie uda.

.obj Zostały zapisane, ale brakuje materiałów.

W przypadku, gdy w bibliotece jest dostępna (.mtl1) automatycznie pisze się obok .obj.Obie pliki muszą znajdować się w tym samym katalogu przy ponownym otwarciu. Jeśli potrzebujesz tylko geometrii, ustaw ObjSaveOptions.enableMaterials = false.

Wielki .gltf z oddzielnymi teksturami

Używanie .glb Zamiast .gltf;• łączy dane binarne w pojedynczy samokontentowany plik. GltfSaveOptions.binaryMode = true Gdy przechodzi A GltfSaveOptions w instancji .


Często zadawane pytania

Czy mogę zapisać do kilku formatów w jednym rzędzie?

Tak; wezwanie scene.save() Wiele razy z różnymi ścieżkami:

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

Czy oszczędność zmienia scenę?

Nie . scene.save() Możesz zapisać tę samą scenę w wielu formach bez żadnych skutków ubocznych.

Czy mogę przesłać plik źródłowy?

Przejdź tą samą drogę do scene.save() Co używasz w scene.open().Biblioteka pisze do bufera, a następnie pisza na dysku.


Zobacz również

 Polski