Подготовка файлов для производства платы.

Описание и исходный код скрипта, позволяющего подготовить файлы для производства печатной платы.

Денис Заикин

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

У нас под боком есть подразделение занимающееся изготовлением плат. Что большой плюс.

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

  • TOP.GBR – проводящий рисунок верхнего слоя
  • INT1.GBR – проводящий рисунок внутреннего слоя
  • INTХ.GBR – проводящий рисунок внутреннего слоя
  • BOT.GBR – проводящий рисунок нижнего слоя
  • TOPMASK.GBR – паяльная маска для верхнего слоя
  • BOTMASK.GBR – паяльная маска для нижнего слоя
  • TOPMARK.GBR – маркировка для верхнего слоя
  • BOTMARK.GBR – маркировка для нижнего слоя
  • BRDOUT.GBR – контур печатной платы

С одной сторону это очень удобно, а с другой, весьма затратно, так как Altium Designer выводит имена файлов несколько по другому и их пришлось бы переименовывать самостоятельно:

filename.GTL - соответствует верхнему слою.

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

Сразу был написан небольшой скрипт, его можно скачать из репозитория с библиотеками для Altium Designer в папке utils, называется GBR-Rename.

Скрипт реализует следующий алгоритм:

  • сканирование папки герберов с последующим переименовыванием
  • упаковка файлов сверловки и герберов в zip архив.

Исходный текст:

setlocal enableextensions
@set src=GERBER
@set resultdir=OK
@set resultgerb="%resultdir%"\GERBER
@set resultnc="%resultdir%"\NCDRILL
@set batname=%~n0
@set layer=%batname:~-3%

@if not exist "%resultdir%" md "%resultdir%"
@if not exist "%resultgerb%" md "%resultgerb%"
@if not exist "%resultnc%" md "%resultnc%"

@if exist "%src%"\*.GTL COPY "%src%"\*.GTL /B "%resultgerb%"\TOP.GBR
@if exist "%src%"\*.GBL COPY "%src%"\*.GBL /B "%resultgerb%"\BOT.GBR
@if exist "%src%"\*.GTS COPY "%src%"\*.GTS /B "%resultgerb%"\TOPMASK.GBR
@if exist "%src%"\*.GBS COPY "%src%"\*.GBS /B "%resultgerb%"\BOTMASK.GBR
@if exist "%src%"\*.GTO COPY "%src%"\*.GTO /B "%resultgerb%"\TOPMARK.GBR
@if exist "%src%"\*.GBO COPY "%src%"\*.GBO /B "%resultgerb%"\BOTMARK.GBR
@if exist "%src%"\*.%layer% COPY "%src%"\*.%layer% /B "%resultgerb%"\BRDOUT.GBR

@goto :start
:p
@set /a count=%count%+1
@set f=%~1
@echo off
@copy "%src%\%f%" "%resultgerb%"\INT%count%.GBR
@goto :eof
:start
@set /a count=0
@echo off
@for /F "delims=" %%A IN ('dir /B /A-D "%src%\*.*" ^| findstr /R "\.G[P0-9]"') do (call :p "%%A")

@COPY "NC Drill\*.*" "%resultnc%"\*.*
@CD OK\
@"c:\Program Files\7-Zip\7z.exe" a "..\PROJECT.zip" -r -tzip "GERBER\"
@"c:\Program Files\7-Zip\7z.exe" a "..\PROJECT.zip" -r -tzip "NCDRILL\"
@CD ..

В качестве архиватора используется 7-Zip, и если он у вас установлен в другую папку, то нужно отредактировать две предпоследние строчки.

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

Как использовать:

1. Вывести герберы и сверловку одним из вариантов

Вариант 1: можно использовать файл Job.OutJob, просто подключить в проект и вывести документацию

Вариант 2: вывести документацию что бы получилась следующая структура файлов (аналогично делает Job.OutJob). Имя папки OUTFILES может быть любым):

OUTFILES\

  • Gerber\
  • NC Drill\

2. Затем в папку OUTFILES копируется скрипт. И переименовывается в соответствии со слоем в котором начерчен контур платы:

  • Keep-Out - START-GKO.bat
  • Mechanical 4 - START-GM4.bat
  • Mechanical 3 - START-GM3.bat

3. После чего запускается.

В результате имеем папку OK с файлами и архив PROJECT.zip который нужно переименовать в соответствии с именем вашего проекта.

Состав папки и архива:

  • GERBER - файлы герберов с приемлемыми именами
  • NCDRILL - файлы сверловки