Uvod u članak

Oslobađamo… 3D FOSS za Python, čista Python biblioteka za čitanje, pisanje i pretvaranje u 3D formate datoteke. Biblioteka je objavljena na PyPI-u kao aspose-3d-foss, nosi MIT licencu, i ima nula vanjskih ovisnosti.

Ako ste ikada trebali pregledati ili pretvoriti 3D datoteke programom (izvadite brojeve mrežnih vrhova, obradite OBJ geometriju u skript za obradu ili batch-konvertirajte STL datotekama na glTF za web pregledač), ova je knjižnica napravljena za taj slučaj uporabe. Ne zahtijeva grafički upravljač, nativni modul proširenja niti bilo kakvu vezu s oblakom.


Što je uključeno u to?

Grafikon glavne scene

Svaka datoteka je učita u Scene objekt koji odražava originalni datoteke čvor hijerarhije. čvorišta nose Transform (prevod, rotacija, skala) i jedan ili više povezanih subjekata kao što su: Mesh, Camera,ili Light.Grafikon je isti bez obzira na izvorni format, tako da kod koji se piše za hodanje i obradu geometrije radi u svim podržanim formata bez modifikacije.

Prihvat geometrije

Mesh objekte izlože:

  • control_points: popis pozicija vrhova kao: Vector4 (x, y, z, w)
  • polygons: popis indeksnih lista lica (ne samo trokut, već i poligonski broj)
  • get_element(VertexElementType): preuzima datoteke o imenovanim vrhovima za normalne, UV-ove, boje vrhova i grupe glatkanja.

Materijali

LambertMaterial i u članku 1. PhongMaterial S obzirom na to da je u ovom slučaju potrebno utvrditi: .mtl U ovom slučaju, u skladu s člankom 73. stavkom 1. ovog članka, se primjenjuje na:.

Matematičke aplikacije

Vector2, Vector3, Vector4, FVector3, Quaternion, Matrix4, i BoundingBox U skladu s člankom 16. stavkom 1. točkom (a) i podstavkom 7., u slučaju da se primjenjuje metoda “srednja” ili “najnovija”, treba uvesti sljedeće:.

Animiranje

U skladu s člankom 1. AnimationClip, AnimationNode, KeyframeSequence, i KeyFrame U ovom slučaju, u skladu s člankom 16. stavkom 1. točkom (a) i podstavcima 2. i 3. ovog članka, ako je primjenjivo, se može koristiti sljedeće:.


Brzi početak

pip install aspose-3d-foss

Uplatiti 3D datoteku i ispisati broj vrhunaca svake mreže:

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)

Konvertirajte istu datoteku u glTF:

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

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

Nema konfiguracijskih datoteka, API ključeva, niti mrežnih poziva.


Podržani formati

Format:Extension(s)Uređaj za prevoz:SačuvatiUpis:
OBJ.obj- Da, u redu.- Da, u redu..mtl podupiranje opterećenja materijala
STL.stl- Da, u redu.- Da, u redu.Binarni i ASCII; mogućnost prebacivanja koordinatnog sustava
GTF-a.gltf, .glb- Da, u redu.- Da, u redu..glb (samostalna binarna) podržana
COLLADA.dae- Da, u redu.- Da, u redu.ColladaSaveOptions dostupna s: flip_coordinate_system, enable_materials, indented
3MF.3mf- Da, u redu.- Da, u redu.Sredstva za proizvodnju i distribuciju, uključujući:
FBX.fbxDelnoN/ASamo tokenizer; u tijeku je potpuni parser

Detekcija formata je automatska iz proširenja datoteke. Opcije učitavanja i pohranjivanja specifične za format (ObjLoadOptions, StlSaveOptions, GltfSaveOptions, ThreeMfSaveOptions(Stoga je u ovom slučaju potrebno uzeti u obzir i sljedeće:.


Otvoreni izvor i besplatni

Knjižnica je licencirana na MIT. Možete ju koristiti u komercijalnim aplikacijama, modificirati i redistribuirati bez ograničenja. Izvor je dostupan na GitHub-u pod organizacijom Aspose .

Nema niza upotrebe, nema ograničenja tokena i nema telemetrije.

Odvisnosti:Paket se instalira kao čisto Python kolo bez C proširenja i zahtjeva za vrijeme rada trećih strana.


Početak


Izvješće

3D FOSS za Python 26.1.0 pokriva najčešće 3d formate datoteka koji se koriste u alatima, cijevi i web aplikacijama (OBJ, STL, glTF, COLLADA i 3MF) uz dosljednu Python API-ju i bez trenja instalacije. Ako naiđete na pogrešku, nespreman slučaj krajeva ili format koji trebate dodati, molim vas otvorite problem na GitHub-u. Aktivno održavamo knjižnicu i dobrodošli doprinosi.