Replicate footprint properties

Replicate Layouts is a very fine tool, and the new built-in Multichannel Layout feature is a great addition.

But more often I find myself wishing I could replicate a much smaller chunk of layout work. Is there a more lightweight replication tool that allows you do some layout and then apply it to some other footprints, without needing to set up hierarchical sheets or component classes?

Basically the old copy-paste-update-by-designators workflow, but without the update by designators bit!

I put together a proof of concept using the outgoing SWIG interface, and it seems eminently achievable. It’s hard to imagine I’ve created something novel here. Is there prior work I can draw from or contribute to?

In this screen capture I’ve laid out J4 the way I want it - moved the Ref Des, made the Value visible, moved it to the silkscreen layer, embiggened it and positioned everything just so. I then do the following:

  1. switch to the Shell and run my newly-created get_selected_footprint_properties() function.
  2. select J3 and run my newly-created apply_footprint_properties() function.
  3. bring pcbnew into focus to reveal the replication has worked.
  4. select J2 and do the same.

There was a bit of mucking around to get offsets and layers and relevant fields and whatnot, but this now seems readily expandible to the work I’ve done to layout C17, R14 and R19 and other characteristics of layout too.

2 Likes

Given the stellar interest, I decided to spend the last month getting to know the new IPC API with this as the test case. Pretty tough ol’ learning curve, but here we are!

6 Likes

That is really nice! Well done

that’s really nice! where is the github link for the download? :grin:
or have you already placed it in the Plugin and Content manager? :grin: :grin:

1 Like

Just had to write the README! Bit of a mission, but here we are:

Haven’t crossed the Plugin and Content manager bridge yet. Has been quite the journey already. The IPC API is rather bleeding edge…

2 Likes