Missing Button_Switch_Keyboard 3D model

Hi folks,

I realize that some, perhaps many, of the supplied footprints don’t have 3D models, and many are probably works-in-progress.

However, I’m puzzled by the below situation (Kicad 5.0.1-3)

I’m using the footprint SW_Cherry_MX1A_1.00u_PCB.kicad_mod. It has a reference to a 3D model:

(model ${KISYS3DMOD}/Button_Switch_Keyboard.3dshapes/SW_Cherry_MX1A_1.00u_PCB.wrl

Yet there is no such 3dshapes directory nor wrl file.

So has the library gone missing? (I don’d see it on github either). Or was there a strategy to put in placeholder model references in preparation for a future time when models are completed?

The footprints of the official lib are all setup to accept a correctly named 3d model. It does not mean that there ever was a 3d model to go with it.
Doing it this way allows the user to add their own 3d model without needing to touch the footprint. (The same is true for adding one to the official repo. When adding a model we know we do not need to change the footprint.)

All of this is documented in the library convention.

Thank you for point out the Kicad Library Convention doc, and its comments on how 3D models are be referenced in the library’s footprints (https://kicad.org/libraries/klc/#_3d_model_guidelines).

Doing it this way allows the user to add their own 3d model without needing to touch the footprint.

Except it’s not quite that simple. If the end user accepts the path in the library footprint, then it would require placing the user’s additional 3D model in the ${KISYS3DMOD} folder, which is within the supplied library directory structure. That directory structure is read-only. Of course that can be overcome, but isn’t part of the rationale for read-only to dissuade users from modifying and adding to the supplied library, so that later kicad updates don’t over-write user’s custom components?

How would this be improved by not filling out the 3d path?
Or can you think of any solution that is better with the current kicad feature set? We librarians can only work with the features currently provided by kicad. Adding new features is the responsibility of the development team.

I would suggest to use git here. Instead of using the 3d models added by the installer clone the 3d model repo into a user writeable directory. Point KISYS3DMOD to this place. Then create a personal branch and add your personal models. You can then use git to merge new updates from the official lib into this personal branch.

Another option is to use personal libs. (Use the official lib as a basis for your own)

Thanks Rene – that suggestion regarding using git is pretty intriguing, and more tractable than the 4.x scheme where Kicad itself fetches files from github. I think I’ll have to spend some time thinking how I would want the entire library system (symbols, footprints, 3D models) to work. From the official sources, to my additions available across numerous projects, to project-specific components, or variants thereof. At the moment, I end up creating a haphazard arrangement of directories for the needs of the moment that don’t make for a very disciplined workflow. Git could well be useful for gluing this together.

I have a local path that I have cloned the kicad-symbols, kicad-footprints and kicad-packages3d repositories into, and then point my KiCad libraries at that location instead of the installed one.

This way I can install new versions of KiCad without the enormous delay in unpacking all those files, and also “git pull” to get the latest-and-greatest parts added by the community.

For a slightly more advanced use-case, I actually clone my own forks of those repositories instead, that way I can easily put my own new parts in them, and if they are of good enough quality, I submit them to the repositories for everyone to benefit from. That’s not entirely for the feint-hearted though, as the quality-control on the submissions is pretty high (and rightly so!). Sometimes a dirty footprint and rough outline is enough for my own use :wink:

1 Like

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