Open Source Python-bibliotek til 2D- og 3D CAD-tegninger
Open source Python CAD-bibliotek til oprettelse og administration af 2D- og 3D-modeller. Opret parametriske Lego-klodser og brug selektorer i Python-apps.
Hvad er Build123d-biblioteket?
Build123d er en open source Python 3D CAD-pakke, der hjælper softwareudviklere med at oprette 2D- og 3D-tegninger i deres egne Python-applikationer. Build123d-biblioteket bruger standard Python-konteksthåndteringen, og der er tre builders tilgængelige til håndtering af tegninger. BuildLine-builderen kan bruges til endimensionelle objekter, BuildSketch-builderen til plane todimensionelle objekter og BuildPart-builderen til tredimensionelle objekter. En builder bruger Location Contexts til positionering af objekter eller operationer.
Biblioteket har inkluderet understøttelse af forskellige 2D- og 3D-operationer, såsom afrunding, spejling, offset, skalering, opdeling, CounterBoreHole, CounterSinkHole, ekstrudering, hulning, loft, drejning, skalering, sektion, opdeling og mange flere. Udover ovenstående er der adskillige selektorer, selektoroperatorer, kant- og trådoperatorer, planoperatorer, vektoroperatorer og vertexoperatorer, der også er en del af biblioteket.
Build123d-biblioteket er et nyttigt alternativ til Build123d API'en, der har mange fordele i forhold til det, og den vigtigste er, at build123d muliggør hele Python-værktøjskassen, når man designer objekter. Biblioteket er meget nemt at betjene, og man kan nemt placere og administrere objekter hvor som helst.
Kom godt i gang med Build123d
Den nemmeste måde at installere den stabile udgivelse af Build123d på er ved at bruge GitHub. Brug følgende kommando for en problemfri installation.
Installer Build123d via GitHub
python3 -m pip install git+https://github.com/gumyr/build123d.git#egg=build123d
Du kan downloade det kompilerede delte bibliotek fra Github-arkivet.
Sådan bruger du selektorer via Python-biblioteket
Når man bruger et GUI-baseret CAD-system, klikker brugeren ofte på en funktion for at vælge den til en operation. Selektorer er procedurer, der viser, hvordan brugere kan adskille en funktion fra et design ved hjælp af Python-filter og sorteringsmetoder, der typisk implementeres som et sæt brugerdefinerede Python-operationer. vertices(), edges(), wires(), solids() og faces() er nogle eksempler på selektorer. Operandtyperne er: Axis, SortBy og GeomType. Husk, at standardlistemetoder som sorted eller filtered er nyttige til at generere komplekse selektorer.
Opret parametrisk Lego-klods via Python-biblioteket
Open source Python-biblioteket Build123d giver softwareudviklere mulighed for at oprette parametriske Lego-klodser i deres egne Python-applikationer. Først skal du indtaste vigtige data i build123d-miljøet og definere Lego-klodsens dimensioner. Nu kan vi gå videre til byggedelen og oprette klodsernes interne struktur. For strukturen skal vi tegne en todimensionel skitse, som senere ekstruderes til et tredimensionelt objekt. Derefter kan vi definere et perimeterrektanglet og oprette vægge af klodsrektanglet og oprette et internt gitter. Derefter skal vi konvertere det interne gitter til kamme, midten skal fjernes. Opret nu et sæt interne hule cylindre og ekstruder skitsen til vægge. Efter færdiggørelsen af væggene skal toppen af klodsen tilføjes, og det sidste trin er at tilføje punkterne.
Hvordan opretter man dimensioner og et internt gitter i en Lego-klods 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)