Line Grinder
Gerber Plot to Isolation Milling GCode Software

What Can Go Wrong


There are No Ellipses in GCode

Elliptical Pads There is no GCode command to draw an ellipse and most pads on a circuit board are elliptical in shape. Thus, when converting a Gerber plot to GCode, there are two choices: build a ellipse by producing a large number of little tiny line segments or simulate the ellipse by appending two half circles on each end of a short wide line segment. Due to the appalling amount of code generated by the first option, Line Grinder chooses the second option. The image at left (click to embiggen) shows how the isolation routing converts an ellipse into a little tiny racetrack like object.

Associating the Wrong Action with a Gerber or Excellon File

It is up to you to create and configure a File Manager correctly for the code in the file. For example, if the file actually contains the PCB board outline information and you set the OperationMode in the File Manager to Isolation_Cut then all you are going to get is a small trace isolation routed around the edge of your PCB.

In other words, it is up to you to figure out what information the Gerber or Excellon file really contains and then create a File Manager with the appropriate FilenamePattern and OperationMode so that the correct actions happen to that file when it is opened in the Line Grinder software.

The IsoCutWidth Parameter is Set Too Large

Isolation Cut Width Too High The IsoCutWidth parameter is available in File Managers with an operation mode of Isolation_Cut. This is a very important parameter as it determines the width of the isolation tracks on the PCB. The Line Grinders Gerber to GCode conversion algorithm pays very close attention to the IsoCutWidth value and cannot and will not attempt to run an isolation cut line between two objects separated by less than that distance.

To state it another way, if there are pads and traces on the PCB which are closer than the IsoCutWidth then they will not be electrically isolated from each other. This is a consequence of the architecture of the isolation cut generation algorithm and is not something that was optionally written in. There is, currently, no detection mechanism for this. It is up to you to check the GCode output display and make sure that your pads and traces are isolated where they need to be. The image at left (click to embiggen) shows an example of PCB GCode with the IsoCutWidth set too high. The IsoCutWidth (in this case set to 0.0015 inch) is larger than the distance between the pads and the traces. This means the bit cannot get between them and hence has routed around them.

The Real Isolation Cut Width Does Not Match the IsoCutWidth Setting

The actual size of the groove the isolation milling bit makes is dependent on how deep the bit is set into the PCB when the isolation lines are cut. The bit is conical so the deeper the bit is run, the wider the actual isolation cut will be. Note that the IsoCutWidth setting in the File Manager has no control over the actual size of the line physically cut into the PCB. The depth of the milling bit is the criteria that controls this and this depth is determined by the ZIsoCutDepth File Manager parameter. If you adjust the ZIsoCutDepth to a higher value you will cut less deep and hence less wide - it will take some testing to see just how high you can set this value and still consistently cut through the PCB copper layer across the entire PCB. Obviously the accuracy of the mill and the trueness of the bed tool the toolhead matter a great deal here too.

The IsoCutWidth Parameter is Set Too Small

Isolation Cut Width Too Low

You may think that it is a good idea to set the IsoCutWidth parameter to a smaller than realistic value in the thought that doesn't really matter if you shave a bit off the pads as long as the bit gets programmed to go through the gaps. To a certain extent this is true. The danger is that if the PCB traces are both close together and thin and the milling set up is cutting wide paths, you may find that you have completely removed parts of the copper which really should be there. For example, two traces running very close together could have isolation paths cut on top of each other due to the width of the isolation bit. In this case, you will have caused "opens" between copper segments which should have been joined. The image at left shows some isolation cuts which were made too wide (deep) for the closeness of the PCB objects. Notice how the PCB traces which should have been connected have opened up because a neighboring isolation cut ran over them.

The Finely Detailed Copper Objects Do Not Join Up Right

Iso Plot Points To Low The Gerber to GCode algorithm works by creating a kind of virtual plot of the Gerber file, mapping that plot onto an array of pseudo pixels and then figuring out which objects overlap and where the edges of those objects are and where the intersections of the overlap points are. The ability of the algorithm to detect an intersection depends a great deal on the granularity of the virtual plot. In other words, the higher the number of virtual pixels per inch (or millimeter) the finer the detail that can be detected (and hence incorporated into the isolation routing). The parameter that controls this is found on the Settings Tab and is labeled Iso Plot Points Per Application Unit. If you increase this value then the Line Grinder software can detect finer detail in the Gerber Plot objects. However, making this number larger does increase the time it takes to calculate the isolation plot. A value of 1000 Iso Plot Points per inch (or 50 per millimeter) seems to work well. The image at left (click to embiggen) shows the isolation traces around a complex object at 200 and 1000 Iso plot points per inch (respectively) note that the one on the right is much more detailed and finely defined. It should be also be noted that the image is quite magnified - the total length of this object is about 0.250 of an inch when un-scaled.

I Do Not Want Reference Pin Holes Drilled in My PCB Board

Reference Pins are pads of a pre-determined size that you place on the PCB board before you save it as a Gerber plot. Line Grinder finds these pads (and it can tell they are for the Reference Pins because of their specific size) and uses them to align the top and bottom layers. This makes the pads for the board components line up when you drill through from top to bottom.

Reference Pin pads must be present on the PCB layout - Line Grinder requires this. If they are not present, then Line Grinder cannot process the file into GCode. Normally the Reference Pin pads are co-incident with the mounting holes of the PCB. The size of the Reference Pin pads should be entered in the ReferencePinPadDiameter value in the Isolation_Cut File Managers. No other pads should be of the same size as the Reference Pin Pads and the pads should be aligned in a rectangular formation parallel to the X and Y axis.

The Line Grinder software contains an Operation Mode which will generate GCode to physically drill the holes for the Reference Pins. If you do not wish to actually have the Reference Pin pads (or holes) visible on your PCB simply place the Reference Pin pads outside the border of the PCB. The Line Grinder will adjust for this and when the board is Edge Milled out of the larger blank, the holes will not be present in the finished part.

The Pads on the Top and Bottom Layers Are Not Properly Aligned

If the defined Reference Pins are not equal distances from the borders of the PCB board then you will have trouble getting things to line up. The Reference Pins are used by the Line Grinder software to figure out how to flip the coordinates when isolation routing on the bottom side of the PCB board. If, for example, if you have Flip_X enabled in the File Manager, the Line Grinder software will assume that the distance between the far Reference Pin and the right hand PCB border is identical to the distance between the left hand Reference Pin and the border on the left side. If this is not true, then the top and bottom layers will not be properly aligned when they are cut. To put it another way: make the reference pins parallel and symmetrical to the border or you will have problems.