How can I force an update of a footprint on my board from the library?
“Update footprints from library” doesn’t seem to work if the only changes I’ve made are things like text formatting and placement. The only thing I’ve found is deleting the component and updating from schematic, which sucks…
EDIT: my version info
Application: kicad
Version: 5.0.0-fee4fd1~65~ubuntu17.10.1, release build
Libraries:
wxWidgets 3.0.3
libcurl/7.55.1 OpenSSL/1.0.2g zlib/1.2.11 libidn2/2.0.2 libpsl/0.18.0 (+libidn2/2.0.2) librtmp/2.3
Platform: Linux 4.13.0-46-generic x86_64, 64 bit, Little endian, wxGTK
Build Info:
wxWidgets: 3.0.3 (wchar_t,wx containers,compatible with 2.8) GTK+ 2.24
Boost: 1.62.0
OpenCASCADE Community Edition: 6.8.0
Curl: 7.55.1
Compiler: GCC 7.2.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=OFF
KICAD_SCRIPTING_ACTION_MENU=ON
BUILD_GITHUB_PLUGIN=ON
KICAD_USE_OCE=ON
KICAD_USE_OCC=OFF
KICAD_SPICE=ON
unfortunately, that doesn’t work. it reports the footprint changed, but nothing is updated.
I’m guessing there’s some comparison to decide if the library footprint has changed, that doesn’t get triggered by small changes like updating silk placement?
Here is a screenshot from the development version. It works fine. Note that you can choose whether to leave text items untouched or not. Maybe you meant that you changed text items but nothing else in the library? And tried to get those changes to the board? Maybe they aren’t updated in 5.0.
Text fields (reference and value) are not coupled to the footprint when placed on the pcb. Otherwise you could not have different text field placements, sizes, … for different instances of the same footprint.
The way it works is that these things are initialized when the footprint (for a specific identifier) is loaded for the first time on the board. After that these values are fixed with the pcb file. There is a edit all footprint field tool that can be used to patch edit this sort of thing. If you only want to change it for a single instance then go via the text field properties dialog from within pcb_new.
You can see that “Update Footprints” does not reflect the changed positioning of the REF silk. However if I add a new copy of the footprint it does get the updated version.
That’s rather silly. If the silk is not part of the footprint, why is it edited through the graphical footprint editor, not simple a text property field? Sounds like this is a “working as intended” bug then.
The full update options section is missing from current stable. So it might be that these things can not be done easily in current stable but will be possible with version 5.1.x
How would you implement that? You can move text fields independent from footprints. This is an important feature
It is seldom the case that all 50 resistors you have on a board can have their reference and value field at the same position. Sometimes they even require different text sizes. And we have not even started to think about having the same footprint in different projects.
But yes a way to reset these values to the default setting coming from the lib is a nice additional feature. This is why this seems to have been added to the update footprints dialog for version 5.1
You can edit all kinds of things on the board independent of the library, but you lose those changes when you update from library if you don’t lock the component. Why treat REF silk differently?