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

Компенсация скругления углов: техника "собачьей кости"

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

На прошлом уроке мы разобрались с правилом 45 градусов и научились проектировать самоподдерживающиеся элементы, чтобы минимизировать или полностью исключить необходимость в поддержках. Это был важный шаг в освоении принципов проектирования для производства (Design for Manufacturing, DFM).

Сегодня мы изучим еще один тонкий, но критически важный аспект DFM, напрямую связанный с механикой производственного процесса. Наша цель — научиться применять технику "собачьей кости" (dog-bone) для компенсации скругления внутренних углов инструментом. Это необходимо для создания деталей, которые должны точно сопрягаться друг с другом. Например, чтобы печатная плата с острыми углами идеально входила в предназначенный для нее паз в корпусе.

1. Проблема: Неизбежное скругление внутренних углов

Любой производственный процесс, будь то фрезеровка на станке с ЧПУ или FDM 3D-печать, использует инструмент конечного радиуса.

  • На фрезерном станке это радиус концевой фрезы.
  • На 3D-принтере это, по сути, радиус сопла, а точнее — ширина линии экструзии пластика.

Когда такой круглый в сечении "инструмент" пытается создать внутренний острый угол (например, 90°), он физически не может этого сделать. Его круглая форма оставляет в углу небольшой радиус скругления.

Теоретический и реалистичный контур внутреннего угла
Иллюстрация проблемы. Слева — идеальный острый угол, который мы проектируем в CAD. Справа — реальный результат, получаемый при обработке инструментом с радиусом `r`. Инструмент не может удалить материал в заштрихованной области, оставляя скругление.

Для ваших задач это означает, что если вы спроектируете в корпусе прямоугольный паз, точно соответствующий размерам печатной платы, то из-за этих скруглений в углах плата просто не войдет в него. Углы платы упрутся в скругления паза.

2. Решение: Техника "Собачья кость" (Dog-bone)

Решение этой геометрической проблемы простое и элегантное. Вместо того чтобы пытаться создать идеальный острый угол, мы намеренно вырезаем в углу дополнительный материал, чтобы освободить место для угла сопрягаемой детали. Этот вырез чаще всего имеет форму окружности и из-за характерного вида на чертежах получил название "собачья кость" (dog-bone).

Примеры применения техники 'собачьей кости'
Различные варианты вырезов в стиле "собачья кость". Хотя эти примеры из деревообработки (ЧПУ-фрезеровка), принцип абсолютно идентичен для 3D-печати. Цель — обеспечить, чтобы деталь с острыми углами (например, шип в соединении "шип-паз") могла полностью войти в паз.

Основная идея — создать в углу паза "карман", который будет глубже самого угла. Диаметр этого "кармана" должен быть как минимум равен диаметру "инструмента" (в нашем случае — ширине экструзии). На практике его делают чуть больше для гарантии.

3. Реализация в build123d

Давайте рассмотрим, как реализовать эту технику на практике. Мы создадим небольшую пластину с прямоугольным пазом — сначала в "наивном" варианте, а затем с применением техники "собачьей кости".

Шаг 1: Определяем параметры

В профессиональном подходе, который вы предпочитаете, все ключевые размеры должны быть параметризованы. Нам понадобятся размеры "платы", которую мы хотим вставить, и эффективный диаметр нашего "инструмента". Для FDM-печати в качестве диаметра инструмента разумно взять ширину линии экструзии (extrusion width), которую выставляете в слайсере. Типичное значение для сопла 0.4 мм — около 0.45 мм.

# Параметры нашего проекта
pcb_length = 50.0
pcb_width = 30.0
pocket_depth = 2.0
base_height = 5.0
# Эффективный "диаметр инструмента" - ширина линии экструзии в слайсере
tool_diameter = 0.45 

Шаг 2: Создание паза с dog-bones

Теперь создадим модель. Мы начнем с базовой пластины, затем на ее верхней плоскости создадим эскиз паза и выдавим его. Ключевой момент происходит на этапе создания эскиза.

  1. Рисуем основной прямоугольник паза.
  2. Получаем его угловые вершины.
  3. В каждой вершине добавляем к эскизу окружность ("собачью кость") с радиусом, равным половине tool_diameter.
  4. Выдавливаем (вычитаем) получившийся сложный контур.
from build123d import *

# Параметры из предыдущего шага
pcb_length = 50.0
pcb_width = 30.0
pocket_depth = 2.0
base_height = 5.0
tool_diameter = 0.45

# Создаем базовую пластину
with BuildPart() as pocket_plate:
    Box(length=100, width=80, height=base_height)

    # Работаем на верхней грани пластины
    with BuildSketch(pocket_plate.faces().sort_by(Axis.Z)[-1]) as pocket_sketch:
        # 1. Создаем основной прямоугольник паза
        rect = Rectangle(pcb_length, pcb_width)
        
        # 2. Получаем вершины прямоугольника
        corners = rect.vertices()
        
        # 3. В каждой вершине добавляем окружность-вырез
        # Используем Locations для размещения объектов в нужных точках
        with Locations(*corners):
            Circle(radius=tool_diameter / 2)
            
    # 4. Выдавливаем эскиз, создавая паз
    extrude(amount=-pocket_depth, mode=Mode.SUBTRACT)

# Для отображения в ocp_vscode_viewer, если используется
# show_object(pocket_plate)

В этом коде rect.vertices() возвращает список вершин созданного прямоугольника, а Locations(*corners) позволяет применить операцию (в данном случае, создание Circle) ко всем этим точкам одновременно. Это чистый и расширяемый способ, полностью соответствующий духу build123d.

В результате выполнения этого кода вы получите паз, в углах которого будут небольшие круглые вырезы. Теперь, когда вы вставите в этот паз печатную плату 50x30 мм, ее острые углы попадут точно в эти вырезы, и плата ляжет на дно паза идеально ровно.

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

Представьте, что вы проектируете посадочное место для стандартной шестигранной гайки M3 (hex nut). Гайка имеет 6 острых внутренних углов в своем профиле, если смотреть на нее сверху. Сколько "собачьих костей" и где нужно добавить в эскиз паза, чтобы гайка вошла в него без зазора и не вращалась?

Показать ответ

Нужно добавить 6 "собачьих костей" — по одной в каждом из шести внутренних углов шестиугольного паза. Это позволит острым углам гайки полностью войти в паз, обеспечив плотную посадку.

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

  • Внутренние углы не бывают острыми: Из-за конечного радиуса инструмента (сопла принтера) все внутренние углы в напечатанной детали будут иметь небольшое скругление.
  • Проблема сопряжения: Это скругление мешает плотной посадке деталей с острыми углами (например, печатных плат в пазы).
  • Решение — "Dog-bone": Намеренный вырез дополнительного материала в углах паза позволяет "спрятать" в нем угол сопрягаемой детали.
  • Реализация в build123d: Техника элегантно реализуется на уровне 2D-эскиза путем добавления окружностей (Circle) в вершины (vertices) основной фигуры перед операцией выдавливания (extrude).

Что дальше?

Сегодня вы добавили в свой арсенал еще один мощный прием из области DFM. Теперь вы умеете не только избегать поддержек, но и проектировать детали для точной сборки.

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

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

Sign up