Πώς να αποθηκεύσετε 3D μοντέλα σε TypeScript
Το Aspose.3D FOSS για το TypeScript αποθηκεύει σκηνές σε όλες τις υποστηριζόμενες μορφές με ένα μόνο scene.save() Η μορφή εξόδου ανιχνεύεται αυτόματα από την επέκταση αρχείου.Αυτό το εγχειρίδιο καλύπτει τη διατήρηση σε κάθε μορφότυπο και χρησιμοποιώντας επιλογές που είναι συγκεκριμένες σε μορφές.
Βήμα προς βήμα οδηγός
Βήμα 1: Εγκατάσταση @aspose/3d
asposefoss/3d is not yet published — build from source until it ships. See the project README for build instructions.
Βήμα 2: Κατεβάστε ή χτίζετε μια σκηνή
Ή φορτώστε ένα υπάρχον αρχείο ή δημιουργήστε μια σκηνή προγραμματικά πριν από την αποθήκευση.
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();Βήμα 3: Αποθηκεύστε με αυτόματη ανίχνευση μορφή
scene.save(path) ανιχνεύει τη μορφή εξόδου από την επέκταση αρχείου:
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');Βήμα 4: Χρησιμοποιήστε επιλογές αποθήκευσης ειδικά σε μορφή
Για τον έλεγχο με λεπτό σκόνη, περάστε ένα αντικείμενο επιλογών που είναι συγκεκριμένο σε μορφή:
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);Βήμα 5: Αποθηκεύστε σε ένα buffer (In-Memory)
Χρησιμοποιήστε scene.saveToBuffer() Για να αποκτήσουμε την παραγωγή ως ένα Buffer Χωρίς να γράφουμε στο δίσκο:
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.
Βήμα 6: Ελέγξτε την έξοδό σας
Μετά την αποθήκευση, επαληθεύστε το αρχείο υπάρχει και έχει μη-ζώντο μέγεθος:
import * as fs from 'fs';
const stats = fs.statSync('output.glb');
console.log(`Saved output.glb: ${stats.size} bytes`);Συσκευή υποστήριξης Matrix
| ΕΠΙΤΡΟΦΗ | ΤΕΧΝΗ | Σημειώσεις |
|---|---|---|
.glb | GTTF 2.0 Δυαδικός | Συνιστάται για το GSTF; όλα τα περιουσιακά στοιχεία ενσωματωμένα σε ένα αρχείο |
.gltf | ΓκλΤΦ 2.0 JSON | χωρισμός .bin και αρχεία κειμένου μαζί με JSON |
.obj | ΟΜΠΡΟΣΦΡΟΝΤΟΣ OBJ | Γράμματα .mtl Πληροφορίες μαζί με το αρχείο .obj Όταν τα υλικά είναι παρόντα |
.stl | STL | Προεπιλογή: δυαδικό STL; χρήση StlSaveOptions.binaryMode = false Για το ASCII κείμενο |
.fbx | Autodesk ΦΒΧ | Δεν μπήκε μέσα scene.save() αυτοαποκαλύψεις · χρήση StlExporter ΠΡΟΔΟΣ ΠΑΛΙΤΗΣ |
.3mf | 3D Manufacturing | Κατάλληλο για 3D εκτύπωση ροών εργασίας |
.dae | COLLADA | XML-based format ανταλλαγής |
Κοινά προβλήματα και τακτοποιήσεις
Error: Unsupported format Όταν η εξοικονόμηση
Βεβαιωθείτε ότι η επέκταση αρχείου ταιριάζει με μια υποστηριζόμενη μορφή. Η βιβλιοθήκη χρησιμοποιεί την επέταση για να εντοπίσει τη μορφοποίηση. ένα αρχείο που ονομάζεται output.xyz Θα αποτύχει.
.obj Τα αρχεία αποθηκεύονται, αλλά τα υλικά λείπουν
Η ΕΣΔΕ, η Βιβλιοθήκη των Υλικών (.mtl(α) γράφεται αυτόματα μαζί με το .obj.Και τα δύο αρχεία πρέπει να είναι στο ίδιο κατάλογο όταν ανοίγετε ξανά. αν χρειάζεστε μόνο γεωμετρία, ρυθμίστε το ObjSaveOptions.enableMaterials = false.
Μεγάλη .gltf Με ξεχωριστές κείμενες
Χρησιμοποιήστε .glb Αντί να .gltf;· συσσωρεύει δυαδικά δεδομένα σε ένα μόνο αυτόνομο αρχείο. GltfSaveOptions.binaryMode = true Όταν περάσει η GltfSaveOptions Η περίπτωση.
Συχνές ερωτήσεις
Μπορώ να αποθηκεύσω σε πολλαπλές μορφές σε μια σειρά;?
Ναι; καλέστε scene.save() Πολλές φορές με διαφορετικούς δρόμους:
scene.save('output.glb');
scene.save('output.stl');
scene.save('output.obj');Η διατήρηση αλλάζει την σκηνή;?
Όχι . scene.save() Είναι μια λειτουργία που διαβάζεται μόνο στο γραφείο σκηνής. μπορείτε να αποθηκεύσετε την ίδια σκάνδαλο σε πολλαπλές μορφές χωρίς παρενέργειες.
Μπορώ να υπεργράψω το αρχείο προέλευσης;?
Περνάει το ίδιο δρόμο για να scene.save() που χρησιμοποιούσες σε scene.open().Η βιβλιοθήκη γράφει σε ένα μπαχαρικό και στη συνέχεια γράφει στο δίσκο.