GBRVU Boolean Revision History

This document summarizes enhancements and fixes to Boolean function built into GBRVU. Please consult this page on a regular basis to determine what changes have been made to our programs. This revision history covers:

v2.69 05/27/2005

Boolean Engine Updated

This release of GBRUnion uses a new boolean engine that can "repair" certain illegal polygons. This means that the likelihood that a polygon is dropped in the output because the boolean engine deemed it to be illegal (typically a small self-intersecting loop) is reduced or eliminated.

Path to Boundary Conversion Fix

fixed a bug when converting a short path (one where the length is less than the width) turn into a boundary. The old routine might generate an illegal polygon which would be dropped.

v2.61 06/06/2003

Interface to NETEX-G

The ability to define nets and nodes interactively has been added in order to make this process faster for NETEX-G.

Polygonal Selection

A clipping window can now be defined (using a series of mouse clicks) that is in the shape of a polygon.

Display Fix

When multiple Gerber files that each have paint and scratch internal layers were displayed, the scratch layers from one file interacted with the other files. Fixed.

v2.60 03/26/2003 (RELEASE)

combined patches 2.59d and c.

v2.59d 03/24/2003 (PATCH)

DXF Layer Naming

DXF Layer names were generated using the prefix_suffix. Motorola requested not to use the suffix i.e. input file called test24.gbr would produce a layer called test24_gbr but now produces only test24.

v2.59c 03/21/2003 (PATCH) Rendering of Area Fills Fixed

Areas defined with arc and trace combinations were closed improperly. There is currently no closing attempted on such combinations.

Flexlm License Support Added

Added support for the Flexlm license manager to GBRVU and all submodules including GBRUnion.

GBRUnion Multiple Layer Support

The way that multi-layer union works has been modified. If mutliple input files are supplied and union is requested (multi-layer) then the output file for DXF, EGS and GDSII stream will contain a union of each file in a single output layer. Previous to this, all input files were merged into one output. [Requested by Motorola]

v2.59b 03/07/2003

Fixed a Bug when multiple files input to GBRUnion

If multiple Gerber files were input to GBRUnion and a d-code was redefined between files the GBRUnion output would fail. This has been fixed.

v2.59a 01/14/2003

Added support for 1024 layers

The number of internal layers that is supported was increased to 1024 from the previous limit of 64.

v2.59 11/18/2002

Added Support for Gerber Data with Decimal Points

First encounter of a Gerber file that included explicit decimal points. Support for this has been added.

v2.58 09/12/2002

Corrected the Pentax Output Module

Error data could not be passed properly since v2.57 because the viewer was attempting to open the wrong log file. This has been fixed.

v2.57 08/28/2002

Embedding Level Output Option Fixed

This option has been broken since v2.52 due to problems with log file output. Fixed.

Display problem for files with flashes only

Files that had flashes only on one axis or only a single point were not displayed correctly due to an error in calculating the extents of the data. Fixed.

v2.56a 07/18/2002

Problem with SR (Step-and-Repeat)

Sometimes the a Gerber file could not be viewed if an SR statement was encountered. This has now been fixed.

Sizing Function can now work when "Flatten Only" Option selected.

Previous to this one had to have data fully unionized in order to get data sized up or down (GBRUnion). It is now possible to select "Flatten Only" and still get individual polygons sized.

Internal Boolean Engine now uses Leonov Polygons

Significant improvement in GBRUnion's boolean operations have been obtained by representing them internally as Leonov polygons (i.e. a parent polygon with children) instead of using cutlines to represent such geometries.

v2.56 07/15/2002

Improved the Union Performance

New algorithms in GBRUnion improve the performance when doing large complex union operations.

v2.55h 06/18/2002 (ATGII Related)


this effects only the ATG II specialized tool for Midas Vision Systems.

v2.55g 05/17/2002 (ATGII Related)


this effects only the ATG II specialized tool for Midas Vision Systems.

v2.55f 04/16/2002

(ATGII Related)
ADDED "-datawin:<filename>" ARGUMENT TO DEFINE A DATA WINDOW (ATGII Related)


Layer Table Display

Changed the layer table to right justify the names; for long names the rightmost part displays in the box.

v2.55e 03/18/2002

Gerber Union Bug Fix

File access synchronization was added to files generated from within tool. This was done because there were times when temporary files were generated for GBRUnion but the tool accessed the file before it was complete.

v2.55d 03/08/2002

MDA Import Bug Fix

The MDA Importer (MacDonald Detwiller AutoPlot Format) was fixed.

v2.55c 02/06/2002 (ATGII Related)

ADDED "Sensitivity Background..." TOOL

REVISED "Gerber Union" TOOL

Added "Outer Template Mesh" control to filter out mesh holes smaller than the value specified in the "Hole Size" edit field.

v2.55a 01/30/2002 (ATGII Related)

ADDED "Adaptive Sizing..." TOOL

v2.55 01/25/2002 (ATGII Related)


1) Key to run is ATG

2) Made "Entity Filter Attributes" more informative.

v2.54 12/21/2001 (ATGII Related)


v2.53 12/04/2001


1) Added message box warning to inform user that the magnitude of sizing value cannot be less the Gerber file precision.

2) Changed cursor display while processing to an hourglass so user knows that processing is underway.

3) Fixed a bug that caused program crash due to GBRVUs confusing conflicting DCodes with custom apertures.

4) Fixed a bug that reset the window extents to zero whenever the tool execution was interrupted before completion.

v2.52 11/20/2001

Added error checking for GBRUnion.

Retain the GBRUnion log file after processing complete.

Added a "Flatten Only" option in GBRUnion.

v2.51 11/15/2001

Added "Join Partioned Windows" module to GBRUnion

When selected this rebuilds polygons that were cut because they passed through a partition stripe.

Multithread Support for Boolean Engine

The boolean engine can now detect multiple CPU's in order to run in multi-threaded mode.

v2.50 10/12/2001

Viewer Pops Up in Foreground on W2K

The viewer's display was not popping up in the foreground under W2K. This has been fixed.

GBRUnion Bug Fix

The Gerber Union tool failed to work for a set of RS274D Gerber files when: no layer in position 1 and "cutlines" setting was on.

v2.47 10/08/2001


Additional checks and corrections were added to the exporter module to export valid data even if the Gerber data was not correct.

v2.46      07/25/2001

Revised Geber Union Tool

  • Added a grid point to default window extents to guarantee that data touching the boundary of the window is not clipped.

  • Force single layer output when cut lines option is off. This was done because multi-layer output without cut lines generates unpredictable results: because the program cannot know in advance how deeply nested the boundaries will be prior to the booleanization, there is no control over what polygons scratch or paint.

    v2.45      05/14/2001

    Snap Settings Are Now Remembered
    In older versions the snap settings were not saved from session to session. This has been fixed.

    Revised Layer Table Dialog Box
    Added controls to globally change the on/off states and paint/scratch/negative states of all active layers.

    Gerber Union Layer Control Setting
    Added radio button controls labeled "Single Layer Output" and "Multi Layer Output". These control whether or not unionization is done between layers. If "Single...", it is per layer and between layers. If "Multi..." it is only done per layer.

    Speed Improvement with Data Clipping
    Clip Gerber data prior to union operation. The speed is most noticeable when the user selects only a small part of a layer to booleanize.

    Shortened log to report only errors
    Prior to this release the log file contained much information making it difficult to spot the warning and error messages. This has been fixed.

    Bug fix to clipping rectangular or square traces.
    Prior to this version, Gerber draws using a square or rectangular aperture were not correctly clipped at a window boundary. This has been fixed.

    Bug fix to plotting rectangular or square traces.
    Traces with rectangular or square apertures were incorrectly plotted with half the dimensions of the aperture. This has now been fixed.

    v2.34      12/21/2000

    Added capability to booleanize custom apertures
    A user has now been given the option of doing this by selecting a new menuitem, "File|Import Settings...", and checking the box titled, "Booleanize Custom Apertures". When this option has been set, the user can also control the "Arc Resolution" and "Chord Error" settings for circular data contained in custom apertures.

    Revise "Gerber Union" tool.

    1)Added "Auto" Rectangular Partitioning to automatically define a set of
      partitioning windows, in addition to being able to define them
      manually through the "Manual" option.
    2)Boolean differencing is now applied to scratch layers from the paint
      layer it is scratching out.

    v2.33      12/05/2000

    Fix to "Film Merge" tool.
    This tool was not allowing control of Paint and Scratch for files to merge. This has now been fixed.

    Fix to "Gerber Union" tool.
    The tool was crashing upon reading certain Gerber files. The intermediate file generation that precedes unionization was doing a memory access violation when a certain sequence of elements were read. This has now been fixed.

    v2.31      11/12/2000

    Added "Rectangular Partioning" Controls.
    These control how to divide up the "Data Window" that is specified. The divisions appear as rectangular rows and columns. The operation(s) specified are performed within each rectangular area, and any polygons outside or intersecting that area are clipped.
    a)The "Rectangular Partioning" check box activates this feature.
    b)The "Nx" edit box defines the number of columns.
    b)The "Ny" edit box defines the number of rows.

    Added "Data Window" Controls.
    These define the window that contains the data that is to be partitioned and unionized. The partitioning control has to be set for these controls to be active.

    Added "Sliver" settings controls.
    When the checkbox is set, polygons that are consistently narrower than the value specified in the editbox are removed.

    Added "Gerber Union Memory (MB)"
    Edit box control to allow the user to control the memory usage of the tool.

    v2.29      09/06/2000

    Bug fix when loading flashes
    The Gerber viewer was not capable of loading a number of flashes in excess of 65534 if there were no tool change between them.

    v2.27      08/28/2000

    Added Gerber Union Help
    Help for the Gerber union (QckBool) is now available.

    v2.25      6/29/00

    Added Film Merge Option
    A Film merge option has been added to GBRVU enabling a user to import RS274D (or RS274X) files and to then combine one or more of them and export them as either RS274X or MDA (FIRE 9000) files.

    This has two applications - 1. to convert RS274D into RS274X making it more reliable to transfer to board mfgs. 2. to combine multiple files generated by the Gerber Union program.

    v2.24      6/21/00

    Restored option for Cutline at the output
    In the "Gerber Union" dialog box,  there is now an check box labeled
    "Cut Lines" which controls whether or not to output booleanized polygons
    with cut lines.  If not set, the cut lines are replaced by interior
    polygons drawn on another layer different from the target layer.
    Otherwise booleanized polygons may appear with cutlines.
    When Cutlines is off
    1)RS274D outputs one file per layer.
    2)RS274X outputs one file containing dark and clear layers
    3)DXF AND EGS outputs one file containing layers wilt no paint or scratch information

    v2.23      6/12/00

    Added Control for Max Vertices on Output
    Often the polygons produced by booleanization contain many vertices - so many that the next CAD tool cannot support this number of vertices. A control is now included that enables the user to specify the max number of vertices per output polygon - any polygon that exceeds this number will be broken into smaller polygons that do not exceed the maximum.

    In the dialog box, if you specify 0, then there is no upper limit.

    Added EGS Output for Agilent (EEsof) ADS/Momentum Import
    A new output format, EGS (engineering graphics system) has been added in order to support users of Agilent's ADS and Momentum microwave design software. This enables such users to directly import the cleaned up polygons into their layout tools. (note: this is a separately licensed output module.)

    Bug Fix - structure naming in GDSII output
    Input file names with same base names but different file extensions were generating duplicate structure names in GDSII files.  This has now been fixed.

    would previously create three structures with the same name in the GDSII file.

    v2.22      5/16/00

    Increased number of vertices from 5000 to 65536
    This feature was needed for complex boundaries.

    Output File Directory
    The output filename's directory could not be set to anything other than what the temporary working directory was set to. This problem only occurred when RS274D or RS274X output was being generated. This is now fixed.
    Indicate when Gerber Union tool has completed its task. This means that the tool will show a messagebox indicating "Gbrunion output generated".

    Bug fix with memory management
    This bug deals with memory allocated during querying. It turns out that large amounts of memory were being allocated but not freed when traversing through a trace. This has now been fixed.

    v2.21      4/12/00

    Gerber union tool
    This tool was added to booleanize and or size the polygons in the current GBR file displayed by the viewer. The tool can now output RS274D, RS274X, DXF and GDS output.

    The three modules don't come with the standard gbrvu. You will need special key codes to activate these modules.

    The following explains the usage of this tool.
    1)Use "Tools|Gerber Union..." menu item to launch "Gerber Union"
      dialog box.
    2)Set "Gerber Union" dialog box settings wherever necessary:
      a)"Sizing" specifies how much to grow the polygons.  If set to 0.0,
        the polygons will not be grown.
      f)"Smoothing" edit box specifies which line segments to take out.
        Any segments smaller than the length specified are taken out.
    	This works with the "Sizing" control and was created to avoid the
    	apearance of spikes when sizing.
      c)"Arc Resolution" setting controls how circular data is broken up 
        in degrees.  The finer of the arc resolution and the arc sag is
      d)"Arc Sag" setting controls how circular data is broken up 
        by specifying the perpendicular distance from an arc chord midpoint
    	to the actual arc.  The finer of the arc resolution and the arc sag
    	is used.
      e)"Cut Lines" check box controls whether or not to output
        booleanized polygons with cut lines.  If not set, the cut lines are
    	replaced by interior polygons drawn on another layer different
    	from the target layer.  Otherwise booleanized polygons may appear
    	with cutlines.
      f)"Output File Name" is the name of the output file that will be
    3)Hit OK and the tool will generate the booleanized file in the selected format.

  • Home Download Price Revision
    PDF DataSheet
    [145K 2 pages]

    417 Ingalls St., Santa Cruz, CA 95060    Tel (831) 426-6163     Fax 426-2824    email: