The PCB above is mounted inside of a 40mm T PVC pipe fitting. It is part of my weather station project, and gave me some interesting challenges to overcome in EagleCAD.
The project called for an array of 8 micro reed switches, arranged in a spoke pattern around a central hole. Further, the whole pcb had to be circular to match the shape of the pipe. it also needed to hold resistors for each switch, a cable connector, and an IC. The hardest part is that the reed switches needed to be recessed INTO the PCB.
All while fitting in a space less than 48mm across (PVC pipe sizing is rather confusing, but that is another post).
as a point of reference, here is my original hand made prototype:
And here is the final PCB
Above: Installed in the pipe, reed switches facing out.
Above: The switches are mounted on the opposite side. Notice that the I2C expander IC is actually straddling the cutout of one of the switches. This side also contains the SMD resistors for each switch, and the cable. This face is against the bottom of the bearing seat plates, and can be glued in. I had to drill a hole for the cable in the bearing mount plates, which does not appear on the acrylic cut sheets.
When doing cuts like this, it is important to do so in the milling layer of the part. In addition, you need to include keepouts for top and bottom. There are other layers to deal with as well. The point is to assure that no traces and fills will span the cutout.
I have another project in the works that uses a similar method with wide pads to create metalized mounting slots. If they work out well (such as being plated through even with such an odd shape), I might try to use them as a bus connection through metal standoffs.
The board uses the PCA9534 IO Expander IC to hang 8 inputs/outputs of an I2C bus. I wrote up a simple Arduino example of how to configure and use the expander to read switch inputs and decode them to indicate wind direction.