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 somVector4(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
| Format | Extension(s) | Läs in | Spara | Anteckningar |
|---|---|---|---|---|
| Wavefront OBJ | .obj | Ja | Ja | .mtl materialinläsning stöds |
| STL | .stl | Ja | Ja | Binär och ASCII; alternativ för koordinatsystemsvändning |
| glTF 2.0 | .gltf, .glb | Ja | Ja | GLB (självständig binär) stöds |
| COLLADA | .dae | Ja | Ja | ColladaSaveOptions tillgänglig med flip_coordinate_system, enable_materials, indented |
| 3MF | .3mf | Ja | Ja | Lämplig för 3D-utskriftsarbetsflöden |
| FBX | .fbx | Delvis | N/A | Endast 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
- Installera:
pip install aspose-3d-foss - Instruktion: Ladda filer: Hur man laddar 3D-modeller i Python
- Instruktion: Konvertera filer: Hur man konverterar 3D-modeller i Python
- API‑referens: Aspose.3D FOSS för Python API‑referens
- PyPI: aspose-3d-foss på PyPI
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.