Open Source Python Library pro 3D formáty souborů CAD
Zdarma Python CAD knihovna pro vytváření parametrických 3D CAD modelů. Kromě tradičních STL vytváří vysoce kvalitní CAD formáty jako STEP, AMF a 3MF
Open source Python knihovna CadQuery je snadno použitelná Python knihovna pro vytváření parametrických 3D CAD modelů. Knihovna je velmi výkonná a psaním krátkých skriptů může vytvářet vysoce kvalitní CAD modely v aplikacích Python. Je také možné upravit skript a vytvořit mnoho různých objektů pomocí jediného skriptu. Skripty CadQuery jsou velmi rychlé a mohou vytvářet STL, STEP, AMF a 3MF rychleji než jiné dostupné knihovny.
Knihovna nabízí pokročilé možnosti modelování, jako jsou zaoblení, křivočaré vysunutí, parametrické křivky a profilování. Je to knihovna založená na skriptech, která dokáže vytvořit parametrický model, který si mohou koncoví uživatelé snadno přizpůsobit. Vytváří 3D modely se skripty, které jsou co nejblíže tomu, jak byste objekt popsali člověku. CadQuery je licencován podle podmínek veřejné licence Apache, verze 2.0.
Tato knihovna CadQuery je záměrně navržena tak, aby byla bez grafického uživatelského rozhraní, takže ji lze použít v inženýrských a vědeckých aplikacích pro programové vytváření 3D modelů. Pokud potřebujete použít GUI, můžete zvážit GUI založené na Qt CQ-editor nebo Jupyter rozšíření jupyter-cadquery. Knihovnu je také možné používat společně s dalšími knihovnami Pythonu.
Začínáme s CadQuery
Nejjednodušší způsob instalace stabilní verze CadQuery je pomocí pip. Pro bezproblémovou instalaci použijte prosím následující příkaz.
Nainstalujte CadQuery přes pip
pip install cadquery
Zkompilovanou sdílenou knihovnu si můžete stáhnout z úložiště Github.
Pracujte s Polygonem prostřednictvím Python 3D Library
Mnohoúhelník je dvourozměrný tvar s rovnými stranami. Polygonální modelování je přístup k modelování objektů reprezentací nebo aproximací jejich povrchů pomocí polygonových sítí. Open source Python Library CadQuery umožňuje vývojářům softwaru vytvářet polygony pro každý bod zásobníku pomocí pouhých několika řádků kódu Pythonu. Je to velmi výhodné u 3D tiskáren, jejichž firmware nekoriguje malé velikosti otvorů.
Vytvářejte pracovní roviny na plochách prostřednictvím 3D knihovny Python
Open source Python Library CadQuery poskytuje kompletní podporu pro vytváření pracovních rovin na plochách v Python aplikacích. použití pracovních rovin tímto způsobem je klíčovou vlastností CadQuery. Osvobozuje uživatele od hledání pozice různých prvků v proměnných a umožňuje modelu odstranit nadbytečné rozměry. Uživatelé mohou vybrat plochy výsledného tělesa voláním metody Workplane.faces (). Pamatujte, že ve výchozím nastavení se počátek nové pracovní roviny vypočítá vytvořením roviny z vybrané plochy a promítnutím předchozího počátku na tuto rovinu.
Vytváření pracovních rovin na plochách pomocí Pythonu
result = cq.Workplane("front").box(2, 3, 0.5) # make a basic prism
result = result.faces(">Z").workplane().hole(0.5) # find the top-most face and make a hole
Práce s 3D LEGO kostkami přes Python
Knihovna CadQuery poskytuje úplnou podporu pro vytváření 3D animací představujících kostky Lego v různých velikostech pomocí příkazů Pythonu. Je také možné znovu vytvořit cihly spojením několika kostek a válců dohromady. Můžeme vytvořit složený objekt, který spojí tyto 3D tvary do jednoho objektu (cihly). Následující příklad ukazuje, jak vygenerovat libovolnou velikost pravidelné obdélníkové kostky Lego(TM). Je to složité pouze kvůli logice týkající se spodní strany cihly.
Vytvářejte 3D LEGO kostky pomocí Pythonu
#####
# Inputs
######
lbumps = 6 # number of bumps long
wbumps = 2 # number of bumps wide
thin = True # True for thin, False for thick
#
# Lego Brick Constants-- these make a lego brick a lego :)
#
pitch = 8.0
clearance = 0.1
bumpDiam = 4.8
bumpHeight = 1.8
if thin:
height = 3.2
else:
height = 9.6
t = (pitch - (2 * clearance) - bumpDiam) / 2.0
postDiam = pitch - t # works out to 6.5
total_length = lbumps*pitch - 2.0*clearance
total_width = wbumps*pitch - 2.0*clearance
# make the base
s = cq.Workplane("XY").box(total_length, total_width, height)
# shell inwards not outwards
s = s.faces("Z").workplane(). \
rarray(pitch, pitch, lbumps, wbumps, True).circle(bumpDiam / 2.0) \
.extrude(bumpHeight)
# add posts on the bottom. posts are different diameter depending on geometry
# solid studs for 1 bump, tubes for multiple, none for 1x1
tmp = s.faces(" 1 and wbumps > 1:
tmp = tmp.rarray(pitch, pitch, lbumps - 1, wbumps - 1, center=True). \
circle(postDiam / 2.0).circle(bumpDiam / 2.0).extrude(height - t)
elif lbumps > 1:
tmp = tmp.rarray(pitch, pitch, lbumps - 1, 1, center=True). \
circle(t).extrude(height - t)
elif wbumps > 1:
tmp = tmp.rarray(pitch, pitch, 1, wbumps - 1, center=True). \
circle(t).extrude(height - t)
else:
tmp = s
# Render the solid
build_object(tmp)