Продолжаю потихоньку пилить мало кому полезное поделие ..
В общем почти готово работа с несколькими слоями. Теперь, если у кого то вдруг будет рентген и получится получить внутренние слои то можно с легкостью сюда их загрузить и на каждом слое отмечать компоненты.
Сейчас доделываю формат экспорта в Альтиум и в ДипТрейс.
Оказывается нашелся способ как передать туда любой профиль микросхемы:
Аналогично файл импортируется и в DipTrace
Сети тоже можно будет добавлять более визуально приятным способом а не точками с наименованиями.
В последней версии программы PCBComparer2 появилась возможность загружать реально большие фотки, но только если комп под Windows теперь будет обязательно с памятью от 4 ГБ RAM.
На удивление, много народу в голосовании отметили, что версия под Linux - интересна, и я сделал было попытку запускать эту мою программу, написанную в среде Java + JavaFX под Linux Mint 21 на ноуте что есть под рукой. И даже поправив мелочи очевидные, обязательные для работы - я разочаровался: приложение JavaFX с графическим интерфейсом работает под Win10 - отлично, как планировалось, и в плане графики, и в плане поведения окошек и сообщений, но при этом ведет себя совсем не так же под Linux (в плане zoom-а фоток).
Но я и невеликий специалист в Линухе, просьба заинтересованным - попробовать и подсказать как лучше установить компоненты, и как запускать правильнее.
Это demo-версия, вероятно, она глючная, и невозможно использовать, в плане zoom графики, хотя у меня при каких-то сочетаниях версий java и javafx (пробовал 14, 19 как Java, так и JavaFX, хотя по умолчанию последняя публичная OpenJFX устанавливается 11я) - работало нормально, как и под Windows10, но я так и не запомнил при каком сочетании - попробуйте, кому интересно, ссылка с авторской страницы.
Пока инструкции для Линукс такие:
установить Java (тестировал с OpenJDK 14 и 19)
установить JavaFX: sudo apt-get install openjfx (установка должна получиться в /usr/share/openjfx)
запускать как-то так, если поместить .jar-файл программы в подкаталог pcbc2 в домашнем каталоге:
Ну и раз пошла такая пьянка .. запилил метод для формирования компонентов налету.
Используем метод главных компонент для получения основного направления из облака точек. Далее формируем прямоугольник с заданным Margin (хз как это по русски).
Дальше задача только схему объективно нарисовать и передать ее в какой нибудь сапр типа diptrace. )))
Вот продолжил ковырять. По сути пилю только чтобы показать как я вижу этот процесс, и почему он кажется мне самым удобным.
Тут больше будет вопрос в организации данных. Вся цепочка это однозначно дерево, но оно в ходе работ может иметь цикличные ссылки и тогда рендеринг повесится.
Вот класс объектов которым можно описать по сути все что надо:
то есть концептуально у нас есть объект который может быть либо точкой либо каким то элементом.
Этот список показывает точки контакта. Если это просто поверхностная точка то точка контакта будет одна, если резистор то 2, если микросхема то по количеству пинов. Далее можно определить профиль объекта, точка, прямоугольник или любой заданный профиль. По сути можно запилить приемку данных из диптрейс. По мне так у них самый толковый и понятный редактор компонентов и выгружается в вполне себе распространенный формат.
Далее надо создать фабрику для удобного производства компонентов:
Дальше я уже не дописал но логика однотипная. И заметьте как удобно перелистывать слои когда мышь находится в точке перехода. Вы просто сменили слой и продолжили трассировку дорожки. Мне кажется что это очень удобно было бы.
Дальше есть задумка что при установке точки можно нажать правую кнопку и сменить элемент на резистор или любой двухточеченый компонент. Они самые распространенные на платах. Либо предварительно расставлять компоненты а потом соединять линками.
Но пока не решена проблема циклов в дереве.. это пока проблемка. Как то так..
Спасибо всем за отклики к первому посту ! Новости: в программе реверс-инжиниринга печатных плат появился:
во-первых - русский интерфейс (сейчас английский, наверное, смысла уже не имеет большого при разработках у нас в стране, как мне кажется)
и во вторых - редактор фоток слоёв печатной платы
Закончил правку интерфейса на английском, теперь только на русском
Редактор фотографий сторон печатной платы поможет синхронизировать обе фотки друг с другом: чтобы точка на одной стороне платы - более-менее точно совпадала с положением на другой стороне. Это вы сами визуально должны определить.
Можно скомпенсировать поворот фотки с точностью до десятых долей градуса
Если фотографии сделаны не строго горизонтально (думаю, в этом можно вообще не сомневаться) - то поворот поможет выровнять нужную фотку, но не забывайте:
предварительно выбрать редактируемую сторону
и после удачной правки - обязательно сохранить текущие картинки в файл проекта, перед дальнейшими правками
Ширину и высоту можно отмасштабировать, подгоняя размер и отключив галочку "Сохранить пропорции"
Кроме масштабирования, фотки можно подвинуть, изменив числа "Слева" и "Сверху". Все числа в полях - в процентах от соответствующего размера фотки (горизонтального или вертикального).
Мышкой с Shift можно выделить области и обрезать
Вот есть видео как примерно можно редактировать картинки, синхронизируя их между собой:
Последние новости и правки в программе доступны со странички автора. Спасибо за пробу и отзывы !
Мой опыт в реверс-инжиниринге печатных плат, софт - DIPTRACE:
Сначала фотографируем плату с компонентами, отпаиваем компоненты, сканируем плату, поворачиваем/кадрируем в фотошопе (получаем слой TOP SILK)
TOP SILK
шлифуем плату мелкой шкуркой под водой с обеих сторон, сканируем
TOP
BOTTOM
Вставляем картинку в диптрейс, масштабируем, ставим паттерн и СРАЗУ, после установки каждого паттерна ведем от него дорожки, особенно если есть куда их вести. Таким образом мы дважды проверим путь каждой дорожки
Отрисовав верхний слой идем File - Layout - Holes - Number of Sizez - ... - Show on board. (Кто не знаком с диптрейсом - данная опция позволяет последовательно рассмотреть каждое отверстие) Протыкиваем каждое отверстие и если от него идет дорожка - ведём ее. Опять же получается двойная проверка
Дальше если плата многослойная - наждачкой снимаем медь внешних слоев до стеклотекстолита и сканируем с открытой крышкой сканера - таким образом плата будет просвечена как рентгеном
INTERNAL1
INTERNAL2
Опять же протыкиваем отверстия и ведем дорожки
Финальный результат
Если плата двухслойная - можно пройтись по цепям в проекте и протыкать мультиметром контактные площадки в живой плате. Если многослойная - то такая проверка недоступна из-за того, что внешние слои будут сошлифованы
Хочу поделится своей наработкой с разработчиками электроники. Врядли такие программы нужны всем разработчикам печатных плат, но кому-то наверняка будет полезно. Это программа PCBComparer2 для просмотра двух сторон одной печатной платы одновременно, с зумом, созданием контактов, цепей, изучением трассировки изучаемого образца, и, финально, даже экспорт созданных контактов и цепей в файл схемы формата какой-нибудь CAD-программы (САПР по русски), для дальнейшей переработки и создания своей печатной платы в исходнике.
Это пока первая версия, можно сказать beta, приглашаю заинтересованных поглядеть, поковырять, и может даже оставить обратную связь, что удобно, чего может не хватает...
Пока экспорт схемы сделан в формат Altium и KiCad, хотя и форма деталей в виде абстрактных прямоугольников, после открытия схемы при дальнейшей разработке требует обновления на библиотечные элементы, но схема соединений в виде имен цепей - вточности повторяет схему с печатной платы.
Можно создать контакты деталей, переходные отверстия (via) и просто точки вдоль дорожек
После экспорта в схему дальнейшие шаги уже внутри САПРа по реверс-инжинирингу предполагаются такие: 1. подготовить библиотеки схемных компонент и футпринтов (посадочных мест) печатной платы для дальнейших правок 2. обновить посадочные места платы компонент на схеме: ввести вручную вместо футпринтов COMxxx (которые экспортируются) 3. создать файл новой печатной платы и экспортировать на нее компоненты со схемы, при помощи подготовленной библиотеки и сохранить плату: тут мы сохраняем исходный список цепей 4. обновить схемные элементы на схеме, с помощью подготовленной библиотеки символов 5. импортировать в схему данные с платы - т.е. передать заново список цепей с платы.
Соединения контактов можно легко изучить, выделяя контакты с Shift или Control
Навскидку для начала можно поглядеть несколько видео о том, как выглядит интерфейс, вот ссылка на плей-лист: https://rutube.ru/plst/781340/
Результат экспорта схемы в KiCAD
Загрузить и попробовать beta-версию программы (пока только для 64-битных операционок Windows) можно отсюда. Еще раз - это первая версия программы, и можно по вашим запросам доработать что угодно.