كيفية حفظ النماذج 3D في TypeScript

كيفية حفظ النماذج 3D في TypeScript

Aspose.3D FOSS for 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: حفظ إلى بوفير (في الذاكرة)

استخدام 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

التمديدشكلملاحظات
.glbGTTF 2.0 ثنائيالموصى بها لـ glTF؛ جميع الأصول مدمجة في ملف واحد
.gltfGLTF 2.0 JSONانفصال .bin وملفات النص جنبا إلى جنب مع JSON
.objجبهة Wavefront OBJالكتابة .mtl الملفات المادية جنبا إلى جنب .obj عندما تكون المواد موجودة
.stlSTLالافتراض: STL الثنائي؛ استخدام StlSaveOptions.binaryMode = false نص ASCII
.fbxأوتوديسك FBXلا يصل إلى scene.save() الكشف عن الذات؛ الاستخدام StlExporter مسار السقوط
.3mf3D Manufacturingمناسبة لعملية الطباعة 3D
.daeCOLLADAتنسيق XML

مشكلات و تصحيحات مشتركة

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().الكتابة في المكتبة، ثم يكتب على القرص.


انظر أيضا

 العربية