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

Libreria Python open source per disegni CAD 2D e 3D

Libreria CAD Python open source per la creazione e la gestione di modelli 2D e 3D. Crea blocchi Lego parametrici e usa i selettori nelle app Python.

Cos'è la libreria Build123d?

Build123d è un pacchetto CAD 3D Python open source che aiuta gli sviluppatori software a creare disegni 2D e 3D all'interno delle proprie applicazioni Python. La libreria Build123d utilizza il gestore di contesto Python standard e sono disponibili tre builder per la gestione dei disegni. Il builder BuildLine può essere utilizzato per oggetti monodimensionali, il builder BuildSketch per oggetti bidimensionali planari e il builder BuildPart per oggetti tridimensionali. Un builder utilizza i contesti di posizione per posizionare oggetti o operazioni.

La libreria include il supporto per varie operazioni 2D e 3D, come raccordo, specchio, offset, scala, divisione, controforo, controforo, estrusione, foro, loft, rivoluzione, scala, sezione, divisione e molte altre. Oltre a quanto sopra, la libreria include anche diversi selettori, operatori di selezione, operatori di bordo e di filo, operatori di piano, operatori vettoriali e operatori di vertice.

La libreria Build123d è un'utile alternativa all'API Build123d, che offre numerosi vantaggi. Il più importante è che Build123d abilita l'utilizzo completo degli strumenti Python durante la progettazione di oggetti. La libreria è molto semplice da usare e consente di posizionare e gestire facilmente gli oggetti ovunque.

Previous Next

Introduzione a Build123d

Il modo più semplice per installare la versione stabile di Build123d è tramite GitHub. Per un'installazione fluida, utilizza il seguente comando

Installa Build123d tramite GitHub

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

È possibile scaricare la libreria condivisa compilata dal repository Github.

Come utilizzare i selettori tramite la libreria Python

Quando si utilizza un sistema CAD con interfaccia grafica, l'utente spesso fa clic su una feature per selezionarla per un'operazione. I selettori sono procedure che mostrano come gli utenti possono separare una feature da un progetto utilizzando metodi di filtro e ordinamento Python, tipicamente implementati come un insieme di operazioni Python personalizzate. Vertice(), Edges(), Wires(), Solids() e Faces() sono alcuni esempi di selettori. I tipi di operando sono: Axis, SortBy e GeomType. Si noti che i metodi standard per le liste, come sorted o filtered, sono utili per generare selettori complessi.

Creare un blocco Lego parametrico tramite la libreria Python

La libreria Python open source Build123d consente agli sviluppatori software di creare blocchi Lego parametrici all'interno delle proprie applicazioni Python. Per prima cosa, è necessario importare l'ambiente build123d e definire le dimensioni del blocco Lego. Ora possiamo passare alla parte di costruzione e creare la struttura interna dei blocchi. Per la struttura, dobbiamo disegnare uno schizzo bidimensionale che verrà successivamente estruso in un oggetto tridimensionale. Successivamente, possiamo definire il perimetro rettangolare, creare le pareti del blocco e creare la griglia interna. Successivamente, dobbiamo convertire la griglia interna in creste, rimuovendo il centro. Ora creiamo un set di cilindri cavi interni ed estrudiamo lo schizzo in pareti. Dopo aver completato le pareti, dobbiamo aggiungere la parte superiore del blocco e il passaggio finale è l'aggiunta dei punti.

Come creare dimensioni e griglia interna di blocchi Lego tramite 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)
 
 
 Italiano