Библиотека на Python с отворен код за 3D CAD файлови формати
Безплатна CAD библиотека на Python за създаване на параметрични 3D CAD модели. Той създава висококачествени CAD формати като STEP, AMF & 3MF в допълнение към традиционния STL
Библиотеката на Python с отворен код CadQuery е лесна за използване библиотека на Python за изграждане на параметрични 3D CAD модели. Библиотеката е много мощна и чрез писане на кратки скриптове може да създаде висококачествени CAD модели в приложения на Python. Възможно е също така да персонализирате скрипта и да направите много различни обекти с помощта на един скрипт. Скриптовете CadQuery са много бързи и могат да създават STL, STEP, AMF и 3MF по-бързо от други налични библиотеки.
Библиотеката предлага усъвършенствани възможности за моделиране, като филета, криволинейни екструдирания, параметрични криви и лофтове. Това е базирана на скрипт библиотека, която може да създаде параметричен модел, който може лесно да бъде персонализиран от крайните потребители. Той създава 3D модели със скриптове, които са възможно най-близки до начина, по който бихте описали обекта на човек. CadQuery е лицензиран съгласно условията на публичния лиценз на Apache, версия 2.0.
Тази библиотека CadQuery е умишлено проектирана да бъде без GUI, така че да може да се използва в инженерни и научни приложения за програмно създаване на 3D модели. Ако трябва да използвате GUI, можете да помислите за базиран на Qt GUI CQ-редактор или Jupyter разширение jupyter-cadquery. Също така е възможно да използвате библиотеката заедно с други библиотеки на Python.
Първи стъпки с CadQuery
Най-лесният начин за инсталиране на стабилна версия на CadQuery е използването на pip. Моля, използвайте следната команда за гладка инсталация.
Инсталирайте CadQuery чрез pip
pip install cadquery
Можете да изтеглите компилираната споделена библиотека от хранилището на Github.
Работете с Polygon чрез Python 3D Library
Многоъгълникът е двуизмерна форма с прави страни. Полигоналното моделиране е подход за моделиране на обекти чрез представяне или приближаване на техните повърхности с помощта на многоъгълни мрежи. Библиотеката на Python с отворен код CadQuery позволява на разработчиците на софтуер да създават полигони за всяка стекова точка само с няколко реда код на Python. Това е много полезно при 3D принтери, чийто фърмуер не коригира малки размери на отворите.
Създавайте работни равнини върху лица чрез Python 3D библиотека
Библиотеката на Python с отворен код CadQuery предоставя пълна поддръжка за създаване на работни равнини върху лица в приложения на Python. използването на работни равнини по този начин е ключова характеристика на CadQuery. Това освобождава потребителите от търсене на позицията на различни характеристики в променливите и позволява на модела да изтрие излишните измерения. Потребителите могат да избират лицата на полученото тяло чрез извикване на метода Workplane.faces (). Моля, не забравяйте, че по подразбиране началото на нова работна равнина се изчислява чрез създаване на равнина от избраното лице и проектиране на предишното начало върху тази равнина.
Създаване на работни равнини върху лица чрез Python
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
Работа с 3D LEGO Bricks чрез Python
Библиотеката CadQuery предоставя пълна поддръжка за създаване на 3D анимация, представяща Lego тухлите в различни размери, използвайки команди на Python. Също така е възможно да се пресъздадат тухли чрез свързване на няколко кубчета и цилиндри заедно. Можем да създадем сложен обект, за да обединим тези 3D форми заедно в един обект (тухла). Следващият пример демонстрира как да генерирате всякакъв размер правилна правоъгълна Lego(TM) тухла. Трудно е само поради логиката по отношение на долната страна на тухлата.
Създавайте 3D LEGO тухли чрез Python
#####
# 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)