Marsette Vona: Visolate Applet Info

 
Visolate example image

click to run the applet, applet with auto library download, or Java Web Start

Status

     This is alpha quality code. In particular, the gerber parser is incomplete (polygons and inverted images are not implemented, for example), and I am still in the process of testing/debugging the g-code output. Be very careful attempting to drive a CNC machine with g-code generated by this applet. It could potentially cause damage to you and/or your machine.

Requirements and Installation

     Visolate has been tested under 1.5+ JREs from Sun with Java3D 1.5+ on Linux (Mozilla) and Windows (Firefox). Other JREs may work, but working installations of Java3D (not typically included with a JRE) and Swing (typically only included in full with Sun JREs, at the time of this writing) are required to run as a stand-alone application. Note that at the time of this writing, Java3D 1.5+ on Mac OS X itself apparrently requires JOGL. Both the Java Web Start and the the applet with library auto-download links above should automatically download any necessary Java3D and JOGL libraries. Note that you should only use the applet with library auto-download if you do not already have the necessary libraries installed on your system. For example, Apple has recently been delivering Java on OS X with the necessry libraries pre-installed. If unsure, try each link above in order. Finally, note that the auto-download system does not actually install the downloaded libraries onto your system; they will only be available for the execution of this applet.

What and Why

     This applet computes PCB isolation routing toolpaths, optionally following the boundaries of the entity Voronoi diagram induced by the traces. Given a board design, the program computes a toolpath for a CNC mill to cut out the traces.

 

     Printed Circuit Boards (PCBs) are in virtually every piece of modern electronics. They start out as a sheet of fiberglass (or in low-end systems, a cheap plastic called phenolic). Then they are coated on one or both sides with a continuous sheet of copper. Then, in normal manufacturing, a photochemical process is used to remove much of that copper, leaving a desired pattern of traces (i.e. wires) to which electronic components are then soldered to form the desired circuit.

 

     However, for some applications, particularly very low-volume production, production in home or office environments, and rapid-design cycle R&D environments, the setup costs, environmental hazards, mess, and not least sensitivity of such processes to many variables, suggest that other methods of PCB production be explored.

 

     Mechanical etch is one major alternate method for PCB production. This process also starts with a copper-clad PCB. However, the unwanted copper is removed mechanically rather than chemically. Most often, a fine-point rotary tool bit is used to create a separation in the copper around the boundary of each trace (middle board in the picture below). The extra copper remaining between the traces is usually left in-place, as it is no longer electrically connected to any trace.

 

     The obvious thing to do would be to use a very small cutter and just cut around the entire boundary of each trace. In fact, there are a number of commercial systems already available which do just this, for example LPKF's products. But we were are also interested in an alternate method: compute the Voronoi region associated with each trace and cut along the boundaries between such regions.

 

     What is a Voronoi region? Simple. Imagine that instead of a PCB we are talking about a big flat field of uniform dry grass. Yes a field of grass. Now, simultaneously and uniformly, start little fires where all the traces would be. As each trace's fire spreads, the burned region it leaves is the trace's Voronoi region. You can imagine that the fires from two nearby traces will eventually expand, meet each other, and go out. These meetings of fires occur at the boundaries between the Voronoi regions.

Example

 
 
This image shows the same printed circuit board (PCB) manufactured three different ways: by traditional photochemical process (right); by mechanical etch with standard outline toolpaths (middle); by mechanical etch with Voronoi toolpaths (left). The board on the right has also had additional processing: it has been drilled and tin-plated.

How

See the paper "Voronoi toolpaths for PCB mechanical etch: Simple and intuitive algorithms with the 3D GPU" by Marsette A. Vona and Daniela Rus, which is published in the proceedings of the International Conference on Robotics and Automation, 2005.

Download

This applet is released in source form under the GNU GPL.

Acknowledgements

Disclaimer

     THIS INFORMATION AND/OR SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS INFORMATION AND/OR SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

 

vona@mit.edu © 2008 Marsette Vona Wed Jan 23 18:51:07 EST 2008