Pcbnew create array, produces same reference footprints.

Bug #1625964 reported by firewalker
34
This bug affects 7 people
Affects Status Importance Assigned to Milestone
KiCad
Fix Released
Low
Jeff Young

Bug Description

When using the create array function, the produced footprint use the same reference.

Load a schematic netlist with a sequential part e.g. D1, D2,...,D10.
Load the netlist to pcbnew.
Delete every instance except D1.
Right click and select create array with 5 columns and two rows.
Every created footprint has the same reference D1.

Related thread: http://www.eevblog.com/forum/kicad/kicad-4-0-3-pcbnew-making-a-footprint-array/

Also present in the latest git version.

Application: kicad
Version: (2016-09-20 revision c57fd7c)-master, release build
Libraries: wxWidgets 3.0.2
           libcurl/7.50.3 OpenSSL/1.0.2h zlib/1.2.8 libidn/1.33 libssh2/1.7.0
Platform: Linux 4.7.4-1-ARCH i686, 32 bit, Little endian, wxGTK
- Build Info -
wxWidgets: 3.0.2 (wchar_t,wx containers,compatible with 2.8)
Boost: 1.61.0
Curl: 7.50.3
KiCad - Compiler: GCC 6.2.1 with C++ ABI 1010
        Settings: USE_WX_GRAPHICS_CONTEXT=OFF
                  USE_WX_OVERLAY=OFF
                  KICAD_SCRIPTING=ON
                  KICAD_SCRIPTING_MODULES=ON
                  KICAD_SCRIPTING_WXPYTHON=ON
                  BUILD_GITHUB_PLUGIN=ON
                  KICAD_USE_SCH_IO_MANAGER=ON
                  KICAD_USE_OCE=ON

Tags: pcbnew array
firewalker (firew4lker)
tags: added: array pcbnew
Revision history for this message
Maaatth (matthieu-rouy) wrote :

Seconded (I'm the OP of the linked EEVBlog forum post).
The featured worked on 4.0.2, problem appears on 4.0.3 & 4.0.4.

Revision history for this message
jean-pierre charras (jp-charras) wrote :

On 4.0.2 this feature was *seriously* bugged.
It was removed later.
One of the reasons is the fact the reference come from the schematic, and there is no way to generate a suitable reference outside the schematic.

If you use it on 4.0.2, good luck.

Changed in kicad:
status: New → Won't Fix
Revision history for this message
lasse (llchr) wrote :

it may have been buggy, but with care PCB references with consecutive numbers could be made to match the schematic. making all the pcb reference the same is guaranteed not to work and need manual changes for ever part

Revision history for this message
Geoff (steele-geoff) wrote :

Rather than attempt to generate new references, could it validate by using sequential references found in the netlist file?

Revision history for this message
Maaatth (matthieu-rouy) wrote :

Id you delete the footprints before you re-generate the with the "create footprint array, and then reread the netlist, it does reconnect the nets correctly ; and you can then place correctly the traces.

If this feature is to be abandoned, how are we to supposed make a neat array when the board needs a alignement for UI? (display, buttons, etc)?

Revision history for this message
PCB Wiz (1-pcb-wiz) wrote :

(jp-charras) wrote: "On 4.0.2 this feature was *seriously* bugged. It was removed later.
One of the reasons is the fact the reference come from the schematic, and there is no way to generate a suitable reference outside the schematic."

Can you give more details on the actual bugs ?
I can see that the Array menu has names like Pads, so seems poorly borrowed from Footprint Editor, without a proper clean up, but that is not hard to remedy ?

Yes, it _can_ diverge from SCH, but in a wholly predictable way, and I would have expected incrementing a RefDes is not a complex task, so should be free of surprises ?
Users can expect to need to do some manual clean-ups after.

 An alternative variant, would be to _not_ delete then recreate parts, (which does carry divergence risks) but to allow users to define a range or set of already existing parts to place in the array.

 The Array is really just doing a X,Y,(R,S) assign
I have scripts that do that, but a menu for common array handling is worthwhile ?

Revision history for this message
firewalker (firew4lker) wrote :

I think it has something to do with this one: https://bugs.launchpad.net/kicad/+bug/1549231

Commit 18f07d8efb66328a147c500a10644d2fa9050de7 made the change ?

Revision history for this message
PCB Wiz (1-pcb-wiz) wrote :

Ah... seems to be pulled many ways...

Revision history for this message
Chris Pavlina (pavlina-chris) wrote :

The reason for this being Won't Fix is very unclear. This bug is totally unacceptable - you expect people to make an array of a hundred or more parts and renumber them by hand?

Revision history for this message
Chris Pavlina (pavlina-chris) wrote :

I vote to reopen this unless a proper reason for wontfixing this can be provided.

Changed in kicad:
status: Won't Fix → Confirmed
importance: Undecided → Low
Revision history for this message
Casey Matson-deKay (caseymdk) wrote :

I really think this should remain a feature, even if it is buggy.

I'm currently creating a 16x16 LED matrix, where the LEDs are named D1-D256. In the past, I would just import the netlist into pcbnew, delete all but D1, create the array with incremental numbering, and then re-import the netlist so that pcbnew re-assigns all the nets to the newly created footprints. That worked perfect for me.

Now...I have no way of arranging the matrix. I could do the same process as before, but then I'm stuck with 256 footprints all with the name "D1". I now have to resort to scripting for something that took a few clicks before.

This is a really critical feature for anyone doing work like mine, and really limits KiCad's functionality for these kinds of projects. Maybe we could bring the code back for this feature, but only keep it in the nightly builds until it's release ready?

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

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

Changed in kicad:
status: Confirmed → Fix Committed
assignee: nobody → Jeff Young (jeyjey)
Revision history for this message
Yona Appletree (hypher) wrote :

This still seems to not work in v5.1.0-0. Is there another bug for another regression of this critical feature for those of us making LED arrays?

Revision history for this message
Michael Kavanagh (michaelkavanagh) wrote :

@Yona, please open a new bug report detailing the problem.

Revision history for this message
Darren Bordelon (mathos00) wrote :

I concur. In some cases, such as making duplicates of an entire layout for panels, numbers should be the same.

But if you are dealing with large arrays of footprints, such as with LEDs, then the numbers need to be incremented, so you can load the matching netlist, and automagically hook it all up. (D1 -> D2 -> D3, etc. etc.)

Without this, there is really no way to arrange a large number of items, other than by hand. With 100 or more items, this is not only tedious and error prone, but it is unworkable for all intents and purposes. You'll often need to adjust spacing a few times, as a design evolves, and it is simply not reasonable to take hours doing this even once, more less over and over.

Seems there should be an option to increment, or not increment.

Revision history for this message
Darren Bordelon (mathos00) wrote :

As an alternative, it is possible that perhaps an option similar to arrays in EasyEDA may work. In EasyEDA an set of existing objects can be put into an single array. So, for example, you can grab 100 LED footprints (or even a set of differing object), and put them into a single array layout.

Obviously, in Kicad, if you grab 100 footprints, and array them, the only option is to create a bunch of separate arrays of the 100 footprints. Generally not what you want in that situation.

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

Remote bug watches

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