Alright, well I also submitted another PCB order with them, this time checking the “disable aperture macros” box. Again, I have downloaded the production file (.rar) from the JLC website and had a look at it. It unfortunately has a different set of weirdness going on…
In the production file they supply, there is a whole load of stuff most of which seems irrelevant. But, in the ‘yg’ subdirectory there is a copy of all of the files that you submitted (gerber or not) with original filenames. I had previously assumed that these were unmodified copies of the files you uploaded, but that does not appear to be the case. Comparing the same area of one copper layer between the files that I uploaded (left) and the files in the rar archive under the ‘yg’ directory (right):
Clearly, something has happened here that is corrupting the shapes of things. It appears the files have been converted to gerber X1 and converted from mm to inch at this stage. The ucamco reference viewer produces this warning about low precision, which seems like it could perhaps be the culprit:
Another thing I noted was that at this stage some modifications that I expected had not yet been applied to the PCB:
- Solder mask expansion - solder mask apertures still matched the pads exactly
- Tooling holes (because I used the assembly service and opted to have JLC add tooling holes at their discretion rather than specifying exact position myself)
Moving on, the ‘ok’ subdirectory in the rar archive contains another set of gerber files, but using two-letter (no extension) filenames. These files have clearly undergone significant further processing. For a start, the tooling holes are now present, and the soldermask apertures around pads were expanded. Looking at the files in outline view reveals that the whole file has been converted to a “painted” form where all details are made from lines and rectangles and nothing else. On some areas, it appears that whatever algorithm was run managed to effectively recover the original nice round corners:
But, in other places, it has painted the nasty jaggies literally:
Anyway, my best guess is that the problem stems from whatever processing step is converting my gerbers into inches with not enough decimal places.