Добрый день!
Сразу сделаю необходимую оговорку, данная статья не нова, я ее уже публиковал летом 2019 года на ресурсе MySKU.ru (https://mysku.ru/blog/diy/73346.html), а сейчас решил ее немного переработать и выложить здесь, аудитории разные, возможно кому-то это покажется интересным и даже познавательным.
Материал предназначен прежде всего для энтузиастов, "самодельщиков" и просто людей увлекающихся.
Все мы с вам знаем, что обычно вручную резьба нарезается с помощью метчиков. Технология проста и понятна - сверлим отверстие, выбирая диаметр сверла в зависимости от нужного диаметра резьбы, а затем с помощью "воротка" прогоняем сначала черновой метчик, а затем чистовой. Ничего сложного!
Но когда у вас есть фрезерный станок с ЧПУ (например, самодельный, как в моем случае), то жизнь слегка преображается и возникает закономерное желание отдать работу по нарезанию резьбы автоматике - она ведь для этого и создана.
Однажды я увидел на просторах интернета вот такую фрезу, предназначенную для нарезания резьбы.
Фреза не похожа на привычный нам метчик и сразу становится понятно, что способ нарезания должен несколько отличается от привычного нам.
Если в двух словах, то чтобы воспользоваться этой фрезой необходима специальная управляющая программа. И фреза будет не только вращаться в шпинделе вокруг своей оси и перемещаться по вертикали, но и по винтовой траектории. Сейчас существует множество программ (PowerMill, Fusion360), способных решить эту задачу, но мне было интересно самому разобраться "изнутри" как это происходит.
Фрезерный станок с ЧПУ управляется программ, написанных в G-коде. Если кто-то далек от этого, приведу пример:
Чтобы из текущего местоположения шпиндель переместился в точку с координатами X=10 мм, Y=14 мм с заданной скоростью 1000 мм/мин, достаточно исполнить G-код "G1 X10 Y14 F1000", чтобы поднять шпиндель со скоростью холостого хода на высоту 15 мм - "G0 Z15".
Итак, какие исходные данные у нас есть:
D — диаметр режущей части фрезы
P — шаг резьбы
m — диаметр подготовленного отверстия
M — диаметр резьбы (наружный диаметр внутренней резьбы для гайки)
Суть процесса такова:
- Для начала необходимо подготовить отверстие для будущей резьбы. Например, для М6, нужно 4.9 – 5 мм. При нарезании резьбы метчиком я обычно придерживался такого правила — диаметр отверстия равен диаметру резьбы минус шаг резьбы. Не совсем правильно, но для бытовых нужд более чем достаточно.
- После этого, нужно рассчитать траекторию, по которой будет двигаться резьбофреза. Траектория будет винтовой.
- А далее, собственно, само нарезание. Резьбофреза опускается в подготовленное отверстие до дна и, совершая винтовое движение вверх, нарезает резьбу.
При подготовке алгоритма написания G-кода для станка с ЧПУ я сначала хотел представить винтовую траекторию в кусочно-линейчатом виде, то есть миниатюрными линейными отрезками по которым будет двигаться фреза. Для тех, кто не знает всех возможностей G-кода (таких, как я, например), это наверное самый очевидный способ.
Но, нашелся другой способ, более простой в реализации. Состоит он в использовании кодов G2 или G3 для круговой интерполяции. Как оказалось, с их помощью можно очень просто описать круговую (или дуговую) траекторию в плоскости, либо винтовую траекторию в трёх координатах.
Чуть-чуть покажу, как это происходит — сначала круг, а затем один виток винтовой траектории. Для данного случая применения команда выглядит вот таким образом.
G2/G3 X*.* Y*.* Z*.* I*.* J*.* F*
G2/G3 – круговое движение по часовой либо против часовой стрелки
X, Y, Z – координаты конечной точки (куда придет фреза из текущего положения)
I, J – относительные координаты центра окружности от начальной точки (текущего положения)
F – скорость подачи.
Например, необходимо создать траекторию движения по окружности на плоскости XY с центром в точке (0;0) и радиусом 2 (единицы измерения не ставлю, это абстракция). Движение начнем из точки (0;-2) лежащей на окружности. Необходимо лишь рассчитать параметры I и J.
I = (координата X начальной точки) – (координата X центра окружности) = 0 – 0 = 0
J = (координата Y начальной точки) – (координата Y центра окружности) = 0 – (-2) = 2
Учитывая, что движение по окружности будет осуществляться от точки (0;-2) с возвратом в эту же точку, G код будет выглядеть следующим образом
А теперь создадим один виток винтовой траектории. Код будет выглядеть точно так же, только в последнюю команду добавим координату Z = 1. Соответственно, при движении по окружности постепенно изменится координата Z с начального значения 0 до 1.
Думаю, что этой информации вполне достаточно, чтобы понять, как необходимо «вручную» готовить G-код для движения по винтовой траектории при нарезании резьбы.
Кстати для визуализации процесса я использовал бесплатную программу NC Corrector . Большое спасибо ее авторам!
Конечно же, каждый раз считать и писать код «вручную» очень трудоемко, поэтому данный алгоритм был оживлен в самодельном он-лайн калькуляторе (для внутренней резьбы и для внешней).
Выглядит он вот так:
В калькуляторе вы можете увидеть расчет для внутренней и внешней резьбы. Сформированный код достаточно скопировать в текстовый файл и отдать на растерзание вашему станку. Код проверен под управлением из Mach3 и LinuxCNC. Полёт нормальный.
Еще забыл маленький нюанс. При нарезании резьбы я режу не сразу на всю глубину (имею ввиду заглубление в стенки отверстия), а постепенно. Соответственно и траектория получается в результате расчета не одна, а несколько, с постепенно увеличивающимся диаметром. Вот так.
А теперь разбавлю сухое повествование коротким видео, в полной мере демонстрирующим вышеописанный процесс:
И конечно же макро-фото результата:
А теперь самое главное — зачем так заморачиваться с этими резьбофрезами, есть же обычные дешевые метчики.
Да, я согласен, что способ несколько замороченный и недешевый (резьбофрезы весьма дорогие), особенно учитывая, что я не режу резьбу в промышленных масштабах.
НО!
- Приятно, когда твой самодельный станок с ЧПУ работает за тебя.
- Очень удобно нарезать резьбу в глухих отверстиях, витки начинаются всего на пол шага выше дна отверстия. А при использовании обычного набора из двух метчиков приходится добавлять третий метчик, специально слегка сточенный, чтоб резьба доставала до дна как можно больше.
- Я не знаю ни одного человека, кто бы резал резьбу идеально вертикально перпендикулярно поверхности ))) а иногда это очень важно.
Доводы, конечно, так себе, но меня они убедили ))
В заключении, для тех кому интересно, оставлю ссылку на полную видео-версию, того, о чем я Вам поведал.
Спасибо Вам за внимание!