Відкрита 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")