Въведение

Пускаме Aspose.3D FOSS за Python, чиста-Python библиотека за четене, писане и конвертиране на чести 3D файлови формати. Библиотеката е публикувана в PyPI като aspose-3d-foss, има лиценз MIT и няма външни зависимости.

Ако някога сте се нуждаели да инспектирате или конвертирате 3D файлове програмно (извличане на брой върхове на мрежата, подаване на OBJ геометрия към скрипт за обработка или пакетно конвертиране на STL файлове към glTF за уеб прегледач), тази библиотека е създадена за такъв случай. Не изисква графичен драйвер, нативен разширителен модул или каквато и да е облачна връзка.


Какво е включено

Основен граф на сцената

Всеки файл се зарежда в Scene обект, който отразява йерархията на възлите в оригиналния файл. Възлите съдържат Transform (превод, ротация, мащаб) и едно или повече прикрепени Mesh, Camera, или Light. Графът на сцената е един и същ независимо от изходния формат, така че кодът, написан за обхождане и обработка на геометрията, работи за всички поддържани формати без модификации.

Достъп до геометрията

Mesh обектите предоставят:

  • control_points: списък с позиции на върховете като Vector4 (x, y, z, w)
  • polygons: списък с индекси на лица (произволен брой върхове, не само триъгълници)
  • get_element(VertexElementType): извлича именовани слоеве с данни за върхове за нормали, UV координати, цветове на върховете и групи за изглаждане

Материали

LambertMaterial и PhongMaterial пренасят материалните свойства, прочетени от OBJ .mtl файлове (ambient, diffuse, specular, emissive, transparency, shininess). Материалите преживяват цикъла зареждане‑запис за формати, които ги поддържат.

Математически инструменти

Vector2, Vector3, Vector4, FVector3, Quaternion, Matrix4, и BoundingBox са включени като леки типове стойности за геометрични изчисления.

Анимация

Това AnimationClip, AnimationNode, KeyframeSequence, и KeyFrame класове предоставят достъп до данни за ключови кадри от формати, които ги съдържат, като glTF и COLLADA.


Бърз старт

pip install aspose-3d-foss

Заредете 3D файл и отпечатайте броя на върховете на всяка мрежа:

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)

Конвертирайте същия файл към glTF:

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

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

Това е пълната програма. Няма конфигурационни файлове, няма API ключове, няма мрежови повиквания.


Поддържани формати

ФорматExtension(s)ЗарежданеЗапазиБележки
Wavefront OBJ.objДаДа.mtl поддръжка за зареждане на материал
STL.stlДаДаБинарен и ASCII; опция за обръщане на координатната система
glTF 2.0.gltf, .glbДаДаПоддържа се GLB (самостоятелен бинарен)
COLLADA.daeДаДаColladaSaveOptions достъпен с flip_coordinate_system, enable_materials, indented
3MF.3mfДаДаПодходящо за работни процеси на 3D печат
FBX.fbxЧастичноN/AСамо токенизатор; пълен парсер в процес на разработка

Откриването на формата е автоматично от разширението на файла. Опциите за зареждане и запазване, специфични за формата (ObjLoadOptions, StlSaveOptions, GltfSaveOptions, ThreeMfSaveOptions) са налични за прецизен контрол.


Отворен код и безплатен

Библиотеката е лицензирана под MIT. Можете да я използвате в комерсиални приложения, да я модифицирате и да я разпространявате без ограничения. Изходният код е достъпен в GitHub под организацията Aspose.

Няма нива на използване, няма ограничения за токени и няма телеметрия. Библиотеката извършва цялото обработване локално.

Зависимости: none. Пакетът се инсталира като pure-Python wheel без C разширения и без зависимости от трети страни по време на изпълнение.


Започване


Заключение

Aspose.3D FOSS за Python 26.1.0 обхваща най-често използваните 3D файлови формати, използвани в инструменти, конвейери и уеб приложения (OBJ, STL, glTF, COLLADA и 3MF) с последователен Python API и без проблеми при инсталацията. Ако срещнете грешка, неподдържан краен случай или формат, който трябва да бъде добавен, моля, отворете проблем в GitHub. Активно поддържаме библиотеката и приветстваме приноси.