Bevezetés

Mi elengedjük a… 3D FOSS Python-hoz., egy tiszta Python könyvtár a gyakori 3D fájlformátumok olvasására, írására és konvertálására. A könyvházot PyPI-n publikálják mint aspose-3d-foss, MIT-licenciát hordoz, és nulla külső függőséggel rendelkezik.

Ha valaha is 3D fájlok programszerű ellenőrzésére vagy konvertálására volt szükséged (kivonás a hálózati csúcsok számlálása, OBJ geometria feldolgozási szkriptbe történő átalakítása vagy STL-fájlokat glTF-re való tételkonverzió egy webes néző számára), ez a könyvtár erre az esetre készült. Nem igényel grafikus drivereket, eredeti kiterjesztési modulokat vagy felhőkapcsolatot.


Mit tartalmaz?

Középpontú jelenet grafikon

Minden fájlt egy-egy adatbázisba töltöttek. Scene objektum, amely tükrözi az eredeti fájl csomópont hierarchiáját. A csomó a Transform (fordítás, forgás, méret) és egy vagy több kapcsolódó entitás. Mesh, Camera, vagy Light.A jelenet grafikona a forrásformátumtól függetlenül ugyanaz, így az átjáró és feldolgozó geometriára írt kód módosítás nélkül működik minden támogatott formátumon.

Geometriás hozzáférés

Mesh az objektumok a következőket mutatják be:

  • control_points: a csúcspontok listája, mint: Vector4 (x, y, z, w)
  • polygons: az arc-index listák listája (önkényes sokszög arity, nem csak háromszögek)
  • get_element(VertexElementType): felveszi a normál, UV, csúcsszínek és egyenesítő csoportok nevű csúcsadatrétegeit

Az anyagok

LambertMaterial és a PhongMaterial az OBJ-ből olvasott anyag tulajdonságait hordozza; .mtl Az anyagok túlélik a terhelést, kivéve az őket támogató formátumok esetében a körútra történő utazást.

Matematikai segédprogramok

Vector2, Vector3, Vector4, FVector3, Quaternion, Matrix4, és BoundingBox geometriai számításokhoz könnyűsúlyú értéktípusokként szerepelnek.

Animációk

A AnimationClip, AnimationNode, KeyframeSequence, és KeyFrame A klasszák hozzáférést biztosítanak a kulcskeret animációs adataihoz az azt hordozó formátumokból, mint pl. glTF és COLLADA.


Gyors kezdés

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

Töltse be a 3D fájlt és nyomtassa ki az egyes hálózatok csúcsszámá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)

Ugyanazt a fájlt konvertizálja glTF-re:

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

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

Nincs konfigurációs fájl, API kulcs, hálózati hívás.


Támogatott formátumok

FormátumExtension(s)Töltési kapacitás:MegőrzésMegjegyzések
OBJ.objIgen, igen. - Az is jó.Igen, igen. - Az is jó..mtl az anyagterhelés támogatott,
STL.stlIgen, igen. - Az is jó.Igen, igen. - Az is jó.Bináris és ASCII; koordinátarendszer-felváltási lehetőség
glTF-t.gltf, .glbIgen, igen. - Az is jó.Igen, igen. - Az is jó..glb (magányos bináris) támogatott
COLLADA.daeIgen, igen. - Az is jó.Igen, igen. - Az is jó.ColladaSaveOptions a következőkben: flip_coordinate_system, enable_materials, indented
3MF.3mfIgen, igen. - Az is jó.Igen, igen. - Az is jó.3D-nyomtatási munkafolyamatokra alkalmas
FBX.fbxRészlegesN/ACsak tokenizer; folyamatban a teljes elemzés

A formátum felismerése automatikusan történik a fájl kiterjesztésénél. Formátumspecifikus betöltési és mentési lehetőségek (ObjLoadOptions, StlSaveOptions, GltfSaveOptions, ThreeMfSaveOptions) finomszemű ellenőrzésre rendelkezésre állnak.


Nyitott forrás és ingyenes

A könyvtár MIT licenc alatt áll. Kereskedelmi alkalmazásokban használhatja, módosíthatja és korlátozás nélkül továbbadhatja. Az forrás a GitHub-on elérhető az Aspose szervezet alatt.

Nincs felhasználási szint, nincs token határ és nincs telemetria. A könyvtár minden feldolgozást helyileg végzi.

Feltételezések:A csomag tiszta Python-kerékként települ, C bővítések nélkül és harmadik fél futási időre vonatkozó követelmények nélkül.


Kezdjük!


A Bizottság következtetései

A Python 26.1.0 3D FOSS a leggyakoribb, az eszközkészletekben, csővezetékekben és webes alkalmazásokban használt 3d-s fájlformátumokat (OBJ, STL, glTF, COLLADA és 3MF) egy egységes Python APIval fedezi fel. Ha hibaba ütközik, nem támogatott szélügyben vagy olyan formátumba kerül hozzáadásra, kérjük, nyissa meg a GitHubon. Aktívan karbantartjuk a könyvtárat és üdvözöljük a hozzájárulásokat.