Nyílt forráskódú Python Library 3D CAD fájlformátumokhoz
Ingyenes Python CAD könyvtár paraméteres 3D CAD modellek létrehozásához. Kiváló minőségű CAD formátumokat hoz létre, mint például a STEP, AMF és 3MF a hagyományos STL mellett
A nyílt forráskódú Python-könyvtár, a CadQuery egy könnyen használható Python-könyvtár parametrikus 3D CAD-modellek készítéséhez. A könyvtár nagyon erős, és rövid szkriptek írásával kiváló minőségű CAD-modelleket tud előállítani Python alkalmazásokon belül. Lehetőség van a szkript testreszabására és számos különböző objektum létrehozására is egyetlen parancsfájl használatával. A CadQuery szkriptek nagyon gyorsak, és gyorsabban tudnak STL-t, STEP-et, AMF-et és 3MF-et készíteni, mint más elérhető könyvtárak.
A könyvtár fejlett modellezési képességeket kínál, mint például filék, görbe vonalú extrudálások, parametrikus görbék és tetők. Ez egy szkript alapú könyvtár, amely paraméteres modellt tud létrehozni, amelyet a végfelhasználók könnyen testreszabhatnak. 3D modelleket hoz létre olyan szkriptekkel, amelyek a lehető legközelebb állnak ahhoz, ahogyan az objektumot leírná egy ember számára. A CadQuery licence az Apache Public License 2.0-s verziójának feltételei szerint történik.
Ezt a CadQuery-könyvtárat szándékosan úgy tervezték, hogy GUI-mentes legyen, így mérnöki és tudományos alkalmazásokon belül használható 3D-s modellek programozott létrehozására. Ha grafikus felhasználói felületet kell használnia, fontolóra veheti a Qt-alapú grafikus felhasználói felület CQ-szerkesztőjét vagy a Jupyter kiterjesztésű jupyter-cadquery alkalmazást. A könyvtár más Python könyvtárakkal együtt is használható.
A CadQuery használatának első lépései
A CadQuery stabil kiadás telepítésének legegyszerűbb módja a pip használata. Kérjük, használja a következő parancsot a zökkenőmentes telepítés érdekében.
Telepítse a CadQuery-t pip-en keresztül
pip install cadquery
Az összeállított megosztott könyvtárat letöltheti a Github tárhelyről.
Dolgozzon a Polygonnal a Python 3D Library segítségével
A sokszög egy kétdimenziós alakzat, egyenes oldalakkal. A poligonális modellezés olyan megközelítés, amellyel objektumok modellezhetők felületeik ábrázolásával vagy közelítésével poligonhálók segítségével. A nyílt forráskódú Python Library CadQuery lehetővé teszi a szoftverfejlesztők számára, hogy az egyes verempontokhoz poligonokat hozzanak létre, mindössze néhány sor Python kóddal. Nagyon előnyös olyan 3D nyomtatókban, amelyek firmware-je nem korrigálja a kis lyukméreteket.
Hozzon létre munkasíkokat az arcokon a Python 3D Library segítségével
A nyílt forráskódú Python Library CadQuery teljes körű támogatást nyújtott a Python alkalmazásokon belüli munkasíkok létrehozásához. a munkasíkok ilyen módon történő használata a CadQuery kulcsfontosságú jellemzője. Megszabadítja a felhasználókat attól, hogy a változókban keresgéljenek a különböző jellemzők pozíciójában, és lehetővé teszi a modell számára a redundáns méretek törlését. A felhasználók kiválaszthatják az eredményül kapott test lapjait a Workplane.faces () metódus meghívásával. Ne feledje, hogy alapértelmezés szerint az új munkasík origóját úgy számítják ki, hogy a kiválasztott lapból síkot készítenek, és az előző origót erre a síkra vetítik.
Munkasíkok létrehozása arcokon Python segítségével
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
Munkavégzés 3D LEGO kockákkal Python segítségével
A CadQuery könyvtár teljes körű támogatást nyújtott a Lego kockákat különböző méretű 3D-s animációk készítéséhez Python parancsok segítségével. Több kocka és henger összeillesztésével is lehetséges a tégla újraalkotása. Létrehozhatunk összetett objektumot, hogy ezeket a 3D alakzatokat egyetlen objektumban (téglában) egyesítsük. A következő példa bemutatja, hogyan lehet bármilyen méretű szabályos téglalap alakú Lego(TM) kockát létrehozni. Ez csak a tégla alsó oldalának logikája miatt trükkös.
Hozz létre 3D LEGO kockákat Python segítségével
#####
# 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)