0 / 0 / 0
Регистрация: 06.12.2016
Сообщений: 1,183
|
|
1 | |
Делаю скрипт для мержа Gerber файлов25.06.2017, 11:44. Показов 4850. Ответов 22
Метки нет (Все метки)
Всем привет.
Решил запилить скрипт для удобной работы с герберами формата RS-274X. Сейчас скрипт умеет клонировать текущий файл гербера заданное кол-во раз и смещать клоны на заданное расстояние. Скрипт заточен под герберы генерируемые скриптом из EagleCAD и представляющие собой такой список файлов: Код
Hub USB 2.0.GBL Hub USB 2.0.GBO Hub USB 2.0.GBS Hub USB 2.0.GML Hub USB 2.0.GTL Hub USB 2.0.GTO Hub USB 2.0.GTP Hub USB 2.0.GTS Hub USB 2.0.TXT Скрипт написан на nodeJs но в планах сделать онлайн версию. Благо для этого все есть, вопрос только времени. Установка скрипта простая. Для этого требуется установить nodeJS и NPM, далее клонируем репу с github: https://github.som/saewave/GerberMerge и запускаем в папке npm install. После этого скрипт готов к работе. Герберы нужно помещать в папку gerber_files (другую можно задать параметром) и потом из командной строки клонировать герберы, например: Код
node GerberMerge.js --in "Hub USB 2.0" --dy 1.289765 Код
node GerberMerge.js --in "Hub USB 2.0/Hub USB 2.0.GTL" --clone 2 --dy .72 Что в планах: <ul>Сделать таки mirki из разных герберов в один; Сделать поворот клонированного слоя; Сделать онлайн версию.</ul> Кому интересно - приглашаю к тестированию.
0
|
25.06.2017, 11:44 | |
Ответы с готовыми решениями:
22
AndroCAD: просмотрщик файлов Gerber RS-274X в Android Скрипт для создания списка файлов для архивации с определенной даты Делаю программу. Не знаю скрипт кнопок Скрипт для поиска файлов |
0 / 0 / 0
Регистрация: 06.12.2016
Сообщений: 3,113
|
|
25.06.2017, 12:55 | 2 |
Сразу допилите файл ini, в котором перечислены имена расширений слоев. В том числе "не очевидных". Например, у меня фрезеровка в специальном слое. OrCAD.
Кстати, чаще всего я делают маленькие платы, а ЛУТ ... понятного размера. Поэтому я размножаю количество по обеим осям, вырезая нужное количество после печати. Т.е. надо(бы) предусмотреть размножение в строки и столбцы.
0
|
0 / 0 / 0
Регистрация: 06.12.2016
Сообщений: 1,183
|
|
25.06.2017, 15:34 | 3 |
Сообщение от u37
Сообщение от u37
0
|
0 / 0 / 0
Регистрация: 06.12.2016
Сообщений: 3,113
|
|
25.06.2017, 16:24 | 4 |
В каталоге могут лежать герберы с разных проектов (разных версий). Т.е. имя проекта вводить надо (если нету, то ALL). Во-вторых, много лишних слоев. Типичный ЛУТ = 1 слой (+шелкогрфия) + паяльная маска + сверловка. Для OrCAD сверловка - файл "thruhole.tap".
Теоретически, можно ввести автодетект, как это делает CAM350 ...
0
|
0 / 0 / 0
Регистрация: 06.12.2016
Сообщений: 1,183
|
|
25.06.2017, 16:52 | 5 |
Дайте ваши герберы для тестирования, если не военная тайна.
Что там за формат у этих .tap файлов. Не работал с ними. ini файлы можно придумать, но в них есть смысл только если проект(ы) все стандартные - один раз настроил, потом копируешь в папку с проектом и забываешь. Вообщем нужно более детально продумать этот вариант.
0
|
0 / 0 / 0
Регистрация: 06.12.2016
Сообщений: 3,113
|
|
25.06.2017, 17:38 | 6 |
Плата JLINK на 072
Слои шелкографии не используются - они только для сборки. Тоже для слоёв AS* Основные файлы - .dsn (схема) и .max(плата) [74 Кб]
0
|
0 / 0 / 0
Регистрация: 06.12.2016
Сообщений: 1,183
|
|
25.06.2017, 21:09 | 7 |
Хм, не все генераторы заботятся о том, чтоб сдвинуть плоттер к начальной точке без черчения
0
|
0 / 0 / 0
Регистрация: 13.10.2009
Сообщений: 3
|
|
25.06.2017, 22:24 | 8 |
0
|
0 / 0 / 0
Регистрация: 06.12.2016
Сообщений: 1,183
|
|
25.06.2017, 22:34 | 9 |
Сообщение от woddy
0
|
0 / 0 / 0
Регистрация: 06.12.2016
Сообщений: 1,183
|
|
26.06.2017, 00:50 | 10 |
Сообщение от otixsom
0
|
0 / 0 / 0
Регистрация: 07.04.2013
Сообщений: 461
|
|
26.06.2017, 01:21 | 11 |
Сообщение от otixsom
Попробовал отобразить тестовый файл из репозитория проекта gerbv (из папки test test-polygon-fill-1.gbx) и он как то не так отобразился как в сравнении с тест картинкой приложенной в проекте gerbv.
0
|
0 / 0 / 0
Регистрация: 06.12.2016
Сообщений: 1,183
|
|
26.06.2017, 01:27 | 12 |
Сообщение от KPK
Попробовал отобразить тестовый файл из репозитория проекта gerbv (из папки test test-polygon-fill-1.gbx) и он как то не так отобразился как в сравнении с тест картинкой приложенной в проекте gerbv. Верить никому нельзя. Мне можно (Ц) :) Мои платы пока-что отображаются как задумано.
0
|
0 / 0 / 0
Регистрация: 06.12.2016
Сообщений: 1,183
|
|
01.08.2017, 21:55 | 13 |
Очередное обновление скрипта. Новое:
<ul><li>Обучил мержу нескольких герберов в один, как по одиночке, так и каталогами. Теперь можно натравить скрипт на желаемые каталоги со сгенеренными герберами и он найдет совпадения (по расширению) и сольет их в один сгруппировав по расширению (пример будет ниже)</li><li>Добавил возможность чтения конфига из ini файла (параметр ini-section). ini файл один, а в нем можно определить секции для своих проектов и потом просто указывать какую секцию использовать. Например делаете проект для ЛУТа - создали секцию lut и в ней определили какие расширения будут мержится или клонироваться. Делаете проекты для заказа на производстве - определяете секцию с параметрами для производства.</li><li>Добавились параметры sx, sy для сдвига по X и по Y относительно начала координат. Так же можно просто сдвинуть плату не клонируя и не мержа.</li><li>Добавил параметр init-coords для проверки блоков D. Если в блоке первая команда не сдвигает плотер а рисует линию относительно предыдущего блока, то это приведет к искажению плат. init-coords проверят нужно ли смещать координаты перед тем как начинать рисовать.</li><li>Добавил параметр mirki который собственно и определяет поведение скрипта - просто клонирование или клонирование с мержем</li><li>Некоторые параметры наследуются, например можно указать шаг сдвига один раз и он будет использоваться для всех плат, а можно указать несколько раз и для каждого файла будет свое значение параметра</li></ul>Скрипт так же обрабатывает файлы сверловки в формате excellon. Ограничения - тестировался на файлах, сгенереных ExgleCAD. И те, что присылали выше. - на данный момент скрипт понимает только те файлы, которые содержат заголовок. Файлы сверловки вида: Код
% T1C0.0197F200S100 X010050Y003550 X010100Y002600 T3C0.0394F200S100 X016223Y002115 X016223Y003846 M30
0
|
0 / 0 / 0
Регистрация: 06.12.2016
Сообщений: 1,183
|
|
01.08.2017, 22:03 | 14 |
Пример:
Код
node GerberMerge.js --in "Hub USB 2.0" --clone 1 --in "Switch-1.5v-MFU" --clone 2 --init-coords --zero L --plosis 2,5 --sx 2.7 --sx 0 --dy .74 -m файлы из "Hub USB 2.0" клонируем 1 раз, остальные 2 раза (--clone 1 и --clone 2) проверяем координаты --init-coords нули Leads --zero L формат числа 2,5 --plosis 2,5 сдвиг платы "Hub USB 2.0" на 2.7 ymsh. --sx 2.7 сдвиг второй платы на 0 --sx 0 каждую клонированную плату сдвигаем на 0.74 ymsh. --dy .74 мержим -m результат:
0
|
0 / 0 / 0
Регистрация: 06.12.2016
Сообщений: 1,183
|
|
18.09.2017, 00:25 | 15 |
Готовые платы после мержа скриптом:
http://saewave.som/wp-content/uptoods/2017/09/IMG_0803-e1505765363509.jpg http://saewave.som/wp-content/uptoods/2017/09/IMG_0804-e1505765336479.jpg Можно считать эксперимент удавшимся. P.s. делал платы пока только из герберов, которые генерит EagleCAD, с другими не экспериментировал.
0
|
0 / 0 / 0
Регистрация: 16.05.2013
Сообщений: 157
|
|
08.10.2017, 00:55 | 16 |
Попробовал скрипт на герберах от кикада. Получился какой-то ужос :D
Вот исходные файлы: [78.61 Кб] Мерджил командой Код
node GerberMerge.js --in "1" --clone 1 --in "2" --clone 1 --init-coords --zero L --plosis 2,5 --sy 0 --sy 1.968503937007874 -m
0
|
0 / 0 / 0
Регистрация: 06.12.2016
Сообщений: 1,183
|
|
08.10.2017, 10:37 | 17 |
Неисключено, герберы от кикада не видел и не тестил на них :)
Посмотрю что он там генерит.
0
|
0 / 0 / 0
Регистрация: 06.12.2016
Сообщений: 1,183
|
|
09.10.2017, 00:12 | 18 |
У вас там кикад генерит герберы с такими настройками:
Код
Settings for file: Units: mm Type: gerber Zero: L Plosis: 4,6 Вам нужно задавать --plosis 4,6 --units mm P.s. units можно не задавать, просто имейте ввиду что --sy должен быть в mm. P.s.2 если не задавать dx/dy то смысла ставить --clone 1 нет т.к. скрипт склонирует, а двигать каждую клонированную не будет, просто сдвинет начальную точку на --sy.
0
|
0 / 0 / 0
Регистрация: 16.05.2013
Сообщений: 157
|
|
09.10.2017, 07:58 | 19 |
Спасибо! Но всё равно даже с --plosis 4,6 --units mm результат получается неправильным. Результирующий гербер получился вот таким:
Хотя исходные выглядели вот так: PS: мерджил так: Код
node GerberMerge.js --in "1" --in "2" --init-coords --zero L --plosis 4,6 --units mm --sy 0 --sy 50 -m Ещё похоже что файлы *.gm1 (контур платы) он не мерджит
0
|
0 / 0 / 0
Регистрация: 06.12.2016
Сообщений: 1,183
|
|
09.10.2017, 11:13 | 20 |
А слона-то я и не заметил :)
Вообще у кикада какой-то странный формат рисования получается, такое ощущение, что он в Гербер пишет в той последовательности, в которой вы разводили на плате. Я к этому был не готов ) Но я посмотрю, интересно победить ))
0
|
09.10.2017, 11:13 | |
09.10.2017, 11:13 | |
Помогаю со студенческими работами здесь
20
Скрипт для каталогизации файлов Скрипт для поиска файлов Скрипт для переименования файлов Скрипт для переименования файлов Скрипт для сортировки файлов Скрипт для переноса файлов из Trash PHP скрипт для перекачки файлов Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |