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

Python-bibliotek med öppen källkod för 2D- och 3D-CAD-ritningar

Öppen källkods Python CAD-bibliotek för att skapa och hantera 2D- och 3D-modeller. Skapa parametriska Lego-block och använd selektorer i Python-appar.

Vad är Build123d-biblioteket?

Build123d är ett Python 3D CAD-paket med öppen källkod som hjälper programvaruutvecklare att skapa 2D- och 3D-ritningar i sina egna Python-applikationer. Build123d-biblioteket använder standardkontexthanteraren i Python och tre byggare finns tillgängliga för att hantera ritningar. BuildLine-byggaren kan användas för endimensionella objekt, BuildSketch-byggaren för plana tvådimensionella objekt och BuildPart-byggaren för tredimensionella objekt. En byggare använder platskontexter för att positionera objekt eller operationer.

Biblioteket har inkluderat stöd för olika 2D- och 3D-operationer, såsom avrundning, spegel, offset, skala, delning, CounterBoreHole, CounterSinkHole, extrude, hål, loft, rotation, skala, sektion, delning och många fler. Utöver ovanstående finns det flera selektorer, selektoroperatorer, kant- och trådoperatorer, planoperatorer, vektoroperatorer och vertexoperatorer som också ingår i biblioteket.

Build123d-biblioteket är ett användbart alternativ till Build123d API och har många fördelar jämfört med det, och den viktigaste är att build123d möjliggör hela Python-verktygslådan vid design av objekt. Biblioteket är mycket enkelt att använda och man kan enkelt placera och hantera objekt var som helst.

Previous Next

Komma igång med Build123d

Det enklaste sättet att installera den stabila versionen av Build123d är att använda GitHub. Använd följande kommando för en smidig installation.

Installera Build123d via GitHub

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

Du kan ladda ner det kompilerade delade biblioteket från Github-arkivet.

Hur man använder selektorer via Python-biblioteket

När användaren använder ett GUI-baserat CAD-system klickar användaren ofta på en funktion för att välja den för en operation. Selektorer är procedurer som visar hur användare kan separera en funktion från en design med hjälp av python-filter och sorteringsmetoder som vanligtvis implementeras som en uppsättning anpassade python-operationer. vertices(), edges(), wires(), solids() och faces() är några exempel på selektorer. Operandtyperna är: Axis, SortBy och GeomType. Kom ihåg att standardlistmetoder som sorted eller filtered är användbara för att generera komplexa selektorer.

Skapa parametriska Legoblock via Python-biblioteket

Det öppna Python-biblioteket Build123d låter mjukvaruutvecklare skapa parametriska Legoblock i sina egna Python-applikationer. Först måste du konfigurera build123d-miljön och definiera Legoblockets dimensioner. Nu kan vi gå vidare till byggardelen och skapa blockens interna struktur. För strukturen måste vi rita en tvådimensionell skiss som senare kommer att extruderas till ett tredimensionellt objekt. Därefter kan vi definiera en perimeterrektangel och skapa blockets väggar och skapa ett internt rutnät. Därefter måste vi konvertera det interna rutnätet till åsar, mitten måste tas bort. Skapa nu en uppsättning interna ihåliga cylindrar och extrudera skissen till väggar. Efter att väggarna är färdigställda måste blockets topp läggas till och det sista steget är att lägga till punkterna.

Hur skapar man dimensioner och ett internt rutnät för ett Lego-block via 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)
 
 
 Svenska