Biblioteca Python de Código Aberto para Modelagem 3D e Troca de Dados
Biblioteca Python gratuita para modelagem 3D e manipulação de troca de dados. Permite trabalhar com formatos de arquivos 3D CAD, BIM, PLM e CAM via API Python online.
O que é a Biblioteca PythonOCC-Core ?
PythonOCC-Core é uma biblioteca gratuita de modelagem 3D e automação CAD. Ela usa Python, uma linguagem de programação amplamente utilizada, sobre o kernel OpenCASCADE Technology (OCCT). Essa combinação oferece uma base sólida para criar, modificar e estudar formas 3D complexas. Ao combinar a facilidade do Python com as poderosas ferramentas de modelagem do OCCT, você obtém uma ferramenta versátil e eficaz à sua disposição. Com sua interface intuitiva em Python e um conjunto extenso de funcionalidades, a biblioteca proporciona uma experiência fluida tanto para iniciantes quanto para desenvolvedores experientes na área. Ela capacita arquitetos e engenheiros como você a criar modelos paramétricos, produzir layouts de edifícios e realizar análises estruturais. Esta ferramenta melhora o fluxo de trabalho de design, permitindo visualização precisa e trabalho em equipe eficaz. É popular em diversos setores, como automotivo, aeroespacial e design de produtos, para desenvolver e refinar modelos 3D complexos. Com esta biblioteca, você pode acelerar a prototipagem, simulações e análise de design, simplificando assim o processo de desenvolvimento de produtos.
Os recursos de visualização do PythonOCC-Core são perfeitos para criar jogos e experiências de realidade virtual. Com esta ferramenta, você pode construir ambientes envolventes, simulações realistas e aventuras interativas. Além disso, a biblioteca oferece funções essenciais, como trabalhar com imagens médicas, manipular geometria 3D, importar e exportar dados CAD, executar simulações avançadas em modelos 3D, visualizar conteúdo 3D em navegadores web e exibir visualizações 3D através de GUIs Python populares. A biblioteca também desempenha um papel vital em áreas de pesquisa científica, como física computacional, ciência dos materiais e engenharia biomédica. Muitos profissionais de software e desenvolvedores em diferentes indústrias acham o PythonOCC-Core atraente porque combina a facilidade do Python com a força do OCCT. Com o PythonOCC-Core, você pode impulsionar sua criatividade e simplificar processos CAD complexos. Isso abre novas possibilidades para inovação e produtividade em modelagem e design 3D.
Começando com PythonOCC-Core
A maneira mais fácil de instalar a versão estável do PythonOCC-Core é usando pip. Por favor, use o comando a seguir para uma instalação tranquila.
Instalar PythonOCC-Core via pip
pip install pythonocc-coreInstalar PythonOCC-Core via Conda
conda install -c conda-forge pythonocc-coreVocê também pode instalar o PythonOCC-Core via Conda usando o seguinte comando.
conda install -c 1adrianb face_alignmentVocê pode baixar a biblioteca compartilhada compilada do repositório Github.
Criar e Gerenciar Geometrias 3D via Python
A biblioteca open source PythonOCC-Core inclui suporte completo para criar e gerenciar modelos 3D dentro de aplicações Python. Além disso, a biblioteca oferece um conjunto extenso de ferramentas para criar e manipular formas geométricas 3D, incluindo pontos, curvas, superfícies e sólidos. Ela fornece uma ampla gama de algoritmos para construir e modificar objetos complexos, como operações booleanas, arredondamento e chanframento. O exemplo a seguir mostra como desenvolvedores de software podem criar caixas delimitadoras de geometria central usando comandos Python.
Como calcular e exibir caixas delimitadoras em aplicativos 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)
Automação CAD usando API Python
A biblioteca de código aberto PythonOCC-Core forneceu recursos muito úteis para lidar com várias tarefas relacionadas a diagramas CAD. A biblioteca suporta diversos formatos de arquivo comumente usados em CAD, incluindo STEP, IGES, STL e BREP. A biblioteca permite que desenvolvedores automatizem tarefas CAD repetitivas, como gerar projetos paramétricos, realizar transformações geométricas e conduzir análises geométricas. Ela oferece uma API de alto nível que simplifica a implementação de fluxos de trabalho CAD, tornando-a uma escolha ideal para construir ferramentas de automação CAD.
Como criar forma e exportá-la para o formato de arquivo CAD STEP via API Python?
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")