pcbnew, netlist import throws around components

Bug #1795561 reported by Nicholas Savenlid
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
KiCad
Fix Released
Undecided
Jeff Young

Bug Description

When importing a new netlist where some components have been changed, the position of those components are wasted.

I will strongly suggest you keep the position, rotation and side of any refdes that is already in the design even if the part-no has changed.

This problem of resetting position causes a lot of work and time.

Sometimes you need to replace a component because it goes end of life for example.
Size and everything is the same, and even if it was not it will most likely be in its original position nonetheless.

Thanks
/Nicholas

Application: kicad
Version: (6.0.0-rc1-dev-652-gf06bf8165), release build
Libraries:
    wxWidgets 3.0.3
    libcurl/7.54.1 OpenSSL/1.0.2l zlib/1.2.11 libssh2/1.8.0 nghttp2/1.23.1 librtmp/2.3
Platform: Windows 7 (build 7601, Service Pack 1), 64-bit edition, 64 bit, Little endian, wxMSW
Build Info:
    wxWidgets: 3.0.3 (wchar_t,wx containers,compatible with 2.8)
    Boost: 1.60.0
    OpenCASCADE Community Edition: 6.8.0
    Curl: 7.54.1
    Compiler: GCC 7.1.0 with C++ ABI 1011

Build settings:
    USE_WX_GRAPHICS_CONTEXT=OFF
    USE_WX_OVERLAY=OFF
    KICAD_SCRIPTING=ON
    KICAD_SCRIPTING_MODULES=ON
    KICAD_SCRIPTING_WXPYTHON=ON
    KICAD_SCRIPTING_ACTION_MENU=ON
    BUILD_GITHUB_PLUGIN=ON
    KICAD_USE_OCE=ON
    KICAD_USE_OCC=OFF
    KICAD_SPICE=ON

Revision history for this message
Jeff Young (jeyjey) wrote :

@Nicholas, are you sure it's not keeping the position? Some parts can have their anchors in different locations, which will make the rest of the part move. But there's not much we can do about that.

If you're seeing movements that aren't explained by that, can you attach a simple project that exhibits it?

Revision history for this message
Nick Østergaard (nickoe) wrote :

Please state exactly what import options you are using.

Changed in kicad:
status: New → Incomplete
Revision history for this message
Nicholas Savenlid (nicholas-z) wrote :

I attach here a picture of my import settings.

Lately it always jumps around.

Example:
1 resistor in schematic is exchanged for another resistor.
Unique parts.
Same footprint.
Refdes not changed. (new part is hand-edited to same refdes as old part)

replaced/changed part is placed outside PCB.

Revision history for this message
Nicholas Savenlid (nicholas-z) wrote :

Ps
Anchors same, as its the exact same footprint used by different parts/symbols.
Ds

Revision history for this message
Nicholas Savenlid (nicholas-z) wrote :

More exactly:
Part do not end up outside PCB.
They get imported as new, and are pre-selected and moved around by cursor movements.
Organised in a squared pattern with spacing in-between X and Y

Revision history for this message
Nick Østergaard (nickoe) wrote :

Yeah, so the bug is more clearly stated as the updated footprints being grabbed by the cursor when it is expected to update inplace. Right?

Changed in kicad:
status: Incomplete → New
Revision history for this message
Nicholas Savenlid (nicholas-z) wrote :

Even if you escape out from the grabbing (escape-button) they wont drop down into "old" places.

They will just get dropped onto the pcb in an array pattern.

Revision history for this message
Jeff Young (jeyjey) wrote :

Hi Nicholas,

By setting "Keep existing footprint associations" you're telling Kicad that any symbol that wasn't associated with a footprint is "new", and it's footprint should therefore be "new".

If you want to update in-place based on RefDes, then set the "Re-associate footprints by reference" radio button. This tells Kicad that you want any footprint which matches the RefDes of a symbol to be associated with that symbol (which will update in-place).

Changed in kicad:
status: New → Invalid
Revision history for this message
jean-pierre charras (jp-charras) wrote :

Hi Jeff,

I reopen the bug because:
"Re-associate footprints by reference"
is really broken (when "Update Footprints" option is on) when importing a netlist by "Load Netlist..." tool.
It fully breaks the association.

However, it works when using "Update PCB from schematic".

Changed in kicad:
status: Invalid → New
Revision history for this message
Jeff Young (jeyjey) wrote :

I thought I already fixed this (CmpNoCase() does not return a boolean for match; it returns 0 if they're equal), but I can't find any evidence of it).

Revision history for this message
Jeff Young (jeyjey) wrote :

Well, that should have been obvious. We have duplicated code and I only fixed it on the Update-PCB-from-Schematic side. (And there's another bug I only fixed on the other side.)

Revision history for this message
KiCad Janitor (kicad-janitor) wrote :

Fixed in revision 536451138dd931e019ee47bff7cc1e301f83293d
https://git.launchpad.net/kicad/patch/?id=536451138dd931e019ee47bff7cc1e301f83293d

Changed in kicad:
status: New → Fix Committed
assignee: nobody → Jeff Young (jeyjey)
Revision history for this message
Jeff Young (jeyjey) wrote :
Revision history for this message
jean-pierre charras (jp-charras) wrote :

Thanks, Jeff.

Changed in kicad:
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Bug attachments

Remote bug watches

Bug watches keep track of this bug in other bug trackers.