Added the PCB to the mockup. This took quite a while, since the first time I tried it, I found out that due to the 0.1 mm grid I was using, the spacing of the keyswitches was 19 mm instead of the default (and correct to real life) 19.05 mm. This had to be painstakingly adjusted due to the fact that each row and column had to be moved up/right by its 0.05(ID-1) mm. All of the traces (but luckily none of the components (other than the keyswitches of course (and the diodes too (this leaves just the XIAO, could’ve just said that))) due to the fact that the XIAO is in the bottom left (hence the movement towards the top right)). I found a few other minor misalignments of pin heights and trace heights (widths too) in the process. The width and height of the PCB then had to be adjusted (Edge.cuts in KiCad and the variables in Shapr3D). When I finally began aligning everything again (by using the align tool on SW0’s large pin hole and an alignment cylinder made on top of the plate), I found out that there had to be a gap between the PCB and the plate due to the unorthodox 3 mm plate thickness. I did a bit of research and asked AI, with which cross-referencing the hardware list and the screw lengths led me to believe that 3.5 mm was the depth of the gap. However, it turned out to be false (it was 2.15, found through z-aligning the plastic bump on SW0 and the PCB). I then found out that I’d forgotten to correct 3 rows (out of 4) and had forgotten about SW0’s row existing, meaning I had to go through the same process of shifting 9 keyswitches by 0.05 mm (along with their traces (but none of the diodes since no horizontal shifting was done)). When I went back to the z-alignment, I realised that there were 2 “floating” layers above the top of the substrate layer of the PCB (a soldermask and silkscreen). I found the soldermask to be the coat of paint and assumed the silkscreen to be a projection of the copper layer, meaning that I had to align the plastic bumps to the soldermask layer. I hypothesise that the explanation for the “floating” effect of the “flat” layer is that KiCad isn’t advanced/comprehensive enough to make the soldermask its real size, and to compensate and keep it a 3D body (that looks like a flat layer) they just put the top layer in its correct position and the bottom one infinitesimally close to it instead of at the proper substrate core. This would’ve explained why it was measured as having no thickness as well as appearing as a floating layer (it’s too small for Shapr3D to measure (fun fact: zooming in way beyond the minimum 0.001 mm grid size did reveal some thickness)). The diodes also clipped the plate, however, this turned out to be because of the 1 mm gap between the diode and the PCB that’s standard for machine-manufactured PCBs (which obviously won’t happen in real life while hand-soldering). Apologies for the rant, had to do it to explain the 4 hours taken for this step.
*this is in section view to show the PCB with the rest of the components better.