Connectivity algorithm failure
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
KiCad |
Fix Released
|
High
|
Seth Hillbrand |
Bug Description
Hello,
Short version, place three pads, duplicate one, make two tracks. Apparently identical pieces but not same reaction to edit.
Open the attachment
-launch pcbnew
-load some design
-edit->
(the netlist is still active and maybe it's a feature)
Add some footprints this way (select a basic single test point pad)
-o place it
-ctrl-D the pad, place it
-link the two pads with a track
-o place it
-o place it
-again, link the two pads
-e on track1, assign a net from the dropdown list, validate
-e on track2, assign a net from the dropdown list, validate
One track accept and memorize the edit.
The other track, no.
From a user's point of view. It's to same tracks no reacting the same.
-reload netlist (not the design)
-pose the mesh somewhere
-now, no more assignment of net names for either track
-o
-o
-link the two pads, again
-e, choose net name
and net name change is accepted.
Application: kicad
Version: 5.0.0, release build
Libraries:
wxWidgets 3.0.2
libcurl/7.37.0 OpenSSL/1.0.2j zlib/1.2.8 libidn/1.28 libssh2/1.4.3
Platform: Linux 4.4.143-65-default x86_64, 64 bit, Little endian, wxGTK
Build Info:
wxWidgets: 3.0.2 (wchar_t,STL containers,
Boost: 1.61.0
OpenCASCADE Community Edition: 6.9.1
Curl: 7.37.0
Compiler: GCC 4.8.5 with C++ ABI 1002
Build settings:
USE_
USE_
KICAD_
KICAD_
KICAD_
KICAD_
BUILD_
KICAD_
KICAD_
KICAD_SPICE=OFF
Changed in kicad: | |
status: | New → Confirmed |
importance: | Undecided → High |
milestone: | none → 5.1.0 |
assignee: | nobody → Jeff Young (jeyjey) |
Changed in kicad: | |
status: | Incomplete → Fix Committed |
Changed in kicad: | |
status: | Fix Committed → Fix Released |
The Track & Via Properties dialog only updates the selected nets. Commit() then propagates the nets to connected items. In one case Commit() propagates from the pad out, and so clears the net.
In the other case, Commit() doesn't propagate because when it rebuilds the clusters the pad's CN_ITEM doesn't have the track in its connected items list and so the track ends up in a different cluster.
Because the second case isn't propagated, you can even end up with different segments of the track being assigned different nets.