Artwork has been requested by several OEMs to provide a library that will help them in displaying Gerber (RS274X) data on their equipment control software. Both image writers and inspection equipment for PCBs often need to overlay data acquired with a camera onto CAD data extracted from the Gerber file.
This may be for purposes of aligning the image writer head, acquiring real target locations vs. expected target locations or for other types of alignment of cad data and the actual features on the substrate.
Displaying Camera and CAD Data
The equipment manufacturer has a lot of expertise in controlling the machine and in controlling a camera that can capture features on the substrate. However he may not have as much experience in processing Gerber data. Even if he can develop a Gerber parser it may not be fast enough to handle large and complex files to meet the user's expectations.
Artwork has 20 years experience in developing CAD viewers and by now has a highly optimized and robust parser. Our OEM library takes advantage of that expertise and provides an extremely fast solution for OEMs at a reasonable price.
General Principles of Operation
In order to display geometry in a window one generally depends on the Windows GDI. The GBRVULib does not directly interface with the GDI as this is the job of the OEM's application program. What the library does is read the Gerber file, process it and outputs a list of "primitives."
Available primitives include: filled areas, lines with width, rectangles and circles.
Optimization for Speed
Speed becomes most noticeable as the file sizes increase. For small and medium sized files, even a non-optimized solution will be fast enough given today's very fast computers. When the file size and complexity gets large then a non-optimal solution becomes very painful to use.
In order to deal with the "worst case" possibility we are going to assume:
Image Area - 20 x 24 inches panelized data. Sometimes the SR command is used/sometimes not.
Internal Layers - many files are built from up to 300 LPD/LPC internal layers
Apertures - we routinely encounter files with 500-1000 aperture definitions
File Size - we routinely encounter files of 80MBytes and occasionally as large as 500 MByte
Feature Size - we routinely encounter files with linewidths of 15 um.