It was a real pain, but still I think that failing silently is a bug. And there should be a global option “Don’t use 3D models” or something like that.
No, no no! I often have missing models, if not always. Many of the official libs have missing models. I don’t care if a few models are missing, I will fix that later if necessary. In the meantime I want to see the layout with as many models are available. If anyone raises such an issue, I will argue against it.
If a model is missing, you can see it is missing! Why does that need an error to tell you what you can already see?
I think we are getting lost in the weeds here with all this nit picking - we’re making mountains out of mole hills. Just get on and design some PCBs already
Even if you would zero out the hard disk, re-install Windows, install KiCad 5 and restored the old project from a backup you still would have the same error, I think. I’m not sure but I can guess you opened the footprint from the board. In that case it still has the old 3d model path. However, the KISYS3DMOD variable points to the new library base location (or the same one because it was the same in KiCad 4) - the libraries just are different. The model isn’t found there.
I suppose that whether something is reasonable to expect or not depends on your experience and perspective.
In my wider experience (that is, outside of KiCad), if something is out of the ordinary, it is an “error”–plain and simple. Perhaps, for those who are coding, “error” is equated with something more serious and perhaps even a personal failure…so as a code writer you wouldn’t want to call everything unusual an ‘error’.
Here is what I would suggest for this specific topic
- if a 3d file is associated with the footprint via the properties dialog, and if it is NOT found by KiCad, that is an error and it should be explicitly and immediately flagged
- If no 3d file is associated with a footprint (during creation of the footprint, editing of the footprint, or during the use of the 3d Viewer of either the Footprint Editor of the PCB Layout Editor, this should be flagged as a Warning
- Depending on the KiCad user’s preferences, the ‘lack of associated 3d shape file’ Warning could be suppressed in either of these three locations: i) the Footprint Editor dialog, ii) the Footprint Editor 3d Viewer, or iii) the PCB Layout Editor’s 3d Viewer
Yes of course, it should be “Ignore missing 3d model files” or something like that, or “Show error message for missing 3d model files”. That is, complain about file which isn’t found even when it’s in a used footprint file.
Nope…I started a new KiCad session, went directly to the Footprint Editor, Set Active Library, and chose a footprint directly from the Library.
BTW: I have just checked my Directory. All of the DATE MODIFIED entries in the library are associated with when I installed ‘v5’, so these are not carry-overs from my previous v4.0.7 installation
The footprint library table (The thing that holds the information of what footprint libs are loaded) is not overwritten on kicad update.
You can conform that by looking into pcb_new->preferences->footprint library manager.
It will still hold entries that start with KIGITHUB (or have plugin type github)
You would need to do that by hand. An explanation for that is: How can i install a specific version of the footprint library?
Still, if the old libraries have been removed, this situation is impossible. The only possibility, then, is that they are still there.
@von_Whimhurst, could you show your Preferences->Manage Footprint Libraries window? The fp-lib-table file, the library lines and Path Substitutions? And maybe also some of the folder structure of the library?
Github plugin. (On demand download of footprint libs directly from github)
This was the default setup of kicad version 4 and of nightly builds before the switch to the new library. (The switch happened sometime around the feature freeze)
At this point I have come to the conclusion that I wouldn’t recommend changing from KiCad v4 to v5 in the middle of a v4 project. “Migration” does nothing but make the project schematic usable with v5, but does nothing to ensure that the project can be actually continued. I see two possibilities:
-
The migration process would updated everything, including symbols and footprints, to their v5 counterparts. Even with the risk of messing up the schematic or layout. And it would update the fp-lib-table, too.
-
KiCad 5 would come with backwards compatibility libraries which would be identical with v4 libraries except that they would have KISYS3DMOD_V4 instead of KISYS3DMOD. There would be “KiCad-for-v4-projects” startup option besides the normal “KiCad” which would use KISYSMOD_V4 etc. variables instead of KISYSMOD etc. and it would use a dedicated configuration with its own global fp-lib-table and sym-lib-table.
Hope this helps.
As the mass migration to v5 is nigh, perhaps this will prevent that migration from being compared to the apocyrphal lemming mass suicides…
As a stand-alone recommendation, fine. But to be clear, these issues have nothing to do with opening a project that I started to create in v4, in my current v5 installation!
It’s exactly what Rene said: you have the old fp-lib-table which downloads the old footprints from github. Copy the fp-lib-table to your Roaming\kicad folder from the Program Files\KiCad\share\kicad\modules folder (IIRC).
That’s my overall evaluation. But you’re right, it’s about updating KiCad application from v4 to v5, and the big problem which will hit other users unless something is done is that the old fp-lib-table isn’t updated.
It is not as bad as you describe. The only real problem are 3d models. Footprints are cached inside pcb_new anyways and the symbols live inside the cache and rescue libs.
Hmm.
I cannot find a file named fp-lib-table in the Program Files\KiCad\share\kicad\modules folder (IIRC)
And I cannot find a directory Roaming\kicad
In the directory where I had found the fp-lib-table files (shown above), there were multiples of them with different Date Modified. So, when I do find them, do I copy ALL of them over?
Should point out here as a reminder, I am using Win7 not Linux
That’s true, but there may be other subtle problems. Maybe nothing serious, but how about this kind of use case:
A user has a footprint attached to a symbol which is in the schematic. He duplicates the symbol and saves the netlist, counting on the fact that the footprint association is copied, too. He re-reads the netlist in pcbnew. But the footprint can’t be found.
I don’t expect average users to be aware of how KiCad library system and files work internally, so this may be confusing. And there may come worse situations which we can’t guess yet.
Anyways, the migrated project will be messy: symbols and footprints from two libraries of which the other doesn’t (possibly) exist anymore in the system. I wouldn’t like that. I would rather a) update completely or b) continue with the old libraries.
In you home folder, as shown in your screenshot above.
No. Sorry, I’ll be on Windows tomorrow, I don’t remember, but maybe the new fp-lib-table is in the share\template folder of the KiCad installation?
Actually, KiCad should alert you if the expected fp-lib-table is missing and will offer to copy the default for you. The roaming\kicad folder is in the AppData folder in your user directory. For example, if your login name is fred, then the path would be C:\Users\fred\AppData\Roaming\kicad
Note, this is a normally hidden folder in Windows, so you would need to select “Show hidden files, folders, and drives” in the system Folder Options (in the View tab).
For your first attempt, with KiCad not open I would suggest going to the AppData\Roaming\kicad folder and changing the names of both the fp-lib-table and sym-lib-table (append a “-bak” or something similar). Keep this windows explorer window open. Then open KiCad and access the schematic libraries and footprint libraries (easiest would be to open both of the library editors). You should get a requester asking if you want to copy the default tables. Select yes for both. Shut down KiCad. In a text editor compare the contents of the newly created table files with the backups you made in the AppData\Roaming\kicad folder and copy any lines with custom libraries that you had installed from the backup to the new file.
Hopefully that should get you mostly sorted out.