Tag a part as DNI for assy and 3d render

Hi: New here – I have used kicad for about a year now on several decent-sized boards, and I really like most everything I have found. I have built a lot of kicad lib parts as well, and even a few solidworks models for them.

I am wondering whether there is a mechanism to tag a part as DNI? It is easy enough enter a value like DNI-0.1uF or DNI-USB-C in the schematic and it is clear to see in the schematic and easy to identify it in the bom, but is there a proper way to flag a dni that can also remove (or gray out) the part on assembly drawings, and keep it from showing in the 3d viewer?

The 3d renders are handy for a variety of reasons, but I would also like to use them to show different board build configurations. On every board I do there are multiple ways to build it and I would like to generate some 3d renders to show the different configurations for assembly folks, or manuals, or…

Would really be nice to have different named configurations and be able to select which parts subset is used for each, but even a kludgy workaround would be handy (other than creating extra dni footprints with the 3d model section removed). I have no problem text-editing any of the kicad files (which I do regularly anyway). And a great big thanks for kicad files all being in text!

Or, is there a way to do it via python, where I can create my own configs and enable/disable render of each part. Thinking out loud now.

Any tips appreciated. thx, gil

Does this help?

It’s assembly variant, and discussed in Create a PCB assembly variant system (lp:#1767218) (#2131) · Issues · KiCad / KiCad Source Code / kicad · GitLab.

Thanks for the reply, but that is in the high-level symbol and will then apply to every instance. Exclude from bom is handy for say a test point pad or an open jumper – no need to clutter bom but footprint is on board (and edit footprint file so it does not point to a 3d model for render). I use the exclude from board for symbol-only lib parts (add a 6p6c pinout symbol to the schematic near its J symbol…).

What I need is at the ref-des level; eg: on first config I have the usb port J1 and related parts U9 and R7, but second config uses the fiber port J2 plus some other parts, but not these parts…

I have not seen mention of anything like this, but even a clumsy way to enable/disable individual part visibility before a 3d render would be handy. I had to generate a couple of product renderings for a presentation and I hacked some footprints to create alternates that had 3d model link edited out, then changed the footprints of the affected parts on the board, generated the render, etc. Got the job done but very messy. Made me wonder whether there is a proper way to tag a specific ref-des part as visible or not (DNI). If so, and if it can be done programatically via python or such, could be very handy.

Or maybe everybody puts every part on every board every time and I am the outlier wanting partial builds.

1 Like

Ahh, that was an interesting read @eelik. So assy variant is the proper term. Just not quite there yet. thx

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