Úvod

Vydáváme Aspose.3D FOSS pro Python, čistá-Python knihovna pro čtení, zápis a konverzi běžných 3D formátů souborů. Knihovna je publikována na PyPI jako aspose-3d-foss, má licenci MIT a nemá žádné externí závislosti.

Pokud jste někdy potřebovali programově prohlížet nebo konvertovat 3D soubory (například získat počet vrcholů sítě, předat geometrii OBJ do zpracovatelského skriptu nebo hromadně převést soubory STL na glTF pro webový prohlížeč), tato knihovna je pro takový případ vytvořena. Nevyžaduje grafický ovladač, nativní rozšiřující modul ani žádné cloudové připojení.


Co je zahrnuto

Jádrový graf scény

Každý soubor je načten do Scene objektu, který odráží hierarchii uzlů původního souboru. Uzly nesou Transform (překlad, rotaci, měřítko) a jeden nebo více připojených entit, jako jsou Mesh, Camera, nebo Light. Scénový graf je stejný bez ohledu na zdrojový formát, takže kód napsaný pro procházení a zpracování geometrie funguje napříč všemi podporovanými formáty bez úprav.

Přístup k geometrii

Mesh objekty poskytují:

  • control_points: seznam pozic vrcholů jako Vector4 (x, y, z, w)
  • polygons: seznam seznamů indexů ploch (libovolná arita polygonů, nejen trojúhelníky)
  • get_element(VertexElementType): získává pojmenované vrstvy dat vrcholů pro normály, UV, barvy vrcholů a skupiny vyhlazování

Materiály

LambertMaterial a PhongMaterial nesou materiálové vlastnosti načtené z OBJ .mtl soubory (ambient, diffuse, specular, emissive, transparency, shininess). Materiály přežijí načítání‑ukládání v cyklu pro formáty, které je podporují.

Math Utilities

Vector2, Vector3, Vector4, FVector3, Quaternion, Matrix4, a BoundingBox jsou zahrnuty jako lehké hodnotové typy pro geometrické výpočty.

Animation

The AnimationClip, AnimationNode, KeyframeSequence, a KeyFrame třídy poskytují přístup k datům animace klíčových snímků z formátů, které je obsahují, jako jsou glTF a COLLADA.


Quick Start

pip install aspose-3d-foss

Načtěte 3D soubor a vytiskněte počet vrcholů každé sítě:

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)

Convert the same file to glTF:

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

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

To je kompletní program. Žádné konfigurační soubory, žádné API klíče, žádné síťové volání.


Podporované formáty

FormátExtension(s)NačístUložitPoznámky
Wavefront OBJ.objAnoAno.mtl podpora načítání materiálů
STL.stlAnoAnoBinární a ASCII; možnost převrácení souřadnicového systému
glTF 2.0.gltf, .glbAnoAnoGLB (samostatný binární soubor) podporováno
COLLADA.daeAnoAnoColladaSaveOptions k dispozici s flip_coordinate_system, enable_materials, indented
3MF.3mfAnoAnoVhodné pro workflow 3D tisku
FBX.fbxČástečnéN/APouze tokenizér; kompletní parser je ve vývoji

Detekce formátu je automatická na základě přípony souboru. Formátově specifické možnosti načítání a ukládání (ObjLoadOptions, StlSaveOptions, GltfSaveOptions, ThreeMfSaveOptions) jsou k dispozici pro jemné řízení.


Open source a zdarma

Knihovna je licencována pod MIT. Můžete ji používat v komerčních aplikacích, upravovat ji a redistribuovat bez omezení. Zdrojový kód je dostupný na GitHubu pod organizací Aspose.

Neexistují žádné úrovně používání, žádná omezení tokenů ani telemetrie. Knihovna provádí veškeré zpracování lokálně.

Závislosti: žádné. Balíček se instaluje jako čisté Python wheel bez C rozšíření a bez požadavků na třetí strany během běhu.


Začínáme


Závěr

Aspose.3D FOSS pro Python 26.1.0 pokrývá nejčastější 3D formáty souborů používané v nástrojích, pipelinech a webových aplikacích (OBJ, STL, glTF, COLLADA a 3MF) s konzistentním Python API a bez instalačních překážek. Pokud narazíte na chybu, nepodporovaný okrajový případ nebo formát, který potřebujete přidat, otevřete prosím issue na GitHubu. Aktivně udržujeme knihovnu a vítáme příspěvky.