Ответ peacemakerv в «Реверс-инжиниринг печатной платы»7
Вот продолжил ковырять. По сути пилю только чтобы показать как я вижу этот процесс, и почему он кажется мне самым удобным.
Тут больше будет вопрос в организации данных. Вся цепочка это однозначно дерево, но оно в ходе работ может иметь цикличные ссылки и тогда рендеринг повесится.
Вот класс объектов которым можно описать по сути все что надо:
то есть концептуально у нас есть объект который может быть либо точкой либо каким то элементом.
Этот список показывает точки контакта. Если это просто поверхностная точка то точка контакта будет одна, если резистор то 2, если микросхема то по количеству пинов. Далее можно определить профиль объекта, точка, прямоугольник или любой заданный профиль. По сути можно запилить приемку данных из диптрейс. По мне так у них самый толковый и понятный редактор компонентов и выгружается в вполне себе распространенный формат.
Далее надо создать фабрику для удобного производства компонентов:
Дальше я уже не дописал но логика однотипная. И заметьте как удобно перелистывать слои когда мышь находится в точке перехода. Вы просто сменили слой и продолжили трассировку дорожки. Мне кажется что это очень удобно было бы.
Дальше есть задумка что при установке точки можно нажать правую кнопку и сменить элемент на резистор или любой двухточеченый компонент. Они самые распространенные на платах. Либо предварительно расставлять компоненты а потом соединять линками.
Но пока не решена проблема циклов в дереве.. это пока проблемка. Как то так..