Что такое gerber файл

Table of Contents:

Если файл GBR не является файлом Gerber, это может быть файл GIMP Brush, используемый программным обеспечением для редактирования изображений GIMP. Этот вид файла содержит изображение, которое программа использует для рисования повторяющихся штрихов на холсте.

Как открыть файлы GBR

Вы можете открывать файлы Gerber с помощью ряда программ, большинство из которых бесплатны. Эти бесплатные зрители Gerber включают GraphiCode GC-Prevue, PentaLogix ViewMate, PTC Creo View Express и Gerbv. Некоторые из них поддерживают печать и просмотр измерений. Вы также можете использовать Altium Designer для открытия файла Gerber, но он не является бесплатным.

Файлы GIMP Brush используются с GIMP, который работает на Windows, MacOS и Linux.

Если ваш файл GBR находится в формате Gameboy Tileset, вы можете открыть его с помощью Gameboy Tile Designer (GBTD).

Как конвертировать файл GBR

Чтобы преобразовать файл GBR, вы должны знать, в каком формате он находится. Это важно, чтобы вы знали, какая программа конвертера будет использоваться, поскольку три упомянутых выше формата не имеют ничего общего друг с другом. Это означает, что вы не можете преобразовать, скажем, файл GIMP Brush в формат файла Gerber; это просто не работает.

Когда дело доходит до конвертирования Gerber-файлов, очень возможно, что некоторые из упомянутых выше программ способны не только открыть его, но и сохранить файл GBR в новый формат файла. Однако, если нет, GerbView может конвертировать файлы Gerber в DXF, PDF, DWG, TIFF, SVG и другие форматы файлов.

Online Gerber Viewer также может работать для сохранения файла GBR в формате изображения PNG. FlatCAM может преобразовать файл Gerber в G-Code.

Чтобы преобразовать файлы GBR GIMP в ABR для использования в Adobe Photoshop, вам сначала нужно преобразовать GBR в PNG с помощью такой программы, как XnView. Затем откройте PNG-файл в Photoshop и выберите, какая часть изображения должна быть превращена в кисть. Сделайте кисть через редактировать > Определить настройку кисти … меню.

Вы можете конвертировать файлы Gameboy Tileset в другие форматы файлов с помощью программы Gameboy Tile Designer, упомянутой выше. Он поддерживает сохранение GBR до Z80, OBJ, C, BIN и S через файл > Экспортировать в… пункт меню.

Дополнительная информация о файлах GBR

Не удается открыть файл?

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

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

Файл NEF (что это такое и как его открыть)

Что такое gerber файл. Смотреть фото Что такое gerber файл. Смотреть картинку Что такое gerber файл. Картинка про Что такое gerber файл. Фото Что такое gerber файл

Файл AZW ​​(что это такое и как его открыть)

Что такое gerber файл. Смотреть фото Что такое gerber файл. Смотреть картинку Что такое gerber файл. Картинка про Что такое gerber файл. Фото Что такое gerber файл

Файл NOMEDIA (что это такое и как его использовать)

Что такое gerber файл. Смотреть фото Что такое gerber файл. Смотреть картинку Что такое gerber файл. Картинка про Что такое gerber файл. Фото Что такое gerber файл

Файл NOMEDIA представляет собой файл Android No Media. Они используются, чтобы приложения не отображали мультимедийные файлы. Вот как сделать или удалить файлы NOMEDIA.

Источник

Формат Гербера

Формат Gerber является открытым ASCII векторный формат для печатных плат (PCB) конструкций. [1] Это стандарт де-факто, используемый промышленным программным обеспечением для печатных плат для описания изображений печатных плат: слоев меди, паяльной маски, легенды, данных сверления и т. Д. [2] [3] [4]

Формат Гербера

Официальный веб-сайт содержит спецификации, [5] тестовые файлы, примечания и справочную программу Gerber Viewer [6] для поддержки пользователей и особенно разработчиков программного обеспечения Gerber. [1]

Существует два основных поколения формата Gerber:

Что такое gerber файл. Смотреть фото Что такое gerber файл. Смотреть картинку Что такое gerber файл. Картинка про Что такое gerber файл. Фото Что такое gerber файл

Данные изготовления печатной платы должны соответствовать ряду правил: все слои должны быть выровнены, слой профиля должен быть включен и т. Д. [17] [18]

Список соединений CAD может быть встроен в файлы Gerber. [1] [19] Однако по историческим причинам списки соединений часто описываются в отдельном файле в IPC-D-356A, формате электрических испытаний. [20]

Набор материалов, компоненты и отделка обычно представлены в виде неофициальных текстовых файлов или рисунков. [21] В 2018 году Ucamco опубликовала спецификацию расширения формата Gerber, чтобы охватить эту производственную документацию. [22]

RS-274X, расширенный Gerber или X-Gerber, был первоначально выпущен в сентябре 1998 года. [1]

Файл Gerber содержит полное описание изображения слоя печатной платы без использования каких-либо внешних файлов. В нем есть все операторы изображения, необходимые для изображения печатной платы. Можно определить любую форму апертуры. Плоскости и контактные площадки могут быть указаны без рисования или векторной заливки, как в Standard Gerber. (Однако в некоторых реализациях все еще используется рисование, что проблематично для пользователей этих файлов.) [24]

Выпущенный в феврале 2014 года, Gerber X2 добавляет к изображению дополнительные метаданные. [25] Атрибуты позволяют добавлять метаданные в файл Gerber. Атрибуты похожи на метки, предоставляющие информацию, связанную с файлами изображений или их функциями. Примеры метаданных, передаваемых атрибутами:

Для получения дополнительной информации об атрибутах см. FAQ X2 или вступительное видео по внешним ссылкам. [1] [26] [27] [28] [10]

Производственная документация, такая как отделка, общая толщина и материалы, указывается в отдельном файле задания Gerber. [1] [22]

Пример файла Gerber:

Спецификация формата опубликована на официальном сайте. [1] [5]

Standard Gerber был отозван в 2014 году его разработчиком, Ucamco. Он устарел с 1998 года, когда была опубликована расширенная спецификация Gerber. Его заменяет расширенный Gerber X1 или X2. [12] [13]

Стандартный Gerber представлял собой простой формат ASCII, состоящий из команд и координат XY. [30] Пример:

В 1991 году с появлением более мощных растровых фотоплоттеров формат Гербера был расширен за счет полигональных площадей и «массовых параметров». Они позволяют пользователю динамически определять апертуры различных форм и размеров, а также определять заливку полигональной области без необходимости «рисования». Он стал расширением стандарта Gerber RS-274-D. Толчок к разработке массовых параметров дал AT&T. [36] Таким образом, было создано семейство входных форматов, каждый из которых предназначен для определенных моделей плоттеров Gerber.

В сентябре 2014 года Ucamco отозвала Standard Gerber. [1] [43]

В августе 2015 года Ucamco опубликовала черновой вариант спецификации, в котором добавлены вложенные ступенчатые, повторяющиеся и блочные апертуры, чтобы сделать описания панелей более эффективными, и потребовали комментариев от сообщества пользователей. [44] Окончательная спецификация была опубликована в ноябре 2016 года после внесения существенных вкладов. Эта версия была разработана Карелом Тавернье и Риком Бреемершем. Вскоре после этого программа просмотра Cuprum Gerber разработала первую реализацию. [45]

В июле 2016 года Ucamco опубликовала черновой вариант спецификации, чтобы включить информацию о списках соединений в Gerber, и обратился за помощью к сообществу пользователей. [46] После ряда изменений проекта, инициированных пользователями, проект был завершен 2 октября 2016 года. [1] [19]

В марте 2017 года Ucamco опубликовала черновой вариант спецификации, чтобы включить производственную документацию в Gerber и запросить мнение сообщества пользователей. [47] [48] Состоялось оживленное обсуждение, проект прошел семь публичных изменений, прежде чем был завершен в начале апреля 2018 года. [22]

В июне 2017 года Ucamco предоставила бесплатную онлайн- версию Reference Gerber Viewer [6] в качестве дополнения к спецификации. Время от времени он пополняется новыми функциями. [49]

В октябре 2019 года Ucamco опубликовала черновой вариант спецификации, чтобы включить информацию о компонентах в данные Gerber, и запросил комментарии от сообщества пользователей. Предложение повторно использует существующий синтаксис и, следовательно, обратно совместимо. Хотя он не вводит новый синтаксис, он расширяет Gerber в новый домен, и предлагается имя Gerber X3. Проект спецификации был разработан Карелом Тавернье. [50] [51] [52]

За прошедшие годы было несколько попыток заменить Gerber форматами, содержащими больше информации, чем просто изображение слоя, например список соединений или информацию о компонентах. [34] Ни одна из этих попыток не получила широкого распространения в электронной промышленности, вероятно, из-за сложности форматов. [12] Gerber остается наиболее широко используемым форматом передачи данных. [2] [3] [4]

Источник

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

Существует два основных поколения формата Gerber:

СОДЕРЖАНИЕ

Данные изготовления печатной платы

Что такое gerber файл. Смотреть фото Что такое gerber файл. Смотреть картинку Что такое gerber файл. Картинка про Что такое gerber файл. Фото Что такое gerber файл

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

Список соединений CAD может быть встроен в файлы Gerber. Однако по историческим причинам списки соединений часто описываются в отдельном файле в IPC-D-356A, формате электрических испытаний.

Набор материалов, компоненты и отделка обычно представлены в виде неофициальных текстовых файлов или рисунков. В 2018 году Ucamco опубликовала спецификацию расширения формата Gerber, чтобы охватить эту производственную документацию.

Расширенный Гербер

RS-274X, расширенный Gerber или X-Gerber, был первоначально выпущен в сентябре 1998 года.

Файл Gerber содержит полное описание изображения слоя печатной платы без использования каких-либо внешних файлов. В нем есть все операторы изображения, необходимые для изображения печатной платы. Можно определить любую форму апертуры. Плоскости и контактные площадки могут быть указаны без рисования или векторной заливки, как в Standard Gerber. (Однако в некоторых реализациях все еще используется рисование, что проблематично для пользователей этих файлов.)

Выпущенный в феврале 2014 года, Gerber X2 добавляет к изображению дополнительные метаданные. Атрибуты позволяют добавлять метаданные в файл Gerber. Атрибуты похожи на метки, предоставляющие информацию, связанную с файлами изображений или их функциями. Примеры метаданных, передаваемых атрибутами:

Для получения дополнительной информации об атрибутах см. FAQ X2 или вступительное видео по внешним ссылкам.

Производственная документация, такая как отделка, общая толщина и материалы, указывается в отдельном файле задания Gerber.

Пример файла Gerber:

Спецификация формата опубликована на официальном сайте.

Стандартный Гербер (отозван)

Стандартный Гербер был отменен в 2014 году. Он уже устарел с момента появления гораздо более функционального Расширенного Гербера в 1998 году.

История

В 1991 году с появлением более мощных растровых фотоплоттеров формат Гербера был расширен за счет полигональных площадей и «массовых параметров». Они позволяют пользователю динамически определять апертуры различных форм и размеров, а также определять заливку полигональной области без необходимости «рисования». Он стал расширением стандарта Gerber RS-274-D. Толчок к разработке массовых параметров дал AT&T. Это создало семейство входных форматов, каждый из которых посвящен определенной модели плоттера Gerber.

В сентябре 2014 года Ucamco отозвала Standard Gerber.

В августе 2015 года Ucamco опубликовала черновой вариант спецификации, в котором добавлены вложенные ступенчатые, повторяющиеся и блочные апертуры, чтобы сделать описания панелей более эффективными, и потребовали комментариев от сообщества пользователей. Окончательная спецификация была опубликована в ноябре 2016 года после значительного вклада. Эта версия была разработана Карелом Тавернье и Риком Бреемершем. Вскоре после этого программа просмотра Cuprum Gerber разработала первую реализацию.

В июле 2016 года Ucamco опубликовала черновой вариант спецификации, чтобы включить информацию о списках соединений в Gerber, и обратился за помощью к сообществу пользователей. После ряда изменений проекта, инициированных пользователями, он был завершен 2 октября 2016 года.

В марте 2017 года Ucamco опубликовала черновой вариант спецификации, чтобы включить производственную документацию в Gerber и запросить мнение сообщества пользователей. Состоялось оживленное обсуждение, проект прошел семь публичных доработок, прежде чем был доработан в начале апреля 2018 года.

В июне 2017 года Ucamco предоставила бесплатную онлайн- версию Reference Gerber Viewer в качестве дополнения к спецификации. Время от времени он пополняется новыми функциями.

В октябре 2019 года Ucamco опубликовала черновой вариант спецификации, чтобы включить информацию о компонентах в данные Gerber, и запросил комментарии от сообщества пользователей. Предложение повторно использует существующий синтаксис и, следовательно, обратно совместимо. Хотя он не вводит новый синтаксис, он расширяет Gerber в новый домен, и предлагается имя Gerber X3. Проект спецификации был разработан Карелом Тавернье.

Другие форматы печатных плат

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

Источник

Про формат Gerber

Что такое gerber файл. Смотреть фото Что такое gerber файл. Смотреть картинку Что такое gerber файл. Картинка про Что такое gerber файл. Фото Что такое gerber файлПри разработке электронного устройства важную роль играет процесс передачи готового проекта на производство. Для отправки на производственную площадку используется формат Gerber, который является индустриальным стандартом для автоматических линий.

Модель печатной платы готового прибора в формате Gerber представляет собой набор файлов. Каждый из данных файлов описывает только один слой платы, независимо от его назначения. То есть, и для каждого слоя металлизации, и для каждого слоя шелкографии, и так далее, формируется отдельный gerber-файл. Таким образом, будут одновременно верны оба определения: «для описания одного слоя печатной платы нужен один gerber-файл» и «один gerber-файл описывает один слой печатной платы».

Стоит обратить внимание на то, что gerber-файлы используются не только для вычерчивания топологии слоёв, но и для обработки контуров плат, и для создания трафаретов для паяльной пасты. Более того, формат файлов сверловки является прямым наследником Gerber.

С точки зрения расширенного Gerber, каждый gerber-файл – законченная программа, не требующая дополнительных файлов или иных внешних параметров. В то же время при применении gerber-файлов старого образца – RS-274-D – требуется дополнительный файл апертур, поскольку сами gerber-файлы в данном случае не содержат данных об апертурах.

Каждая программа является «однопроходной». То есть, структура управляющих кодов построена таким образом, что при создании изображения коды считываются и выполняются последовательно и при этом не происходит возвратов в начало программы или на какую-либо её строку.

Gerber-формат является векторным форматом, то есть по его данным формируется изображение, не зависящее от разрешения.

Каждый gerber-файл является текстовым файлом. При этом расширение *.txt используется весьма редко. Как правило, расширение gerber-файла соответствует типу его слоя. Каждый разработчик программного обеспечения, оперирующего gerber-данными, закладывает свои правила определения расширений. В таблице приведены наиболее распространённые расширения.

При подготовке данного руководства использовались материалы с публикаций на портале САПР-журнал.

Наиболее распространённые расширения gerber-файлов

Что такое gerber файл. Смотреть фото Что такое gerber файл. Смотреть картинку Что такое gerber файл. Картинка про Что такое gerber файл. Фото Что такое gerber файл
Расширение имени файла
Тип слояРасширение
Верхний слой металлизации*.art01, *.gtl, *.cmp, *.top, *.gtl, *.layer1, *.soldcom, *.comp
Нижний слой металлизации*.art02, *.gbl, *.bottom, *.sld, *.bot, *.GBL, *.layer2, *.soldsold,*.sol
Внутренний слой*.art, *.in, *.internal, *.gt1, *.gt2, *.gt3, *.gt4, *.gt5, *.gt6, *.g1, *.g2, *.g3, *.g4, *.g5, *.g6
Негативный экранный слой*.pgp, *.pwr, *.gp1, *.gp2, *.gp3, *.gp4, *.gp5, *.gp6, *.gnd, *.ground
Позитивный экранный слой*.pgp, *.pwr, *.gnd, *.ground
Слой сверловки*.dd01, *.gd1, *.gg1, *.drill, *.drl, *.tap, *.nc1, *.dd02, *.gd, *.gg, *.drill, *.drl, *.tap, *.nc2, *.dd, *.gd, *.gg, *.drill, *.drl, *.tap, *.nc3, *.nc4, *.nc5
Верхний слой шелкографии*.sst01, *.gto, *.top silk, *.silk, *.slk, *.sst, *.ts, *.skt
Нижний слой шелкографии*.sst, *.bsilk, *.gbo, *.ssb, *.bot silk, *.silk, *.bs, *.skb
Верхний слой маски*.sm01, *.cmask, *.gts, *.tmask, *.tmk, *.smt, *.mask1, *.maskcom, *.tr, *.top mask, *.mst
Нижний слой маски*.sm, *.gbs, *.bmask, *.bmk, *.smb, *.mask2, *.masksold, *.br, *.bot mask, *.msb
Верхний слой пасты*.sp01, *.gtp, *.tm, *.top paste, *.paste, *.pst
Нижний слой пасты*.sp02, *.gbp, *.bm, *.bot paste, *.paste, *.psb
Периметр платы*.BDR, *.gko, *.border, *.out
Список цепей*.ipc, *.net

Санкт-Петербург(СПб), ул. Минеральная, 13, офис 306 +7 812 6457043

Источник

Пишем бесплатный Gerber-вьювер с открытым исходным кодом под Android с нуля

Что такое gerber файл. Смотреть фото Что такое gerber файл. Смотреть картинку Что такое gerber файл. Картинка про Что такое gerber файл. Фото Что такое gerber файл

Привет, Хабр! Меня зовут Велеско Сергей, я Android разработчик в настоящее время и инженер-конструктор печатных плат в прошлой жизни. В этой статье я расскажу, как мне удалось применить знания, полученные в прошлой профессии, и написать простое Android приложение для просмотра Gerber-файлов.

Как будет идти повествование

Расскажу немного предыстории, затем пройдусь по требованиям и расскажу, почему выбрал те или иные технологии. Далее опишу сам процесс и в конце подведу итоги. Ссылку на репозиторий оставлю в конце статьи.

Немного предыстории

Идея написать просмотрщик/конвертер возникала у меня еще в 2018 году, когда на прошлой работе на шестерых конструкторов была единственная лицензия на софтину для чтения герберов с очень неудобным экспортом в растровое изображение. Экспорт фотошаблонов в растр был необходим для документации и требовал неприличное количество ручных операций и времени. С этим нужно было что-то делать. И нужно было делать что-то с выгоранием от основной работы.

Что такое gerber файл. Смотреть фото Что такое gerber файл. Смотреть картинку Что такое gerber файл. Картинка про Что такое gerber файл. Фото Что такое gerber файл

Мне так зашел процесс, что я стал всерьез интересоваться разработкой, и где-то через год Qt привел меня в андроид. Да так удачно привёл, что я сменил профессию конструктора на андроид-разработчика. На момент публикации чуть больше полугода профессионально занимаюсь нативной разработкой под андроид на kotlin. Тут еще на одну статью тянет, но вернемся к главной теме.

Зачем gerber viewer под андроид?

Требования

Что должно делать приложение?

Открывать гербер файлы

Отображать список открытых файлов

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

Элемент должен удаляться из списка по свайпу.

Парсинг и вообще вся обработка должна производиться в отдельном потоке.

Изображение должно иметь зум, панораму и управление ими с помощью привычных жестов.

Архитектура проекта

MVVM, потому что 1) подходит под задачу 2) имеет поддержку от гугл в виде architecture components. Также я решил делать проект многомодульным, т.к. сразу можно было выделить относительно независимые части приложения, выполняющие свою функцию. + в планах было выделить в отдельную kotlin библиотеку парсер. Ниже приведена примерная схема приложения с модулями и зависимостями.

Что такое gerber файл. Смотреть фото Что такое gerber файл. Смотреть картинку Что такое gerber файл. Картинка про Что такое gerber файл. Фото Что такое gerber файл

Кратко по каждому модулю:

app — главный модуль приложения с экранами, вью моделями и репозиторием.

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

Syntax Parser — парсит строки из гербера. На выходе список команд.

Graphics Processor — обрабатывает команды. На выходе список графических объектов.

Многопоточность

Логично было бы выполнять парсинг файлов и генерацию графических объектов в фоне, начиная сразу после добавления файла в список, показывая какой-нибудь лоадинг. Сначала я посматривал в сторону RxJava, которая предлагала относительно удобный способ работы с многопоточностью и плюшки в виде производительности при использовании rx источников/подписчиков вместо больших коллекций с командами гербера и графическими объектами. Но учитывая, что Rx теряет популярность, поднадоела за время учебы и используется на работе, было решено использовать корутины, с которыми у меня до этого не было опыта.

Долго не сомневался при выборе, Single Activity (звучит громко, учитывая всего 2 экрана в приложении), экраны на Fragment. Compose показался слишком экспериментальным, отпугнул потенциально большими ресурсами на его параллельное освоение.

Koin. Потому что простой и было интересно попробовать что-то кроме dagger. На работе пользуемся Hilt, но даже он показался чересчур сложным для такого простого проекта.

Рисование

View и Canvas. Смотрел в сторону SurfaceView но после непродолжительных экспериментов решил, что и производительности обычной View должно хватить. Естественно с учетом того, что на канве должны отрисовываться полностью готовые объекты, чтобы ничего не создавалось в методе onDraw.

Сборка

В качестве эксперимента перевел все билд скрипты на Kotlin. Для удобства управления версиями запилил builsSrc.

Тестирование

JUnit для тестов. По плану должно быть много юнит-тестов.

Реализация

Модуль File Reader. Самый простой платформенно зависимый модуль. Все, что он делает — читает файл в список строк.

Модуль Syntax Parser. Gerber-файл представляет собой текстовый файл, описывающий поток gerber команд. Более подробно про Gerber вот тут. Как правило одна команда занимает одну строку. Поэтому было решено читать файл в список строк, и дальше работать с ним, используя регулярные выражения для парсинга конкретных команд. Учитывая относительно большое количество команд, хотелось сделать их последующую обработку в потоке удобной, т.е. без огромного условного оператора, чтобы команды сами могли позаботиться о своей обработке — тут ничего нового. Я завел вот такой интерфейс для команд:

Каждая команда реализует этот интерфейс, предоставляя номер строки в файле (необходимо для информативных сообщений о синтаксических ошибках) и реализацию единственного метода perform, в котором команда сообщает некоему CommandProcessor, что она делает.

Использование абстракций позволило выполнить модуль простой kotlin-библиотекой, без зависимостей на платформу. (спасибо дяде Бобу)

В целом работа над парсером была не сильно сложной, но довольно рутинной. И таки осложнялась тотальным несоблюдением спецификации Gerber разработчиками САПР’ов (не буду показывать пальцем). Самой интересным этапом в разработке парсера оказалась реализация парсинга макро шаблонов — таких параметризованных моделей, с определениями кастомных графических примитивов и переменными с выражениями внутри. Вот пример описания макро шаблона:

Тут пришлось вспомнить реализованный когда-то на С++ парсер математических выражений, основанный на переводе в постфиксную форму и алгоритме сортировочной станции.

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

По ходу выполнения программы эти объекты дойдут до самого метода onDraw() в View. Они либо рисуют на канве графический примитив (прямая, дуга), либо добавляют готовый Path (все flash операции, контуры в регионах реализованы с помощью Path), либо меняют настройки канвы (поворот, начало координат) или пера (цвет, размер, способ заливки).

App модуль. Все остальное осталось в апп модуле, т.е. весь UI, View Model, Repository и DI.

В Ui все стандартно. На экране со списком — RecyclerView с DiffUtils и Floating button для добавления файлов. На экране с графикой — кастомная View, в которую сеттится набор графических объектов для отрисовки. Все данные экраны получают из вью моделей, которые в свою очередь берут данные из центрального репозитория. Интерфейс репозитория:

Cхема взаимодействия экранов, view model’ей и репозитория:

Что такое gerber файл. Смотреть фото Что такое gerber файл. Смотреть картинку Что такое gerber файл. Картинка про Что такое gerber файл. Фото Что такое gerber файл

Что в итоге

После нескольких месяцев работы вечерами после работы и по выходным проект был завершен. Выглядит это все вот так:

Что такое gerber файл. Смотреть фото Что такое gerber файл. Смотреть картинку Что такое gerber файл. Картинка про Что такое gerber файл. Фото Что такое gerber файл

Часть функционала по спецификации Gerber осталась не реализована, т.к. он либо не влияет на изображение, либо я не встречал его в реальных файлах за 9 лет работы конструктором и пока отказался от реализации (а время немного поджимало, т.к. перспектива выгореть из-за пет проекта на самом старте профессии — ну такое 🙂 ). В репозитории я отметил все эти моменты в виде небольшой roadmap в readme.

Большое спасибо тем, кто дочитал статью до конца, с радостью отвечу на вопросы в комментариях. Приветствую конструктивную критику. До встречи!

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *