Отворена 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")