1. Продукти
  2.   CAD
  3.   Python
  4.   build123d
 
  

Бібліотека Python з відкритим кодом для 2D та 3D креслень CAD

Бібліотека САПР на Python з відкритим кодом для створення та керування 2D- та 3D-моделями. Створення параметричних блоків Lego та використання селекторів у застосунках Python.

Що таке бібліотека Build123d?

Build123d — це пакет 3D CAD на Python з відкритим кодом, який допомагає розробникам програмного забезпечення створювати 2D та 3D креслення у власних програмах Python. Бібліотека Build123d використовує стандартний менеджер контексту Python, і для роботи з кресленнями доступні три конструктори. Конструктор BuildLine можна використовувати для одновимірних об'єктів, конструктор BuildSketch — для плоских двовимірних об'єктів, а конструктор BuildPart — для тривимірних об'єктів. Конструктор використовує контексти розташування для позиціонування об'єктів або операцій.

Бібліотека включає підтримку різних 2D та 3D операцій, таких як зведення, дзеркальне відображення, зсув, масштабування, розбиття, CounterBoreHole, CounterSinkHole, видавлювання, отвір, вигин, обертання, масштабування, перетин, розбиття та багато інших. Окрім вищезазначеного, бібліотека також містить кілька селекторів, операторів селекторів, операторів ребер та дротів, операторів площин, векторних операторів та операторів вершин.

Бібліотека 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 за допомогою Python API?

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)
 
 
 Українська