Úvodní článek

Uvolňujeme… 3D FOSS pro Python, čistá knihovna Pythonu pro čtení, psaní a konverzi běžných 3D souborových formátů. Knihovna je publikována na PyPI jako aspose-3d-foss, má licenci MIT a nemá žádné vnější závislosti.

Pokud jste někdy potřebovali zkontrolovat nebo konverzovat 3D soubory programově (vyjmout počet mřížových vrchů, přenést geometrii OBJ do procesorového skriptu nebo batch-konverzoval STL soubory na glTF pro webový divák), tato knihovna je postavená pro tento případ použití. Nepotřebuje grafický ovladač, nativní rozšíření modul ani jakékoliv cloudové připojení.


Co se v ní nachází?

Graf hlavní scény

Každý soubor je načten do Scene objekt, který odráží hierarchii uzlů původního souboru. Transform (překlad, rotace, měřítko) a jedním nebo více připojenými subjekty jako jsou: Mesh, Camera,nebo: Light.Graf scény je stejný bez ohledu na zdrojový formát, takže kód napsán pro chodbu a procesní geometrii funguje ve všech podporovaných formátech bez úpravy.

Přístup geometrie

Mesh předměty odhalují:

  • control_points: seznam pozic vrcholu jako: Vector4 (x, y, z, w)
  • polygons: seznam indexů obličej (volitelná arita polygonů, nejen trojúhelníků)
  • get_element(VertexElementType): získávat jmenované vrcholové datové vrstvy pro normály, UV, barvy vrcholu a hladící skupiny

Materiály

LambertMaterial a) PhongMaterial nesou vlastnosti materiálu odčítané z OBJ, .mtl Materiály přežívají zatížení, ale pro formáty podporující je zachovávají návrat.

Matematické nástroje

Vector2, Vector3, Vector4, FVector3, Quaternion, Matrix4,a) BoundingBox jsou zahrnuty jako typy lehkých hodnot pro výpočty geometrie.

Animování

Úřad pro bezpečnost a ochranu zdraví AnimationClip, AnimationNode, KeyframeSequence,a) KeyFrame třídy poskytují přístup k animačním datům klíčového rámce z formátů, které ho přenášejí, jako jsou glTF a COLLADA.


Rychlý start

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

Nahrát 3D soubor a vytisknout počet vrchů každého okruhu:

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)

Konvertujte stejný soubor na glTF:

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

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

Žádné konfigurační soubory, API klíče ani síťové hovory.


Podporované formáty

FormátExtension(s)NákladUloženíPoznámky
OBJ.objAno , ano .Ano , ano ..mtl podporované zatížení materiálu
STL.stlAno , ano .Ano , ano .Binární a ASCII; možnost převrácení souřadnicového systému
glTF.gltf, .glbAno , ano .Ano , ano ..glb (samostatný binární) podporovaný
COLLADA.daeAno , ano .Ano , ano .ColladaSaveOptions dostupný s: flip_coordinate_system, enable_materials, indented
3MF.3mfAno , ano .Ano , ano .Přípustné pro pracovní postupy 3D tisku
FBX.fbxČástečná částN/APouze tokenizer; plný parser v provozu

Detekce formátu je automatická z rozšíření souboru. Možnosti načítání a ukládání specifické pro daný formát (ObjLoadOptions, StlSaveOptions, GltfSaveOptions, ThreeMfSaveOptions) jsou k dispozici pro kontrolu jemných zrn.


Open Source a zdarma

Knihovna je licencovaná MIT. Můžete ji používat v komerčních aplikacích, upravovat a redistribuovat bez omezení. Zdroj je k dispozici na GitHub pod organizací Aspose .

Knihovna provádí veškeré zpracování lokálně.

Závislost na jiných produktech:Paket se instaluje jako čisté pythonové kolo bez rozšíření C a žádných požadavků na dobu spuštění třetí strany.


Jak začít?


Výsledky

3D FOSS pro Python 26.1.0 pokrývá nejběžnější formáty souborů 3d používané v nástrojích, potrubí a webových aplikacích (OBJ, STL, glTF, COLLADA a 3MF) s konzistentním API Pythonu a bez žádné instalační tření. Pokud narazíte na chybu, nepodporovaný případ okraje nebo formát, který potřebujete přidat, otevřete problém na GitHub. Aktivně udržujeme knihovnu a vítajme příspěvky.