Use .kicad_pcb file as 3D-Model (Board Stacking)

Hello,
we’ve a lot of projects, where multiple PCBs are assembled together. Sometimes soldered, sometimes stacked with pin headers etc.

The most proper way to work on this in KiCad is, to:

  • create a single project for each PCB
  • create for each daughter board a part with schematic symbol and footprint in the main project
  • export the daughter board as a STEP file
  • link this STEP file to the part in the main project
  • adjust the 3D-transformation til it is rendered correctly in the 3D-viewer

This procedure is also described in this video. But it is very time consuming, when ever an update to the daughter board is made, the step file must be re-exported and so on. Currently, the copper structure is not included into the STEP-File, which looks a bit poor…

I’ve tried to link the .kicad_pcb file as the 3D-Model, but it doesn’t show up in the 3D-View.

From my perspective, it should not be very difficult, to make this possible. Is there maybe someone already working on it?

(In addition, some features to synchronize a part’s footprint with a related project would be nice. I mean, if there is a male pin header on one PCB, a female pin header on the complementary PCB at the same “mirrored” position is needed. In some cases, it could make sense to have a sub circuit (instead of symbol) in the main project with the required connectors included as parts which are grouped in the PCB editor and inherit their relative position and pad names from the daughter board’s project… But this is more for future work, I guess :grimacing:)

Oh, I see, someone has already asked an almost similar question: Multi board rendering or external rendering?

Haven’t seen this due to very different title :see_no_evil:

I have used the same method a few times, but I do not understand:

When you are updating the daugther board, that has to be done regardless of any following procedures, and with the STEP file export, you can simply overwrite the old file.

One thing that helps is to organize your work in such a way that data is only stored at one location, and to always use the same location (in a library) as the reference.

For the daughter board for example, it has all the (THT) pads, but not the outline of the PCB. Edge.Cuts is only drawn inside the project of the daughter board. This lets you use the same footprint both inside the daughter board project, and for the other project. (Managing the courtyard, and how you represent the outline of the PCB in those other projects is an issue though). This also does not work with castellated pads, as it requires THT pads for the daughter board, and SMT pads for the footprint of that board.

For the big picture, it is also related to current limitation of “One Project, One PCB” in KiCad. It’s a known problem, but I do not know anything about a timeline to “fix” it. My guess would be multiple years. There are many feature requests, and the combined time of all KiCad developers is a limited resource.

I mean, using .kicad_pcb files as 3D-Model is maybe an easy to be implemented feature which would help here. :melting_face:

Currently KiCad cannot export copper layers to STEP. This is going to be fixed, as I mentioned. We’ve some projects, where we exported the copper as .svg and used FreeCad to convert the SVG to a 3D-structure and add it to the model for creating a realistic 3D-preview for customers… Usually there are errors importing svg and some structures need to be fixed manually, which costs hours of additional work. :weary:

Using the same footprint in both complementary PCBs is a good idea :+1: