gbr2greyscale web page logo


GBR2GREYSCALE Revision History

This page contains the summary of GBR2GREYSCALE release dates, versions and changes/fixes made for that release.



Version 2.11a 10/1/2024

Improvements to Boolean library

This version fixes an issue in the Boolean engine related to polygons (which may be the result of intermediate calculations) having short edges (< 5 DBU). This was manifest as dropped data as was the result of the presence of redundant data in the Gerber stream (several coincident pads instantiated at the same location across paint and scratch layers).


Version 2.11 7/26/2024

Improvements to Boolean library

This version reflects enhancements to the new recovery flow in the boolean library introduced (and described) in the v2.10f release notes.
These improvements which do not impact throughput and sometimes even improve it will be propagated in other Artwork products as they are released. These improvements should have favorable impact on those flows where booleanization and especially erosion occur.


Version 2.10f 7/15/2024

Issue with Boolean library

This version fixes a bug in the boolean library. A new approach was introduced in the Boolean library in detecting serious data loss. This release represents the first cut in a new recovery strategy when data loss is detected. It is expected that this new detection/recovery method will be further enhanced in the next couple of months.


Version 2.10e 6/14/2024

Issue with Boolean engine

This version fixes a bug in the boolean library when handling two nearly identical polygons in a much larger data set that manifested as a crash in the boolean engine. The library was fooled into thinking that it was handling a "butterfly" configuration when in fact it was not.

Zombie Process Issue

This release addresses an issue of a zombie process as the result of a user cancel. In particular Gerber2Greyscale launches the GbrUnionMgr to support erosion. GbrUnionMgr will in turn spawn a copy of Boolw64f which can be exploder limited for very large (intermediate GDS) files.
Under the right conditions (after scanning the input file) Boolw64f will launch Boolql64 which is based on QISLIB (the precursor to QisMLib). It's exploder is quad tree based so it lends itself to improved throughput for larger data sets.
Previously, if Boolql64 was active and GbrUnionMgr was killed or if Boolw64f was terminated for any reason Boolql64 would be unaware of this and would attempt run to completion.
With this new release Boolql64 monitors the execution state of its parent and kill itself if the parent is no longer running.


Version 2.10d 5/19/2024

Issue with Zero Length round draw

This version fixes an issue where a zero length round draw was converted to a flash in the context of erosion which manifested as a crash in the boolean engine while dereferencing a GDS cell that did not exist.
The missing cell definition in turn was the result of an indexing bug when looking up the Dcode for the zero length draw replacement as a flash. The Gerber preprocessor shared no fault in this problematic flow, rather the issue lay with a module that appears between the preprocessor and the boolean engine.


Version 2.10c 5/2/2024

Endless Loop

Gerber2Greyscale exhibited a behavior where the preprocessor was stuck in an endless loop. The preprocessor aims to minimize the total number of Dcode and custom Dcode (RS274X macros) definitions and uses the -macro_tol:value command line option. In this case, the customer specified the macro tolerance to be 0.000005 mm (5 nm) in which case it was unable to coalesce many of the 12540 Dcode definitions which in this case 12341 were line macros involving a single line draw construct. By default the maximum number of Dcode definitions is 9999.
There are two workarounds to this issue, (1) either relax the macro tolerance or (2) allow for a larger number of Dcode definitions.

Dropped data

The Split274x preprocessor breaks up polygons according to the user specified -maxpts:number command line option. For the Gerber file associated with this issue a round hole was lost during this boolean issue. This data loss attributable to the boolean library was recognized and repaired in the preprocessor. The boolean library was not changed.


Version 2.10b 2/17/2024

Bug fix to Boolean component acsbool64.dll

The built in error reporting system had a bug which was introduced on 29 January 2024 causing the program to crash. This has now been fixed.


Version 2.10a 2/13/2024

Speed Improvements

This version is an upgraded version of v2.10 (it has some newer modules in addition to Gbr2greyscale DLL and EXE). The header file has not changed. In this version the Windows CopyFile API was replaced with MoveFile, preceeded by a DeleteFile of the target file, to improve throughput.


Version 2.10 1/24/2024

Data loss during compensation - New command line -dirtydata

This release fixes an issue that manifests as serious data loss for a particular Gerber file when compensation is invoked. The data loss occurs during unionization before compensation. This data loss is the result of the input Gerber being very "dirty".
A new flow was added to handle this class of data in an effort to remove degeneracies in the intermediate boolean results. This flow can be invoked from the Gerber2Greyscale command line with -dirtydata or -dirtydata:N (N = 0 or 1).
-dirtydata:0 is equivalent to not invoking this mode.
-dirtydata and -dirtydata:1 are equivalent and invoke the new flow.

When using the library this new flow can be invoked by setting the member mDirtyData of struct sGREYSETTING to 1. As such, a new header file igbriplib.h is provided with the package. Regression testing was performed with the production command line executable gbr2greyscale64.exe as well as the executable built from the sample code provided in the package with the new flow active and not. This new flow appears to mitigate the degeneracies associated with the data found in the customer file and does not seem to impact throughput. In fact, some improvements in fidelity were discovered during regression testing.
An alternative flow (mDirtyData == 2) is being developed and is part of this release but its use is discouraged at this time. It is thought that this alternative flow will provide a yet more robust model in mitigating bad boolean behaviors but it is expected to be slower.
The gdscompact engine was added to the unionization flow in August of 2006 to improve throughput when encountering RS274X (S)tep and (R)epeat mass parameters specifying more than one column or one row. Now with all flows, new and old, invocation of the gdscompact engine is disabled when erosion has been invoked.
It was discovered during careful examination of the new vs. old flows that this optimization can (but most often not) generate spurious results associated with erosion. For simple unionization (no erosion) this optimization is not turned off. If necessary this restriction can be defeated by providing --skip_gdscompact as a Gerber2Greyscale command line option or setting the member mSkipGdscompact of struct sGREYSETTING to -1. The values to both new member variables mDirtyData and mSkipGdscompact can be set via the environment variables ACS_DIRTYDATA and ACS_SKIP_GDSCOMPACT respectively. This can be helpful in affecting desired flows without any changes to test scripts, command line options or APIs.

This version contains the same Gbr2Tiff modules as in GBRIP Version 8.12a (released 16 January 2024).


Version 2.09 11/5/2023

Updated header file

This release includes the updated header file igbriplib.h which was not provided with the previous 2.08 package.


Version 2.08 11/3/2023

Long File Name

This release fixed an issue where customer supplied extremely long file names that exceeded the WIN32 maximum of 260 characters. This was achieved by not making use of the customer supplied output base name but rather a (short) unique temporary name for all intermediate steps. At the end the output is copied from the working folder to the target folder with the user supplied base name by way of the Windows CopyFile API and signally to the OS to make use of the names literally by prefixing them with the "\\?\". Use of this technique does not allow for the use of relative path names which required some attention in providing this fix.

This release contains the same Gbr2Tiff modules as in GBRIP Version 8.12 (released 24 October 2023).


Version 2.07i 9/27/2023

Log file issue

A problem was reported such that when using the GBR2GREYSCALE DLL the working folder could not be cleaned up because log files associated with the split274x Gerber preprocessor were not closed.
In addition to this issue, a memory leak associated with a boolean function (window break) was fixed.
These issues would not be apparent in the use of the EXE version of GBR2GREYSCALE.

This release contains the same Gbr2Tiff modules as in GBRIP Version 8.11a (released 27 September 2023).


Version 2.07h 9/16/2023

Software Update

This new version of Gerber2Greyscale makes use of that new version of split274x and the latest boolean engine.


Version 2.07g 8/7/2023

Boolean engine hangs during sizing

This version addresses a problem when the boolean engine is invoked (as in the case of erosion). A customer ODB++ file and the associated Gerber file had many redundant lines and pads. Specifically, the first internal paint layer (there were 56 layers in total) of the Gerber file contained 13919 drawables of which only 487 were unique. The boolean engine makes estimates of the data complexity by counting vertices and intersections between edges. The overlapping identical polygons played havoc with the boolean engine's complexity estimator while the boolean library had to do a lot of extra work to remove the degeneracies introduced by these perfectly overlapping polygons. Where before the job associated with the aforementioned Gerber file never completed, the entire job finishes in under 30 seconds.

This version contains the same Gbr2Tiff modules as in GBRIP Version 8.10 (released 27 July 2023).


Version 2.07f 11/29/2022

Improved Speed

This version has throughput improvements in unionization and sizing (new boolean engine and library) when the Gerber file to be rasterized is large (>> 250 MB). Customer reported that v2.07e was more than 19x slower than v2.07b for the files in question.

This version contains the same Gbr2Tiff modules as in GBRIP v8.07 (released October 1, 2022).


Version 2.07e 9/12/2022

AutoWindow Fix

This version fixed an issue where a particular Gerber file is processed incorrectly by the Gerber preprocessor. The "problem" was manifest in that the autowindow feature provided incorrect (much larger) extents than the original data. This error happened only under the (default) condition that rounded ended arc draws are outlined (converted to polygons).
This issue in the preprocessor has been corrected. Module testing of the new Gerber preprocessor which represents 4382 tests (1451 Gerber files x 2 execution modes and 740 Gerber file x 2 execution modes) yielded no differences except with respect to this new problem file.

Improved Speed

This version has throughput improvements over the previous release where regression testing used to take 7 hours. This time has been reduced to 4:50 (hh:mm). This improvement in throughput shows up in a number of "corner" cases that are part of the Gerber2Greyscale regression test. Even though these "corner" cases are taken from production data the speed up will not be manifest otherwise.


Version 2.07c 6/17/2022

Improved Sizing speed

This version fixed an issue where a Gerber file that is constructed of a hatch pattern where many of the pathlike features that make up the hatch have rounded ends on one side and "flush" on the other. The observed bad behavior appeared to be excessive throughput times. This behavior only manifested itself with erosion (compensation) otherwise throughput was reasonable. Erosion is achieved by way of a boolean engine and throughput goes as N^2 with complexity. Complexity is measured in terms of vertex counts and the number intersections. Throughput can be improved by linearization (avoiding the N^2 regime) by dividing the problem set into smaller domains. This data set fooled the algorithm used to measure complexity resulting in not adequately dividing the problem set into enough domains.


Version 2.07b 6/6/2022

Gbr2Greyscale DLL Issue

Fixed an issue where when using the Gbr2Greyscale DLL the input file handle was not closed/released by the Gerber preprocessor. This issue did not manifest itself when the -nosplit command line option was used.

File name with Comma

Fixed a problem when a file name or folder name had a comma. This problem manifested itself as a problem because comma is used as a delimiter in the job file (a dynamically created resource file) for the actual import of the Gerber data into various modules. If the path or base name contained one or more commas this would/could cause some confusion when reading the job file.




Version 2.07a 5/29/2022

Fix Related to Circular trace arc draws

This version fixes an anomalous behavior in the Gerber preprocessor where "MoveTo"s are implemented with circular turned ON and the -outline_arc_draws option is active but linear/circular interpolation (G[0123]) is not shown explicitly.




Version 2.07 5/22/2022

Fix Related to Circular trace arc draws

Fixes an issue related to circular trace arc draws. Gbr2greyscale now implements the same policy in the Gerber preprocessor in the support of circular trace arc draws that was introduced in GbrRip Version 7.65. This behavior can be turned off with the -outline_arc_draws command line option.




Version 2.06 2/13/2022

Boolean Engine Fix

Selection of ROI (region of interest) could result in highly different throughput. The difference in speed had to do with whether or not partition boundaries interacted with the members of the holes of polygons where the hole count was large (> 50000), resulting in an N^2 problem. An optimization in the core boolean library removes this N^2 problem.




Version 2.05 1/11/2022

Boolean Engine Fix

This version fixes all known issues presented by small "pits" and gaps associated with data partitioning that were the product of negative sizing. A bug in the boolean engine was fixed that depending on user settings resulted in dropped data or a crash.
This version of Gbr2Greyscale effectively contains GBR2TIFF v8.03 which includes the latest version of split274x the Gerber file preprocessor, a module that is also used by Gbr2Greyscale (depending on the data flow path). This version of split274x fixes a bug that for certain conditions resulted in the wrong amount of erosion in the final output.




Version 2.04 12/21/2021

Boolean Engine Fix

This version fixes a bug in the boolean engine where the interactions between polygon data generated from arc data generate small artifacts (gaps and pseudo cutlines). This resulted in dropped data (in this case pads) when the nonconforming unionized data is passed to the sizing module. The sizing module requires "clean/legal" data (assumed to be the case as it is passed from the upstream boolean flow). Now pseudo cutlines are removed from the unionized output.




Version 2.03 12/12/2021

Optimization Fix

This version fixes a problem introduced with version 2.02 in regards to optimization to improve throughput for paint and scratch.




Version 2.02 10/16/2021

Improved Boolean

Fixups for Boolean operations that resulted in dropped layout geometries; in particular, an improved recovery method for polygon repair during unionization for intermediate Boolean results.




Version 1.75 6/30/2021

Image After Dithering

This version has a new header file with changes to allow the user to know the dimensions of a dithered image..

Big TIFF

GBR2GREYSCALE now supports Big TIFF.
Big TIFF is turned on with the -bigtiff command line option.




Version 1.74 3/23/2021

New Dithering Output

This version has a new header file so the user should be able to build and run the sample program successfully.




Version 1.73 3/3/2021

New Dithering Output

New dithering output option.




Version 1.72 2/11/2021

Software Updates

Fixed the issue of dropped data.




Version 1.71 11/17/2020

Software Updates

Fixed the issue where there are missing data in the output when erosion (sizing) is used.




Version 1.69 8/7/2020

Software Updates

Fixed the issue where there are missing data in the output.




Version 1.68 5/12/2020

Software Updates

Fixed the issue where extra data appear on the edge of a small path. This was fixed by handling draws that cross raster boundaries specially.




Version 1.67 5/8/2020

Software Updates

Fixed the issue where data was missing in the output. This was caused by a flash that had no dcode assignment. If there is a flash/draw without a dcode assignment (G54), dcode 10 is used as default. In this case, the input Gerber file did not have dcode 10 defined. This caused the rasterizer to drop the data and miscalculate the extent of the file. In order to fix this issue, the software now defines dcode 10 as a zero width circle if it's undefined and referenced.

Fixed the issue where unwanted circles appear in the output due to a state problem as a result of remembering the last position within G36/G37 blocks when G36/G37 blocks appear between draw data.




Version 1.66 4/13/2020

Software Updates

Fixed the issue where an arc appears in the output when shrink is used.
Fixed the output header to reflect DPI with decimal values.
Updated some modules to increase the maximum number of internal Gerber layers (LPD/LPC/SR) supported from 262144 to 1048576 for 64 bit. For 32 bit this limit is unchanged.
Fixed an issue where the top part of the output was missing pixels.
Updated boolean library to the latest (v2.645).




Version 1.65 12/24/2019

New GrayScale Output Options

This version includes support for optional argument -super:18|28|48




Version 1.64 8/1/2019

Software Updates

This version has an updated pre-processor to fix a bug where it crashes when ran several times consecutively. This was caused by file handles that were not closed after each run.
Added functionality to support non-standard comments instead of flagging the Gerber file as invalid.




Version 1.63 7/3/2019

Software Updates

Fixed an issue where two round flashes were merged together. A state problem related to modality where the last G36/G37 coordinate was not used in computing the position of the subsequent flash was fixed. This was a previously un-handled case where the last G36/G37 polygon was a 360 arc. Because the start and end coordinates were the same the code that collects G36/G37 data blocks when separating draw and flash data from polygon (area fill) data incorrectly computed the position of the position of the misplaced flash.

Fixed the issue where temporary files were left open and locked when the pre-processor crashed. These files will now be unlocked and removable in the event of a crash.

A crash which was caused by the presence of non-Gerber records in the Gerber file. This class of data is now trapped and a message to the effect that the input file is either not a Gerber file or corrupt is issued. IN addition, the offending data and line number are reported in the log file. This condition is treated to be fatal and will result in no output.

Gerber data extents that are defined by circular data are now computed properly. Previously, this could result in a raster image that appeared to be truncated in the event of auto windowing.




Version 1.62 6/5/2019

Software Updates

Fixed the issue where data was dropped.
Fixed the issue where many errors are reported when ripping a GBR file. This was caused by how the tool converts paths with 2 points both of which are in the same coordinate. We now convert those paths into flashes.




Version 1.61 4/1/2019

Software Updates

Fixed the issue where some scratch data are dropped. This was caused by a bug in repairing an illegal polygon. A part of the polygon was hidden because its orientation was mistakenly changed.




Version 1.59 1/24/2019

Software Updates

This version fixed the issue where a Gerber file with many layers (> 35K) fails if ran with sizing.

This version fixed the issue where there is an output offset discrepancy when a Gerber file is ran with and without sizing. This was caused by a dropped scratch data on the border of the Gerber file during sizing. .




Version 1.58 11/22/2018

Speed improvement

Modified the code so that inverse is performed during plotting to improve timing.




Version 1.57 10/15/2018

Software Updates

The latest split274x fixes an issue where output data is incorrectly drawn. This was previously caused by a bug in resolving the input Gerber's G36 and G37 state.
Added support for command codes in lower case.




Version 1.56 6/29/2018

Crash fix

This version fixed an issue where data is either dropped or the program crashes when converting a Gerber data with poorly constructed polygons.




Version 1.55 6/6/2018

GBRPLT.DLL Update

Fixed an issue in the buffered reading scheme for Gerber in GBRPLT.DLL. The problem is related to stale data (from previous runs or previous file reads) that resides beyond the end of an active buffer that coincides with "white space".

Too many layers

Fixed an issue where data was dropped because of too many Gerber layers. We increased the allowed maximum layer number to 256k in order to fix this issue.




Version 1.54 5/9/2018

Software Updates

Fixed an issue where some arcs were not sized properly if processed without shrink.

Fixed an issue where the margin of an IPNEG Gerber file differs when processed with or without shrink.

Added the optional argument to invert margin only. It can be used in the command line by specifying "-inverse_margin" or in the library by adding it to sGREYSETTING's mRArgNum and mRArgs.
This will allow the user to invert the polarity of the margin around the artwork. This new command line will complement the existing -inverse option which inverts the polarity of all the output (margin and artwork).
In the event when both of these options are used, the margins will stay the same and the artwork will get inverted.




Version 1.52 4/9/2018

Border and Margin Bug Fix

This version fixes a reported problem where borders are incorrectly identified and margins are not inverted when the input Gerber file is:

  1. negative
  2. and
  3. is processed with sizing.

New Control of Chord Error

Added the chord error argument in the pre-processor. The mChordError parameter in sGREYSETTING or the -chord_error:val command line argument will automatically be passed to the pre-processor.

The chord error, if passed, will override the arc resolution control. This will help cut down the pre-processing time without sacrificing the smoothness of large arcs.




Version 1.51 4/4/2018

Bug Fix - Incremental Gerber Data

Fixed the bug where GBR2GREYSCALE failed to convert Incremental Gerber files. The pre-processor now converts trailing zero and incremental Gerber files to leading zero and absolute RS274X instead of preserving them.


Decimal Formatted Gerber Files

Decimal format Gerber files are no longer supported.


New Control for Gerber Pre-Processor

A new parameter was added to pass additional arguments to the pre-processor. It can be used on the command line by specifying "-splitargs opt_args" or in the library by populating sGREYSETTING's mSArgNum and mSArgs. This can be used to speed up the rip.




Version 1.50 2/15/2018

Bug Fix - Dropped Re-Entrant Polygon

Fixed an issue where a single polygon, made up of digitized areas connected by "cutlines", is dropped. The Boolean function that processed/repaired holes and cutlines was updated.


Bug Fix - IPNEG combined with LPD first layer

Fixed an bug where data was dropped when an input Gerber file with Negative Image Polarity (IPNEG) starts with a "Level Polarity Dark" (LPD).


Bug Fix - Large Vertex Count Polygon

Fixed a problem where split274x was not able to handle polygons with large vertex count.


Bug Fix - Axis Rotation

Fixed an error where a Gerber file with an axis select that assigns output device axis A to data axis Y and axis B to data axis X (ASAYBX) is not rotated properly.




Version 1.49 1/29/2018

Software Updates

Fixed an issue where high enumerated Dcodes were not handled properly - the default maximal value is 9999.

The latest version removes references (draws and flashes) to Dcodes that are not defined - this condition caused GBRPLT.DLL to fail in the previous release.




Version 1.48 11/2/2017

Software Updates

This version fixed the issue of integer overflow with the Gerber input file.




Version 1.47 10/30/2017

Software Updates

Updated GBRIP to prevent messages from popping up when "-silent" option is specified.
The failure message will be recorded in the log file.




Version 1.46 6/21/2017

Software Updates

Updated GBRIP to fix the issue where some of the surface data were not scaled properly.

Added optional argument -ignore_deprecated to ignore axis select and mirror mass parameters. Added member to sGREYSETTING: mIgnoreDep (default is false on Init).




Version 1.45 5/3/2017

Software Updates

%ICAS% was dropped - this has been fixed.
(2) Fixed the issue where a round is erroneously converted into a rectangle.
(3) Fixed the issue where the raster crashes when the "-nosplitshrink" option is not used.




Version 1.44 3/14/2017

Large Vertex Count Polygon - Fix

Fixed a program crash that occurred when converting and qualifying a large vertex count polygon.A handler was added for this type of hard crash when qualifying the input data (implies NOT -nosplit). We will be adding the handler to other modules in our flow in the near future.

Added support for ASAYBX Mass Parameter

Fixed a reported problem where raster output is incorrect due to the XY axis swap designated (ASAYBX) mass parameter.




Version 1.43 1/18/2017

Enhanced reporting

Fixed conditioning flow to report an error if the file format is wrong. We added a check to make sure that the designated mass parameter is not out of place.




Version 1.42 11/1/2016

Data Conditioning Option

A new command line argument has been added:

-conditioning_retry:<num>

and a new member of sGREYSETTING, mCondRetry, which enables the "rerun" of input data conditioning a number of times to try to fix bad input data. This data fixing is done ahead of the rasterizer module (which has its own data conditioning routines). This argument should not be used regularly but rather in cases where the input data has been found to be particularly "dirty" - for example, several duplicate points that result in dropped polygons. A good starting value for <num> is 2.




Version 1.41 10/9/2016

Circular Issue

This version fix an issue where an optimization introduced in v1.40 for handling full circles (circular data with the same starting and ending point) caused a problem across internal layers in the handling of G36/G37 while conditioning (split274x) the input Gerber file.




Version 1.40 10/7/2016

New command line Options

New -erraswarn command line option. When set, dropped polygons will not cause the program to fail.At the same time, the program will append conditioning error/warning messages to log file. Dropped polygons if any will be reported.

New -nowarn command line option. This option excludes conditioning warning (warning messages from our split274x call) messages in the log file. Actual conversion errors will still appear in the log file.

New -norip command line option. This option does not create any RIP output and logs the image info in the log file.

Fixed issues where some openings in the ground plane were dropped.


Version 1.39 9/28/2016

Rip problem

Fixed an issue when command line included a window with margin and inverse command line options.


Version 1.38 9/25/2016

Margin Controls

Added support for "-margin" with "-window". The optional argument "-aw:[l,r,b,t]" must be used if no window is specified. The optional argument "-margin:[val|l,r,b,t]" must be used with "-window:[LLx,LLy,URx,URy]". There is curently an issue with margin and inverse which we will fix in the next release.

  • Fixed issue where it fails to convert a few Gerber files (met6d045_hib.gbr, cas2j080_ls.gbr and cas2j080_bs.gbr). Please do not use the "-nosplit" optional argument unless the Gerber input comes from Artwork's tools.

    Default Location of Log File

    Default log file is moved to work directory instead of output directory.

    Log File Name/Location Argument

    Added optional argument "-log:[logpath]" to specify a log file name.

    Updates to members of sGREYSETTING

    Added members to sGREYSETTING: mLogFile (default init value should be set to "") and mNoHeader (default init value should be set to false). These will be initialized when the struct's init function is called.




    Version 1.37 8/15/2016

    GBRUNION Manager Unit Problem

    Unit values on the command line carrying an exponent in their expression (for example 1.0e-005) were not handled properly. This has now been fixed.


    Version 1.36    5/17/2016

    Error messages

    Catch error from rasterizer and include a more informative error message in the log file.
    Previously error handling on RIP errors did not depend on the exit code from GBR2TIFF, but depended on parsing the rasterizer log file. Now the exit code is checked and then the log file is checked. This provides a more robust method for checking for RIP failures. Until recently the only failure modes that presented themselves were either in parsing of the gerber file proper or in unionizing the gerber file as required by sizing. Recently some new test cases exposed a deficiency in error handling at the back end, i.e.while rasterizing. This has been corrected.

    Gerber Union output greater than 2GB

    Catch a gbrunion output that is greater than 2GB and give an error. This is true even if -erraswarn is set or -maxerr is greater than 0.
    Currently the rasterizer does not support gerber files greater than 2 GB that are the result of unionization which is required for sizing. This condition is now trapped and reported as a failure. Unionized file sizes can be minimized by making use of the -circularize command line option in gerber2grey.


    Version 1.35    4/28/2016

    Software Improvements

    Added new option -nosplit avoids input file validation. This should only be used if the input is known to be "good", this means there are no multiply defined apertures, the maximum number of macros and dcode definitions does not exceed 10000 and dcode enumeration does not exceed 10K. Consistency between G74/G75 codes and I/J values should be correct. Format statement precision does not exceed 8 places, typically 2.6 for inch and 3.5 for mm data. Data range is consistent with format statement.

    Added new option -nosplitshrink performs file validation but does not compensate G36/G37 data by 1/2 pixel size.

    Added an "Init" function for sGREYSETTING struct to initialize settings with their default values

    Updated sample code (including C# sample code):

  • to use new optional arguments: -maxerr, -erraswarn, -circularize, -gengargs, -nosplit, -nosplitshrink, -getinfo
  • to show updated usage of Gbrip_GetExtent (added optional args: wrkdir and keeptmp)
  • to show usage of new function Gbrip_GetOutputInfo

  • Version 1.34    4/15/2016

    Software Improvements

    Use specified thrnum for sizing (not limited to 4).
    Added -maxerr and -erraswarn optional arguments (int mMaxErr and bool mErrAsWarn in the API).
    Speed improvements.


    Version 1.33    4/7/2016

    Software Improvements

    Catch gbrunion error when -silent is turned off.
    Added a length parameter in the Gbrip_GetErrStr function. Default is 256 but it must be set to the error string buffer's length to avoid memory corruption.
    Added a new function Gbrip_GetOutInfo to get the output image's information. This will be stored in a sGBRIPOUTINFO struct and has the following members: mUnit, mShift, mImgXY, mScale, mRowCnt, mRowSz, mRowByte, mBitmapBytes.
    The API changes can be found in the header igbriplib.h located in the installation folder's source directory.


    Version 1.32    4/1/2016

    Software Improvements

    Intercept error pop-up and write the error message in the log file.


    Version 1.31    3/16/2016

    Software Improvements

    Invalid Gerber files are detected in the front end and not rasterized.
    No pop-up on silent mode. Error messages are output in the log file and the executable returns 1. The executable returns zero on success and non-zero on failure. The return value "one" means that the input arguments are not valid and negative return codes mean that the run failed.
    Added support to Gerber with dcode up to MAXINT.
    Fixed the issue where margins are not inverted with "-inverse" mode on.
    Scale is applied to the margin.


    Version 1.30    12/3/2015

    Speed Improvements

    This version is 5 to 10 times faster on customer files when sizing is used.

    New Licensing

    This version is up to date with the latest Flex node locked licensing.


    Version 1.28    7/14/2015

    Update and Bug Fix

  • Fixed the bug where output is blank when no sizing is present.
  • Rip speed improvement with sizing (grow only).

  • Version 1.27    4/22/2015

    New Features

  • Added new logging information.
  • Fixed the included C# DLL for 32bit.
  • Added a check for .NET prerequisite on installation.

  • Version 1.26    4/22/2015

    New API Gbrip_GetExtent function

    Added Gbrip_GetExtent function to get the extent of the input Gerber file without rasterization. The usage of this function is added in the sample source code that is included in the package.

    New Margin option

    Added margin capability with the new argument -aw:[left,right,bottom,top] where left, right, bottom and top values are the margins in the specified unit (-unit:mm or -unit:inch).
    Usage:

  • Pass argument in the gbr2geyscale command line.
  • Pass argument in the input parameter (mRArgs) of the DLL's Gbrip_Convert function.

  • Version 1.25    3/9/2015

    Licensing

    Added gbr_rip softkey - gbr2greyscale (32 or 64 bit) are the only key codes needed.


    Version 1.24    3/9/2015

    New 64 bit release

    Added a new 64 bit release. Includes C# sample source code.

    Licensing

    Added gbrunion softkey so we no longer need the GBRUNION (2757/2756) key for sizing.

    Added C# sample code

    As more of our OEM partners use C# we are adding C# sample source code to demonstrate what is needed when programming in C#.


    Version 1.23    2/24/2015

    Independent Bias in X and Y

    Added the ability to independently control the edge bias in X and Y.

    Window with Sizing

    Previous version did not pass the window size to the boolean sizing engine -- this resulted in very slow sizing when doing only a small part of the layout. This has been fixed.

    Added C# sample code

    As more of our OEM partners use C# we are adding C# sample source code to demonstrate what is needed when programming in C#.



    Version 1.22    2/04/2015

    Source Code Example

    Added sample code in source folder and batch file in examples folder for programmers who want to call the library from their C/C++ application.

    Disabled Ricoh bitmap orientation

    The standard version of GBR2GREYSCALE included an non-standard bitmap arrangement that was specific to Ricoh. This has been removed in the non-Ricoh version.



    Version 1.21    1/28/2015

    Software Updates

    Fixed flex node licensing issue.
    Fixed a bug that causes a crash (same as GBRIP).
    This release doesn't have a sample code - it will be added in the next release.



    Version 1.18    1/6/2014

    Flipped image

    The issue where the output image is flipped when -super:0 is specified has been fixed.