Avoimen lähdekoodin Python-kirjasto 3D CAD -tiedostomuodoille
Ilmainen Python CAD -kirjasto parametristen 3D-CAD-mallien luomiseen. Se luo korkealaatuisia CAD-formaatteja, kuten STEP, AMF ja 3MF perinteisen STL:n lisäksi
Avoimen lähdekoodin Python-kirjasto CadQuery on helppokäyttöinen Python-kirjasto parametristen 3D-CAD-mallien rakentamiseen. Kirjasto on erittäin tehokas ja kirjoittamalla lyhyitä komentosarjoja voi tuottaa korkealaatuisia CAD-malleja Python-sovelluksissa. On myös mahdollista muokata komentosarjaa ja tehdä useita erilaisia objekteja yhdellä skriptillä. CadQuery-skriptit ovat erittäin nopeita ja voivat rakentaa STL-, STEP-, AMF- ja 3MF-tiedostoja nopeammin kuin muut saatavilla olevat kirjastot.
Kirjasto tarjoaa kehittyneitä mallinnusominaisuuksia, kuten fileitä, kaarevia ekstruudeja, parametrisiä käyriä ja lofteja. Se on komentosarjapohjainen kirjasto, joka voi luoda parametrisen mallin, jota loppukäyttäjät voivat helposti mukauttaa. Se luo 3D-malleja skripteillä, jotka ovat mahdollisimman lähellä tapaa, jolla kuvaisit esinettä ihmiselle. CadQuery on lisensoitu Apache Public License -lisenssin version 2.0 ehtojen mukaisesti.
Tämä CadQuery-kirjasto on tarkoituksella suunniteltu olemaan GUI-vapaa, jotta sitä voidaan käyttää suunnittelu- ja tieteellisissä sovelluksissa 3D-mallien ohjelmalliseen luomiseen. Jos tarvitset graafista käyttöliittymää, voit harkita Qt-pohjaista GUI CQ-editoria tai Jupyter-laajennusta jupyter-cadqueryä. Kirjastoa on myös mahdollista käyttää yhdessä muiden Python-kirjastojen kanssa.
CadQueryn käytön aloittaminen
Helpoin tapa asentaa CadQueryn vakaa julkaisu on pip. Käytä seuraavaa komentoa sujuvaan asennukseen.
Asenna CadQuery pip:n kautta
pip install cadquery
Voit ladata kootun jaetun kirjaston Githubin arkistosta.
Työskentele Polygonin kanssa Python 3D Libraryn kautta
Monikulmio on kaksiulotteinen muoto, jossa on suorat sivut. Monikulmiomallinnus on tapa mallintaa kohteita esittämällä tai approksimoimalla niiden pintoja monikulmioverkkojen avulla. Avoimen lähdekoodin Python Library CadQueryn avulla ohjelmistokehittäjät voivat luoda polygoneja kullekin pinopisteelle vain muutamalla Python-koodirivillä. Se on erittäin hyödyllinen 3D-tulostimissa, joiden laiteohjelmisto ei korjaa pieniä reikiä.
Luo työtasoja kasvoille Python 3D -kirjaston avulla
Avoimen lähdekoodin Python Library CadQuery on tarjonnut täydellisen tuen työtasojen luomiseen kasvoille Python-sovelluksissa. työtasojen käyttö tällä tavalla on CadQueryn keskeinen ominaisuus. Se vapauttaa käyttäjiä etsimästä erilaisten ominaisuuksien sijaintia muuttujista ja mahdollistaa mallin poistamisen tarpeettomista mitoista. Käyttäjät voivat valita tuloksena olevan solidin pinnat kutsumalla Workplane.faces () -menetelmää. Muista, että oletusarvoisesti uuden työtason origo lasketaan tekemällä taso valitusta pinnasta ja projisoimalla edellinen origo kyseiselle tasolle.
Työtasojen luominen kasvoille Pythonin kautta
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
Työskentely 3D LEGO palikkojen kanssa Pythonin kautta
CadQuery-kirjasto on tarjonnut täydellisen tuen 3D-animaatioiden luomiseen, jotka edustavat erikokoisia Lego-palikoita Python-komentojen avulla. On myös mahdollista luoda tiiliä uudelleen yhdistämällä useita kuutioita ja sylintereitä. Voimme luoda yhdistelmäobjektin liittääksemme nämä 3D-muodot yhteen yhdeksi objektiksi (tiili). Seuraava esimerkki osoittaa, kuinka luodaan minkä tahansa kokoinen tavallinen suorakaiteen muotoinen Lego(TM) palikka. Se on hankalaa vain tiilen alapuolen logiikan vuoksi.
Luo 3D LEGO palikoita Pythonin kautta
#####
# 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)