I really like using extruded aluminium enclosures, such as this one from Farnell/Newark. They are great because they come in different lengths, so if the project doesn't fit, I can just choose a longer enclosure!
Another great benefit is that the front panels can be made of either PCB material (FR4), or aluminium, since a lot of the prototype PCB manufacturers provide cheap metal core circuit boards too. By using these services, I do not need to do any drilling. The PCB manufacturer does all the hard work for me, milling/drilling out any shapes required.
I just spent an hour painstakingly drawing the front panel for this enclosure. And then realized I could have done it in five minutes if I'd thought about it!
The solution was, to search out the DXF file for the enclosure, and then import it into KiCad : )
The screenshot below shows my hour-long effort at the top, and the immediate DXF import below!
In the past, I've found it time-consuming, manually pulling measurements from drawings in the enclosure datasheet. The one below took me ages (it is quite old, it was done with EAGLE at the time).
In KiCad 6, it was as easy as going to the PCB Editor, and clicking on File->Import->Graphics and selecting the DXF file. The file has all graphic elements grouped, so you can right-click on the content and select Grouping->Ungroup, and then get rid of any superfluous DXF content. I imported the content on a drawing layer, so then I can simply trace out the actual shape I want using the Edge.Cuts layer as normal, and use the drawing layer to see precisely where the PCB will be inserted, so that I can create connector/LED/display cut-outs exactly where they are needed.
I'm going to be doing this a lot more in future since it opens up the opportunity to have extremely nice front panels, done right-first-time.
Note that you can take this to the next level by then saving your front panel in STEP format (click on File->Export->Step) and then importing it into FreeCAD, along with your actual project PCB, plus the STEP file for the enclosure (if it exists), and then assemble it all virtually : )
For instance, here's a different project, where I put the project PCB into an enclosure (non-extruded in this case). This project doesn't have a front panel, but I could easily make one if needed, using the method described.
Thanks for reading!