Pengenalan

Kami sedang mengeluarkan Aspose.3D FOSS untuk Python, sebuah perpustakaan pure-Python untuk membaca, menulis, dan menukar format fail 3D umum. Perpustakaan ini diterbitkan di PyPI sebagai aspose-3d-foss, mempunyai lesen MIT, dan tidak mempunyai kebergantungan luaran.

Jika anda pernah perlu memeriksa atau menukar fail 3D secara programatik (mengekstrak kiraan vertex mesh, menyalurkan geometri OBJ ke skrip pemprosesan, atau menukar secara pukal fail STL ke glTF untuk penonton web), perpustakaan ini dibina untuk kes penggunaan tersebut. Ia tidak memerlukan pemacu grafik, modul sambungan asli, atau sebarang sambungan awan.


Apa yang Disertakan

Graf Adegan Teras

Setiap fail dimuatkan ke dalam sebuah Scene objek yang mencerminkan hierarki nod fail asal. Nod membawa Transform (terjemahan, putaran, skala) dan satu atau lebih entiti yang dilampirkan seperti Mesh, Camera, atau Light. Graf adegan adalah sama tanpa mengira format sumber, jadi kod yang ditulis untuk menelusuri dan memproses geometri berfungsi pada semua format yang disokong tanpa pengubahsuaian.

Akses Geometri

Mesh objek mendedahkan:

  • control_points: senarai kedudukan vertex sebagai Vector4 (x, y, z, w)
  • polygons: senarai senarai indeks muka (poligon arity sewenang-wenanya, bukan hanya segitiga)
  • get_element(VertexElementType): mendapatkan lapisan data vertex bernama untuk normal, UV, warna vertex, dan kumpulan pelicinan

Bahan

LambertMaterial dan PhongMaterial membawa sifat bahan yang dibaca dari OBJ .mtl fail (ambient, diffuse, specular, emissive, transparency, shininess). Bahan bertahan dalam kitaran muat‑simpan untuk format yang menyokongnya.

Utiliti Matematik

Vector2, Vector3, Vector4, FVector3, Quaternion, Matrix4, dan BoundingBox dimasukkan sebagai jenis nilai ringan untuk pengiraan geometri.

Animasi

The AnimationClip, AnimationNode, KeyframeSequence, dan KeyFrame kelas menyediakan akses kepada data animasi keyframe daripada format yang menyokongnya, seperti glTF dan COLLADA.


Mula Cepat

pip install aspose-3d-foss

Muatkan fail 3D dan cetak bilangan vertex bagi setiap 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)

Tukar fail yang sama ke glTF:

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

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

Itu adalah program lengkap. Tiada fail konfigurasi, tiada kunci API, tiada panggilan rangkaian.


Format yang Disokong

FormatExtension(s)MuatSimpanNota
Wavefront OBJ.objYaYa.mtl pemuat bahan disokong
STL.stlYaYaBinari dan ASCII; pilihan terbalik sistem koordinat
glTF 2.0.gltf, .glbYaYaGLB (binary berdiri sendiri) disokong
COLLADA.daeYaYaColladaSaveOptions tersedia dengan flip_coordinate_system, enable_materials, indented
3MF.3mfYaYaSesuai untuk aliran kerja percetakan 3D
FBX.fbxSebahagianN/APenjejak token sahaja; pengurai penuh sedang dalam proses

Pengesanan format adalah automatik daripada sambungan fail. Pilihan muat naik dan simpan khusus format (ObjLoadOptions, StlSaveOptions, GltfSaveOptions, ThreeMfSaveOptions) tersedia untuk kawalan terperinci.


Sumber Terbuka dan Percuma

Pustaka ini berlesen MIT. Anda boleh menggunakannya dalam aplikasi komersial, mengubahsuai, dan mengedarkannya tanpa sekatan. Sumber tersedia di GitHub di bawah organisasi Aspose.

Tiada lapisan penggunaan, tiada had token, dan tiada telemetry. Pustaka ini melakukan semua pemprosesan secara tempatan.

Kebergantungan: tiada. Pakej dipasang sebagai roda pure-Python tanpa sambungan C dan tanpa keperluan runtime pihak ketiga.


Mula Menggunakan


Kesimpulan

Aspose.3D FOSS untuk Python 26.1.0 merangkumi format fail 3D yang paling biasa digunakan dalam alatan, alur kerja, dan aplikasi web (OBJ, STL, glTF, COLLADA, dan 3MF) dengan API Python yang konsisten dan tiada halangan pemasangan. Jika anda menemui pepijat, kes tepi yang tidak disokong, atau format yang anda perlukan ditambah, sila buka isu di GitHub. Kami secara aktif menyelenggara perpustakaan ini dan mengalu-alukan sumbangan.