Open-Source-Python-Bibliothek für 2D- und 3D-CAD-Zeichnungen
Open-Source-Python-CAD-Bibliothek zum Erstellen und Verwalten von 2D- und 3D-Modellen. Erstellen Sie parametrische Lego-Blöcke und verwenden Sie Selektoren in Python-Apps.
Was ist die Build123d-Bibliothek?
Build123d ist ein Open-Source-Python-3D-CAD-Paket, das Softwareentwicklern die Erstellung von 2D- und 3D-Zeichnungen in ihren eigenen Python-Anwendungen ermöglicht. Die Build123d-Bibliothek verwendet den Standard-Python-Kontextmanager und bietet drei Builder für die Zeichnungsverwaltung: BuildLine für eindimensionale Objekte, BuildSketch für planare zweidimensionale Objekte und BuildPart für dreidimensionale Objekte. Ein Builder verwendet Positionskontexte zur Positionierung von Objekten oder Operationen.
Die Bibliothek unterstützt verschiedene 2D- und 3D-Operationen wie Abrunden, Spiegeln, Versetzen, Skalieren, Teilen, Senken, Senken, Extrudieren, Bohren, Loft, Drehen, Skalieren, Sektionieren, Teilen und viele mehr. Darüber hinaus enthält die Bibliothek verschiedene Selektoren, Selektoroperatoren, Kanten- und Drahtoperatoren, Ebenenoperatoren, Vektoroperatoren und Scheitelpunktoperatoren.
Die Build123d-Bibliothek ist eine nützliche Alternative zur Build123d-API und bietet viele Vorteile. Der wichtigste Vorteil ist, dass Build123d den gesamten Python-Werkzeugkasten für die Objektgestaltung nutzt. Die Bibliothek ist sehr einfach zu bedienen und ermöglicht die einfache Positionierung und Verwaltung von Objekten.
Erste Schritte mit Build123d
Die Installation der stabilen Version von Build123d erfolgt am einfachsten über GitHub. Verwenden Sie für eine reibungslose Installation den folgenden Befehl.
Build123d über GitHub installieren
python3 -m pip install git+https://github.com/gumyr/build123d.git#egg=build123d
Sie können die kompilierte gemeinsam genutzte Bibliothek aus dem Github-Repository herunterladen.
So verwenden Sie Selektoren über die Python-Bibliothek
Bei der Verwendung eines GUI-basierten CAD-Systems klickt der Benutzer häufig auf ein Feature, um es für eine Operation auszuwählen. Selektoren sind Verfahren, die zeigen, wie Benutzer ein Feature mithilfe von Python-Filter- und Sortiermethoden, die typischerweise als benutzerdefinierte Python-Operationen implementiert sind, von einem Entwurf trennen können. Beispiele für Selektoren sind vertices(), edge(), wires(), solids() und faces(). Die Operandentypen sind: Axis, SortBy und GeomType. Bitte beachten Sie, dass Standardlistenmethoden wie sorted oder filtered bei der Erstellung komplexer Selektoren hilfreich sind.
Parametrische Legosteine mit der Python-Bibliothek erstellen
Die Open-Source-Python-Bibliothek Build123d ermöglicht es Softwareentwicklern, parametrische Legosteine in ihren eigenen Python-Anwendungen zu erstellen. Zuerst müssen Sie die Build123d-Umgebung importieren und die Abmessungen des Legosteins definieren. Anschließend können wir mit dem Bauen beginnen und die innere Struktur der Blöcke erstellen. Für die Struktur zeichnen wir eine zweidimensionale Skizze, die später zu einem dreidimensionalen Objekt extrudiert wird. Anschließend definieren wir das Umfangsrechteck, erstellen die Wände des Blockrechtecks und legen ein inneres Raster fest. Anschließend wandeln wir das innere Raster in Rippen um, wobei die Mitte entfernt wird. Erstellen Sie nun einen Satz innerer Hohlzylinder und extrudieren Sie die Skizze zu Wänden. Nach Fertigstellung der Wände wird die Oberseite des Blocks hinzugefügt und im letzten Schritt werden die Zacken hinzugefügt.
Wie erstelle ich die Abmessungen und das interne Raster eines Legosteins über die 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)