TypeScript में 3D मॉडल कैसे सहेजें

TypeScript में 3D मॉडल कैसे सहेजें

Aspose.3D FOSS for TypeScript सभी समर्थित फ़ॉर्मैट्स में दृश्यों को एक ही scene.save() कॉल। आउटपुट फ़ॉर्मेट फ़ाइल एक्सटेंशन से स्वचालित रूप से पता लगाया जाता है। यह गाइड प्रत्येक फ़ॉर्मेट में सहेजने और फ़ॉर्मेट‑विशिष्ट विकल्पों का उपयोग करने को कवर करता है।.

चरण-दर-चरण मार्गदर्शिका

चरण 1: @aspose/3d स्थापित करें

npm install @aspose/3d

चरण 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 FBX
scene.save('output.fbx');

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

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

चरण 4: फ़ॉर्मैट-विशिष्ट SaveOptions का उपयोग करें

सूक्ष्म नियंत्रण के लिए, फ़ॉर्मैट-विशिष्ट विकल्प ऑब्जेक्ट पास करें:

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: बफ़र (इन-मेमोरी) में सहेजें

उपयोग करें 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('output.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`);

फ़ॉर्मैट समर्थन मैट्रिक्स

ExtensionFormatटिप्पणियाँ
.glbglTF 2.0 BinaryglTF के लिए अनुशंसित; सभी एसेट्स एकल फ़ाइल में एम्बेडेड
.gltfglTF 2.0 JSONअलग .bin और टेक्सचर फ़ाइलें JSON के साथ
.objWavefront OBJलिखता है .mtl सामग्री फ़ाइल साथ में .obj जब सामग्री मौजूद हो
.stlSTLडिफ़ॉल्ट: बाइनरी STL; उपयोग करें StlSaveOptions.ascii = true पाठ के लिए
.fbxAutodesk FBXबाइनरी FBX फ़ॉर्मेट
.3mf3D Manufacturing3D प्रिंटिंग वर्कफ़्लो के लिए उपयुक्त
.daeCOLLADAXML-आधारित इंटरचेंज फ़ॉर्मेट

सामान्य समस्याएँ और समाधान

Error: Unsupported format सहेजते समय

जाँचें कि फ़ाइल एक्सटेंशन समर्थित फ़ॉर्मेट से मेल खाता है। लाइब्रेरी फ़ॉर्मेट का पता लगाने के लिए एक्सटेंशन का उपयोग करती है; एक फ़ाइल जिसका नाम output.xyz विफल होगी।.

.obj फ़ाइल सहेजी जाती है लेकिन सामग्री गायब हैं

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() सीन ग्राफ़ पर एक केवल-पढ़ने योग्य ऑपरेशन है। आप एक ही सीन को कई फ़ॉर्मैट्स में बिना किसी साइड इफ़ेक्ट के सहेज सकते हैं।.

क्या मैं स्रोत फ़ाइल को ओवरराइट कर सकता हूँ?

हाँ। वही पाथ पास करें to scene.save() जो आपने उपयोग किया था in scene.open(). लाइब्रेरी पहले बफ़र में लिखती है और फिर डिस्क पर लिखती है।.


संबंधित देखें

 हिन्दी