How to update only one layer when updating footprints from library?

In my footprint library, i had to change the F.Fab text, text position and size. How can i apply this changes to my PCB without changing anything else?

In Pcbnew under Tools -> Update Footprints from Library… i can update my PCB with the updated Footprints from my library. There is the option Reset text sizes, styles and positions. When i uncheck it, the changes to F.Fab don’t apply, when i checked it, the changes to F.Fab do apply, but all F.SilkS text is moved. How can i prevent the F.SilkS text from moving while updating F.Fab?

I use KiCad 5.1.10.

It’s not possible with the current UI (not even in 5.99). It might be possible with a script.

If you update the PCB with changed library symbols there are indeed not may options.

Another approach is to use: Pcbnew / Edit / Edit Text and Graphic Properties. This has a Filter Items by Layer option, so the changes you make can be confined to the F.Fab layer. Limitation is that you can only manipulate existing text this way and not add new texts.

Thank you for your suggestions. But after i couldn’t find out how to get the F.Fab elements in python, i ended up using git+python+the kicad_pcb file without the KiCad Python API.

I made a git commit of the PCB version before i updated the footprints from the library and one after. I made sure i changed nothing else. I generated a git diff file between both versions and used this script to remove every change that is not on F.Fab limit-git-diff.py (1.7 KB) . After that i did checkout the previous version and applied the generated diff.

This way is not so clean and the script could break on more complex boards/updates, but it worked for me.

This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.