Mail Archives: geda-user/2018/07/11/01:27:37
On Wed, 11 Jul 2018, Nicklas Karlsson (nicklas DOT karlsson17 AT gmail DOT com) [via geda-user AT delorie DOT com] wrote:
> Then there is a difference in wanted netlist from schematic and actual physical netlist on board it is not obvious which net a drawing primitive belong to. Maybe it would be possible to add an algorithm figuring out which polygons short circuit nets and mark them.
Been there, done that. I know it's getting boring that I always say
this, but: already solved in pcb-rnd for almost 5 years.
There was a long discussion about this issue on the mailing list years
ago, some time between 2011 and 2013. It was a classic geda-user
discussion with random wild ideas and no code. It was real hard to follow
so I tried to collect and sum up all the concurrent ideas from the threads
back then:
http://igor2.repo.hu/cgi-bin/minisvn.cgi?cmd=cat&repo=pcb-rnd&path=trunk/src_plugins/mincut/pcb-mincut/proposals.txt
My favorite was mincut, so I implemented that. It didn't get in gEDA/PCB
(which also did not implement any other method, afaik). But once pcb-rnd
started, this was one of the first pending features I added, back in
September 2013.
What mincut does: when there's a short, instead of marking the netlisted
pads, it goes and finds the least number of objects that if you remove,
the short is solved, and marks those. This is one of the strategies to
mark "which object causes the short", in the way of "where it is easiest
to cut the short to resolve it".
(Fine print: what _really_ causes the short is obviously subjective and is
known only by the user - none of the strategies can be perfect, not even
the ones that try to tag each object to a net or remember edit history.
Every algo has some inconvenience and corner cases; mincut was relatively
easy to implement and fits well in the generic UI concepts of pcb-rnd and
gEDA/PCB. Anyway, any of these can be better than the original approach of
marking pads by netlist entry. Mincut was proven very useful over the
years in pcb-rnd).
Regards,
Igor2
- Raw text -