Cómo guardar modelos 3D en TypeScript

Cómo guardar modelos 3D en TypeScript

Aspose.3D FOSS para TypeScript salva escenas a todos los formatos apoyados con un solo formato. scene.save() La exhibición de la salida se detecta automáticamente desde la extensión del archivo.Este guía cubre el ahorro a cada formato y utilizando opciones específicas para el formato.

Guía paso a paso

Paso 1: Instalar @aspose/3d

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


Paso 2: Cargar o construir una escena

O cargue un archivo existente o construya una escena programticamente antes de salvar.

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

Paso 3: Salva con el formato Auto-detectado

scene.save(path) Detecta el formato de salida desde la extensión del archivo:

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

Paso 4: Use Opciones de salvamento específicas para el formato

Para el control de grano fino, pasa un objeto de opciones específicas de formato:

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

Paso 5: Salva a un buffer (en memoria)

Uso scene.saveToBuffer() Para obtener la producción como una Buffer Sin escribir en disco:

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.

Paso 6: Verifique la salida

Después de salvar, verifique el archivo existe y tiene un tamaño no cero:

import * as fs from 'fs';

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

Formato de soporte Matrix

ExtensionesFormatoNotas
.glbGTTF 2.0 BinarioRecomendado para glTF; todos los activos incorporados en un solo archivo
.gltfEl GST 2.0 JSONSeparado .bin y archivos de textura junto con JSON
.objEl Wavefront OBJEscritos .mtl El archivo junto a .obj Cuando los materiales presentan
.stlSTLDefault: STL binario; uso StlSaveOptions.binaryMode = false Para el texto ASCII
.fbxAutodesk FbxNo se entra en scene.save() Autodetección; uso StlExporter El camino de Fallback
.3mf3D ManufacturingAdecuado para flujos de trabajo de impresión 3D
.daeCOLLADAFormato de intercambio basado en XML

Problemas y soluciones comunes

Error: Unsupported format Cuando ahorrar

Verifique si la extensión de archivo se ajusta a un formato apoyado.La biblioteca utiliza la extension para detectar el formato; un archivos llamado output.xyz que fallará.

.obj Los archivos se salvan pero los materiales están faltando.

En el caso de la biblioteca, los materiales (.mtlSe escribe automáticamente junto a la .obj.Los dos archivos deben estar en el mismo directorio cuando se reabre. si solo necesita geometría, fija ObjSaveOptions.enableMaterials = false.

Gran .gltf Con texturas separadas

Uso .glb En lugar de .gltf;• Se unen datos binarios en un solo archivo de contenido. GltfSaveOptions.binaryMode = true Cuando pasa a GltfSaveOptions de instancia.


Preguntas frecuentes

¿Puedo guardar en varios formatos en un solo rango?

Sí; llamado scene.save() múltiples veces con diferentes caminos:

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

¿El ahorro cambia la escena?

No no. scene.save() Es una operación de lectura en el gráfico de escena.Puede salvar la misma escena a varios formatos sin ningún efecto secundario.

¿Puedo escribir el archivo de fuente?

Pasar el mismo camino a scene.save() que usaste en scene.open().La biblioteca escribe a un buffer y luego escriba al disco.


Ver también

 Español