Embedding 3-D models in the footprints

I do not need answers which tell me why this is not possible - I need solutions similar to the ones used in the other products - Altium etc.
And, of course - when I’m telling “ME”, I mean the needs of many KiCAD users as well, which will benefit from that.
The one easy way would be to have a checkbox saying “embed 3-D models in the project file” - It will be my responsibility if the size is enormous or not.
Or - if we’re going into the database structure support - if you have 100 resistors with the same 3-D model, it can be easily directed to the only one row of the project database.
Yes, I know that may be the right time for that is not come yet, but support for such things must be defined and kept in mind.

Anyways, you can copy the needed files into the project directory and change the paths. If it’s too much work you can use a script. 3d models don’t need to be embedded into footprints to make the project portable/movable. So, what’s the real problem?

Excuse me if it seems I’m a bit picky but just refer to the first statement of my previous comment.
And yes - it’s perfectly easy for me to do the things the way you describe but just try to get out of the box and imagine the users which do not wants to mess with copying the files etc.
Generally speaking this is one of the biggest problems of the FREE software - the SW developers have the wrong impressions that all users share at least the same high level of knowledge :slight_smile:
And please, don’t get me wrong - I’m a strong believer of the open source movement!

OK, I understand. But then we must agree about what is actually needed or wanted. You were speaking about embedding the models into the footprints or files. That’s not what we need or want. We need an easy way to attach the models to the project so that they are copied with the rest of the project and can be used identically on another machine. That can be done now with the mentioned script. You just want an easier, simpler way to do that.

Lets slow down here. The usecase you describe is not directly supported by kicad out of the box. (The official library is just not build that way. It assumes every user you share projects with has the same library setup. In other words it is build around the concept of a central common library.)
Part of the answers above tried to explain the reasoning behind this decision. (It has a lot of benefits. Especially in maintainability and in storage savings)


If you do not agree with how this is handled simply make your own library structure that is build around projects instead of a central library. (KiCad it self fully supports this workflow. There is a reason every project has local library tables.)
For this to work make a folder in every project that contains 3d models. Use the KIPRJMOD path variable to point to the models from within your personal footprints. (this path variable points at the root directory of the project. If you setup everything correctly kicad will take care of adding this path variable to the 3d path.)

Or use a central library as is the standard workflow and rely on scripts to archive your project in a way that makes independent of the readers library setup.


TlDr: Non standard workflows are always harder to work with and require deeper understanding of the software it self. (This is true no matter if you pay for the software or if you get it for free.)

@eelik: I just need a simple solution to exchange the project files with an user which does not know a lot about KiCAD - suppose he had a KiCAD installed in order to look at my files for making its final decision if they are OK for him or not. And one step of taking such decision is to see the 3-D representation of the board.

Yes, that’s it. And I’m just trying to explain that probably there are another approaches at least good as the current one.
And you also should not forget about one of the biggest KiCAD’s advantages - it’s multi-platform availability. Unfortunately the folder’s notations in Windows, Linux and MacOS are totally different.

That is why kicad uses path variables. I have my projects shared across different operating systems with the default setup. Works fine. (even out of the box if everyone uses the same version of kicad with the same version of the library)

I’m sorry if my answer has displeased you, I was only trying to help.
In fact, I really don’t mind what you need or not. My fault.

2 Likes

Guys keep it civil and if possible on topic in here

And thanks to environment variables you can make the full project portable among OSes.
If your need is to let a user have an overview of your design, then the archive_project script is just fitting your needs.

1 Like

@pedro: Unfortunately this is the attitude I stumbled upon on so many Open Source forums.
@Rene_Poschl: Yes, if you have control over all machines. Otherwise you’ll have a countless phone/Viber calls with explanation how to configure this or that etc…

Then just put it into the mainstream release!

What part of the quote are you talking about? If it is the first part then i need to tell you that it is in the mainstream version! That is what we try to tell you. For the official libs 3d models there is one central path (also called environment) variable. It is KISYS3DMOD

For personal libs you can choose to use this variable or a personalized one.


If you talk about the archive script then well make a feature request over at the official bugtracker. If enough people are interested in such a feature it might just get implemented. (Or you could pay somebody to implement it or do it your self. Would increase the speed of implementation.)


Maybe as a reminder: We here are just users. We can not change how the software behaves. We can only tell you how to work around the limitations of the current implementation. We are not the ones making decisions on how kicad will look like in the future. (At least not directly)

And you still wonder why…

1 Like

Many, many years ago I admitted the Erick Raymond’s “Cathedral and Bazaar”. The years passed however and now I’m not so convinced that the “Bazaar” is the best-way-on-the-world for making a software product.
At the end, His Majesty “The End User” will decide if the product is feasible or not.

I just remembered another option that was not yet considered:

I assume you want the 3d models included to show a customer of yours (or your boss) how the part will look like. Might it be better to export the pcb as a full 3d model and send that instead? (Maybe in step format as i would guess the person on the other end might be interested in seeing it inside their product)

And he will visualise the exported STEP model in…?
Guys, I think we lost direction - I just wondered if it’s possible to make the things similar to the Altium’s ones. Of course the Altium’s approach has its own limitations (according to me) - once the STEP model is imported into the footprint file, it cannot be extracted from there (at least I do not know how) in order to be used with another/new footprints.

Any step viewer will do :wink: (STEP is the standard file format for exchanging 3d data. I have never worked in a company that had not at least a viewer installed on every computer.) I might add that this even has the benefit of checking the product in their mechanical CAD program. (So this way is even more flexible)

There are even options to convert STEP to a 3d PDF (but reading that will require the use of adobe readers)


And if we compare it with altium: Why would you assume your customer has altium installed (after all it is quite expensive) How would a customer of yours read your altium files if they do not have it installed?

1 Like

Yet another "KiCad does not work just like (insert commercial CAD package name here) moan.
Several perfectly good solutions have been put forward by the volunteers.

I am locking this thread

1 Like