Einführung

Wir werden die 3D-FOSS für Python, eine reine Python-Bibliothek zum Lesen, Schreiben und Konvertieren gängiger 3D-Dateiformate. Die Bibliothik wird auf PyPI als aspose-3d-foss, trägt eine MIT-Lizenz und hat keine externen Abhängigkeiten.

Wenn Sie jemals 3D-Dateien programmatisch überprüfen oder konvertieren müssen (Mesh-Wertexzahlen extrahieren, OBJ-Geometrie in ein Verarbeitungsskriptsystem verwandeln oder STL-Files für einen Webviewer zu glTF umwandlen), ist diese Bibliothek für diesen Anwendungsfall gebaut. Es erfordert keinen Grafiktreiber, kein natives Erweiterungsmodul oder eine Cloudverbindung.


Was ist darin enthalten?

Kernszenegrafik

Jede Datei wird in eine Scene Objekt, das die Knotenhierarchie der ursprünglichen Datei widerspiegelt. Transform (Übersetzung, Rotation, Skala) und einer oder mehreren angeschlossenen Einheiten wie z. B. Mesh, Camera,oder , Light.Die Szenegrafik ist unabhängig vom Quellformat die gleiche, so dass Code geschrieben zu laufen und verarbeiten Geometrie funktioniert über alle unterstützten Formate ohne Änderung.

Geometrischer Zugang

Mesh Objekte zeigen:

  • control_points: Liste der Punktpositionen als: Vector4 (x, y, z, w)
  • polygons: Liste der Gesichtsindexlisten (willkürliche Polygonart, nicht nur Dreiecke)
  • get_element(VertexElementType): holt benannte Winkel-Datenschichten für Normale, UVs, Winkelfarben und Glättungsgruppen ab

Materialien

LambertMaterial und PhongMaterial die aus dem OBJ abgelesenen Materialeigenschaften tragen; .mtl Materialien überstehen die Belastung, sofern nicht für Formate, die sie unterstützen, eine Hin- und Rückfahrt erforderlich ist.

Mathematik-Dienste

Vector2, Vector3, Vector4, FVector3, Quaternion, Matrix4, und BoundingBox als Leichtgewichtswerttypen für Geometrieberechnungen enthalten sind.

Animation und Film

Die AnimationClip, AnimationNode, KeyframeSequence, und KeyFrame Klassen ermöglichen den Zugriff auf Keyframe-Animationsdaten aus Formaten, die diese enthalten, wie glTF und COLLADA.


Schneller Start

asposefoss/3d is not yet published — build from source until it ships. See the project README for build instructions.

Laden Sie eine 3D-Datei und drucken Sie die Winkelzahl jedes Mesh:

from aspose.threed import Scene
from aspose.threed.entities import Mesh

scene = Scene.from_file("model.obj")

def visit(node):
    for entity in node.entities:
        if isinstance(entity, Mesh):
            print(f"{node.name}: {len(entity.control_points)} vertices, "
                  f"{len(entity.polygons)} polygons")
    for child in node.child_nodes:
        visit(child)

visit(scene.root_node)

Konvertieren Sie dieselbe Datei in glTF:

from aspose.threed import Scene
from aspose.threed.formats import GltfSaveOptions

scene = Scene.from_file("model.obj")
scene.save("model.gltf", GltfSaveOptions())

Das ist das komplette Programm, keine Konfigurationsdateien, kein API-Schlüssel, keinen Netzwerkruf.


Unterstützte Formate

Format der DatenbankExtension(s)LastSpeichernAnmerkungen
OBJ.obj- Ja , das ist gut .- Ja , das ist gut ..mtl Materialbelastung unterstützt
STL.stl- Ja , das ist gut .- Ja , das ist gut .Binär und ASCII; Koordinatensystem-Flip-Option
GFT-Systeme.gltf, .glb- Ja , das ist gut .- Ja , das ist gut ..glb (auf sich geschlossene Binär) unterstützt
COLLADA.dae- Ja , das ist gut .- Ja , das ist gut .ColladaSaveOptions mit einer flip_coordinate_system, enable_materials, indented
3MF.3mf- Ja , das ist gut .- Ja , das ist gut .für 3D-Druckarbeiten geeignet
FBX.fbxTeilzeitN/ANur Tokenizer; vollständiger Parser im Gange

Die Formaterkennung erfolgt automatisch über die Dateierweiterung.ObjLoadOptions, StlSaveOptions, GltfSaveOptions, ThreeMfSaveOptions) für die Feinkörnchenkontrolle verfügbar sind.


Open Source und kostenlos

Die Bibliothek ist MIT-lizenziert. Sie können sie in kommerziellen Anwendungen verwenden, verändern und ohne Einschränkung weitergeben. Die Quelle steht unter der Organisation Aspose auf GitHub zur Verfügung.

Es gibt keine Nutzungsstufen, keine Token-Limits und keine Telemetrie. Die Bibliothek führt alle Verarbeitung lokal durch.

Abhängigkeiten:Das Paket wird als reines Python-Rad ohne C-Erweiterungen und keine Runtimeanforderungen von Drittanbietern installiert.


Wie man anfängt


Schlussfolgerung

3D FOSS für Python 26.1.0 deckt die häufigsten in Werkzeugen, Pipelines und Webanwendungen verwendeten 3d-Dateiformate (OBJ, STL, glTF, COLLADA und 3MF) mit einer konsistenten Python API ab. Wenn Sie auf einen Fehler stoßen, eine nicht unterstützte Edge Case oder ein Format, das Sie hinzufügen müssen, öffnen Sie bitte ein Problem auf GitHub. Wir pflegen die Bibliothek aktiv und begrüßen Beiträge.