Biblioteca Python de código aberto para desenhos CAD 2D e 3D
Biblioteca CAD Python de código aberto para criação e gestão de modelos 2D e 3D. Crie blocos Lego paramétricos e utilize seletores em aplicações Python.
O que é a Biblioteca Build123d?
O Build123d é um pacote CAD 3D Python de código aberto que ajuda os programadores de software a criar desenhos 2D e 3D dentro das suas próprias aplicações Python. A biblioteca Build123d utiliza o gestor de contexto Python padrão e estão disponíveis três construtores para lidar com desenhos. O construtor BuildLine pode ser utilizado para objetos unidimensionais, o construtor BuildSketch para objetos bidimensionais planos e o construtor BuildPart para objetos tridimensionais. Um construtor utiliza Contextos de Localização para posicionar objetos ou operações.
A biblioteca inclui suporte para diversas operações 2D e 3D, tais como filete, espelho, deslocamento, escala, divisão, CounterBoreHole, CounterSinkHole, Extrude, Hole, Loft, Revolve, Scale, Section, Split e muitas outras. Para além dos acima referidos, a biblioteca inclui também diversos seletores, operadores de seletor, operadores de aresta e de fio, operadores de plano, operadores de vetor e operadores de vértice.
A biblioteca Build123d é uma alternativa útil à API Build123d, com muitas vantagens sobre a mesma, e a mais importante é que a Build123d permite a utilização completa da caixa de ferramentas Python ao desenhar objetos. A biblioteca é muito simples de operar e permite posicionar e gerir objetos facilmente em qualquer lugar.
Introdução ao Build123d
A forma mais fácil de instalar a versão estável do Build123d é utilizando o GitHub. Utilize o seguinte comando para uma instalação sem problemas
Instalar o Build123d através do GitHub
python3 -m pip install git+https://github.com/gumyr/build123d.git#egg=build123d
Pode descarregar a biblioteca partilhada compilada do repositório Github.
Como Utilizar Seletores através da Biblioteca Python
Ao utilizar um sistema CAD baseado em GUI, o utilizador clica frequentemente num recurso para o selecionar para alguma operação. Os seletores são procedimentos que mostram como os utilizadores podem separar um recurso de um projeto utilizando métodos de filtragem e classificação do Python, normalmente implementados como um conjunto de operações personalizadas do Python. vértices(), arestas(), fios(), sólidos() e faces() são alguns exemplos de seletores. Os tipos de operandos são: Axis, SortBy e GeomType. Lembre-se que os métodos de lista padrão, como sorted ou filtered, são úteis na geração de seletores complexos.
Criar Bloco Lego Paramétrico através da Biblioteca Python
A biblioteca Python de código aberto Build123d permite aos programadores de software criar blocos Lego paramétricos dentro das suas próprias aplicações Python. Primeiro, precisa de aceder ao ambiente build123d e definir as dimensões do bloco Lego. Agora, podemos passar para a parte do construtor e criar a estrutura interna dos blocos. Para a estrutura, necessitamos de desenhar um esboço bidimensional que será posteriormente extrudido num objeto tridimensional. Depois disso, podemos definir o retângulo do perímetro, criar as paredes do retângulo do bloco e criar a grelha interior. De seguida, precisamos de converter a grelha interna em sulcos, removendo o centro. Agora, crie um conjunto de cilindros ocos internos e extrude o esboço para as paredes. Após a conclusão das paredes, a parte superior do bloco precisa de ser adicionada e o passo final é adicionar as pontas.
Como criar dimensões e grelha interna de um bloco Lego via API Python?
from build123d import *
pip_count = 6
lego_unit_size = 8
pip_height = 1.8
pip_diameter = 4.8
block_length = lego_unit_size * pip_count
block_width = 16
base_height = 9.6
block_height = base_height + pip_height
support_outer_diameter = 6.5
support_inner_diameter = 4.8
ridge_width = 0.6
ridge_depth = 0.3
wall_thickness = 1.2
// instantiate a BuildPart
with BuildPart() as lego:
//create a sketch builder
with BuildPart() as lego:
# Draw the bottom of the block
with BuildSketch() as plan:
//create Perimeter Rectangle
with BuildPart() as lego:
# Draw the bottom of the block
with BuildSketch() as plan:
# Start with a Rectangle the size of the block
perimeter = Rectangle(width=block_length, height=block_width)
//create the walls of the block
ith BuildPart() as lego:
# Draw the bottom of the block
with BuildSketch() as plan:
# Start with a Rectangle the size of the block
perimeter = Rectangle(width=block_length, height=block_width)
# Subtract an offset to create the block walls
Offset(
perimeter,
amount=-wall_thickness,
kind=Kind.INTERSECTION,
mode=Mode.SUBTRACT,
)
//Create Internal Grid
with BuildPart() as lego:
# Draw the bottom of the block
with BuildSketch() as plan:
# Start with a Rectangle the size of the block
perimeter = Rectangle(width=block_length, height=block_width)
# Subtract an offset to create the block walls
Offset(
perimeter,
amount=-wall_thickness,
kind=Kind.INTERSECTION,
mode=Mode.SUBTRACT,
)
# Add a grid of lengthwise and widthwise bars
with GridLocations(x_spacing=0, y_spacing=lego_unit_size, x_count=1, y_count=2):
Rectangle(width=block_length, height=ridge_width)
with GridLocations(lego_unit_size, 0, pip_count, 1):
Rectangle(width=ridge_width, height=block_width)