Introduction

Nous publions Aspose.3D FOSS pour Python, une bibliothèque pure-Python pour lire, écrire et convertir les formats de fichiers 3D courants. La bibliothèque est publiée sur PyPI sous le nom de aspose-3d-foss, possède une licence MIT et n’a aucune dépendance externe.

Si vous avez déjà eu besoin d’inspecter ou de convertir des fichiers 3D de manière programmatique (extraire le nombre de sommets d’un maillage, acheminer la géométrie OBJ dans un script de traitement, ou convertir en lot des fichiers STL en glTF pour un visualiseur web), cette bibliothèque est conçue pour ce cas d’utilisation. Elle ne nécessite ni pilote graphique, ni module d’extension natif, ni connexion cloud.


Ce qui est inclus

Graphique de scène principal

Chaque fichier est chargé dans un Scene objet qui reflète la hiérarchie des nœuds du fichier original. Les nœuds portent Transform (translation, rotation, mise à l’échelle) et une ou plusieurs entités attachées telles que Mesh, Camera, ou Light. Le graphe de scène est identique quel que soit le format source, ainsi le code écrit pour parcourir et traiter la géométrie fonctionne sur tous les formats pris en charge sans modification.

Accès à la géométrie

Mesh les objets exposent :

  • control_points: liste des positions des sommets en tant que Vector4 (x, y, z, w)
  • polygons: liste de listes d’indices de faces (arité de polygone arbitraire, pas seulement des triangles)
  • get_element(VertexElementType): récupère les couches de données de sommet nommées pour les normales, les UV, les couleurs de sommet et les groupes de lissage

Matériaux

LambertMaterial et PhongMaterial conservent les propriétés de matériau lues depuis OBJ .mtl fichiers (ambient, diffuse, specular, emissive, transparency, shininess). Les matériaux survivent au cycle de chargement‑enregistrement pour les formats qui les prennent en charge.

Utilitaires mathématiques

Vector2, Vector3, Vector4, FVector3, Quaternion, Matrix4, et BoundingBox sont inclus en tant que types de valeur légers pour les calculs géométriques.

Animation

Le AnimationClip, AnimationNode, KeyframeSequence, et KeyFrame les classes offrent un accès aux données d’animation par images clés provenant de formats qui les contiennent, tels que glTF et COLLADA.


Démarrage rapide

pip install aspose-3d-foss

Chargez un fichier 3D et affichez le nombre de sommets de chaque maillage :

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)

Convertissez le même fichier en glTF :

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

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

C’est le programme complet. Aucun fichier de configuration, aucune clé API, aucun appel réseau.


Formats pris en charge

FormatExtension(s)ChargerEnregistrerNotes
Wavefront OBJ.objOuiOui.mtl chargement de matériau pris en charge
STL.stlOuiOuiBinaire et ASCII ; option d’inversion du système de coordonnées
glTF 2.0.gltf, .glbOuiOuiGLB (binaire autonome) pris en charge
COLLADA.daeOuiOuiColladaSaveOptions disponible avec flip_coordinate_system, enable_materials, indented
3MF.3mfOuiOuiAdapté aux flux de travail d’impression 3D
FBX.fbxPartielN/ATokenizer uniquement ; analyseur complet en cours

La détection du format est automatique à partir de l’extension du fichier. Les options de chargement et d’enregistrement spécifiques au format (ObjLoadOptions, StlSaveOptions, GltfSaveOptions, ThreeMfSaveOptions) sont disponibles pour un contrôle fin.


Open source et gratuit

La bibliothèque est sous licence MIT. Vous pouvez l’utiliser dans des applications commerciales, la modifier et la redistribuer sans restriction. Le code source est disponible sur GitHub sous l’organisation Aspose.

Il n’y a aucun niveau d’utilisation, aucune limite de jetons et aucune télémétrie. La bibliothèque effectue tout le traitement localement.

Dépendances: aucune. Le paquet s’installe comme une roue pure-Python sans extensions C et sans dépendances d’exécution tierces.


Premiers pas


Conclusion

Aspose.3D FOSS for Python 26.1.0 couvre les formats de fichiers 3D les plus courants utilisés dans les outils, les pipelines et les applications web (OBJ, STL, glTF, COLLADA et 3MF) avec une API Python cohérente et aucune friction d’installation. Si vous rencontrez un bug, un cas limite non pris en charge ou un format que vous souhaitez ajouter, veuillez ouvrir une issue sur GitHub. Nous maintenons activement la bibliothèque et accueillons les contributions.