[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]

Re: gEDA-user: Next problem, PCB looses rats



Hm - doing that and throwing that knowledge away once the mouse hovers over
something else - I can't believe it's implemented like this.

And there must be at least 2 lists to be able to detect a shorting
of copper traces e.g. when moving a part. The rats optimizer needs the
information for all nets (btw. I think it has some flaws anyway - it doesn't
find the shortes connection in some cases, not even considering only the
endpoints of trace-segments)
Keeping one list of trace segments, polygons and pads per net would be
a natural solution. In that case the solution of copper islands is trivial:
keep them in a "not connected" list and allow to connect to such a segment.
If the segment changes net, treat it as new drawn to see what it touches...
The implementation must be present already to resolve the situation
after turning off/on the DRC. Just the handling of the contact needs to be
different: the "not connected" net would need to "virtually" belong to
the current net {if (netToTest == currentNet || netToTest == 0) ...}.
If the trace really gets connected, the portion with real contact has to
be split out.
If the traces belonging to nothing are not in a single list but disjoint
areas are in separate lists each, it's even simpler:
{if (netToTest == currentNet || netToTest < 0) ...} assuming there is an
internal net-number and net-listed nets have positiv, dangling nets have
negative numbers.

Thinking of practical routing, the question is, whether silently connecting
random copper fields to a random trace is really as desirable as it
looks when running into the off/on hassle while knowing what one does.
So making this potential feature configurable or requireing a shortcut-key
to be able to move onto dangling nets is probably due.

HTH, Armin


kai-martin knaak wrote:
Armin Faltl wrote:

If the copper traces have no idea of a net (or vice versa), how does the
positive test work, i.e. why is it possible to connect anything at all
despite there is a DRC?

A wild guess in the dark: The algorithm internally builds a list ob objects connected to the currently drawn track. Everything else is to be avoided by a margin.
---<)kaimartin(>---


_______________________________________________
geda-user mailing list
geda-user@xxxxxxxxxxxxxx
http://www.seul.org/cgi-bin/mailman/listinfo/geda-user