We describe the various functions that the drl2lsr.exe program performs.
Before you can divide the substrate area into windows, you must know the extents that the drill center's cover. The program does this as soon as the data is imported.
If for some reason the user wishes to only cover a known portion of the board then the ROI (region of interest) can be entered manually.
Division into Windows
The next step is to divide the region of interest (whether computed via extents or by user input) into windows. The window size (in X and Y) is passed via the command line to the program. If not defined, the default is 50 x 50 mm. Windows are butting (there is no overlap) and the user can specify a small margin; if the margin is non-zero then this value is added to the computed extents (or the manually entered ROI) when computing the starting point for the windows. Windows are always referenced to the lower left of the ROI.
Transform and Sort Drills
Once the windows have been defined, all drill centers that fall within a given window belong to that window. The drill coordinates are now transformed so that they are measured with respect to the window's center.
The order of the drills (for a given diameter) is recomputed to both minimize the travel distance from drill to drill but with the added constraint that we do not wish to have consecutive movements in X or Y. Such consecutive movements, especially if there are a lot of them, could result in uneven heating of the X or Y galvanometer -- this could either cause thermal expansion or even burn out one of the galvanometers.
Sorting the Windows
Since the substrate stage is moved so that each window is centered under the laser head, we want to minimize unnecessary movement. Therefore the order of the windows in the laser file begin in one corner and follow a serpentine path to cover the entire substrate with as little un-necessary travel as possible.
Sorting by Tool Diameter
The laser driller cannot change the drill hole diameter on-the-fly. Therefore if a drill file has more than one diameter, it is necessary to "sort" the data first by drill diameter.
For each diameter we will generate a set of windows that follow a serpentine path to cover the entire substrate.
Optional Gerber Output
instead of generating a laser file, the output can be in Gerber format. This is primarily for debugging. The Gerber data is organized by layer - each layer represents a window. In order to "see" the layers in GBRVU, each layer has a change of polarity i.e. LPD/LPC. This means that after opening the Gerber file, the operator needs to change all layers to paint in order to make them visible.
This Gerber file makes it possible to not only see that the drills have been segregated into windows but one can use the Info Windows command in GBRVU to see the drill hole sorting.