Введение
Мы выпускаем 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.
Нет уровней использования, ограничений по токенам и телеметрии. Библиотека выполняет всю обработку локально.
Зависимости: нет. Пакет устанавливается как чистый Python wheel без C‑расширений и без сторонних требований к среде выполнения.
Начало работы
- Установить:
pip install aspose-3d-foss - Как‑делать: загрузка файлов: Как загрузить 3D‑модели в Python
- Как‑делать: конвертирование файлов: Как конвертировать 3D‑модели в Python
- Справочник API: Aspose.3D FOSS для Python справочник API
- PyPI: aspose-3d-foss на PyPI
Заключение
Aspose.3D FOSS for Python 26.1.0 охватывает наиболее распространённые 3D‑форматы файлов, используемые в инструментах, конвейерах и веб‑приложениях (OBJ, STL, glTF, COLLADA и 3MF) с единообразным Python API и без проблем с установкой. Если вы столкнётесь с ошибкой, неподдерживаемым граничным случаем или форматом, который необходимо добавить, пожалуйста, откройте issue на GitHub. Мы активно поддерживаем библиотеку и приветствуем вклады.