Skip to main content

Someone wanted to learn this too, so Grasp built them a personal learning path.

You can keep exploring this one or create your own

Проектирование бобышек для винтовых соединений.

Здравствуйте!

На прошлом уроке мы сделали важный шаг к созданию функционального корпуса: добавили зазоры, чтобы физическая печатная плата без проблем поместилась в напечатанную деталь. Наша модель основания теперь параметрически учитывает не только размеры платы, но и технологические допуски 3D-печати.

Теперь, когда у нас есть основание (base) и понимание, как будет выглядеть крышка (lid), возникает очевидный вопрос: как их соединить?

Цель этого урока — спроектировать бобышки (screw bosses), один из самых распространенных и надежных способов винтового соединения двух частей корпуса. Мы разберем как теоретические принципы их проектирования, так и практическую реализацию в build123d.

1. Что такое бобышка и зачем она нужна?

Бобышка (screw boss) — это, по сути, полый цилиндрический выступ, предназначенный для приёма винта или резьбовой вставки. В нашем случае винт будет проходить через крышку и вкручиваться в бобышку, расположенную в основании корпуса, стягивая обе части вместе.

Просто сделать в пластике отверстие и вкрутить туда саморез — не лучшая идея. Такое соединение не выдержит многократных сборок-разборок и не будет достаточно прочным. Бобышки решают эти проблемы, обеспечивая:

  • Прочность: Увеличивают длину резьбового контакта.
  • Надежность: Предотвращают растрескивание пластика при затяжке винта.
  • Точность позиционирования: Служат дополнительными направляющими при сборке.

2. Ключевые принципы проектирования бобышек

Качество и надежность бобышки напрямую зависят от ее геометрии. Эти правила пришли из индустрии литья пластмасс под давлением, но они так же актуальны и для FDM 3D-печати, так как решают схожие физические проблемы: внутренние напряжения, усадку материала и концентрацию напряжений.

Давайте рассмотрим два изображения, которые иллюстрируют эти принципы.

Принципы проектирования бобышек для винтового соединения
Иллюстрация: Основные размерные соотношения при проектировании бобышки. Источник: RapidDirect.
Проектирование бобышек для винтового соединения и проблемы утяжин
Иллюстрация: Пример бобышки в реальной детали и демонстрация дефекта "утяжина" (sink mark) при неправильной толщине стенки. Источник: TeamRapid.

Из этих изображений можно вывести несколько золотых правил:

  1. Толщина стенки бобышки (t): Это самый важный параметр. Чтобы избежать дефекта, называемого утяжиной (небольшое углубление на внешней поверхности детали напротив толстого сечения), стенка бобышки должна быть тоньше основной стенки корпуса. Хорошее практическое правило: толщина стенки бобышки должна составлять около 60% от толщины основной стенки корпуса (t ≈ 0.6 * T). На втором изображении показано, к чему приводит слишком толстая бобышка.

  2. Диаметр пилотного отверстия: Диаметр отверстия, в которое будет вкручиваться самонарезающий винт (саморез), зависит от типа винта и материала. Для саморезов по пластику отверстие должно быть меньше номинального диаметра винта, чтобы резьба могла сформироваться.

    Тип винта Диаметр пилотного отверстия (мм)
    M2 1.5 - 1.6
    M2.5 2.0 - 2.1
    M3 2.4 - 2.5

    Для нашего проекта мы будем использовать винты M3.

  3. Внешний диаметр бобышки: Он определяется диаметром пилотного отверстия и толщиной стенки. Обычно он составляет 2-2.4 раза больше номинального диаметра винта.

  4. Скругление (Fillet) у основания: У основания бобышки обязательно должно быть скругление (галтель). Оно распределяет механическое напряжение и значительно увеличивает прочность соединения, предотвращая отламывание бобышки. Радиус скругления обычно принимают равным 0.25-0.5 от толщины основной стенки.

  5. Высота: Бобышка должна быть достаточно высокой, чтобы обеспечить надежный захват резьбы (обычно не менее 2-3 диаметров винта), но при этом не должна мешать другим компонентам (например, печатной плате).

3. Реализация бобышек в build123d

Теперь давайте добавим четыре бобышки по углам нашего основания. Скопируйте ваш предыдущий файл enclosure_v8.py в enclosure_v9.py и откройте его.

3.1. Добавляем параметры

В начало файла, к остальным параметрам, добавим блок, описывающий геометрию бобышек для винта M3.

# enclosure_v9.py

# ... другие параметры ...
pcb_clearance = 0.5
wall_thickness = 1.6 
base_height = 15.0
# ...

# ================== ПАРАМЕТРЫ КРЕПЛЕНИЯ КОРПУСА ==================
# Для самонарезающего винта M3 (диаметр 3 мм)
screw_boss_outer_diameter = 7.0  # Внешний диаметр бобышки
screw_boss_inner_diameter = 2.5  # Диаметр пилотного отверстия для M3
screw_boss_height = 12.0         # Высота бобышки (чуть меньше высоты основания)
screw_boss_fillet = 0.8          # Радиус скругления у основания

Обратите внимание, что толщина стенки бобышки получается (7.0 - 2.5) / 2 = 2.25 мм, что больше рекомендованных 0.6 * 1.6 = 0.96 мм. В 3D-печати проблема утяжин менее выражена, чем при литье, и здесь мы сознательно идем на увеличение толщины ради прочности. Для FDM-печати это приемлемый компромисс.

3.2. Позиционирование бобышек

Бобышки должны располагаться в углах внутри корпуса. Их нужно немного сместить от стенок. Мы можем рассчитать их координаты, отталкиваясь от внутренних размеров полости, которые у нас уже есть из pocket_footprint.

Найдите в коде блок, где заканчивается создание base_with_holes и перед тем, как вы создаете крышку (lid_block). Весь последующий код будет добавляться туда.

# ... после создания base_with_holes ...

# ================ ДОБАВЛЕНИЕ БОБЫШЕК К ОСНОВАНИЮ ================

# Рассчитаем положение углов внутренней полости
pocket_x_dim = pcb_dimensions.X + 2 * pcb_clearance
pocket_y_dim = pcb_dimensions.Y + 2 * pcb_clearance

# Смещение от внутреннего угла до центра бобышки
# Достаточно, чтобы бобышка не пересекалась со скруглением угла
boss_offset_from_corner = screw_boss_outer_diameter / 2 + 2 

# Определяем 4 точки для центров бобышек
boss_locations = [
    Vector(x, y, 0)
    for x in [-pocket_x_dim / 2 + boss_offset_from_corner, pocket_x_dim / 2 - boss_offset_from_corner]
    for y in [-pocket_y_dim / 2 + boss_offset_from_corner, pocket_y_dim / 2 - boss_offset_from_corner]
]

# Создаем бобышки и добавляем их к основанию
with BuildPart() as base_with_bosses:
    add(base_with_holes)  # Начинаем с основания со стойками

    for loc in boss_locations:
        with BuildPart(loc) as boss:
            # Тело бобышки
            Cylinder(
                radius=screw_boss_outer_diameter / 2,
                height=screw_boss_height
            )
            # Пилотное отверстие
            Cylinder(
                radius=screw_boss_inner_diameter / 2,
                height=screw_boss_height,
                mode=Mode.SUBTRACT
            )
            # Добавляем скругление к ребру в основании
            fillet(
                objects=boss.part.edges().filter_by(Axis.Z), 
                radius=screw_boss_fillet
            )
        add(boss.part)

# Обновляем финальную модель основания
base_final = base_with_bosses.part

Разберем ключевые моменты:

  1. Расчет позиций: Мы вычисляем координаты центров бобышек. Вместо использования GridLocations, здесь показан более "математический" подход через list comprehension, который, учитывая ваш бэкграунд, может показаться естественным. Мы отталкиваемся от размеров внутреннего кармана (pocket_x_dim, pocket_y_dim) и смещаемся от каждого угла внутрь.
  2. Цикл создания: Мы итерируемся по списку boss_locations.
  3. Контекст BuildPart(loc): Для каждой итерации мы создаем новый BuildPart с заданным Location. Это позволяет нам строить геометрию бобышки в центре координат (0,0,0), а build123d автоматически разместит готовую деталь в нужной точке. Это очень удобный паттерн.
  4. Геометрия: Внутри контекста мы создаем два цилиндра (Cylinder) — один для тела, второй для отверстия (с mode=Mode.SUBTRACT).
  5. Скругление (fillet): Мы находим нижнее ребро бобышки с помощью boss.part.edges().filter_by(Axis.Z) (это ребра, которые лежат в плоскости, перпендикулярной оси Z, в данном случае — в плоскости XY) и применяем к нему скругление.
  6. Добавление к детали: Готовая бобышка (boss.part) добавляется к основной детали base_with_bosses с помощью add().

Не забудьте обновить строку экспорта и визуализации в конце файла, чтобы она работала с base_final.

# В конце файла
if "show_object" in locals():
    # Показываем основание и плату для проверки
    show_object(base_final, name="base_final")
    show_object(pcb_model, name="pcb_model") 
    # show_object(lid_final, name="lid_final") # крышку пока можно скрыть

Запустив скрипт, вы должны увидеть ваше основание, теперь дополненное четырьмя прочными бобышками в углах, готовыми принять крепежные винты.

Проверьте себя!

Мы спроектировали бобышки в основании, в которые будет вкручиваться саморез. В крышке нужно будет сделать ответные сквозные отверстия. Каким, по вашему мнению, должен быть диаметр этого сквозного отверстия в крышке для винта M3, чтобы он проходил сквозь него свободно, но без большого люфта? Какой изученный ранее концепт здесь нужно применить?

Показать решение

Здесь нужно снова применить концепцию зазора (clearance), изученную на прошлом уроке.

Номинальный диаметр винта M3 равен 3.0 мм. Чтобы винт свободно проходил через отверстие в крышке, его диаметр должен быть 3.0 мм + зазор.

Вспоминая рекомендации, хороший зазор для "скользящей посадки" составляет 0.2-0.5 мм. Следовательно, диаметр сквозного отверстия в крышке должен быть в диапазоне 3.2 - 3.5 мм. Выбор конкретного значения зависит от точности принтера, но 3.5 мм — надежный и безопасный вариант для начала.

Ключевые выводы

  • Бобышки (screw bosses) — это стандартный и надежный элемент для винтового соединения деталей корпуса.
  • При их проектировании важно соблюдать геометрические правила, особенно соотношение толщины стенок, чтобы избежать дефектов печати (утяжин) и обеспечить прочность.
  • build123d позволяет эффективно создавать и размещать бобышки, комбинируя примитивы (Cylinder), булевы операции и операции модификации (fillet) внутри циклов или с помощью паттернов.
  • Использование локальных контекстов BuildPart(loc) упрощает создание повторяющихся элементов в разных точках пространства.

Что дальше?

Мы успешно реализовали один из вариантов соединения частей корпуса. Но винты — не единственный способ. Часто для корпусов, не требующих частой разборки, или для прототипов используют защёлки. В следующем уроке мы рассмотрим альтернативный механизм соединения и спроектируем консольные защёлки (cantilever snaps), которые позволяют собирать корпус без использования дополнительного крепежа.

Can't find a good explanation? Sign up and we'll make it for you

Sign up