फ़ॉर्मेट समर्थन

फ़ॉर्मेट समर्थन

Aspose.3D FOSS for Python सात 3D फ़ॉर्मेट्स को एक ही इन‑मेमोरी सीन प्रतिनिधित्व का उपयोग करके पढ़ और लिख सकता है। लाइब्रेरी प्रत्येक फ़ॉर्मेट को एक सामान्य Scene ऑब्जेक्ट में लोड करता है और सहेजते समय उस ऑब्जेक्ट को लक्ष्य फ़ॉर्मेट में सीरियलाइज़ करता है। इसका मतलब है कि OBJ से लोड किया गया सीन सीधे glTF में सहेजा जा सकता है बिना किसी मध्यवर्ती रूपांतरण चरणों के।.


समर्थित फ़ॉर्मेट्स

फ़ॉर्मेटएक्सटेंशनपढ़ेंलिखेंविकल्प वर्गनोट्स
Wavefront OBJ.objहाँहाँObjLoadOptions.mtl मैटेरियल लोडिंग समर्थित
STL (binary).stlहाँहाँStlSaveOptionsBinary और ASCII पढ़ना; सहेजना डिफ़ॉल्ट रूप से binary
STL (ASCII).stlहाँहाँStlSaveOptionsराउंड-ट्रिप सत्यापित
glTF 2.0.gltfहाँहाँGltfSaveOptionsपूर्ण सीन ग्राफ, सामग्री, और एनीमेशन संरक्षित
GLB (binary glTF).glbहाँहाँGltfSaveOptionsएकल-फ़ाइल बाइनरी कंटेनर
COLLADA.daeहाँहाँColladaLoadOptions / ColladaSaveOptionsसीन पदानुक्रम और सामग्री
3MF.3mfहाँहाँThreeMfSaveOptionsऐडिटिव मैन्युफैक्चरिंग फ़ॉर्मेट
FBX.fbxआंशिकनहींN/Aटोकनाइज़र काम कर रहा है; पूर्ण पार्सर प्रगति में हैउत्पादन-तैयार नहीं)

OBJ फ़ॉर्मेट

Wavefront OBJ स्थैतिक मेषों के लिए सबसे अधिक समर्थित इंटरचेंज फ़ॉर्मेट है। Aspose.3D FOSS ज्यामिति (वर्टिसेज़, नॉर्मल्स, यूवी कॉर्डिनेट्स, और बहुभुज फेस) को लोड करता है और वैकल्पिक रूप से साथ वाली .mtl सामग्री फ़ाइल।.

ObjLoadOptions

प्रॉपर्टीप्रकारडिफ़ॉल्टविवरण
enable_materialsboolTrueपार्स करें .mtl OBJ हेडर द्वारा संदर्भित फ़ाइल
flip_coordinate_systemboolFalseY‑up राइट‑हैंडेड से Z‑up राइट‑हैंडेड में बदलें
normalize_normalboolTrueसभी आयातित सतह सामान्यों को इकाई लंबाई में सामान्यीकृत करें
scalefloat1.0सभी वर्टेक्स स्थितियों पर लागू समान स्केल फ़ैक्टर

OBJ फ़ाइल लोड करना

from aspose.threed import Scene
from aspose.threed.formats import ObjLoadOptions

options = ObjLoadOptions()
options.enable_materials = True
options.flip_coordinate_system = False
options.scale = 1.0

scene = Scene()
scene.open("model.obj", options)

print(f"Top-level nodes: {len(scene.root_node.child_nodes)}")

OBJ में सहेजना

scene.save("output.obj")

OBJ निर्यात वर्टेक्स स्थितियों और बहुभुज चेहरों को लिखता है। यदि दृश्य में LambertMaterial या PhongMaterial ऑब्जेक्ट्स, लाइब्रेरी एक सहायक .mtl फ़ाइल स्वचालित रूप से।.


STL फ़ॉर्मेट

STL (STereoLithography) त्रिकोणीय मेष को फ़ैसेट्स की एक अनइंडेक्स्ड सूची के रूप में संग्रहीत करता है। पढ़ने के लिए बाइनरी और ASCII दोनों रूपों का समर्थन किया जाता है; सहेजते समय लाइब्रेरी डिफ़ॉल्ट रूप से बाइनरी का उपयोग करती है।.

StlSaveOptions

StlSaveOptions कोई अनिवार्य फ़ील्ड नहीं हैं। इसे इंस्टैंसिएट करके पास करें scene.save():

from aspose.threed.formats import StlSaveOptions

opts = StlSaveOptions()
scene.save("output.stl", opts)

राउंड-ट्रिप उदाहरण

from aspose.threed import Scene

##Load
scene = Scene.from_file("model.stl")

##Inspect
for node in scene.root_node.child_nodes:
    if node.entity:
        print(f"{node.name}: {len(node.entity.control_points)} vertices")

##Save
scene.save("roundtrip.stl")

STL केवल त्रिकोणीय ज्यामिति संग्रहीत करता है, जिसमें फ़ैसेट नॉर्मल के अलावा कोई नॉर्मल नहीं, कोई UV निर्देशांक नहीं, कोई सामग्री नहीं, और कोई पदानुक्रम नहीं होता। यदि आपके दृश्य में क्वाड्स या उच्च-क्रम के बहुभुज हैं, तो उन्हें सहेजते समय स्वचालित रूप से त्रिकोणीकृत किया जाता है।.


glTF / GLB फ़ॉर्मेट

glTF 2.0 आधुनिक 3D एक्सचेंज के लिए अनुशंसित फ़ॉर्मेट है। यह पूर्ण सीन ग्राफ (नोड हायरार्की, नामित नोड्स, ट्रांसफ़ॉर्म्स), मैटेरियल्स (LambertMaterial, PhongMaterial → PBR रूपांतरण), और एनीमेशन क्लिप्स। GLB एकल-फ़ाइल बाइनरी कंटेनर वैरिएंट है।.

GltfSaveOptions

from aspose.threed.formats import GltfSaveOptions

opts = GltfSaveOptions()
scene.save("output.gltf", opts)   # JSON + external .bin
scene.save("output.glb",  opts)   # Self-contained binary

मैटेरियल समर्थन

Aspose.3D FOSS सामग्री को glTF में मैप किया जाता है pbrMetallicRoughness निर्यात पर:

from aspose.threed import Scene
from aspose.threed.shading import PhongMaterial
from aspose.threed.utilities import Vector3

scene = Scene()
node = scene.root_node.create_child_node("object")

mat = PhongMaterial()
mat.diffuse_color  = Vector3(0.8, 0.2, 0.2)   # red
mat.specular_color = Vector3(1.0, 1.0, 1.0)
mat.shininess = 50.0
node.material = mat

scene.save("colored.gltf")

glTF आउटपुट को सत्यापित करना

import json

with open("output.gltf") as f:
    data = json.load(f)

print(f"Asset version : {data['asset']['version']}")
print(f"Nodes         : {len(data.get('nodes', []))}")
print(f"Meshes        : {len(data.get('meshes', []))}")

COLLADA फ़ॉर्मेट

COLLADA (.dae) एक XML-आधारित फ़ॉर्मेट है जो सीन पदानुक्रम, सामग्री, कई UV चैनल, और कंकाल एनीमेशन का समर्थन करता है। Aspose.3D FOSS पूर्ण नोड ट्री और सामग्री परिभाषाओं को पढ़ता और लिखता है।.

from aspose.threed import Scene

##Load a COLLADA file
scene = Scene.from_file("model.dae")

##Inspect top-level nodes
for node in scene.root_node.child_nodes:
    print(f"  {node.name}")

##Save back to COLLADA
scene.save("output.dae")

जब आपको नामित नोड्स और सामग्री के साथ पदानुक्रमों को बिना किसी डेटा हानि के राउंड‑ट्रिप करना हो, तो COLLADA एक अच्छा विकल्प है।.


3MF Format

3MF (3D Manufacturing Format) targets additive manufacturing (3D printing) workflows. It stores triangle geometry, colour, and print-specific metadata in a ZIP-based container.

from aspose.threed import Scene
from aspose.threed.formats import ThreeMfSaveOptions

scene = Scene.from_file("part.stl")   # Load from STL
opts  = ThreeMfSaveOptions()
scene.save("part.3mf", opts)          # Write as 3MF

3MF is the recommended export format when targeting slicer software (Cura, PrusaSlicer, Bambu Studio, etc.).


FBX फ़ॉर्मेट

स्थिति: प्रगति में (उत्पादन‑तैयार नहीं)।.

FBX (.fbx) समर्थन Aspose.3D FOSS में वर्तमान में टोकनाइज़र चरण पर है। बाइनरी FBX टोकनाइज़र फ़ाइल संरचना को पार्स कर सकता है, लेकिन पूर्ण नोड, मेष, और सामग्री पार्सर में ज्ञात बग हैं और यह पूर्ण नहीं है। FBX पढ़ने के परिणामों को प्रयोगात्मक माना जाना चाहिए।.

इस रिलीज़ के साथ उत्पादन पाइपलाइन में FBX का उपयोग न करें।. यदि आपका स्रोत डेटा FBX में है, तो इसे पहले Blender या FBX Review का उपयोग करके glTF या OBJ में परिवर्तित करें, फिर Aspose.3D FOSS के साथ लोड करें।.

FBX लिखना समर्थित नहीं है।.


फ़ॉर्मेट स्वचालित पहचान

Scene.from_file() और scene.open() फ़ाइल एक्सटेंशन और जहाँ उपलब्ध हो, फ़ाइल हेडर में मैजिक बाइट्स का उपयोग करके फ़ॉर्मेट को स्वचालित रूप से पहचानें:

from aspose.threed import Scene

##The library detects each format without being told explicitly
scene_obj  = Scene.from_file("model.obj")
scene_glb  = Scene.from_file("model.glb")
scene_stl  = Scene.from_file("model.stl")
scene_dae  = Scene.from_file("model.dae")
scene_3mf  = Scene.from_file("model.3mf")

यदि एक्सटेंशन अनुपलब्ध या अस्पष्ट है, तो लाइब्रेरी हेडर निरीक्षण (magic bytes) पर वापस आती है। असमर्थित या अपरिचित फ़ाइलें एक IOError विवरणात्मक संदेश के साथ।.


टिप्स और सर्वोत्तम प्रथाएँ

  • आधुनिक पाइपलाइन के लिए glTF या GLB का उपयोग करें।. glTF पूर्ण सीन ग्राफ, मैटेरियल्स और एनीमेशन डेटा को संरक्षित रखता है। यह गेम इंजन और वेब व्यूअर्स के साथ इंटरचेंज के लिए सबसे पूर्ण फ़ॉर्मेट है।.
  • अधिकतम संगतता के लिए OBJ का उपयोग करें।. OBJ लगभग हर 3D टूल द्वारा समर्थित है। यह स्थिर मेष तक सीमित है लेकिन अत्यंत पोर्टेबल है।.
  • प्रिंटिंग के लिए 3MF का उपयोग करें।. 3MF carries colour, orientation hints, and print settings that STL cannot express.
  • जब तक FBX प्रोडक्शन‑रेडी न हो, इसका उपयोग न करें।. रिलीज़ नोट्स देखें कि किस संस्करण में पूर्ण FBX पार्सिंग पूरी हो गई है।.
  • सेव एक्सटेंशन को फ़ॉर्मेट से मिलाएँ।. को पास न करें .gltf एक्सटेंशन जब आप बाइनरी GLB चाहते हैं; उपयोग करें .glb स्पष्ट रूप से। एक्सटेंशन निर्धारित करता है कि कौन सा सीरियलाइज़र उपयोग किया जाता है।.
  • बहुभुज संगतता जाँचें।. STL और 3MF को त्रिभुजों की आवश्यकता होती है। क्वाड्स और N-गॉन को सहेजने पर स्वचालित रूप से त्रिकोणित किया जाता है, लेकिन वर्टेक्स गिनती बढ़ जाएगी। यदि आपको त्रिकोणन को नियंत्रित करने की आवश्यकता है, तो कॉल करें mesh.triangulate() सहेजने से पहले।.
 हिन्दी