Introduktion

Vi släpper Aspose.3D FOSS for Python, ett rent-Python bibliotek för att läsa, skriva och konvertera vanliga 3D‑filformat. Biblioteket publiceras på PyPI som aspose-3d-foss, har en MIT-licens och har noll externa beroenden.

Om du någonsin har behövt inspektera eller konvertera 3D-filer programatiskt (extrahera mesh-vertexantal, skicka OBJ-geometri till ett bearbetningsskript, eller batchkonvertera STL-filer till glTF för en webbvisare), är detta bibliotek byggt för det användningsfallet. Det kräver ingen grafikdrivrutin, ingen native extension module eller någon molnanslutning.


Vad som ingår

Kärnscengraf

Varje fil laddas in i en Scene objekt som speglar originalfilens nodhierarki. Noder bär Transform (översättning, rotation, skala) och en eller flera bifogade enheter såsom Mesh, Camera, eller Light. Scengrafen är densamma oavsett källformat, så kod skriven för att gå igenom och bearbeta geometri fungerar över alla stödda format utan ändring.

Geometriåtkomst

Mesh objekt exponerar:

  • control_points: lista med vertexpositioner som Vector4 (x, y, z, w)
  • polygons: lista med ansiktsindexlistor (godtycklig polygonarity, inte bara trianglar)
  • get_element(VertexElementType): hämtar namngivna vertexdataskikt för normaler, UV:er, vertexfärger och slätningsgrupper

Material

LambertMaterial och PhongMaterial bär materialegenskaperna lästa från OBJ .mtl filer (ambient, diffuse, specular, emissive, transparency, shininess). Material överlever laddnings‑ och sparningscykeln för format som stödjer dem.

Matematikverktyg

Vector2, Vector3, Vector4, FVector3, Quaternion, Matrix4, och BoundingBox inkluderas som lätta värdetyper för geometriberäkningar.

Animation

Den AnimationClip, AnimationNode, KeyframeSequence, och KeyFrame klasser ger åtkomst till nyckelbildsanimationsdata från format som innehåller den, såsom glTF och COLLADA.


Snabbstart

pip install aspose-3d-foss

Läs in en 3D-fil och skriv ut vertexantalet för varje 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)

Konvertera samma fil till glTF:

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

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

Det är hela programmet. Inga konfigurationsfiler, inga API-nycklar, inga nätverksanrop.


Stödda format

FormatExtension(s)Läs inSparaAnteckningar
Wavefront OBJ.objJaJa.mtl materialinläsning stöds
STL.stlJaJaBinär och ASCII; alternativ för koordinatsystemsvändning
glTF 2.0.gltf, .glbJaJaGLB (självständig binär) stöds
COLLADA.daeJaJaColladaSaveOptions tillgänglig med flip_coordinate_system, enable_materials, indented
3MF.3mfJaJaLämplig för 3D-utskriftsarbetsflöden
FBX.fbxDelvisN/AEndast tokenizer; fullständig parser under utveckling

Formatdetektering sker automatiskt från filändelsen. Format‑specifika läs‑ och spara‑alternativ (ObjLoadOptions, StlSaveOptions, GltfSaveOptions, ThreeMfSaveOptions).


Öppen källkod och gratis

Biblioteket är licensierat under MIT. Du kan använda det i kommersiella applikationer, modifiera det och distribuera det utan restriktioner. Källkoden finns på GitHub under organisationen Aspose.

Det finns inga användningsnivåer, inga token‑gränser och ingen telemetri. Biblioteket utför all bearbetning lokalt.

Beroenden: ingen. Paketet installeras som ett rent-Python wheel utan C‑tillägg och utan tredjeparts‑körningskrav.


Komma igång


Slutsats

Aspose.3D FOSS för Python 26.1.0 täcker de vanligaste 3D-filformaten som används i verktyg, pipelines och webbapplikationer (OBJ, STL, glTF, COLLADA och 3MF) med ett konsekvent Python API och utan installationsfriktion. Om du stöter på ett fel, ett ej stödd kantfall eller ett format du behöver lägga till, öppna gärna ett ärende på GitHub. Vi underhåller aktivt biblioteket och välkomnar bidrag.