Как сделать платку на CNC фрезере.

Очень долго я делал ПП фотоспособом, все у меня прекрасно получалось и, в общем, мне нравилось, но сверлить отверстия очень утомительно. Решил я уйти от этого процесса и задумал сделать себе фрезерный станочек, управляемый компьютером, сделал и научился делать на нем платки. Рассказываю как.

Я развожу ПП в P-CAD 2006, хотел перейти на Альтиум, но как то не сподобился, нет у меня таких сложных задач, которые я не могу решить в стареньком P-CAD 2006. Для примера я нарисовал совершенно бессмысленную схему, получил в схематике нетлист, взял его редактором плат и развел быстренько. По верхнему слою пустил землю, что бы оставить на нем один большой полигон, нижний слой выдерем полностью, т.е. получим два вида с двух сторон - с заливкой и без. На самом деле я бы оставил и на нижнем слое полигон с землей по всей площади, хотя бы для экономии времени и инструмента. В слое Board нарисовал прямоугольник контура платы, там линия толщиной 0.001 мм, поэтому еле-еле видно, но она там есть.  На самом деле без слоя Board можно обойтись, если полигон занимает всю площадь, но это хороший стиль.
После того, как все готово нужно переместить всю платку в нижний левый угол, так легче будет привязаться к нолю на станке. Не забываем, что по умолчанию выбрать слой Board нельзя нужно пойти в Options->Selection Mask... и разрешить выбор.

cncpcb01 cncpcb02 cncpcb03

Как и что делается в P-CAD 2006 я не стану рассказывать, напомню только об одной ошибке, об которую очень многие спотыкаются: на любых виндах выше ХР невозможно исправить правила, выскакивает ошибка. Что бы починить нужно удалить из директории установки все фалы *.manifest, тогда все заработает. Запросто это можно починить патчем, смотрим здесь.

Значит схему нарисовали, платку развели, выводим герберы. Для этого идем в меню Files->Export->Gerber... В открывшемся окне нажимаем верхнюю кнопку Setup Output Files... и настраиваем три выходных файла: верхний слой, нижний, и контур платы.

cncpcb04 cncpcb05 cncpcb06

 

Нажимаем следующую кнопку Apertures..., и в открывшемся окне нажимаем три кнопки: Unassign All, Auto и Close. Нажимаем следующую кнопку Drill Simbols... и нажимаем две кнопки по той же схеме: Automatic Assign и Close. Жмем следующую Gerber Format... и ставим как на картинке.

cncpcb07 cncpcb08 cncpcb09

 

С шифтом выбираем все выходные файлы и жмем Generate Output Files. В исходной директории появится три выходных гербера. Теперь делаем файл сверловки. Идем File->Export->N/C Drill и в открывшемся окне нажимаем Setup Otput Files..., ставим как на картинке и закрываем. Жмем Tools..., тут нужно будет чуть чуть заняться творчеством. Для начала следует нажать Auto и к размерам отверстий притянутся сверла нужного диаметра, можно оставить и так и решить вопрос дальше в CAM-e, а можно сразу нескольким диаметрам присвоить одно сверло. Если дважды кликнуть на любой строке с размером отверстия, то откроется диалог выбора, в котором можно назначить нужный инструмент. Не забываем нажимать кнопку Modify и все получится.

cncpcb10 cncpcb11
cncpcb121 cncpcb12

Все, нажимаем Generate Output Files и на этом с P-Cad-ом все закончено, все нужные файлы у нас есть. Вот и архив с этими файлами.

 

G-Коды станем получать в специальном и абсолютно бесплатном софте FlatCAM. Там же стоит внимательно прочитать документацию на буржуйском языке. Открываем FlatCAM и настраиваем его, открыв вкладку, не меню, Options. Сохраненные параметры будут автоматически загружаться с новым проектом, если что то нужно изменить для конкретного проекта, то можно выбрать в выпадающем меню PROJECT OPTIONS и исправить. Поехали сверху вниз.

cncpcb13 cncpcb14 cncpcb15 cncpcb16

Units - переключатель единиц измерения.

Gerber Options - настройки импорта герберов.
Plot Options: как рисовать на экране. Чекбоксы указывают рисовать ли проходы, контурами или закрашивать и одним или многими цветами.

Isolating Routings: изолирующие проходы.
Tool dia:  диаметр инструмента, здесь и далее в выбранных выше единицах измерения.
Width (# passes): количество проходов.
Pass overlap: перекрытие каждого следующего прохода в долях диаметра инструмента. Т.е. если инструмент 1 мм, то перекрытие 0.5 сделает нам изолирующую дорожку шириной 1.5 мм при двух проходах и 2 мм при трех проходах. Малое перекрытие может оставить неубранную медь в углах.
Combine Passes: чекбокс, который указывает на то, что все проходы должны быть сделаны один за другим.

Board cutout:
обрезка контура.
Tool dia: снова диаметр инструмента.
Margin: расстояние до линии обрезки. Если указать, к примеру 5 мм, то FlatCAM добавит 5 мм к каждой стороне.
Gap size: длина перемычек.
Gaps: где оставлять перемычки: две сверху-снизу/две слева-справа/четыре по всем сторонам. При обрезке, что бы плата не выпадала из заготовки останутся перемычки указанного размера и с выбранным выше расположением сверху-снизу/слева-справа/на всех четырех сторонах.

Non-copper regions - опции зачистки от меди. Можно указать отступы и закруглить углы.

Bounding Box - это установки выравнивания жертвы, т.е. можно предварительно выровнять жертву, на которую уже будет крепится заготовка. Так же можно указать отступы и скругление углов.

Excellion Options - опции сверловки.
Plot Options: снова чекбоксы отображения на экране.
Create CNC Job: умолчания для задания, не для g-кодов.
Cut Z:
глубина сверления, как правило несколько больше толщины стеклотекстолита, но меньше общей толщины текстолит + жертва. 
Travel Z: высота перемещения, если точно ничего не попадется по пути, то можно выбирать минимальное положительное значение, но безопаснее выбрать высоту большую, чем клампы крепления заготовки.
Feed Rate: скорость вертикального перемещения шпинделя, единиц в минуту.
Spindle Speed: количество оборотов шпинделя, оборотов в минуту.

Geometry Options - настройка объектов геометрии.
Plot Options - чекбокс отображения на экране.

Create CNC Job:
Cut Z: глубина зареза. На ровном текстлите, если точно выбран ноль, сделана карта высот, то можно резать на минимальную глубину, едва превышающую толщину меди, с высокой скоростью. У меня для меди 18мкм глубина реза 25-30мкм. Подобрать опытным путём.
Travel Z: высота при перемещениях. Чем ниже - тем быстрее, не забываем про клампы, если они есть.
Feed Rate: скорость реза.
Tool dia: диаметр инструмента.
Spindle speed: обороты шпинделя.

Paint Area: опции выборки меди между дорогами.
Tool dia: диаметр инструмента.
Overlap: перекрытие, в долях диаметра инструмента.
Margin: отступ.

CNC Job Options - опции рабочих объектов.
Plot Options - чекбокс отображения на экране.
Tool dia: диаметр инструмента.
Export G-Code: эти окна используются для вставки дополнительных команд в начало и конец файла с G-кодами соответственно.

Аналогично можно выставить опции для текущего проекта. Файл с настройками лежит в c:\Users\_ВашЮзер_\AppData\Roaming\FlatCAM\defaults.json у меня разные настройки для штыревых и для поверхностного монтажа, я просто подменяю файл с настройками когда перехожу с одного на другое.

 

Настроили, теперь сделаем нашу минимальную платку. Что нам нужно сделать:

  1. Импортировать герберы
  2. Сгенерировать геометрические объекты
  3. Редактировать если надо
  4. Сделать рабочие объекты для ЧПУ
  5. Экспортировать Г-коды

objects flow

Для этого импортируем все наши герберы и файл сверловки: File->Open Gerber... и File->Open Excellon... FlatCam задумается на секунду и нарисует нам нашу платку. Внимание: пути к герберам не должны содержать кириллицу!

cncpcb17

В окне FlatCAM мы точно так же смотрим на стопку слоёв сверху вниз, поэтому нижний слой и слой сверловки нужно зеркально перевернуть - сверлим в последнюю очередь, что бы отверстия не помешали делать карту высот, об этом позже. Что бы отзеркалить нужно выбрать в меню Tool-->Doble-Sided PCB Tool, в дальнейшем можно просто открывать вкладку. Нужно выбрать гербер нижнего слоя, далее ось, относительно которой будем зеркалить, положение этой оси, я всегда выбираю вертикальную ось и ящик, в качестве которого выбираю гербер с контуром ПП. Дальше отверстия для совмещения слоёв. Нужно указать координаты только для одного отверстия из пары, второе делается автоматически, у меня стоят отверстия в координатах X=0, Y=15 и X=0, Y=35, обычно я делаю две пары отверстий, для мелких платок достаточно и одной пары. Координаты можно вводить руками, а можно просто ткнуть мышью туда, где хочется отверстие и координаты автоматически скопируются в буфер обмена. Диаметр 1.1мм - для канцелярских гвоздей. Итак всё готово, нажимаем на кнопку Mirror Object, нижний слой переворачивается, выбираем сверловку, нажимаем ещё раз - переворачиваем, и создаём отверстия нажав на кнопку. Получается вот такое:

cncpcb18

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

cncpcb19

Что же, теперь, нужно сделать изолирующие прорезы, настройки мы уже сделали раньше, нужно сделать геометрию из гербера, просто нажимаем Generate Geometry. На месте фрезеровки должны появиться красные линии. Если толщина инструмента не позволяет их сделать - их не будет. Вот как это выглядит, слева с толщиной инструмента 0,33мм, справа - 0,3мм.

cncpcb20cncpcb21

 

Идём обратно на вкладку проекта и выбираем наш свежесозданный объект TEST.TOP_iso, нажимаем кнопку Generate, снова переходим на вкладку проекта, выбираем TEST.TOP_iso_cnc и нажимаем нижнюю кнопку Export G-Code, выбираем разумное имя и явно указываем расширение файла. С верхним слоем всё закончено.

Снова гасим всё и теперь выбираем и включаем нижний слой и слой контура ПП, по той же схеме делаем изолирующие разрезы для нижнего слоя, все шаги до экспорта кода и  снова выбираем нижний слой, будем выбирать медь. Тут немножко неудобно, но проходимо. Дело в том, что геометрия создаётся не по границам ПП, считается от наименьшего возможного размера, и не вся медь будет выбрана, или выборка ускачет за габарит ПП. Исправляем. Шаг первый, выбираем в проекте нижний слой, устанавливаем такие границы, что бы регион гарантировано вышел за контур ПП, нажимаем на кнопку Generate Geometry в разделе Non-copper regions. Пробуем многократно, не беда, лишние объекты просто удаляем в проекте кнопкой DEL или кнопкой на панели инструментов.

cncpcb22

Шаг второй: выбираем TEST.BOT_noncopper, и нажимаем на кнопку редактирования. Нажимаем кнопку рисования прямоугольника, рисуем прямоугольник по одной стороне ПП, для этого мы и сделали видимым слой контура ПП, закончить рисование прямоугольника - пробел. Теперь мы можем нашим прямоугольником, с помощью инструмента Polygon Subtraction отрезать от автоматически сгенерированой геометрии кусок: инструментом выбора первой выбираем нашу геометрию, и с контролом вторым выбираем наш прямоугольник, и нажимаем на кнопку вычесть. Визуально ничего не изменится до тех пор пока мы не нажмём кнопку Update Geometry, не надо волноваться. Вычли и сразу инструментом выбора берём наш прямоугольник, выделяем и удаляем. На этом месте можно нажать обновить и все операции станут видимыми. Но теперь нужно снова входить в режим редактирования, что бы сделать остальные стороны, я сразу всё делаю для всех сторон и жму обновить. Действовать нужно аккуратно, отката нет, если что-то мимо, то нужно начинать с первого шага.

cncpcb23cncpcb25

Шаг третий: в разделе Paint Area нажимаем Generate и кликаем внутри геометрии, я всегда выбираю метод Seed-based, он у меня работает значительно быстрее. Всё, выборка меди у нас готова. Теперь в закладке проекта выделяем с шифтом выборку и изолирующие объекты, и в меню Edit нажимаем на Join Geometry, у нас появится новый объект Combo:

cncpcb26

Ну и всё, выбираем наше комбо, и генерируем Г-Код, как мы делали для верхней стороны, снова сами пишем имя и расширение. С обработкой нижней стороны закончено. Начинаем готовить файлы для сверления. На закладке проекта входим в файл сверловки, в этом учебном файле у меня всего два диаметра, выбираем первый диаметр, нажав на его номер, жмём Generate, повторяем для второго диаметра. Теперь нужно экспортровать Г-код, всё по той же схеме, я в качестве имени файла пишу диаметр сверла, так потом проще. Так же нужно создать и экспортировать и отверстия для совмещения слоёв, но глубину отверстий нужно сделать больше: 3 - 5мм.

Ну и последнее, обрезать по контуру. Для этого открываем гербер контура ПП, ставим или не ставим перемычки, нажимаем Generate в разделе Board cutout, идём на закладку проекта открываем геометрию и экспортируем код - так уже делали два раза, но теперь нужно указать глубину, я для 1.6 стеклотекстолита и фрезы 3,175мм ставлю 2мм - лучше больше, чем меньше.

Всё, тут закончили, переходим к следующему этапу - карта высот. Для этого скачиваем отсюда ещё одну бесплатную програмку: Autoleveller. Открываем, смотрим правильно ли выбран контроллер станка, с помощью кнопки Load OGF загружаем файл фрезеровки, с помощью кнопки Autolevel сохраняем файл. Повторяем для второй стороны платы. Я, на самом деле, шаг сетки ставлю 5мм, а высоту подъёма 0,5мм, так значительно быстрее.

cncpcb27

Всё, у нас есть полный набор файлов для изготовления платы, переходим на станок. Вырезаем заготовку с запасом, ну к примеру, по 10мм на сторону, и приклеиваем её на жертву с помощю двухсторонней ленты, по всей площади, под заготовкой не должно быть воздуха - это ключевой момент, за один угол цепляем вход станка для построения карты высот, землю цепляем за фрезу. Я фрезерую царапалками 0,2мм или 0,3мм кончик и угол 30° - с меньшим углом легче сломать. Фотографии будут с процесса изготовления настоящей платы.

cncpcb28

Загружаем файл, смотрим на подсказки и фрезеруем верхнюю сторону. Заготовку я никак особенно не готовлю, смотрю что бы были ровными края, если горбатые обдираю напильником и, если текстолит очень грязный - как в этом случае, протираю посудной губкой, той стороной где полимерный абразив.

cncpcb29

Первым делом нужно просверлить отверстия, по которым плата будет точно устанавливаться после переворота, я сделал после фрезеровки верхней стороны, просто забыл, отверстия 1.1мм - тогда канцелярские гвозди входят очень туго. После этого снимаем заготовку, с нижней стороны убираем ленту, и клеим снова на верхнюю, протыкаем гвозди, точно направляем в отверстия, прижимаем.

cncpcb30

И молотком можно просто разбить пластиковые шляпки, что бы не мешались.

cncpcb31

Так же фрезеруем вторую сторону, после этого сверлим, обрезаем по контуру.

cncpcb32

Остаётся снять с жертвы, обломать премычки, выдрать гвозди и убрать ленту и всё готово. В результате у меня получается примерно так: отверстия чуть-чуть не точно, иногда чуть лучше, иногда чуть хуже.

cncpcb33

Конечно, для нормальной платы операций и файлов больше, для той, уоторую я показал в качестве примера проект и стопка файлов были такими:

FileListprо

Вот вроде бы и всё, если есть ошибки - укажите. 

Добавлен: 3 мес. 2 нед. назад от Ollema #32701
Ollema аватар
А я травил и травить буду))
Но и фрезеровать и сверлить тоже буду станочком. Вот такой я извращенный извращенец.
Блин, про кнопку все время забываюсь. Надо на лбу написать.
Добавлен: 3 мес. 2 нед. назад от GREY #32700
GREY аватар
Самый геморрой - отверстия крутить. Руками я больше никогда, а раз уж на станочек поставил, то почему не профрезеровать? И контур нормально не обрезать?
В общем каждому свои вкусные фломастеры, но я больше никогда травить не буду.

Олег, картинку приложил и рядом на кнопку - вставить. Тогда она в тексте появится на том месте, где курсор.
Добавлен: 3 мес. 2 нед. назад от Ollema #32698
Ollema аватар
Попробовал сегодня на своем CNC 3018 сделать тестовую платку с дорожками 0,5 мм. Вполне возможно даже моим чахлым лазером 2,5 китайских Ватт. Но нужно еще обкатать и учесть нюансы. Пока так:
Добавлен: 3 мес. 2 нед. назад от Ollema #32676
Ollema аватар
Хочу красить текстолит и выжигать краску лазером. Потом травить. Фрезеровать не понравилось.
Добавлен: 4 мес. 3 нед. назад от Ulis #32590