1. Produtos
  2.   cafajeste
  3.   Python
  4.   build123d
 
  

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.

Previous Next

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)
 
 
 Português