ODB to GDSII/OASIS Web page header

ODB++ to GDSII Revision History

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

v3.19c (06/21/2022)

Updated Boolean Components

The Boolean libraries used by ODB2GDS have been updated to the most recent version. Specifically, the speed of the boolean engine was improved when sizing is used.

v3.19b (06/07/2022)

Boolean Components Updated

Updated the Boolean libraries used by ODB2GDS to the latest versions.

v3.19a (5/16/2022)

Bug fix for "stephrdr" files

The problem was with failing to handle space characters around '=' characters when encountered. As a consequence, X and Y DATUM values were being misread and causing stepped data to be offset incorrectly. This has now been fixed.

Boundary generation was broken for arcs that were over 180 degrees

This bug resulted from resetting the number of polygons each time one was created. Since arcs greater than 180 degrees were drawn as two boundaries, only the last one was shown. This has now been fixed. The problem was introduced in v3.18f and it only happened when arcs were exploded into boundaries.

v3.19 (4/28/2022)

Updated Boolean Engine

New boolean engine with a fix to dropped polygon issue when prescale is turned on (which is the default).

v3.17     (6/4/2021)

Bug Fix - Draw of Small Arc

Use extra precision when handling small arcs. Output round pad with arc width if the angle between start and end is less than 0.01 degrees.
Arc with width are segmented when output as boundaries.

v3.14     (3/3/2021)

Software Updates

Boolean and Gerber validation components have been updated.
This version was compiled with VS2015. VS2008 is discontinued.

v3.13     (12/21/2020)

Software Updates

Fixed an issue where ODB2GDS outputs unsmoothed lines. Line draws using standard symbols (other than round and square) were previously stepped in a manner consistent with what was shown in VUV (Valor viewer). Now, line draw is supported exactly without stepping, producing smooth lines. User defined symbols are still stepped producing unsmoothed lines.

Fixed an issue where text was being dropped. This was caused by texts that specify SHX font files as the font name in TEXT feature lines. SHX files are not supported by ODB2GDS. If a text uses a font that is unsupported or does not exist, ODB2GDS will use the default font (standard).

Fixed an issue where ODB2GDS is dropping non-ascii text. These texts are replaced by an 'X'.

v3.12     (11/16/2020)

Software Updates

This version changed deemb_surf default to 0. Surfaces will be booleanized every time there is scratch data so that the order of the polygons are preserved and the ODB++ spec is followed.
This can be disabled by specifying -deemb_surf:1 or selecting "reorder surface polygons" in the advanced dialog.

This version fixed an issue where scratch data is dropped.

In previous versions, when the extents of SR'ed steps were defined by scratch data and the step extents overlap, SR optimization was defeated. The user can now override this behavior from the command line with the option "-nobreaksr" or from the GUI by adding "-nobreaksr" in the advanced dialog's convert args text box.

Added support for comments in ODB2GDS layer map file. Lines that begins with # is now considered a comment.

Updated unzip module to unzip input files regardless if there is a warning.

Fixed an issue where softkeys with long names fails to acquire a license.

v3.11b     (10/2/2020)

Help Screen

When the odb2gds Advanced dialog's help button is selected, a Browser window will open up with the ODB2GDS Setting Web Page

v3.11a     (9/30/2020)

Software Updates

Improved deembed surface model to be faster and safer.
Fixed issues with string overflow and false failure in the logging. There was an issue where odb2gdx logs an error caused by zero area polygons when it should be considered as a warning.
Fixed units issue of the profile extents reported in the GUI and scan files. There was a bug where the profile extent was converted to the wrong unit.
Removed forced XY ratio setting for deembed surfaces.

v3.10a     (7/22/2020)

Software Updates

Updated the command line executable and added a test script for it in INSTALLDIR/examples/test_nox.sh

Updated the sample test script INSTALLDIR/src/sample.sh to check for odb_sample64 in INSTALLDIR/bin. If the executable doesn't exist, the script is going to try to compile it. To manually compile odb_sample64, a make file is provided together with the sample code in the INSTALLDIR/src directory.

Removed the 32bit stragglers.

v3.10     (7/17/2020)

Software Updates

Fixed the issue where ODB2GBR failed to output Gerber files when the optional argument "-netex" is specified. There was a bug in reading long component property strings.

Modified ODB2GBR and ODB2GDS to deembed surfaces by default. Previously, surfaces were booleanized every time there is scratch data so that the order of the polygons were preserved and the ODB++ spec was followed. This mode can be re-enabled by specifying the optional argument "-deemb_surf:0" or selecting "reorder surface polygons" in the advanced dialog.

Added OASIS output option in ODB2GDS. An ODB2OAS64 key is necessary to enable this option. There's a checkbox in the GUI to select OASIS output.
In the command line, the optional argument "-oas:basename" or "+oas:filename" (for combined OASIS output) can be specified.

Layer mapping is added for combined OASIS or GDSII output. It can be specified in the main GUI when the combine checkbox is selected or in the command line with the "-lyrmap:fname" optional argument. The layer mapping file should have the following format:
layername layer:datatype For example:

top 10:0
bottom 10:1
gnd 12

Added an option in ODB2GDS's advanced dialog to use the selected step's profile extent that can be seen in the main dialog.

v3.09     (2/04/2020)

Overlapping Child Steps Fix

This version fixes the issue where ODB++ child steps which are step-and-repeated overlap each other; and one scratches their siblings' data. When this happens, SR must be disabled for the child steps.

Degenerate Polygon Crash Fixed

This version fixes a crash that was caused by extremely degenerate polygons. These polygons are now discarded during the routine that qualifies input data.

v3.08     (12/20/2019)

Fixed False License Rejection

This version holds the license from the start to avoid multiple runs on a single license and getting an error in the middle of a run.

Only one product key is now required for odb2gds64 (the boolmt key is no longer needed).

v3.07     (9/26/2019)

New Circle to Flash Routine

In version 2.24 a new command line option was added -cir_map_min_cnt:X to convert circle-like polygons (after Boolean operations) into round flashes if the difference between the computed radius (R0) and distance between the midpoint and any of the polygon's vertices are smaller or equal to a tolerance.

In the previous release, this tolerance was fixed at 1% of the computed radius. That criteria is suitable when the radius is small. However, this criteria converts some polygons that are not true circles into flashes when the radius is large.

In this release, the tolerance is the greater of the user specified chord error or a computed chord error:

(1 - cos(PI)) * R0 * 2.0

v3.06     (8/29/2019)

Fixed Rendering for Fonts with "Negative" Strokes

This version fixed a problem where the software dropped negative strokes from font files. Instead, a warning will be issued if a feature file uses fonts with negative strokes because characters with negative strokes will not scratch data behind it.

v3.05     (8/19/2019)

Correction to Font Conversion

Addresses a bug in the flow where font conversion ends if a failure is encountered. This causes an error for feature files that use fonts that are not converted.

This is now fixed so that all of the fonts are converted even if there's a failure. If a feature file uses an invalid font, only that feature file will fail conversion.

Correction for SHX fonts

Fixed an issue where conversion fails if text uses an SHX font file directly. The conversion will no longer fail but the text is replaced with a capital 'X' in standard font and a warning will be recorded. This issue will be addressed more usefully in a future release.

Improved Logging of Warnings

Added support for warnings during odb2gdx feature conversions. If a warning is triggered, the messages will be recorded in the log file and will be displayed in the GUI's pop up message.

New Warning Function in API

Added HASWARNINGS code in the acs_odb_structs.h header file. If warnings were generated, the function ACS_getODBLastErr will return the error code HASWARNINGS during successful runs. Programs using the library must use the latest library and header files included in the packages.

v3.04     (7/31/2019)

Corrected Netlist Parser

Fixes a bug in reading the netlist when importing an ODB++ input. This bug resulted in the program reporting no nets found even when there are nets defined in the input file.

Memory Leak Fixed

Fixes a memory leak in the function that reports imported ODB++ tree.

Fixed Crash on Consecutive Runs

Updated ODB2GBR post-processor to fix a bug where it crashes when executed several times consecutively. This was caused by file handles that are not closed after each run.

Added API for GDSII and OASIS output

Added the header file, lib file and sample code to ODB2GDS and ODB2OAS.

Removed Support for Sentinel Keys

No longer supporting Rainbow Sentinel hardware keys. Only the flexlm hardware key.

v3.02     (6/5/2019)

Software Updates

Updated several modules including Boolean which was dropping data.
Fixed a bug in reading the command line chord error if "-unit" is specified after "-arcsag".
Fixed an issue where the software created large intermediate files and fails to read them.
Added a limitation to arcsag and scale based on the output resolution.

v3.01     (5/20/2019)

Software Updates

Improved the speed of ACS_openODB.
Modified the library so that calls to RegInitPrgsDlg, RegExitPrgsDlg, RegSetPhaseInit, RegSetPhaseTitle, RegIncrementPhase, RegIsCancel are no longer necessary to make it work.
Added debugging information for reading exceptions.

v3.00     (3/4/2019)

New Qt Version

This new version uses Qt instead of MFC/Motif. The GUI is now the same for Windows and Linux. All the underlying components are the same, only the GUI changed.

The libraries and header file included for the GUI are different:
odbgui.dll, odbgui.lib, odbgui_main.dll and acs_odbgui.h

v2.39     (12/12/2018)

Special Characters Issue

This version fixed an issue where special characters ' 'space or '-'dash are not converted properly when the text height is much smaller than the text width. We put a safeguard when the text height is less than 25% of the text width..

v2.38     (12/5/2018)

Drop Data

This version fixed an issue where an output is missing a part of a polygon. It was caused by a bug in qualifying a booldll butting output.

v2.37     (11/22/2018)

Text Origin Problem

Fixed an issue where the output text's origin does not match VUV when the font used has different sized characters.

v2.36     (11/22/2018)

Special Characters

This version fixes an issue where special characters ' 'space or '-'dash are not converted properly.

v2.35 Windows     (10/10/2018)

Software Updates

Fixed an issue where step-repeat data was dropped. This was caused by a bug in computing nx/ny of rotated references.
Moved boolean from 32bit to 64bit in ODB2GDS and ODB2OAS.

v2.35     (10/10/2018)

Linux Software Updates

Updated all the ODB components to reflect all the changes done in the past two years.
Fixed licensing related issue in LINUX.
Updated libraries included in the package.

Version 2.34 Windows    8/27/2018

Software Updates

Circularization during post processing is now multi-threaded. Refer to table below.
Fixed how the command line and GUI passes arguments to post processing (split274x).
Renamed the GUI's "Surface Settings" tab to "Post Processing" to better reflect its function.
Fine control of split274x is available by way of "-bgn_split_args [opt_args] -end_split_args". This control is still available with "-ply_arg [opt_args] -end_args" but should be deprecated. The usage with "-bgn_split_args [opt_args] -end_split_args" is consistent with other programs that make use of split274x.
Added -maxpts:N command line option to be passed on to split274x - does not require circularization.
Added post processing (split274x) log to the log file.
Added loading and conversion timing information in the log file.
Post processing will be triggered if circularization, transformation, max points or other post processing arguments are specified.

Version 2.33 Windows    7/31/2018

Software Updates

Modified library default output arcres/arcsag as 45.0 and 0.0005mm respectively.
Updated libraries and modules (acsbool, gdscomp, gds2oasfrac).

Version 2.32 Windows    7/11/2018

Software Updates

Added new transformation options in the command line (-rotate:0|90|180|270 and -mirror:x|y|xy ). These new options were also added in the GUI (under ODB Settings -> Rotate/MX/MY).
Added ignore .out_mirror option in command line (-g2k_order:2) and GUI (under G2K Settings -> Translation -> No Mirror).
Fixed an issue where ODB2GDS fails to convert an ODB++ file with comments between symbol declarations.

Version 2.29 Windows    3/19/2018

Font Issue

This version fixes a problem related to the fact that the first CHAR entry in the ODB++ font file was for the NULL. We modified the font compiler to throw away characters outside the range of 32 (space) to 255.

Arc Issue

This version fixes a problem where small arcs were translated into a full circular arc.

Version 2.30 Windows    4/5/2018

Software Updates

This version fixed an issue with failing to convert ODB++ files with number of dcodes > 32767. The new maximum is 65535.
The attribute .comp_height is now converted to the correct value (when used with Netex-G import).

Version 2.29 Windows    3/15/2018

Font Issue

This version fixes a problem related to the fact that the first CHAR entry in the ODB++ font file was for the NULL. We modified the font compiler to throw away characters outside the range of 32 (space) to 255.

Version 2.28 Windows    2/20/2018

Software Updates

Makes use of xcopy on Windows (if available) to speed up the copying of an input directory.

Version 2.27 Windows    2/13/2018

Software Updates

Updated gdsx2gbr to fix discarded flash bug in an ODB++ file with a lot of layers.
Updated acsbool library.

Version 2.26 Windows    11/8/2017

Extended Font Fix

Fixed the issue with using extended fonts directly in the features file.

Version 2.25 Windows    7/24/2017

Dynamic Text Fix

Fixed issue where some dynamic texts are not being converted properly. They are tied to V8 ODB++ where attributes can be tied to more than one class of thing unlike the V6 specification which allows only one.

Version 2.24 Windows    6/21/2017

Software Updates

Added "-cir_map_min_cnt:[val]" option to control the surfaces that will be converted to round flash. The default is 100 where if there are at least 100 round surfaces of the same diameter, they will be converted to a round flash. If it is set to zero, the round surfaces will not be converted into round flashes.

Fixed stackup layer output to NJB (for NetexG).

Added "-outinfo:[full_path]" option to create an output file that stores stepinfo or steplist and layerlist.

Added "-netlayers:[full_path]" option to create an output file that stores the list of steps and net specific layers.

(5) Uses QT for popups.

Version 2.23 Windows    4/21/2017

Software Updates

Fixed text issue where the offset and width of a character is off.

Fixed barcode issue where the text inside the barcode is off in the Y direction.

Fixed thermal issue where the spokes were too narrow.

Version 2.22 Windows    2/28/2017

Software crash on Win XP

Fixed the synchronization error that was causing a crash on Windows XP when the optional argument "-nocopyin" was used.

Version 2.21 Windows    02/15/2017

Netlist and Toollist Parsing

This version ignores invalid lines when reading the netlist or toollist

Bug Fix - trying to render an empty string

Fixed the issue where conversion crashes as the result of trying to render an empty string

Sample Code

Added sample code to exercise the library to this release.

Version 2.20 Windows    9/29/2016

Software Updates

Single license for ODB2GDS (removed overlay license requirement to output a single GDSII file from multiple ODB layers).

Fixed relative path issue.

Major update for LINUX

Added Qt based progress.

Qt libraries QtCore4.dll/libQtCore.so.4 and QtGui4.dll/libQtGui.so.4 are added in the installation.

The library obd2gdx.dll has six new callback functions that need to be defined by programs using the library: NOdb2GdxCB_InitPrgsDlg, NOdb2GdxCB_ExitPrgsDlg, NOdb2GdxCB_SetPhaseInit, NOdb2GdxCB_SetPhaseTitle, NOdb2GdxCB_IncrementPhase and NOdb2GdxCB_IsCancel. These functions are declared at the included header file acs_odb.h.

Version 2.19 Windows    8/9/2016

Software Updates

Added option to disable sr optimization -nosropt (for ODB++ files where child steps overlap).
Calculate dcode start values on the fly (to minimize the dcode values when there are many).
Add multi layer selection and combine multiple layers in ODB2GDS.

Version 2.17 Windows    3/3/2016

Software Updates

Speed improvement on ODB++ files that has a lot of symbols.
Discards invalid symbol definitions inside a feature file.
Fixed issue with feature file's pkzip compression.

Version 2.15    10/17/2015

Software Updates

Fixed the issue where the program fails opening an ODB++ file. This is caused by mismatched path lengths that is causing memory errors.
Updated 64bit product ID.

Version 2.14    9/27/2015

Software Updates

Fixed issue where out_scale was not applied to text.
Fixed issue where text is not converted in MM.
Removed patch on outlines.
Fixed issue where conversion fails if the input has extra files not defined in ODB++ spec.

Version 2.12    2/1/2015

g2k_scale_mode Problem

Fixed a bug where the output is incorrect using the option g2k_scale_mode when top step has no data.

Version 2.10    10/16/2014

Soft key

Fixed bug in reading softkey arguments with spaces embedded.

Version 2.09    7/6/2014

Upgrades and Bug fixes

Added -acsk option in the softkey support.
Improved timing report in the log file.
Updated gds2oasfrac and bool.

Version 2.08    4/7/2014

Upgrades and Bug fixes

Added softkey support.
Fixed a bug that causes some files with a large number of vertex count to crash during translation.

Version 2.07    10/17/2013

Upgrades and Bug fixes

The following fixes and updates have been implemented:
Fixed paint and scratch bug for GDS/OAS output.
Added the optional argument -odbargs fore debugging.
Removed rotation correction of bottom component if it's already mirrored
The modules in this package have been updated to VS2008 compile
Added VC Redistributables in the install

Version 2.06    07/24/2013

Max Points

Added Max Points field in the command line

Missing Holes

Fixed an issue where the frame data has missing holes.

Version 2.05    07/18/2013

Max Points

Added Max Points field in the GUI

Misc Updates

  • VS2008 compile.
  • Using acsbool.dll

  • Version 2.04    12/17/2012

    Misc Bug fixes

    Here are the fixes done with this version:

  • Fixed character size issue (06_20121025) where the output text size is larger than what is shown in valor.
  • Fixed barcode size issue (01_20120607) where the output barcode size differs from valor.
  • ODB2GBR specifies SOLDERMASKTOP and SOLDERMASKBOT in the NJB file when used in conjunction with Netex-G.

  • Version 2.03    12/3/2012

    Misc Bug fixes

    Here are the fixes done with this version:

  • Reduced the layer count of the output GERBER file.
  • Fixed line width issue where the center line width in the window is thicker. This was caused by a bug in placing a negative pad in the wrong order.
  • Fixed dynamic text issue where a dynamic attribute text was not converted. This was caused by a bug in converting system attribute texts.
  • Fixed polygon draw issue where a polygon was dropped from the output file. This was caused by a bug in converting polygons with holes bigger than islands.
  • Fixed dynamic text issue where an attribute text that has a "%" character was dropped. This was caused by a bug in reading the value of attributes with "%".

  • Version 2.02    9/21/2012

    Misc Bug fixes

    Here are the fixes done with this version:

  • Fixed Windows XP 64bit conversion failure.
  • Added support for zipped ODB++ input.
  • Fixed a bug where importer fails to decompress an ODB++ TAR file. This was caused by incorrectly translating an octal value into its decimal value.
  • Fixed a bug where importer fails to import an ODB++ file that has resize factor in its feature files. The bug is caused by incorrectly reading features with resize factor into the database. This release involves scaling rather than true resize (Valor's method).
  • Fixed a bug in reading component file that references an empty attribute text string, it is now set to NIL if the attribute text string is empty.

  • Version 2.00    June 22,2012

    Overlapping user defined symbols

    Fixed a bug in drawing user defined symbols that overlap. This bug was caused by layer optimization, the order of scratch and paint data were incorrectly drawn.

    Version 1.09    June 13,2012

    Line Draws with Symbol

    Added support of line draws using symbols other than round or square.

    Version 1.08    May 15,2012

    Barcode support

    Added barcode support.

    Polarity issue

    Fixed the polarity issue where the polarity of a negative symbol nested inside another negative symbol is not generated properly.

    Version 1.07    April 19,2012

    ODB++ File with Read-Only Compressed data

    Fixed the readonly issue where ODBRIP fails to open ODB input with read-only compressed files.

    Polarity Issue

    Fixed the drawing polarity issue where a negative data is drawn as positive.

    Version 1.06    April 3,2012

    Week number

    Fixed the week number issue where the output week number differs from VUV.

    Rotated Standard Symbols

    Added support of rotated standard symbols.

    Version 1.05    January 30,2012

    ODB++ with GZ files

    Fixed bug in reading ODB++ with GZ files.

    New -nocopyin option

    Added a -nocopyin option to open the input ODB++ directory as-is. The input directory and sub-folders must be writable. It must be noted that when using this option, the input ODB++ directory will be modified directly by the program.

    Version 1.04    December 7,2011

    A few improvements

    This version has a few improvements.

  • Added option to clip window.
  • Uses boolw64f on a 64bit platform.
  • Allow gzip compressed features.
  • Removed error pop-up on Missing profile file and layer folders. Warning in the log file is issued instead.
  • Speed improvement on ODB++ input with complicated surfaces.

  • Version 1.03    October 17,2011

    A few fixes

    This version resolves a few issues reported by different clients.

  • Modified the header file. Please recompile using the latest header (.h) and library (.lib) files included in the package.
  • Fixed a bug that resets the arcres/arcseg values.
  • Open doubly zipped input.
  • Removed error pop-up on Missing profile file and layer folders. Warning in the log file is issued instead.
  • Uses userattr file to interpret attributes.
  • Updated advanced dialogs.

  • Version 1.01 Windows    6/8/2011

    Windows release

    First Windows release. The keys needed for these packages are ODB2GDS 521 and BOOLMT 2700.

    Version 1.01 Linux/Solaris    3/8/2011

    Second release

    The keys needed for these packages are ODB2GDS 521 and BOOLMT 2700.