Introduksjon

Vi lanserer Aspose.3D FOSS for Python, et rent-Python bibliotek for lesing, skriving og konvertering av vanlige 3D‑filformater. Biblioteket er publisert på PyPI som aspose-3d-foss, har en MIT‑lisens, og har ingen eksterne avhengigheter.

Hvis du noen gang har trengt å inspisere eller konvertere 3D‑filer programmatisk (ekstrahere antall mesh‑vertexer, pipe OBJ‑geometri inn i et behandlingsskript, eller batch‑konvertere STL‑filer til glTF for en nettleser‑viser), er dette biblioteket bygget for dette bruksområdet. Det krever ingen grafikkdriver, ingen native‑utvidelsesmodul, eller noen sky‑tilkobling.


Hva som er inkludert

Kjerne‑scene‑graf

Hver fil lastes inn i en Scene objekt som speiler den opprinnelige filens nodehierarki. Noder inneholder Transform (oversettelse, rotasjon, skalering) og en eller flere tilknyttede enheter som Mesh, Camera, eller Light. Scene‑grafen er den samme uavhengig av kildeformat, så kode skrevet for å traversere og behandle geometri fungerer på tvers av alle støttede formater uten endringer.

Geometri‑tilgang

Mesh objekter eksponerer:

  • control_points: liste over vertex‑posisjoner som Vector4 (x, y, z, w)
  • polygons: liste over face index‑lister (arbitrary polygon arity, not just triangles)
  • get_element(VertexElementType): henter navngitte vertex‑datalag for normals, UVs, vertex colours, og smoothing groups

Materialer

LambertMaterial og PhongMaterial bærer materialegenskapene lest fra OBJ .mtl filer (ambient, diffuse, specular, emissive, transparency, shininess). Materialer overlever last–save-rundtur for formater som støtter dem.

Matematikkverktøy

Vector2, Vector3, Vector4, FVector3, Quaternion, Matrix4, og BoundingBox er inkludert som lette verdityper for geometriberegninger.

Animasjon

Den AnimationClip, AnimationNode, KeyframeSequence, og KeyFrame klasser gir tilgang til keyframe-animasjonsdata fra formater som inneholder dem, som glTF og COLLADA.


Rask start

pip install aspose-3d-foss

Last inn en 3D‑fil og skriv ut vertex‑antallet for hver mesh:

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)

Konverter den samme filen til glTF:

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

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

Det er hele programmet. Ingen konfigurasjonsfiler, ingen API‑nøkler, ingen nettverkskall.


Støttede formater

FormatExtension(s)Last innLagreNotater
Wavefront OBJ.objJaJa.mtl støtte for lasting av materialer
STL.stlJaJaBinær og ASCII; alternativ for å snu koordinatsystemet
glTF 2.0.gltf, .glbJaJaGLB (selvstendig binær) støttet
COLLADA.daeJaJaColladaSaveOptions tilgjengelig med flip_coordinate_system, enable_materials, indented
3MF.3mfJaJaEgnet for 3D‑utskriftsarbeidsflyter
FBX.fbxDelvisN/AKun tokeniserer; full parser under utvikling

Formatgjenkjenning er automatisk fra filendelsen. Formatspesifikke last‑ og lagre‑alternativer (ObjLoadOptions, StlSaveOptions, GltfSaveOptions, ThreeMfSaveOptions) er tilgjengelige for finjustert kontroll.


Åpen kilde og gratis

Biblioteket er lisensiert under MIT. Du kan bruke det i kommersielle applikasjoner, endre det og redistribuere det uten restriksjoner. Kildekoden er tilgjengelig på GitHub under Aspose-organisasjonen.

Det finnes ingen bruksnivåer, ingen token‑begrensninger og ingen telemetri. Biblioteket utfører all behandling lokalt.

Avhengigheter: ingen. Pakken installeres som et rent-Python wheel uten C‑utvidelser og uten tredjeparts‑kjøretidskrav.


Kom i gang


Konklusjon

Aspose.3D FOSS for Python 26.1.0 dekker de mest vanlige 3D‑filformatene som brukes i verktøy, pipelines og webapplikasjoner (OBJ, STL, glTF, COLLADA og 3MF) med et konsistent Python API og uten installasjonsfriksjon. Hvis du støter på en feil, et ikke‑støttet kanttilfelle eller et format du ønsker lagt til, vennligst åpne en sak på GitHub. Vi vedlikeholder aktivt biblioteket og ønsker bidrag velkommen.