GBRFRAC WEB Logo

Revision History

This page summarizes the changes and fixes to each version of the GBR2OASFRAC program.



Version 1.13 2/1/2019

New 64 bit version with VS2015

This is a new 64 bit version with VS2015 compiler. It has all the latest upgrades made to the Gerber translator in the past few years.




Version 1.10f 9/22/2016

GBRUNION Smoothing Issue

Certain cases of smoothing and the amount of partitioning resulted in cracks appearing in the polygons generated by GerberUnion. This was because the partition edges were not being excluded from the smoothing.




Version 1.10d 8/9/2016

GBRUNION Manager (gbrunmgr.exe)

Allows unit specification where unit can be INCH, MIL, CM, MM, or UM. This has been added for the following arguments:

-arcsag:val[unit]

-diameter:dia.[unit]
-diameter_lpc:dia.[unit]

-offset:x[unit],y[unit]

-xform:xform_parms    
	Set transformation settings 
    (comma separated).
    xform_parms are: 
     rotation_parms,
     mirror_parms,
     scale_parms,
     offset_parms
	 
    rotation_parms are:
    anchor_x[unit],anchor_y[unit],rotation
	   
    mirror_parms are:
    mirror_x,mirror_y
	   
    scale_parms are:
    scale_x,scale_y
	   
    offset_parms are:
    offset_x[unit],offset_y[unit]

-overlapvalue:value[unit]

-circularize[:chord_err[unit]]

-reversal:marginx[unit],marginy[unit]

-sizingvalue:value[unit]
-smoothingvalue:value[unit]
-smoothingvalue:value[unit]

-window:
  xmin[unit],
  ymin[unit],
  xmax[unit],
  ymax[unit]




Version 1.10c 4/20/2016

Revision to Gerber PreProcessor

This is now applied all the time instead of conditionally as indicated below:

  • Format specified was too high.
  • Multiply defined apertures were detected.
  • High dcode value was detected.

  • If Gerber data is in mm, data is converted to 5 places of precision before it's interpreted and unionized. Likewise, if data is is in inch, data is converted to 6 places of precision.

    Union Library Update

    Optimization has been applied for handling polygons with large vertex counts.
    Robustness has been improved by adding internal checks between steps.




    Version 1.10b 1/13/2016

    Boolean Sizing Bug

    Data was being dropped when sizing was used on a customer Gerber file. This has now been fixed.

    Convex partitioning for each polygon required using double comparison rather than rounded integer comparisons.




    Version 1.10a 11/21/2015

    Faster Boolean

    Optimized function for disjointing self touching polygons to work faster.




    Version 1.10 11/4/2015

    Fix Gerber Sizing Issue

    Fixed problem with missing trace after sizing certain Gerber polygons.




    Version 1.09h 10/23/2015

    Fix Gerber Interpertation of Thermals

    Gerber union fix to the way the software converted thermals.




    Version 1.09g 8/17/2015

    Fix Gerber Interpertation

    Handle empty SR blocks.
    Checks Gerber data to see if format is X.Y, that X and Y are enough for that data. Before, everything that would depend on that format had scaling problems that would result in an overflow.

    Protect Gerber Union Window Extents Against Unit Display Changes

    Before this, these window extents were altered to reflect the current units displayed. This has now been fixed.

    Scale Circularize Chord Error when Gerber Union Scales its Data



    Version 1.09f 7/9/2015

    Gerber Union Fix

    Reduce ADD mass parameters to a minimum amount regardless of the presence or absence of AM mass parameters.




    Version 1.09e 6/18/2015

    Gerber Union Fix

    Problem with preliminary step preceding validation and unionization was discovered. This involved removal of overlapping segments in a polygon. The problem was that a given polygon was being conditioned incrementally rather than reevaluated after a given segment was removed. It resulted in a crash. This has now been fixed to fully evaluate a polygon each time a segment is removed.




    Version 1.09d 6/8/2015

    Gerber Union Manager Updates

    Max points control fixed.
    Folded polygon was dropped but now repaired.
    Sized polygon was dropped. Issue was fixed.




    Version 1.09c 4/22/2015

    Reduce RS274X AM and ADD mass parameters

    Reduce RS274X AM and ADD mass parameters to a minimum amount. The minimum is approached by detecting similar AM mass parameters and mapping them to one, consequently reducing the amount of dcodes required.

    The reduction is applied for files with:
    High formats.
    Multiply defined apertures.
    Over 5000 ADD mass parameters specified or one ADD mass parameter which has dcode greater than 5000.




    Version 1.09b 11/16/2014

    Windows 64 bit

    Gerber unionization stage has been updated to run with 64 bit executables where such executions are permitted (on Windows 64 bit).




    Version 1.09a 4/16/2014

    Polygon Dropped

    Complex polygon with over 250000 vertices was dropped during the union operation. This has been fixed.




    Version 1.09 3/26/2014

    Polygon Dropped

    Complex polygon was dropped during union operation under certain banding condition. This has been fixed.




    Version 1.08b 1/14/2014

    Log File

    Polygons dropped during repairs are flagged as errors if polygon is considered suspect.

    XY coordinates for warning/error messages are now specified in floating point values rather than integer based.




    Version 1.08a 1/6/2014

    Number of apertures

    This version supports up to 40000 apertures in the Gerber file (before it was 10000).

    Dimension Filtering

    Added dimension filtering during union validation. For inch it's 0.00004 and for mm it's 0.001. This filtering removes features that are smaller than this dimension when repairing self intersecting polygons




    Version 1.08 November 25,2013

    Internal layer support

    This version supports up to 4096 internal layers in the Gerber file.

    Header File

    HEADER FILE, igbr2oasfrac.h, IN "include" directory has been revised.
    The C++ data structure field, m_WorkDir, in sGBR2OASFRACOPTIONS, has been changed from a (char *) type to a std::string type




    Version 1.07 October 5,2012

    Arc Issues

    The shell has been updated to only allow positive nonzero chord error.
    Gbr Union Manager Engine has been updated to set arc resolution to 45.0 when none is specified and chord error is nonzero.




    Version 1.06a June 22,2012

    Gerber Union problem

    A bug was discovered involving data that was stepped and repeated. If such data exceeded a specific vertex count,it would be processed over multiple threads. It is this multithreaded processing which caused the program crash. This has now been fixed.




    Version 1.06 June 20,2012

    Gerber Union Dropping Data

    When reentrant polygons are stepped and repeated, validation is required on that data to prevent it from being dropped.

    Layer Dialog Reorder

    This bug was introduced in v3.17 - 08/31/2011. Layers would disappear when reordering. This has now been fixed.

    Log file in Gerber View

    This was done for error checking that was missed from within Gbrvu.




    Version 1.05 04/26/12

    2048 layers

    One of the modules failed to support Gerber files with over 1024 layers. This has been fixed.




    Version 1.04 08/09/11

    No Fracture option

    Added "No Fracture" option in "OASIS Fracture Settings". This option disables polygon fracturing when set. Default is off..




    Version 1.03a 06/23/11

    Empty Gerber SR blocks

    This version handles empty Gerber SR blocks and we increased layer buffer size to support 1024 LP commands.




    Version 1.03 05/24/11

    Polygon Repair

    A validation phase has been added to repair polygons while preserving data hierarchy. This was done as an optimization to prevent that from happening for multiple reference instances.

    Tiling Speed

    Tiling engine has been optimized to explode data more quickly.

    OASIS output crash

    OASIS formatter had a program crash related to modal sorting. This has now been fixed.

    Tile Sort

    When position sorting was requested, polygon fracturing was not organizing polygon vertices in counter clockwise orientation with bottom most left most point being first. This has now been fixed.
    Tile structure naming and ordering has been corrected.




    Version 1.02 05/2/11

    Add Job ID feature

    This version includes a new feature which allows the user to define a string of text (Job ID) and a location. The text will be translated to OASIS as part of the Gerber file.


    Job ID settings have been added to the library. The GUI has added controls which are labeled:

    Label         Description
    
    (a) User String   Job ID String
    (b) X             Text X Location in Gerber Units
    (c) Y             Text Y Location in Gerber Units
    (d) Size          Text Height in Gerber Units
    (e) Rotation      Text rotation in degrees
    (f) Mirror        Text reflection across Y
    

    The C and C++ API have new member options corresponding to the new GUI controls and they are:

        -------------------------------------
        C Data Structure _sGBR2OASFRACOPTIONS
        -------------------------------------
          mJobIdUserStr (const char *)
          mJobIdX (double)
          mJobIdY (double)
          mJobIdSize (double)
          mJobIdRotation (double)
          mJobIdMirror (int)
    
        --------------------------------------
        C++ Data Structure sGBR2OASFRACOPTIONS
        --------------------------------------
          mJobIdUserStr (std::string)
          mJobIdX (double)
          mJobIdY (double)
          mJobIdSize (double)
          mJobIdRotation (double)
          mJobIdMirror (int)
    
    

    The C and C++ API have new commandline arguments for by_Cmd functions, and they also correspond to the new GUI controls. These arguments are:

    
    ------------------------------------------------------
    C Function 
    NGbr2OasFrac_convertGBRToFracturedOAS_byCmd
    And
    C++ 
    Function convertGBRToFracturedOAS (by command)
    ------------------------------------------------------
    
    Argument           Description
    
    -jobiduserstr:str  Specify Job ID string str.
    -jobidx:value      Specify Job ID X  in Gerber units.
    -jobidy:value      Specify Job ID Y  in Gerber units.
    -jobidsize:value   Specify Job ID size in Gerber units.
    -jobidrotation:r   Specify Job ID rotaion in degrees.
    -jobidmirror       Specify Job ID mirror.
    

    The sample program has been updated to handle the new command line arguments.


    Arc Resolution removed

    Arc resolution has been removed from GUI settings. When chord error is 0, it is set to 9 degrees. Otherwise, it is set to 45 degrees.




    Version 1.01 04/12/11

    Format 4.6 issue

    There was a bug fix to Gerber union phase with when converting a high format file from 4.6 MM format. It was incorrectly changed to a 2.6 format which produced data overflow. It is now converted to a 3.5 format during this phase when data overflow is detected.




    Version 1.00 04/10/11

    New GBR2OASIS

    First release of our GBR2OASIS Fracture converter on Windows.