Στήριξη μορφοποίησης

Το Aspose.3D FOSS για το Python μπορεί να διαβάσει και να γράψει επτά μορφές 3D χρησιμοποιώντας μια ενιαία απεικόνιση σκηνής στη μνήμη. Scene αντικείμενο φορτίου και σειριώσεις που αντικρούουν πίσω στην μορφή στόχου στο αποθηκεύεται. Αυτό σημαίνει ότι μια σκηνή φορτωμένη από το OBJ μπορεί να αποσταλεί απευθείας στη glTF χωρίς οποιαδήποτε μεσαία μετατροπή βήματα.


Υποστηριζόμενες μορφές

ΤΕΧΝΗΕΠΙΤΡΟΦΗΔιαβάστεΓράψεΕΠΙΛΟΓΕΣ ΚΛΑΔΑΣΣημειώσεις
OBJ.objΝΑΙΝΑΙObjLoadOptionsΟ Πυροβόλος OBJ.; .mtl Υλικό φορτίο υποστηρίζεται
STL.stlΝΑΙΝΑΙStlSaveOptionsΔυαδικές και ASCII ανάγνωση; αποθηκεύστε τις παραμέτρους για το δυαδικό
ΓΚΛΤΦ.gltf / .glbΝΑΙΝΑΙGltfSaveOptionsGLTF 2.0 JSON και GLB δυαδικός δοχείο
COLLADA.daeΝΑΙΝΑΙColladaLoadOptions / ColladaSaveOptionsΗ ιεραρχία της σκηνής και τα υλικά
3MF.3mfΝΑΙΝΑΙThreeMfSaveOptionsΕπαγγελματική μορφή παραγωγής
FBX.fbxΜερικήΟΧΙN/AΤο εργοστάσιο είναι σε εξέλιξη (Δεν είναι έτοιμη παραγωγή)

Τίτλος OBJ

Το Wavefront OBJ είναι το ευρύτερα υποστηριζόμενο μορφότυπο ανταλλαγής για στατικές μασές.Το Aspose.3D FOSS φορτίζει τη γεωμετρία (βουρίδια, κανονικά, συντονιστικά UV και πολυγώνια πρόσωπα) και επιλεκτικά την συνοδεία του .mtl υλικό αρχείο.

ObjLoadOptions

ΙδιοκτησίαΤύποςΥπολογισμοίΠεριγραφή
enable_materialsboolTrueΣυμμετέχει το .mtl Το αρχείο που αναφέρεται από το OBJ header
flip_coordinate_systemboolFalseΜετατροπή από το Y-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, δεν υπάρχουν υλικά και δεν υπάρχει ιεραρχία. Αν η σκηνή σας περιέχει τετράγωνες ή πολυγόνα υψηλότερης τάξεως, είναι αυτόματα τριγωνισμένες σε αποθήκευση.


ΓΚΛΤ / GLB μορφή

Το GST είναι το συνιστώμενο μορφότυπο για την σύγχρονη 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 κανάλια και την κηλιδική animation. 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 βρίσκεται επί του παρόντος στο στάδιο του tokenizer. ο δυαδικός FBX tokens μπορεί να διαλύσει τη δομή αρχείου, αλλά το πλήρες κόμβο, η μάζα και το υλικό parser έχει γνωστά bugs και δεν είναι ολοκληρωμένο. τα αποτελέσματα ανάγνωσης FB X θα πρέπει να αντιμετωπιστούν ως πειραματικά.

Μην χρησιμοποιείτε το FBX στα σωλήνα παραγωγής με αυτή την έκδοση. Εάν τα δεδομένα πηγής σας είναι στο FBX, μετατρέψτε το σε glTF ή OBJ πρώτα χρησιμοποιώντας Blender ή FBx Review πριν φορτίσετε με Aspose.3D FOSS.

Το FBX δεν υποστηρίζεται.


Ετικέτες Auto-Detektion

Scene.from_file() και scene.open() Ανακαλύψτε αυτόματα τη μορφή χρησιμοποιώντας την επέκταση αρχείου και, όπου είναι διαθέσιμα, μαγικά byte στο αρχείο τίτλο:

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

Εάν η επέκταση είναι απουσία ή αμφίβολη, η βιβλιοθήκη πέφτει πίσω στην επιθεώρηση επικεφαλής (μαγικά bytes). IOError Με ένα περιγραφικό μήνυμα.


Συμβουλές και βέλτιστες πρακτικές

  • Χρησιμοποιήστε GLTF ή GLB για σύγχρονες αγωγές. Το glTF διατηρεί τα πλήρη δεδομένα γραφικών σκηνής, υλικού και κινούμενων στοιχείων. είναι η πιο ολοκληρωμένη μορφή για ανταλλαγή με κινητήρες παιχνιδιών και web viewers.
  • Χρησιμοποιήστε το OBJ για μέγιστη συμβατότητα. Το OBJ υποστηρίζεται από σχεδόν κάθε εργαλείο 3D. περιορίζεται σε στατικές μασές, αλλά είναι εξαιρετικά φορητό.
  • Χρησιμοποιήστε 3MF για εκτύπωση. 3MF carries colour, orientation hints, and print settings that STL cannot express.
  • Αποφύγετε το FBX μέχρι να είναι έτοιμο για παραγωγή. Ελέγξτε τα σημειώματα κυκλοφορίας για την έκδοση στην οποία είναι πλήρης η παρσινγκ FBX.
  • Το παιχνίδι αποθηκεύει την επέκταση σε μορφή. Μην περάσετε το A .gltf επεκτάσεις όταν θέλετε δυαδικό GLB. χρησιμοποιήστε .glb Η επέκταση καθορίζει ποιο σειριακό χρησιμοποιείται.
  • Ελέγξτε τη συμβατότητα των πολυγώνων. STL και 3MF απαιτούν τριγώνια. Quads και N-gons είναι τριγωνισμένα αυτόματα σε αποθήκευση, αλλά ο αριθμός των σπονδύλων θα αυξηθεί. Αν χρειαστεί να ελέγξετε την τριangulation, καλέστε mesh.triangulate() Πριν από την εξοικονόμηση.
 Ελληνικά