Въведение

Ние освобождаваме 3D FOSS за Python, чиста Python библиотека за четене, писане и конвертиране на общи 3D файлови формати. aspose-3d-foss, притежава лиценз на MIT и има нулеви външни зависимости.

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


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

График на сцената

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

Геометрия достъп

Mesh Обектът излага:

  • control_points:• Списък на вертекс позициите като Vector4 (X, Y и Z)
  • polygons:Списък на лицата индекси (артината на полигона, а не само триъгълниците)
  • get_element(VertexElementType): получава наречени вертекс данни слоеве за нормални, UV, вертексни цветове и групи за изплакване

Материалите

LambertMaterial и PhongMaterial Използвайте материалите, които са прочетени от OBJ. .mtl файлове (амосфера, дифузен, спекуларни, емисивни, прозрачност, яркост). материали оцеляват на товар-спасяване кръг пътуване за формати, които ги поддържат.

Математически полезни средства

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

Анимация

и на AnimationClip, AnimationNode, KeyframeSequenceKeyFrame класове предоставят достъп до ключови анимационни данни от формати, които го носят, като 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)

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

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)НатоварванеСпаси себележки
OBJ.objДаДа.mtl Материали за зареждане поддръжката
STL.stlДаДаБинарни и ASCII; опция за флип на координати-системи
ГЛТФ.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.

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

зависимост:Пакетът се инсталира като чист Python колело без C разширения и изисквания за работа от трети страни.


Започваме


заключението

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