Replicate Layout missing traces


I am trying to use the Replicate Layout plugin in Kicad 6.0.2 but it doesn’t copy all traces.

I used it in 5.X versions and I remember that I didn’t have any problem with it.

I’m wondering if there is something I’m doing wrong since it has been a while since I used it.

I tried toggling different options and the number of traces varies but there is always some missing.

It has been a few hours and I tried many things. I’m clueless of what to do to make it work like I remember.

I created my project in Kicad 5.X and “upgraded” it to version 6.

If anyone has any tips on that, it would be appreciated.

Thank you

KiCad V6 was released only a few months ago (2021-12) and now lot’s of people are using it, quite a lot of small bugs are found, and a newer version with bug fixes is released approximately once a month at the moment. Last week KiCad V6.0.5 was released. Increments in the 3rd number are only bug fixes and in general you should always update to the newest version.

There was a nasty bug in KiCad V6.0.3, but that a clear exception. It was only available for a day (or two) and replaced by KiCad V6.0.4. If you have a company whose business depends on KiCad, then I guess that updating from bug fix versions a few weeks after release of a newer version can be a good strategy.

I do not know if this is related to your problem with the Replicate Layout plugin.

Thank you for the quick reply !

I just upgraded to 6.0.5 but unfortunately it didn’t fix the issue.

I would advice you to keep updating to the latest version of kicad 6 which could end up having less bugs. The kicad team keep improving on their versions to help solve out such problems. The latest version of kicad 6 has this solved already,

The plugin only replicates tracks that are either fully contained or at least intersect (there is a checkbox to control this) bounding box which encompasses all the replicated footprints. The plugin should highlight items which will be replicated when plugin dialog is shown. The items are updated with regards to the controls in the plugin dialog.


Thanks for the answer MitjaN !

I think it explains why I am getting some traces or not by enabling the intersect option.

Would I be able to extend that zone by creating a group zone or something on the copied group ?

I will try something like that later tonight.

I understand that I didn’t know that the zone was determined by components placement from my lack of experience but I think it would be beneficial for the pluggin if the zone was manually editable and also visually there instead of only highlighting concerned components.

It would be clearer for the user that a zone exist.

Edition of the zone could only be a x/y fields to have control over where you want it.

I don’t think my situation is unusual.

Don’t take it as a complaint, I think the pluggin is awesome and I appreciate your work !

If it doesn’t work, I will try to place a resistor more to the side so it will catch the remaining traces.

Thanks again !

1 Like

Yeah, this would be a nice feature I don’t doubt that. But this could be solved either by:

  1. additional UI features from KiCad. And I’d rather have developers focues effor on more important issues/features
  2. using zones on specific user layer (e.g. “User5”). This solution seems rather awkward from the UX point of view. I am pretty certain that I’d get a bug report from at leas one user saying that they use “User5” for other stuff and could I change that to “User6” or something else. Which would then clash with somebody else’s workflow. And on first thought I think it would require significant code changes (e.g. time spent).

If somebody is willing to implement 2 I am perfectly content to merge it, but currently I don’t think I’ll start working on in it. You should report this as an issue in the GitHub repo.

Moreover, your current conundrum could maybe be solved if the plugin would replicate tracks which are bound to nets which are completely internal to hierarchical sheet in question (they don’t connect to outside world) even when they are outside of the bounding box. I’ll have to look into this (maybe the plugin works like this already, I forgot all the internal details)

My suggestion (elsewhere) about using groups was also targeted for that, or in general all use cases where everything is controlled by editing the “master” channel, including any extra items. I noticed that it’s not simple solution (many edge cases and situations to handle), but maybe I’ll get back to it some day.

Yeah I remember and my thinking also went along the se way, but now that I think using polygons on user layers is a valid and, within the conatraints that we have, probably better approach.

In KiCad V6 layers can be renamed, so a user could use any of the “User” layers (Numbered, Eco, Comments, etc) and then rename it to a “Replicate_Layout” layer name for your purposes.
If someone wants to use the layer name “Replicate_Layout” for nefarious purposes, then you can just ignore him.


Would you (or anyone else) by chance know how to get user layer names with V6 python API?