1. Товары
  2.   САПР
  3.   Python
  4.   build123d
 
  

Библиотека Python с открытым исходным кодом для 2D- и 3D-чертежей САПР

Библиотека Python CAD с открытым исходным кодом для создания и управления 2D- и 3D-моделями. Создавайте параметрические блоки Lego и используйте селекторы в приложениях Python.

Что такое библиотека Build123d?

Build123d — это пакет 3D-САПР на Python с открытым исходным кодом, помогающий разработчикам программного обеспечения создавать 2D- и 3D-чертежи в своих приложениях Python. Библиотека Build123d использует стандартный менеджер контекста Python и предлагает три конструктора для работы с чертежами. Конструктор BuildLine можно использовать для одномерных объектов, конструктор BuildSketch — для плоских двумерных объектов, а конструктор BuildPart — для трёхмерных объектов. Конструктор использует контексты расположения для позиционирования объектов или выполнения операций.

Библиотека поддерживает различные 2D- и 3D-операции, такие как скругление, зеркальное отражение, смещение, масштабирование, разделение, контрсверление, контрсверление, выдавливание, отверстие, лофт, вращение, масштабирование, сечение, разделение и многие другие. Помимо вышеперечисленного, в библиотеку также входят селекторы, операторы селекторов, операторы ребер и проводников, операторы плоскостей, векторные операторы и операторы вершин.

Библиотека Build123d — это полезная альтернатива API Build123d, обладающая множеством преимуществ, самым важным из которых является то, что build123d предоставляет полный набор инструментов Python для проектирования объектов. Библиотека очень проста в использовании, и с её помощью можно легко размещать объекты и управлять ими где угодно.

Previous Next

Начало работы с Build123d

Установить стабильную версию Build123d проще всего с GitHub. Для быстрой установки используйте следующую команду

Установите Build123d через GitHub

python3 -m pip install git+https://github.com/gumyr/build123d.git#egg=build123d 

Вы можете загрузить скомпилированную общую библиотеку из репозитория Github.

Как использовать селекторы через библиотеку Python

При использовании САПР с графическим интерфейсом пользователь часто щёлкает по элементу, чтобы выбрать его для выполнения какой-либо операции. Селекторы — это процедуры, которые показывают, как пользователи могут отделить элемент от проекта с помощью методов фильтрации и сортировки Python, обычно реализованных в виде набора пользовательских операций Python. Примерами селекторов являются vertices(), edges(), wires(), solids() и faces(). Типы операндов: Axis, SortBy и GeomType. Помните, что стандартные методы работы со списками, такие как sorted или filtered, полезны для создания сложных селекторов.

Создание параметрического блока Lego с помощью библиотеки Python

Библиотека Python с открытым исходным кодом Build123d позволяет разработчикам создавать параметрические блоки Lego в своих приложениях Python. Сначала необходимо настроить среду build123d и определить размеры блока Lego. Теперь можно перейти к конструктору и создать внутреннюю структуру блоков. Для создания структуры необходимо нарисовать двухмерный эскиз, который затем будет выдавлен в трёхмерный объект. После этого можно задать прямоугольник периметра, создать стены блока и создать внутреннюю сетку. После этого внутреннюю сетку нужно преобразовать в ребра, удалив центр. Теперь создадим набор внутренних полых цилиндров и выдавим эскиз в стены. После завершения создания стен необходимо добавить верхнюю часть блока, а последний шаг — добавить точки.

Как создать размеры и внутреннюю сетку блока Lego с помощью 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)
 
 
 Русский