1. Продукти
  2.   3D
  3.   Python
  4.   PythonOCC-Core
 
  

Отворена 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 моделирането и дизайна.

Previous Next

Започване с 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")
 
 Български