Comment 50 for bug 594073

Revision history for this message
Wayne Stambaugh (stambaughw) wrote : Re: [Bug 594073] Re: Highlight Nets

On 11/8/2016 2:43 AM, jean-pierre charras wrote:
> In DisplayCurrentSheet, SchematicCleanUp is called only once, the first
> time the sch_screen is displayed, so the undo list is empty.
>
> EndSegment saves the old wire list in undo list before calling
> SchematicCleanUp.
>
> Calling SchematicCleanUp in AddNoConnect without saving the old wiring
> is suspicious. Could be a bug.

The only time the clear undo/redo list is called is when
SCH_SCREENS::SchematicCleanUp() is called to clean up all of the
schematics. SCH_SCREEN::SchematicCleanUp() does not clear the undo/redo
list so it possible that only the current sheet needs to be cleaned up
before highlighting the net.

>
> Calling SchematicCleanUp before building the netlist is mainly made to avoid very rare corner cases taht can create unexpected connections.
>>From my point of view, calling SchematicCleanUp is not mandatory to highlight a connection.
> (Remenber SchematicCleanUp is called when editing wires, so it is frequently called on connection change)
>
> There is still the case of not yet annotated components.
> This is the major issue.
> One cannot annotate new components during the creation of a schematic at any time without creating serious issues (Especially with multiple units per package components and/or inside a hierarchy)
> Most of time the annotation will be no suitable (for instance a not wanted selection of units)
> For me, the best way is to *temporary* use (only for highlight purpose) the full time stamp as replacement of the the standard reference for these components (including multiple units per package components, without changing the unit selection)
> Perhaps (just an idea) this temporary reference could be build and stored in the pin NETLIST_OBJECT (for highlight purpose only).
>
> I don't think we can always easily use the time stamp instead of the reference to build a netlist (especially fo pcbnew) because for multiple units per package components there are many time stamps (one by unit) for only one reference (one footprint).
> And grouping the pins by package can be made only when the reference is known.

I was thinking that using time stamps to create the netlist would only
be used for net highlighting. The current netlist should be used for
all other purposes. The time stamp may be an alternative to using
temporary annotation. Displaying an annotation warning every time there
annotation conflict just to highlight a net would really be annoying.
Having the annotation changed without the user's input would be even
worse. We have to figure out a way to identify unique symbols in the
netlist without touching the existing annotation.

>