Открытая библиотека Python для 3D-моделирования и обмена данными
Бесплатная библиотека Python для 3D-моделирования и обработки обмена данными. Позволяет работать с форматами файлов 3D CAD, BIM, PLM и CAM через онлайн Python API.
Что такое библиотека PythonOCC-Core?
PythonOCC-Core — это бесплатная библиотека для 3D-моделирования и автоматизации CAD. Она использует Python, широко применяемый язык программирования, поверх ядра OpenCASCADE Technology (OCCT). Такое сочетание предоставляет прочную основу для создания, изменения и изучения сложных 3D-форм. Сочетая простоту Python с мощными инструментами моделирования OCCT, вы получаете универсальный и эффективный инструмент в своём распоряжении. Благодаря интуитивному интерфейсу Python и обширному набору функций библиотека обеспечивает бесшовный опыт как для начинающих, так и для опытных разработчиков в этой области. Она даёт возможность архитекторам и инженерам, как вы, создавать параметрические модели, разрабатывать планы зданий и проводить структурный анализ. Этот инструмент улучшает рабочий процесс проектирования, позволяя точно визуализировать и эффективно работать в команде. Он популярен в различных секторах, таких как автомобильная промышленность, аэрокосмическая отрасль и промышленный дизайн, для разработки и уточнения сложных 3D‑моделей. С этой библиотекой вы можете ускорить прототипирование, симуляции и анализ дизайна, тем самым упрощая процесс разработки продукта.
Визуализационные возможности PythonOCC-Core идеально подходят для создания игр и виртуальной реальности. С помощью этого инструмента вы можете создавать захватывающие окружения, реалистичные симуляции и интерактивные приключения. Кроме того, библиотека предоставляет важные функции, такие как работа с медицинскими изображениями, манипулирование 3D‑геометрией, импорт и экспорт CAD‑данных, проведение продвинутых симуляций 3D‑моделей, визуализация 3D‑контента в веб‑браузерах и демонстрация 3D‑визуализаций через популярные Python‑GUI. Библиотека также играет ключевую роль в научных исследованиях, таких как вычислительная физика, материаловедение и биомедицинская инженерия. Многие специалисты по программному обеспечению и разработчики в различных отраслях находят PythonOCC-Core привлекательным, поскольку он сочетает простоту Python и мощь OCCT. С PythonOCC-Core вы можете повысить свою креативность и упростить сложные CAD‑процессы. Это открывает новые возможности для инноваций и продуктивности в 3D‑моделировании и дизайне.
Начало работы с PythonOCC-Core
Самый простой способ установить стабильный релиз PythonOCC-Core — использовать pip. Пожалуйста, используйте следующую команду для беспроблемной установки.
Установить PythonOCC-Core через pip
pip install pythonocc-coreУстановить PythonOCC-Core через Conda
conda install -c conda-forge pythonocc-coreВы также можете установить PythonOCC-Core через Conda, используя следующую команду.
conda install -c 1adrianb face_alignmentВы можете скачать скомпилированную общую библиотеку из репозитория Github.
Создавайте и управляйте 3D-геометрией с помощью Python
Библиотека с открытым исходным кодом PythonOCC-Core включает полную поддержку создания и управления 3D‑моделями в приложениях на Python. Кроме того, библиотека предлагает обширный набор инструментов для создания и манипулирования 3D‑геометрическими формами, включая точки, кривые, поверхности и тела. Она предоставляет широкий спектр алгоритмов для построения и модификации сложных объектов, таких как булевы операции, скругление и фаска. Следующий пример показывает, как разработчики программного обеспечения могут создавать ограничивающие коробки основной геометрии с помощью команд Python.
Как вычислить и отобразить ограничивающие коробки в приложениях Python?
def get_boundingbox(shape, tol=1e-6, use_mesh=True):
bbox = Bnd_Box()
bbox.SetGap(tol)
if use_mesh:
mesh = BRepMesh_IncrementalMesh()
mesh.SetParallelDefault(True)
mesh.SetShape(shape)
mesh.Perform()
if not mesh.IsDone():
raise AssertionError("Mesh not done.")
brepbndlib_Add(shape, bbox, use_mesh)
xmin, ymin, zmin, xmax, ymax, zmax = bbox.Get()
return xmin, ymin, zmin, xmax, ymax, zmax, xmax - xmin, ymax - ymin, zmax - zmin
print("Box bounding box computation")
box_shape = BRepPrimAPI_MakeBox(10.0, 20.0, 30.0).Shape()
bb1 = get_boundingbox(box_shape)
print(bb1)
print("Cylinder bounding box computation")
cyl_shape = BRepPrimAPI_MakeCylinder(10.0, 20.0).Shape()
bb2 = get_boundingbox(cyl_shape)
print(bb2)
print("Torus bounding box computation")
torus_shape = BRepPrimAPI_MakeCylinder(15.0, 5.0).Shape()
bb3 = get_boundingbox(torus_shape)
print(bb3)
Автоматизация CAD с использованием Python API
Библиотека с открытым исходным кодом PythonOCC-Core предоставила очень полезные возможности для выполнения различных задач, связанных с CAD‑диаграммами. Библиотека поддерживает различные форматы файлов, часто используемые в CAD, включая STEP, IGES, STL и BREP. Библиотека позволяет разработчикам автоматизировать повторяющиеся CAD‑задачи, такие как создание параметрических моделей, выполнение геометрических преобразований и проведение геометрического анализа. Она предоставляет высокоуровневый API, упрощающий реализацию CAD‑рабочих процессов, делая её идеальным выбором для создания инструментов автоматизации CAD.
Как создать форму и экспортировать её в формат CAD STEP с помощью Python API?
from __future__ import print_function
from OCC.Core.BRepPrimAPI import BRepPrimAPI_MakeBox
from OCC.Core.STEPControl import STEPControl_Writer, STEPControl_AsIs
from OCC.Core.Interface import Interface_Static_SetCVal
from OCC.Core.IFSelect import IFSelect_RetDone
# creates a basic shape
box_s = BRepPrimAPI_MakeBox(10, 20, 30).Shape()
# initialize the STEP exporter
step_writer = STEPControl_Writer()
dd = step_writer.WS().TransferWriter().FinderProcess()
print(dd)
Interface_Static_SetCVal("write.step.schema", "AP203")
# transfer shapes and write file
step_writer.Transfer(box_s, STEPControl_AsIs)
status = step_writer.Write("box.stp")
if status != IFSelect_RetDone:
raise AssertionError("load failed")