The separation of Gerber draws and flashes goes back to the days of paper tape and CNC style photoplotters. Flashes are both easier to implement on the original photoplotters and take less input data.
Additional information can be extracted from flashes - for example, a drill hole is often associated with some of the flashes that describe a printed circuit board. The presence of a drill also implies a via that connect two adjacent conductor layers.
Modern photoplotters are completely raster based; there is no benefit from describing a round or square pad as a flash. Instead, the boundary of the pad is described and filled by the photoplotter.
So it is not unusual to get a Gerber file that has all the pads drawn and not flashed. But what if you need the flashes in order to extract the centers or for some other pupose. How can you "recover" flashes?
The split274x program has an option to do just this. It can recover both round and rectangular pads that are "drawn" and produce a new file where these pads are realized using flashes.
The file below is a via layer for a dense IC package.
Upon zooming in one can identify two distinct pad sizes:
The larger pad is about 0.0066 inch in diameter. The smaller pad is an octagon inscribed in a circle of diameter 0.00572 inch. The larger round pad is realized using a circular draw command while the octagon is realized using a series of straight line draws.
If you look "inside" the Gerber file you will see examples:
G36* X-813583Y-748978D02* X-811494Y-748112D01* X-810629Y-746024D01* X-811494Y-743935D01* X-813583Y-743070D01* X-815671Y-743935D01* X-816537Y-746024D01* X-815671Y-748112D01* X-813583Y-748978D01* G37*
G36* X-800985Y-377165D02* G03X-800985Y-377165I-3346J0D01* G01* G37*
The Command Line
c:\wcad\gbrvu64\artwork\split274x64.exe via1_circular.gbr -rewrite:via_flashed.gbr -synflash -fmt:best -dpi:0
where c:\wcad\gbrvu64\artwork\split274x64.exe full path to the split274x64 program v1_circular.gbr name of the input file -rewrite:v1_flashed.gbr name of the output file -synflash argument to synthesize flashes from draws -fmt:best find the optimum format for the data extents -dpi:0 set dpi = 0 (i.e. don't take it into account)