Библиотека Python с открытым исходным кодом для форматов файлов 3D CAD

Бесплатная библиотека Python CAD для создания параметрических 3D-моделей CAD. Он создает высококачественные форматы САПР, такие как STEP, AMF и 3MF, в дополнение к традиционным STL.

Библиотека Python с открытым исходным кодом CadQuery — это простая в использовании библиотека Python для построения параметрических 3D-моделей САПР. Библиотека очень мощная, и путем написания коротких сценариев можно создавать высококачественные модели САПР внутри приложений Python. Также можно настроить скрипт и сделать много разных объектов с помощью одного скрипта. Скрипты CadQuery работают очень быстро и могут создавать STL, STEP, AMF и 3MF быстрее, чем другие доступные библиотеки.

Библиотека предлагает расширенные возможности моделирования, такие как скругления, криволинейные вытягивания, параметрические кривые и лофты. Это библиотека на основе сценариев, которая может создавать параметрическую модель, которая может быть легко настроена конечными пользователями. Он создает 3D-модели со сценариями, максимально приближенными к тому, как вы описали бы объект человеку. CadQuery распространяется под лицензией Apache Public License версии 2.0.

Эта библиотека CadQuery специально разработана без графического интерфейса, чтобы ее можно было использовать в инженерных и научных приложениях для программного создания 3D-моделей. Если вам нужно использовать графический интерфейс, вы можете рассмотреть CQ-редактор GUI на основе Qt или расширение Jupyter jupyter-cadquery. Также возможно использовать библиотеку вместе с другими библиотеками Python.

Previous Next

Начало работы с CadQuery

Самый простой способ установить стабильную версию CadQuery — использовать pip. Пожалуйста, используйте следующую команду для плавной установки.

Установите CadQuery через pip

pip install cadquery 

Вы можете загрузить скомпилированную общую библиотеку из репозитория Github.

Работа с Polygon через Python 3D Library

Многоугольник — это двумерная фигура с прямыми сторонами. Полигональное моделирование — это подход к моделированию объектов путем представления или аппроксимации их поверхностей с помощью полигональных сеток. Библиотека Python с открытым исходным кодом CadQuery позволяет разработчикам программного обеспечения создавать многоугольники для каждой точки стека с помощью всего пары строк кода Python. Это очень полезно в 3D-принтерах, прошивка которых не исправляет маленькие размеры отверстий.

Создавайте рабочие плоскости на гранях с помощью 3D-библиотеки Python

Библиотека 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 через 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)
 Русский