1. produkty
  2.   CAD
  3.   Python
  4.   build123d
 
  

Open Source knihovna Pythonu pro 2D a 3D CAD výkresy

Open source CAD knihovna v Pythonu pro vytváření a správu 2D a 3D modelů. Vytvářejte parametrické Lego bloky a používejte selektory v Python aplikacích.

Co je knihovna Build123d?

Build123d je open source 3D CAD balíček v Pythonu, který pomáhá vývojářům softwaru vytvářet 2D a 3D výkresy v jejich vlastních aplikacích v Pythonu. Knihovna Build123d používá standardní správce kontextu Pythonu a pro práci s výkresy jsou k dispozici tři nástroje. Nástroj BuildLine lze použít pro jednorozměrné objekty, nástroj BuildSketch pro rovinné dvourozměrné objekty a nástroj BuildPart pro trojrozměrné objekty. Nástroj používá kontexty umístění pro polohování objektů nebo operací.

Knihovna obsahuje podporu pro různé 2D a 3D operace, jako je zaoblení, zrcadlení, odsazení, měřítko, rozdělení, zaoblení, zapuštění, vysunutí, díra, podložení, rotace, změna měřítka, řez, rozdělení a mnoho dalších. Kromě výše uvedeného je součástí knihovny také několik selektorů, selektorových operátorů, operátorů hran a drátů, operátorů rovin, vektorových operátorů a vertexových operátorů.

Knihovna Build123d je užitečnou alternativou k API Build123d a má oproti němu mnoho výhod, z nichž nejdůležitější je, že build123d umožňuje plnohodnotné nástroje Pythonu při navrhování objektů. Knihovna se velmi snadno ovládá a objekty lze snadno umisťovat a spravovat kdekoli.

Previous Next

Začínáme s Build123d

Nejjednodušší způsob instalace stabilní verze Build123d je pomocí GitHubu. Pro hladký průběh instalace použijte následující příkaz

Nainstalujte Build123d přes GitHub

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

Zkompilovanou sdílenou knihovnu si můžete stáhnout z repozitáře Github.

Jak používat selektory prostřednictvím knihovny Pythonu

Při používání CAD systému založeného na grafickém uživatelském rozhraní uživatel často klikne na prvek, aby jej vybral pro nějakou operaci. Selektory jsou procedury, které ukazují, jak mohou uživatelé oddělit prvek od návrhu pomocí filtrů a třídicích metod Pythonu, které jsou obvykle implementovány jako sada vlastních operací Pythonu. vertices(), edges(), wires(), solids() a faces() jsou některé příklady selektorů. Typy operandů jsou: Axis, SortBy a GeomType. Nezapomeňte, že standardní metody seznamů, jako je sorted nebo filtered, jsou užitečné při generování složitých selektorů.

Vytvoření parametrického Lego bloku pomocí knihovny Pythonu

Open source knihovna Pythonu Build123d umožňuje vývojářům softwaru vytvářet parametrický Lego blok v jejich vlastních Python aplikacích. Nejprve je třeba definovat prostředí build123d a rozměry Lego bloku. Nyní se můžeme přesunout k části builder a vytvořit vnitřní strukturu bloků. Pro strukturu musíme nakreslit dvourozměrný náčrt, který bude později extrudován do trojrozměrného objektu. Poté můžeme definovat obvodový obdélník a vytvořit stěny obdélníku bloku a vytvořit vnitřní mřížku. Poté musíme převést vnitřní mřížku na hřebeny, střed je třeba odstranit. Nyní vytvořte sadu vnitřních dutých válců a extrudujte náčrt do Zdí. Po dokončení zdí je třeba přidat horní část bloku a posledním krokem je přidání výčnělků.

Jak vytvořit rozměry a vnitřní mřížku Lego kostky pomocí 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)
 
 
 Čeština