Introduktion

Vi udgiver Aspose.3D FOSS til Python, et rent-Python bibliotek til at læse, skrive og konvertere almindelige 3D-filformater. Biblioteket er udgivet på PyPI som aspose-3d-foss, har en MIT-licens og har nul eksterne afhængigheder.

Hvis du nogensinde har haft brug for at inspicere eller konvertere 3D-filer programmatisk (udtrække mesh-vertex-tællinger, sende OBJ-geometri til et behandlingsscript, eller batch-konvertere STL-filer til glTF til en web‑viewer), er dette bibliotek bygget til netop dette brugsscenarie. Det kræver hverken en grafikkortdriver, et native udvidelsesmodul eller nogen cloud‑forbindelse.


Hvad der er inkluderet

Kerne Scene Graph

Hver fil indlæses i en Scene objekt, der spejler den oprindelige fils nodehierarki. Noder bærer Transform (translation, rotation, skalering) og en eller flere vedhæftede enheder såsom Mesh, Camera, eller Light. Scenegrafen er den samme uanset kildeformat, så kode skrevet til at traversere og behandle geometri fungerer på tværs af alle understøttede formater uden ændring.

Geometriadgang

Mesh objekter eksponerer:

  • control_points: liste over vertexpositioner som Vector4 (x, y, z, w)
  • polygons: liste over fladeindekslister (vilkårlig polygonaritet, ikke kun trekanter)
  • get_element(VertexElementType): henter navngivne vertex-datalag for normaler, UV’er, vertexfarver og udjævningsgrupper

Materialer

LambertMaterial og PhongMaterial bærer materialegenskaberne læst fra OBJ .mtl filer (ambient, diffuse, specular, emissive, transparency, shininess). Materialer overlever indlæsnings‑gemnings‑cirklen for formater, der understøtter dem.

Matematikværktøjer

Vector2, Vector3, Vector4, FVector3, Quaternion, Matrix4, og BoundingBox er inkluderet som letvægts‑værdityper til geometriberegninger.

Animation

Den AnimationClip, AnimationNode, KeyframeSequence, og KeyFrame klasser giver adgang til keyframe-animeringsdata fra formater, der indeholder dem, såsom glTF og COLLADA.


Hurtig start

pip install aspose-3d-foss

Indlæs en 3D-fil og udskriv antallet af vertexer 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)

Konvertér den samme fil 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 det komplette program. Ingen konfigurationsfiler, ingen API-nøgler, ingen netværksopkald.


Understøttede formater

FormatExtension(s)IndlæsGemNoter
Wavefront OBJ.objJaJa.mtl materialindlæsning understøttet
STL.stlJaJaBinær og ASCII; mulighed for at vende koordinatsystemet
glTF 2.0.gltf, .glbJaJaGLB (selvstændig binær) understøttet
COLLADA.daeJaJaColladaSaveOptions tilgængelig med flip_coordinate_system, enable_materials, indented
3MF.3mfJaJaVelegnet til 3D-printarbejdsprocesser
FBX.fbxDelvisN/AKun tokenizer; fuld parser under udvikling

Formatdetektion er automatisk ud fra filendelsen. Format‑specifikke indlæsnings‑ og gemmeindstillinger (ObjLoadOptions, StlSaveOptions, GltfSaveOptions, ThreeMfSaveOptions) er tilgængelige for finjusteret kontrol.


Open source og gratis

Biblioteket er licenseret under MIT. Du kan bruge det i kommercielle applikationer, modificere det og redistribuere det uden restriktioner. Kilden er tilgængelig på GitHub under Aspose organisationen.

Der er ingen brugsniveauer, ingen token‑grænser og ingen telemetri. Biblioteket udfører al behandling lokalt.

Afhængigheder: ingen. Pakken installeres som et rent-Python wheel uden C-udvidelser og uden tredjeparts runtime‑krav.


Kom i gang


Konklusion

Aspose.3D FOSS for Python 26.1.0 dækker de mest almindelige 3D-filformater, der bruges i værktøjer, pipelines og webapplikationer (OBJ, STL, glTF, COLLADA og 3MF) med et konsistent Python API og ingen installationsfriktion. Hvis du støder på en fejl, et ikke-understøttet kanttilfælde eller et format, du har brug for at få tilføjet, så opret venligst en issue på GitHub. Vi vedligeholder aktivt biblioteket og byder bidrag velkommen.