Avoimen lähdekoodin Python-kirjasto 2D- ja 3D-CAD-piirustuksiin
Avoimen lähdekoodin Python CAD -kirjasto 2D- ja 3D-mallien luomiseen ja hallintaan. Luo parametrisia Lego-palikoita ja käytä valitsimia Python-sovelluksissa.
Mikä on Build123d-kirjasto?
Build123d on avoimen lähdekoodin Python 3D CAD -paketti, joka auttaa ohjelmistokehittäjiä luomaan 2D- ja 3D-piirustuksia omissa Python-sovelluksissaan. Build123d-kirjasto käyttää Pythonin vakiokontekstinhallintaa, ja piirustusten käsittelyyn on saatavilla kolme rakentajaa. BuildLine-rakentajaa voidaan käyttää yksiulotteisille objekteille, BuildSketch-rakentajaa tasomaisille kaksiulotteisille objekteille ja BuildPart-rakentajaa kolmiulotteisille objekteille. Rakentaja käyttää sijaintikonteksteja objektien tai toimintojen sijoittamiseen.
Kirjasto tukee erilaisia 2D- ja 3D-toimintoja, kuten pyöristystä, peilikuvaa, siirtymää, skaalausta, jakoa, vastareikää, vastaupotusreikää, pursotusta, reikää, loft-leikkausta, pyöritystä, skaalausta, leikkausta, jakoa ja monia muita. Yllä mainittujen lisäksi kirjastoon kuuluu useita valitsimia, valitsinoperaattoreita, reuna- ja lankaoperaattoreita, tasooperaattoreita, vektorioperaattoreita ja kärkioperaattoreita.
Build123d-kirjasto on hyödyllinen vaihtoehto Build123d-rajapinnalle, ja sillä on monia etuja siihen verrattuna. Tärkein niistä on, että build123d mahdollistaa koko Python-työkalupakin käytön objektien suunnittelussa. Kirjastoa on erittäin helppo käyttää, ja objekteja voi helposti sijoittaa ja hallita missä tahansa.
Build123d:n käytön aloittaminen
Helpoin tapa asentaa Build123d:n vakaa versio on GitHubin avulla. Käytä seuraavaa komentoa sujuvan asennuksen varmistamiseksi
Asenna Build123d GitHubin kautta
python3 -m pip install git+https://github.com/gumyr/build123d.git#egg=build123d
Voit ladata käännetyn jaetun kirjaston Github-arkistosta.
Valitsimien käyttö Python-kirjaston kautta
Kun käytössä on graafinen CAD-järjestelmä, käyttäjä usein napsauttaa ominaisuutta valitakseen sen jotakin toimintoa varten. Valitsimet ovat proseduureja, jotka osoittavat, kuinka käyttäjät voivat erottaa ominaisuuden suunnitelmasta käyttämällä Python-suodatusta ja lajittelumenetelmiä, jotka tyypillisesti toteutetaan mukautettuina Python-operaatioina. vertices(), edges(), wires(), solids() ja faces() ovat esimerkkejä valitsimista. Operandityypit ovat: Axis, SortBy ja GeomType. Muista, että standardilistausmenetelmät, kuten sorted tai filtered, ovat hyödyllisiä monimutkaisten valitsimet luotaessa.
Luo parametrinen Lego-palikka Python-kirjaston kautta
Avoimen lähdekoodin Python-kirjasto Build123d antaa ohjelmistokehittäjille mahdollisuuden luoda parametrisia Lego-palikoita omissa Python-sovelluksissaan. Ensin sinun on luotava build123d-ympäristö ja määriteltävä Lego-palikan mitat. Nyt voimme siirtyä rakentajaosaan ja luoda palikoiden sisäisen rakenteen. Rakennetta varten meidän on piirrettävä kaksiulotteinen luonnos, joka myöhemmin pursotetaan kolmiulotteiseksi objektiksi. Sen jälkeen voimme määritellä kehäsuorakulmion ja luoda palasuorakulmion seinät ja luoda sisäisen ruudukon. Sen jälkeen meidän on muunnettava sisäinen ruudukko harjanteiksi, keskipiste on poistettava. Seuraavaksi luo joukko sisäisiä onttoja sylintereitä ja pursota luonnos seiniksi. Seinien valmistuttua lisätään palikan yläosa ja viimeinen vaihe on lisätä pisteet.
Kuinka luoda Lego-palikan mitat ja sisäinen ruudukko Python API:n avulla?
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)