Open Source Python Library dla formatów plików 3D CAD
Bezpłatna biblioteka CAD w języku Python do tworzenia parametrycznych modeli CAD 3D. Twórz wysokiej jakości formaty CAD, takie jak STEP, AMF i 3MF oprócz tradycyjnego STL
Biblioteka Pythona typu open source CadQuery to łatwa w użyciu biblioteka Pythona do tworzenia parametrycznych modeli 3D CAD. Biblioteka jest bardzo wydajna i dzięki pisaniu krótkich skryptów może tworzyć wysokiej jakości modele CAD w aplikacjach Pythona. Możliwe jest również dostosowanie skryptu i tworzenie wielu różnych obiektów za pomocą jednego skryptu. Skrypty CadQuery są bardzo szybkie i mogą budować STL, STEP, AMF i 3MF szybciej niż inne dostępne biblioteki.
Biblioteka oferuje zaawansowane możliwości modelowania, takie jak zaokrąglenia, wyciągnięcia krzywoliniowe, krzywe parametryczne i wyciągnięcia po profilach. Jest to biblioteka oparta na skrypcie, która może tworzyć model parametryczny, który może być łatwo dostosowywany przez użytkowników końcowych. Tworzy modele 3D ze skryptami, które są jak najbardziej zbliżone do tego, jak opisałbyś obiekt człowiekowi. CadQuery jest licencjonowany zgodnie z warunkami Apache Public License, wersja 2.0.
Ta biblioteka CadQuery została celowo zaprojektowana tak, aby była pozbawiona GUI, dzięki czemu można jej używać w aplikacjach inżynierskich i naukowych do programowego tworzenia modeli 3D. Jeśli potrzebujesz użyć GUI, możesz rozważyć edytor GUI CQ-editor oparty na Qt lub rozszerzenie Jupyter jupyter-cadquery. Możliwe jest również korzystanie z biblioteki razem z innymi bibliotekami Pythona.
Pierwsze kroki z CadQuery
Najłatwiejszym sposobem zainstalowania stabilnej wersji CadQuery jest użycie pip. Użyj następującego polecenia, aby zapewnić płynną instalację.
Zainstaluj CadQuery przez pip
pip install cadquery
Możesz pobrać skompilowaną współdzieloną bibliotekę z repozytorium Github.
Pracuj z Polygon za pośrednictwem Python 3D Library
Wielokąt to dwuwymiarowy kształt o prostych bokach. Modelowanie wielokątne to podejście do modelowania obiektów poprzez reprezentowanie lub przybliżanie ich powierzchni za pomocą siatek wielokątnych. Open source Python Library CadQuery umożliwia programistom tworzenie wielokątów dla każdego punktu stosu za pomocą zaledwie kilku wierszy kodu Pythona. Jest to bardzo korzystne w drukarkach 3D, których oprogramowanie układowe nie koryguje małych rozmiarów otworów.
Twórz płaszczyzny robocze na ścianach za pomocą biblioteki Python 3D
Open source Python Library CadQuery zapewnia pełną obsługę tworzenia płaszczyzn roboczych na powierzchniach w aplikacjach Pythona. korzystanie z płaszczyzn roboczych w ten sposób jest kluczową cechą CadQuery. Uwalnia użytkowników od szukania położenia różnych cech w zmiennych, a model umożliwia usunięcie zbędnych wymiarów. Użytkownicy mogą wybrać ściany wynikowej bryły, wywołując metodę Workplane.faces (). Proszę pamiętać, że domyślnie początek nowej płaszczyzny roboczej jest obliczany poprzez utworzenie płaszczyzny z wybranej ściany i rzutowanie poprzedniego początku na tę płaszczyznę.
Tworzenie płaszczyzn roboczych na ścianach za pomocą Pythona
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
Praca z klockami 3D LEGO za pośrednictwem Pythona
Biblioteka CadQuery zapewnia pełne wsparcie dla tworzenia animacji 3D reprezentujących klocki Lego w różnych rozmiarach za pomocą poleceń Pythona. Możliwe jest również odtworzenie cegieł poprzez połączenie ze sobą kilku kostek i cylindrów. Możemy stworzyć obiekt złożony, aby połączyć te kształty 3D razem w jeden obiekt (cegła). Poniższy przykład pokazuje, jak wygenerować regularny prostokątny klocek Lego(TM) dowolnego rozmiaru. Jest to trudne tylko ze względu na logikę dotyczącą spodu cegły.
Twórz klocki LEGO 3D za pomocą Pythona
#####
# 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)