Это сложный процесс, но он ХОРОШО документирован и есть сотни примеров и туториалов, поэтому останавливаться подробно не будем. Главное - по результату нас интересуют ТОЛЬКО полученные файлы .grb (Gerber) и .drl (Excellon). Конкретно я предпочитаю это делать в KiCAD. Для моей автоматизированной системы из KiCAD необходимо экспортировать ("Plot") 3 файла (см левую часть схемы):
name.drl
в drill
name-F.Cu.gbr
в top
name-Edge.Cuts.gbr
в outlines
Получить эти файлы можно из любой другой программы, которая предназначена для изготовления PCB, поэтому на этой стадии все предыдущие наработки уже не имеют значения, интересует только содержательный результат. Просмотреть имеющиеся файлы, наложить друг на друга, пересохранить, объединить и т.п. можно в программе gerbv
Вся цепочка построена вокруг двух программ: N1 и N2 из списка "Связанный софт" внизу страницы и специально созданного "pcbmiller":
Настройка очень проста: поставить Perl, Python 2, скачать все 3 файла из предыдущего раздела и разархивировать их в одну и ту же папку (когда освоитесь, сможете сделать как вам удобней).
Запускаем пробно flatcam:
python flatcam/FlatCAM.py
Если внизу консоль flatcam не видна, она раскрывается из меню Tool→Command Line. Так же заходим в меню
Options и выбираем "mm", т.е. метрическую систему, далее File→Save defaults и выходим.
На данном этапе предполагается минимальное знание командной строки или умение создавать .cmd/.sh файлы. В будущем возможно появится GUI.
Качаем пример и распаковываем его ту же папку. Открываем файл pcbmiller.pl
и редактируем
под наши нужды. Для начала необходимо отредактировать только последнюю переменную - путь.
my $mill_speed=120; # Скорость фрезерования контура и отверстий my $mill_depth=0.23; # Съём за один проход (т.е. глубина врезания) my $mill=1.0; # Диаметр фрезы. Очень желательно чтобы он был равен диаметру сверла! my $engrave_speed=110; # Скорость гравировки гравёром (лучше всего 0.1мм/10..15°) my $engrave_depth=0.21; # Глубина врезания чтобы уверенно пройти медь my $engrave = 0.19; # Условный диаметр конического гравёра на поверхности при врезке не $engrave_depth my $drill_speed=90; # Скорость опускания фрезы при сверлении my $drill =0.9; # Диаметр сверла. Лучше фрезу иметь такую же - иначе выпадут отверстия от $drill до $mill my $drill_depth=1.6; # Глубина сверловки. По идее на 0.1+$drill толще чем PCB my $drill_file = "drill"; # Входной файл сверловки my $spindle=15000; # Скорость шпинделя. Везде одинаковая, если надо разную - правьте ниже в исходнике my $pcb_thickness=1.55; # Условная толщина ПП my $travel_z=0.4; # Безопасная высота перемещений по Z my $p="/home/dormouse/pcbmiller/"; # Путь где лежат наши файлы drill, top, outlines
Переходим в консоль из запускаем pcbmiller:
perl pcbmiller.pl
Должны увидеть что-то разумное, а не ошибки. В результате работы появится файл flatcam.tcl
- это задание для
программы flatcam.
Запускаем flatcam с этим заданием:
python flatcam/FlatCAM.py --shellfile=/home/dormouse/pcbmiller/flatcam.tcl
Должно раскрыться окно Flatcam и начать волшебным образом "само" всё делаться. В консоли внизу не должно быть красным шрифтом
указано про ошибки.
Проверяем, что нет недофрезерованных участков. Если есть - фрезеруем не так глубоко и меняем параметр $engrave, либо
редактируем исходный Gerber файл top
python g-code_ripper-013d.py
B_engrave.nc
и жмём тип работы "Auto Probe" в нижнем левом углу,
настраиваем количество измерений по X и Y (при плохой плате каждые 2.5 см. При хорошей каждые 5см. Теперь
нам предстоит выбор:probes.txt
probes.txt
- получим файл из двух столбиков чиселprobes.txt
, третий - наши измерения после
обработки. Сохраняем в формате CSV с разделителем пробелом или запятой.Полученный файл с измерениями в формате .txt, состоящий из строк по 3 числа в каждой (X Y Z) мы
подгружаем кнопкой Read Probe Data.
*Note: Для параноидально режима настраиваем Settings: Units mm, Arc angle 2.0, Accuracy 0.001, XY arcs to lines,
Decimal places (XYZ) 3, Write all Coords, Remove Comments, жмём Save и затем Recalculate.
Финальная стадия: выгружаем результат кнопкой Save G-code file - Adjusted
в файлы с таким же именем и
добавкой в имя пояснения _adjusted
.
Если знаки не были перепутаны, то выгруженный файл будет повторять кривизну платы согласно измерений, проверяем это
при помощи NC Corrector.
A_drill_adjusted.nc
B_engrave_adjusted.nc
С_mill_x_adjusted.nc
по
мере возрастания числа "x".C_mill_outlines_adjusted.nc
чтобы вырезать плату.Поздравляю! Мы достигли полного результата -
apt-get install gerbv
и пример слияния слоёв в старых версиях без галочки "Merge PTH and NPTH" в drill-экспортере KiCADВсе вопросы и предложения на voxelcam@gmail.com