In order to stabilize and prevent switches from moving when being pressed, each of them sits in a socket. And mounting of the keyboard plate requires studs which hold the screws. While 3D printing, the nozzle travels between all those protrusions at every layer. That sort of geometry frequently causes stringing, where material oozes out from nozzle, when it shouldn't: during travel moves. Same goes for the USB connector, where stringing appeared in the hole.
EDIT: Stringing is highly dependent on the quality of your filament. Below tests were conducted using Creality's PLA which came with the printer. Presumably, the filament also contained moisture at the time of printing. I ended up printing the case with eSun PLA+ and smaller Retraction Distance/Speed as recommended by eSun. I also disabled Combing completely to reduce print time. Almost no stringing occurred. Refer to below table for the final values.
I use the Creality Slicer, which is a fork of Cura. To optimize the printer settings, I have created a small test setup, which completes printing in around 15 minutes. You can see that the original print settings are pretty bad:
|Parameter||Default Value||Creality PLA||eSun PLA+|
|Retraction Distance||5 mm||10 mm||4 mm|
|Retraction Speed||60 mm/s||←||50 mm/s|
|Combing Mode||Not in Skin||←||Off|
|Outer Wall Wipe Distance||0.0 mm||0.5 mm||←|
|Travel Speed||120 mm/s||200 mm/s||←|
The first thing to adjust were the retraction settings. Before every travel move, the filament is pulled back by the extruder to relieve the pressure in the hot-end and prevent it from oozing. The default Retraction Distance was set to only 5 mm. Increasing that to 10 mm made a big difference. I have also experimented with different Retraction Speed, but the effect was not visible in the test prints, so I just used the default.
I left the Combing Mode set at the default "Not in Skin", which adjusts the travel paths such that the nozzle moves over already printed objects as much as possible. This way, the leaking material is spread across the printed surfaces instead of building strings.
Another setting to adjust was the Outer Wall Wipe Distance. Before each travel, the nozzle loops over the just printed geometry to "wipe off" the excess material. From my experiments, the impact is almost negligible. My final setting is 0.5 mm.
Increasing the Travel Speed minimizes the duration of travel moves. In theory, quicker travel should reduce the volume of oozing material. I increased the speed to 200 mm/s, but the difference in the end result is small.
Those settings resulted in the print below. There is a visible improvement. However, light stringing does still occur at the edges of the sockets. Please also note that wet filament can lead to stringing.
Coasting was mentioned multiple times when I searched the internet for solutions against stringing. Before a travel move, it stops the extrusion early to use a certain volume of oozing filament as build material. But in my experiments, enabling this setting and trying different volumes led to identical prints. Coasting is currently marked as an experimental feature.
If the Printing Temperature of the hot-end is lower, the viscosity of the filament increases. That should make it less likely to drip out from the nozzle. I reduced the temperature to the minimum of 195 C for my PLA. But the results were the same to the 200 C I had used initially.
Retraction had by far the largest influence on the print quality. But pushing it too far, is not a good idea as well. Below is a print with 15 mm retraction, which shows almost no stringing. What isn't visible in the pictures is that the dimensions are way off. The diameter of the sockets is not wide enough for the switches to slide inside easily.
Always check your dimensions after you have done adjustments to your print settings.