Pendahuluan

Kami merilis Aspose.3D FOSS untuk Python, sebuah pustaka pure-Python untuk membaca, menulis, dan mengonversi format file 3D umum. Pustaka ini dipublikasikan di PyPI sebagai aspose-3d-foss, memiliki lisensi MIT, dan tidak memiliki dependensi eksternal.

Jika Anda pernah perlu memeriksa atau mengonversi file 3D secara programatis (mengekstrak jumlah vertex mesh, mengalirkan geometri OBJ ke skrip pemrosesan, atau mengonversi batch file STL ke glTF untuk penampil web), perpustakaan ini dibuat untuk kasus penggunaan tersebut. Ia tidak memerlukan driver grafis, modul ekstensi native, atau koneksi cloud apa pun.


Apa yang Disertakan

Grafik Adegan Inti

Setiap file dimuat ke dalam sebuah Scene objek yang mencerminkan hierarki node file asli. Node menyimpan Transform (translasi, rotasi, skala) dan satu atau lebih entitas terlampir seperti Mesh, Camera, atau Light. Grafik adegan tetap sama terlepas dari format sumber, sehingga kode yang ditulis untuk menelusuri dan memproses geometri dapat bekerja pada semua format yang didukung tanpa modifikasi.

Akses Geometri

Mesh objek mengekspos:

  • control_points: daftar posisi vertex sebagai Vector4 (x, y, z, w)
  • polygons: daftar daftar indeks wajah (poligon dengan aritas arbitrer, tidak hanya segitiga)
  • get_element(VertexElementType): mengambil lapisan data vertex bernama untuk normal, UV, warna vertex, dan grup smoothing

Material

LambertMaterial dan PhongMaterial menyimpan properti material yang dibaca dari OBJ .mtl file (ambient, diffuse, specular, emissive, transparency, shininess). Material bertahan selama proses muat‑simpan bolak‑balik untuk format yang mendukungnya.

Utilitas Matematika

Vector2, Vector3, Vector4, FVector3, Quaternion, Matrix4, dan BoundingBox termasuk sebagai tipe nilai ringan untuk perhitungan geometri.

Animasi

The AnimationClip, AnimationNode, KeyframeSequence, dan KeyFrame kelas menyediakan akses ke data animasi keyframe dari format yang menyertakannya, seperti glTF dan COLLADA.


Mulai Cepat

pip install aspose-3d-foss

Muat file 3D dan cetak jumlah vertex 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)

Konversi file 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())

Itulah program lengkapnya. Tidak ada file konfigurasi, tidak ada kunci API, tidak ada panggilan jaringan.


Format yang Didukung

FormatExtension(s)MuatSimpanCatatan
Wavefront OBJ.objYaYa.mtl pemuatan material didukung
STL.stlYaYaBiner dan ASCII; opsi pembalikan sistem koordinat
glTF 2.0.gltf, .glbYaYaGLB (binary mandiri) didukung
COLLADA.daeYaYaColladaSaveOptions tersedia dengan flip_coordinate_system, enable_materials, indented
3MF.3mfYaYaCocok untuk alur kerja pencetakan 3D
FBX.fbxParsialN/AHanya tokenizer; parser lengkap sedang dalam proses

Deteksi format otomatis dari ekstensi file. Opsi muat dan simpan khusus format (ObjLoadOptions, StlSaveOptions, GltfSaveOptions, ThreeMfSaveOptions) tersedia untuk kontrol yang lebih detail.


Sumber Terbuka dan Gratis

Perpustakaan ini berlisensi MIT. Anda dapat menggunakannya dalam aplikasi komersial, memodifikasinya, dan mendistribusikannya kembali tanpa batasan. Kode sumber tersedia di GitHub di bawah organisasi Aspose.

Tidak ada tingkatan penggunaan, tidak ada batas token, dan tidak ada telemetri. Perpustakaan melakukan semua pemrosesan secara lokal.

Dependensi: tidak ada. Paket ini diinstal sebagai wheel pure-Python tanpa ekstensi C dan tanpa persyaratan runtime pihak ketiga.


Memulai


Kesimpulan

Aspose.3D FOSS for Python 26.1.0 mencakup format file 3D paling umum yang digunakan dalam perkakas, pipeline, dan aplikasi web (OBJ, STL, glTF, COLLADA, dan 3MF) dengan API Python yang konsisten dan tanpa friksi instalasi. Jika Anda menemukan bug, kasus tepi yang tidak didukung, atau format yang perlu ditambahkan, silakan buka isu di GitHub. Kami secara aktif memelihara perpustakaan ini dan menyambut kontribusi.