ODB++ web page header logo

ODB++ to Gerber Revision History

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



v3.29 (11/21/2024)

Added multithreading for ODB++ surface features

Added multithreading to odb2gdx64.exe which is the ODB++ feature file interpreter. The feature is ON by default but can also be controlled with the "-thread_surf:[0:1]" argument (1 is on and 0 is off).
For example: "-engargs -thread_surf:0 -endarg" placed in the "Convert Args" of the "Advanced Settings" dialog box of Odb2gbr or Odb2gds will deactivate this multithreading.
The "Thread Num" setting in this same dialog controls the number of threads used.

Added "ODB Tree" to main dialog box

This button becomes active when an ODB++ file is opened and changes to a "View Log" button after conversion.
If selected it displays "ODB Tree" output in an editor showing information containing: top step, step, layer, and tree graphs.
This option is only available in the 64 bit version.

Access to license information

The "About" button was added to main dialog and "About QT" button to "About" dialog. The "About QT" launches a "Qt License Information" dialog box.

Updated modules

Updated split274x and boolean component modules.


v3.27b (5/9/2024)

ODB input can now come from network path on Windows

Both the ODB GUI and library were mistakenly failing to distinguish a local path from a network path. This has now been fixed by treating a network path as a literal one after recognizing it by looking for a beginning pair of backslash characters in the path.

Bug fix to orientation of nested non exploded ODB++ user symbols

The problem was found with nested user symbols contained in exploded ones. When ODB conversion is done without exploding all symbols, some of the symbols are exploded anyways if there is a change in polarity or dynamic text is floated to be resolved later. This has been fixed by forcing these nested symbols to be exploded as well.

Added memeory map files for speed optimization of ODB++ attributes

Odb2gdx64.dll library outputs "attrlist_all.db and "userattr.db" memory map files. This is an optimization for the odb2gdx64.exe ODB feature interpreter engine. This allows the attribute database to be created once and subsequently read in directly by odb2gdx64.exe each time it's called to translate each symbol and layer instead of having odb2gdx64.exe create it every time it's launched. Otherwise, this can be time consuming if there are a high number of attributes to search for in addition to a high number of symbols and layers as the database is being created.

Chord error table fix when concidering surface holes and islands

Chord error table fix when concidering surface holes and islands Each entry in the table has a polarity field. The mistake was to only use the surface polarity to help determine which entry to use for a given surface curve. What was needed was to also consider whether the curve was part of a hole or island. This has now been fixed.


Version 3.26e 2/22/2024

Fix for a user symbol reference processing to resolve letter case mismatch

The Gerber generating module, gdsx2gbr(64).dll, was updated to handle letter case mismatch in symbols. Now, all symbol names preserve the name as they appear in the symbol folder. Note that in the ODB feature file processor,(odb2gdx(64).exe v2.64 04/14/2023 rcs 1.898), only the symbol definition names were made to appear as they do in the symbol folder.


Version 3.26d 2/16/2024

Bug fix to pad referencing

Data was erroneously scratched away between pads. This happened because extents for each pad are calculated to make sure that they do not overlap to allow grouping of pad insertions which reduce the number of layer polarities generated. The extent calculations were wrong causing the pads to be mistakenly grouped and mistakenly scratch away data. The extents failed to include symbol sizes for line draws. This has now been fixed.

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.


v3.26b (12/11/2023)

Major speed improvement when converting ODB++ features

Added ODB++ feature scanning to determine if there is a need for attribute database. This prevents creating an ODB++ attribute database to speed up ODB feature translations. This reduced the conversion time on the customer's file from 17:32 minutes to 22 seconds.




v3.26a (11/23/2023)

Added support for additional ODB++ symbols

Added support for additional ODB++ symbols

Type Name                         ODB SYMBOL NAME
RoundedSquareThermalOpenCorners_type  s_ths
LineThermal_type                      s_thr
HomePlate_type                        hplate
InvertedHomePlate_type                rhplate
FlatHomePlate_type                    fhplate
RadiusedInvertedHomePlate_type        radhplate
RadiusedHomePlate_type                dshape
Dogbone_type                          dogbone
DPack_type                            dpack

Updated Boolean Components

The Boolean libraries used by ODB2GBR have been updated to the most recent version.
Updated the Gerber validation module.




v3.26 (08/25/2023)

Linux release

New Linux release to match the Windows version.




v3.26 (08/11/2023)

GUI Extents of profile

In certain cases, the profile extents incorrectly displayed "unknown". This has now been fixed so that when the profile information has been found to be correct, the extents will be displayed instead of "unknown".

Added ODB++ Cross symbol support

Added support for type name Cross_type and ODB++ Symbol name cross.

Report of unsupported symbol names

When the symbols below are encountered, a warning is reported. Before, nothing was reported.

Type Name                         ODB SYMBOL NAME
LineThermal_type                  s_thr
HomePlate_type                    hplate
InvertedHomePlate_type            rhplate
FlatHomePlate_type                fhplate
RadiusedInvertedHomePlate_type    radhplate
RadiusedHomePlate_type            dshape
Dogbone_type                      dogbone
DPack_type                        dpack

Updated Boolean Components

The Boolean libraries used by ODB2GBR have been updated to the most recent version.
Updated the Gerber validation module.




v3.25 (07/23/2023)

Fixed GUI Lib for Memory Crash Involving "-step" and "-excludel" arguments

The memory used to support these arguments was only 260 bytes long. It has been changed to be dynamically allocated to the length of these arguments.

Software Updates

Fixed ODB2GDX library to include component layers in ODBTREE functions.

Updated ODB feature file converter (ODB2GDX ENGINE)

  • Added support for barcode filtering
  • Added command line options -filter_barc, -filter_barcode and -nobarc
  • Updated Boolean Components

    The Boolean libraries used by ODB2GBR have been updated to the most recent version.
    Updated the Gerber validation module.




    v3.24a (6/21/2023)

    Major Speed Improvements

    Optimized ODB++ file existence check for speed (Windows only). This generated a speed up of about two to five times.
    Updated the Gerber preprocessor.




    v3.24 (5/27/2023)

    Software Updates

    Added support for ODB++ oblong thermal types.

    Added warnings for referenced undefined ODB++ symbol types.

    Bug fix to dropped ODB++ arcs with point precision smaller than output grid. These were mistakenly treated as small arcs and output as pads. The data point precision required to calculate the angle precision needed to be 10x the greater of data point precision and output grid. Otherwise, the arc data would be considered a small arc and drawn as a round pad the start point.




    v3.20f (5/2/2023)

    Issue with case sensitive symbol names

    User symbol were left undefined because of differences in upper and lower case letters in the names. A directory search is done to ensure the exact letter case is used in the name. This fixed the problem..




    v3.20e (2/28/2023)

    Software Updates

    Revised -sqrln2pth argument to lines that are ten times the width. Anything less appears as an outline as before. Note that all of this only applies to non manhattan lines.

    Software fix when detecting manhattan lines - XY data that had precision greater than six decimal places for inch output and five for mm output were mistakenly taken to be manhattan when in fact they were not. This has now been fixed. The full data precision detected is taken into account when detecting manhattan lines.




    v3.20c (11/8/2022)

    Refinement to command line option -sqrln2pth

    This version has an improved end caps at the ends of the round path when command line option -sqrln2pth is used.




    v3.20d (11/13/2022)

    Fixed handling of line draws with user symbols of 0 dimensions

    Incorrect data was accessed and drawn for these symbols since none were stored for zero dimension data. This has now been fixed to draw lines with zero width round symbols.

    Fixed parsing issue for matrix and info files

    Fixed an issue with handling space characters around '=' characters.




    v3.20c (11/8/2022)

    Refinement to command line option -sqrln2pth

    This version has an improved end caps at the ends of the round path when command line option -sqrln2pth is used.




    v3.20b (11/7/2022)

    New command line option -sqrln2pth

    Added "-sqrln2pth" command line argument to improve square line draws. ODB++ feature lines that have the following characteristics : non zero length, not orthogonal, drawn with square symbol, are drawn as outlines by default. By passing "-engargs -sqrln2pth" to Odb2gbr's conversion arguments, lines are drawn with round symbols with the same width as the square symbol and capped on its ends with rectangular outlines.




    v3.20a (10/27/2022)

    Fixed handling of Symbols

    Fixed a problem where processing symbol feature files required that the existence of a user symbol needed to be checked before checking what type of standard symbol this might be. This caused some pads not to appear.




    v3.20 (09/29/2022)

    Dynamic text issue

    Dynamic text in a text string is terminated by a ' ' character or is at the end. It can also be encased in curly braces. Floating text contains "$$LAYER" dynamic text and or layer attributes in a symbol feature file. The dynamic text parsing for floating text was not present. This has now been fixed.

    Finding STEP and Layer Attributes

    This version fixes an issue with the search for step and layer attributes. The search was allowing attribute names to be found in a text sub-string. The search now looks to find whole word matches.




    v3.19d (09/14/2022)

    UTF and ISO/IEC 8859-1 Support

    Added support for UTF and ISO/IEC 8859-1 characters set for both file and folder names.

    Updated Boolean Components

    The Boolean libraries used by ODB2GBR have been updated to the most recent version.
    Updated the Gerber validation module.




    v3.19c (06/21/2022)

    Updated Boolean Components

    The Boolean libraries used by ODB2GBR 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)

    Updated Boolean Components

    The Boolean libraries used by ODB2GBR have been updated to the most recent version.




    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.18f (4/17/2022)

    Fixed symbol interaction check

    Consecutive symbols are collected when they only differ in position and do not intersect. This has the potential of greatly reducing the number of layers that are generated. The problem between custom symbols was that their extents were not accurate. This caused one pad to overwrite another. This has now been fixed.

    Line features that use custom symbols are now drawn as closed regions

    This used to be handled by inserting custom pads along the linear path in small increments from each other.

    Fix issue to short non manhattan line draws

    Non-manhattan line draws with other than round symbols were possibly realized incorrectly when the line draw was short one to five database units (1 DBU = 1.0e-06 inch or 1.0e-05 mm). This has now been fixed by drawing a rotated pad in its place.

    Updated Boolean Engine

    New boolean engine with improved speed.




    v3.18e (3/11/2022)

    Bug fix to barcode feature memory allocation

    Dynamic text resolution which resulted in a longer text length caused a memory crash for an original length shorter than its resolved length. This has now been fixed.

    Change to Macro gap value in ROUNDTHERMALROUNDED_TYPE

    Adaptive correction was applied to ensure that this symbol could be fully inscribed in a ROUNDTHERMALSQUAREED_TYPE having the same parameters.

    Updated Boolean Engine

    New boolean engine with improved speed.




    v3.18d (1/11/2022)

    Program Stopped Due to Error

    A memory crash in boolean component caused the program to stop during the conversion. This has now been fixed.

    Incorrect Pattern in Output file.

    A bad shape was created during ODB surface feature unionization. This was due to data precision limitation. This has now been fixed.

    ODBSCAN Enhancement

    ODBSCAN library job tree display has been enhanced in this release.
    See -odbtree argument in odb_scan.bat file contained in EXAMPLES folder for more information.




    v3.18c (12/08/2021)

    Fixed Feature attribute text string and name issue

    The size for each of these two lists was statically set to 16384. Attribute names or attribute text strings exceeding that limit caused a memory crash. This has now been fixed with memory being assigned dynamically.




    v3.18b (11/17/2021)

    Fixed Dynamic Text Problem

    Earlier versions: A text feature with dynamic text of an attribute that is referenced by its feature attribute value pair for which the value is blank would not convert/render this dynamic text.

    This version: if the attribute value is blank, the dynamic text resolves to the next available attribute value pair using the following order: layer;step;miscellaneous;job scope.


    Update Boolean Library

    The underlying Boolean library used by this program has been updated to use the most recent version.




    v3.18a (11/02/2021)

    Multi-weight Text Strokes

    Odb2gbr is limited to making use of a single dcode when stroking out ODB text in Gerber format. Limited support for ODB font files that contain multi-weight strokes was introduced in v3.17. This was done by making use of multiple strokes of the nominal dcode to realize thicker text strokes when the weight of a line in the ODB font file definition is "heavier" than the nominal.

    Because text is handled by first compiling the ODB font file before any translations begins, text strings that more often than not are inserted with different X and Y scaling will not appear as they are rendered in a true ODB++ viewer, i.e. the parts of text that contain non-nominal weights will appear stretched.

    For example, if a stroke has a weight of twice the nominal, the stroke is realized by two shortened parallel strokes of the nominal dcode offset by the dcode diameter.

    With this version, the support for ODB font files with multi-weight text strokes as described above is disabled by default and the output will revert to pre v3.17 output. The v3.17 behavior can be turned on with -multiweight command line option. In the case of pre v3.17 these output will also be non-conforming and the strokes in question will be the wrong size, but not stretched. In all cases, use of this class of text strings will generate warnings in the log file.

    Fixed Arc Direction Bug

    When processing very small arcs where the precision of the coordinates in the ODB Feature file was set too low, the arc's start and end point would snap to the same coordinate. This resulted in Gerber output that was difficult to correctly interpret. The problem was addressed by using a higher value of data precision when evaluating these arcs so that the arc endpoints did not co-incide.

    Fixed Missing Arc

    Very small arcs were being converted to a single point when the angle precision was set too low in the ODB Feature file. This was addressed by ignoring the precision coming from the Feature file and using a much higher precision.

    Updated Boolean Modules

    Boolean library modules used by ODB2GBR have been updated to sync with the latest version of Artwork's Boolean.




    v3.18 (10/08/2021)

    32 bit Version Built Using MS VS 2015

    The programs, libraries and supporting modules have been recompiled using Microsoft's Visual Studio 2015. We are no longer building or support this software with the MS VS 2008 development system.

    Solder Paste Layer Support

    Added Solderpaste support for NJB output. This means that these layers now have information indicating : thickness, material, color, and electrical properties. They can be exported as Gerber, DXF or GDSII or as a 3D "layer." depending on what output the user has selected.

    Chord Error includes Unit Specifier

    Added Unit specifier for chord error: -arcsag:<val>[<uspc>]

    The optional unit specifier, <uspc>, can be one of the following : MIL | INCH | UM | MM | CM

    This applies only for the command line argument.


    BUG FIX: Text in Fonts Missing '@' AND 'A' characters

    Text fonts that were missing the @ and A characters caused text strokes to be moved to nearly MAX_INT values or not to appear at all. A unit scale of inch to mm would cause data to overflow and not appear at all. This has now been fixed.

    Boolean Libraries Updated

    The Boolean library used in odb2gbr has been updated to Artwork's most recent version.

    Gerber Validation Updated

    The module that performs Gerber validation has been updated to the most recent version.




    v3.17a     (6/24/2021)

    Software Updates

    Added limited support for multi stroke ODB++ fonts.
    Enhanced round end arc draws with width.




    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.16a     (5/26/2021)

    Bug Fix - Surface Draws

    INCLUDE PRECISION OF FIRST SURFACE POINT FOR CIRCULAR DATA SEGMENTS. Reported by Dynatron: MT6829.

    RECALCULATE DELTA ANGLE WHEN ARC VERTEX COUNT EXCEEDS INTERNAL LIMIT

    REMOVE COINCIDING POINTS

    Sample Code Package

    PROVIDED sample.bat FILE TO TEST SAMPLE PROGRAM

    FIXED CRASH OF SAMPLE PROGRAM WHEN NO ARGUMENTS ARE PROVIDED

    UPDATED PROJECT FILES TO COPY SAMPLE PROGRAM TO PARENT DIRECTORY
    This allows the program to be successfully launched when called from there in sample.bat file.

    WIN32 PACKAGES ONLY HAVE WIN32 SAMPLE PROGRAM TARGETS

    X64 PACKAGES ONLY HAVE X64 SAMPLE PROGRAM TARGETS

    THE .lib AND .h FILES HAVE BEEN UPDATED FOR CHANGES IN v3.16




    v3.16     (5/17/2021)

    Added an Option for Gerber Profile Output

    New command line argument to support profile output.
    -gbr_prf[:gbrp_filename] Convert ODB step profile to Gerber file (No full path, default is profile.gbr, by default 0.01mm or 0.0004in traces are output)

    -gbr_prf_mod_njb - Insert Gerber profile into njb filename if generated

    -gbr_prf_use_g36_g37 - Fill Gerber profile regions with G36/G37. Gerber G-Codes (off by default)

    -gbr_prf_dia_trc:dia_val - Trace Gerber profile outlines with aperture D-Code size dia_val


    Display Gerber Profile When Requested

    The Gerber profile layer is the last layer appearing in the gerber viewer. When data is traced, it is done so with the highest Gerber Aperture that is only used for the profile data.


    Usage Errors are Displayed in New Dialog Box

    These errors used to appear in message boxes that failed to show entire usage. They now appear in same dialog box as the help usage activated with "-h" argument.


    Bug Fix for Custom Symbols Extent Calculation

    Fixed issue related to extent calculation for custom symbols when the only data to make up the custom symbol is dynamic text.
    Under these conditions a warning is generated by the boolean engine but this warning is a bit misleading and the output is the same and correct.
    This version intercepts passing these extents to the boolean engine and avoids this message.




    v3.15     (4/7/2021)

    Added arguments for Dynamic text

    Added arguments to effect changes to the following dynamic text: $$WW, $$YY, and $$YYYY

  • Add "-iso_week" to disable ISO standard for week number and year. The new behavior and default uses ISO standard. Specifying "-iso_week:0|1" turns it off with 0 and turns in on with 1.

  • Add "-week_incr:incr_val" argument to add to $$WW dynamic text. In the absence of :incr_val, one gets added.
  • Updated Gerber Validation "split274x(64).dll"

    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.13a     (1/7/2021)

    Software Updates

    This version fixed the issue where drills were missing from the NJB output if the drill's start layer is below the end layer in the stackup. In this case, the software is now automatically reversing the drill's start and end layer in the NJB output instead of dropping it.




    v3.13     (12/18/2020)

    Software Updates

    This version fixed an issue where output Gerber files are too large. Even when SR optimization was ON (to minimize file size), if overlap between interacting steps involves scratch data then SR optimization was turned off resulting in much larger output Gerber files (in a particular case 12 GB and 4 GB Gerber files were created - two different layers, same step). In order to avoid this problem, the parent step is now SR'd when possible, resulting in smaller file sizes (2.3 GB and 800 MB for the aforementioned case).

    Fixed an issue where ODB2GBR 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 ODB2GBR. If a text uses a font that is unsupported or does not exist, ODB2GBR will use the default font (standard).

    Fixed an issue where ODB2GBR 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.11     (9/30/2020)

    Software Updates

    This version fixes an issue with polygons being dropped by disabling deemb_validate and deemb_partunion by default.
    This version fixes issue MT6278 where some data was scratched out when surface de-embedding is on.
    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)

    Software Updates

    This version fixes the issue where ODB++ child steps overlap each other and scratches their siblings' data. When this happens, SR must be broken for the child steps.

    This version fixes a crash that was caused by extremely degenerate polygons. These polygons are thrown away when qualifying data.


    v3.08     (12/20/2019)

    Software Updates

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

    Only one product key required for ODB2GDS (boolmt key is no longer necessary).


    v3.07     (9/26/2019)

    Software Updates

    In version 2.24 a new command line option was added -cir_map_min_cnt:X to convert circle-like polygons 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 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)

    Software Updates

    This version fixed a problem where the software dropped negative strokes from font files.
    This version will report a warning if a feature file uses fonts with negative strokes. This is to warn the users that texts with negative strokes will not scratch data behind it.

    Fixed a software crash when Working Directory was set to a root folder.


    v3.05     (8/19/2019)

    Software Updates

    This version fixed 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.

    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 fixed further in a future release.

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

    Added HASWARNINGS code in the acs_odb_structs.h header file. If there are warnings, 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)

    Software Updates

    This version fixes a bug in reading the netlist when importing an ODB++ input. This bug was reporting no nets found even when there are nets defined in the input file.
    This version fixes a memory leak in the function that reports imported ODB++ tree.
    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 the header file, lib file and sample code to ODB2GDS and ODB2OAS.
    This release does not support Sentinel USB keys.


    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".
    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     (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.35 Windows    9/27/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.
    Added "-dropzerow" option in the command line and GUI of ODB2GBR. If set, this will drop zero width draws and flashes.
    Moved boolean from 32bit to 64bit in ODB2GDS and ODB2OAS.


    Version 2.34 Windows    8/27/2018

    Multi-threaded Circularization

    Circularization during post processing is now multi-threaded. See this page for details.

    Split274x Update

    Fixed how the command line and GUI passes arguments to post processing (split274x).

    Function Renamed

    Renamed the GUI's "Surface Settings" tab to "Post Processing" to better reflect its function.

    Granular Control of split274x Post Processor

    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.

    Max Points Control Added

    Added -maxpts:N command line option to be passed to split274x.

    Postprocessor Log

    Added post processing (split274x) reports to the log file.

    Added Timing to Log File

    Added loading and conversion timing information in the log file.

    Postprocessing Trigger

    Post processing of the RS274X will be triggered if circularization, transformation, max points or other post processing arguments are specified.




    Version 2.33 Windows    7/27/2018

    Software Updates

    Added optional argument "-circularize:[dbl_val]" to convert circular polygons into arcs.
    Added optional argument "-maxpts:[int_val]" to specify the maximum number of points allowed per polygon.
    Added Surface Settings menu in the GUI to perform circularization, rotation, mirroring and specify max points. Max Points value only applies when circularize is on.
    Modified library default output unit to MM and output arcres/arcsag as 45.0 and 0.0005mm respectively.



    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 ODB2GBR fails to convert an ODB++ file with comments between symbol declarations. This issue was causing a mismatched number of apertures error.



    Version 2.31b Windows    6/5/2018

    Software Updates

    This version fixed a problem where scratch data is in the wrong layer order as a result of a limitation in the ODB to Gerber data flow path related to "multi" symbol references.
    "Multi" references are a database construct that minimizes layer polarity changes and dcode references. The polarity change that happens inside the referenced symbol was not trapped when processing this ODB++ file.



    Version 2.31a Windows    5/27/2018

    Software Updates

    This version fixes a problem where surface data was dropped as a result of a limitation in the ODB to Gerber data flow path related to nested "multi" Dcodes.
    "multi" Dcodes are a database construct that minimizes layer polarity changes and dcode references. Nesting of "multi" Dcodes is disallowed and this condition was not trapped when processing this ODB++ file.

    This version fixes a problem when Dcodes associated with mirrored pads whose parent or grand parent step is instantiated with non-Manhattan rotation or mirroring.
    The problem manifested itself with pads that were placed at the wrong angle.




    Version 2.31 Windows    5/17/2018

    Software Updates

    This version fixed an issue where the conversion failed if an attribute file has a really long value.
    This version fixed an issue where a flash/pad is rotated in more than 16 different ways.




    Version 2.30 Windows    4/5/2018

    Software Updates

    This version fixed an issue with failing to convert ODB++ files having more than 32768 Dcode definitions before Dcode reduction. This was addressed by changing how a short integer is handled between program modules in the data flow. The new limit of 65535 was achieved by careful handling of this variable and coercing it to be unsigned short.
    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 (per step and per layer). 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.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.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    2/15/2017

    Software Updates

    Ignore invalid lines when reading the netlist or tool list.
    Fixed the issue where conversion crashes as the result of trying to render an empty string.
    Updated the sample code to make use of the progress functions.




    Version 2.20 Windows    9/29/2016

    Software Updates

    Fixed relative path issue.
    Major update for LINUX builds.
    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.18 Linux    3/8/2016

    Software Updates

    Stripped the library and command line off of Motif and X11 libraries.
    Fixed the scripts to support long path. Entire argument should be in quotes:
    "-job:`pwd`/dir name"
    Fixed the NJB issue.
    Long path or path with spaces is not supported by the GUI's file selection dialog.
    Full path is required for the command line and XML input.




    Version 2.17 Linux & 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.

    New command line executable odb2gbr_cmdlne

    Added a command line executable odb2gbr_cmdlne (no-X) in the bin directory.  
    The relevant options are:
    
    -job:[odb_path]                       sets the ODB++ input (required)
    -workdir:[out_dir]                    sets the working directory (required)
    -outdir:[out_dir]                     sets the output directory (required)
    -step:[step[,layer1,layer2,..]]       sets the step and layers to be converted (required)
    -step_repeat                          enables step repeat of the output (recommended)
    -odb_symbols                          enables macro for user defined symbols (recommended)
    -non_std                              evaluate non-system defined attributes (recommended)
    -thrnum:[+thrnum_int_val]             sets the max thread to use during conversion (recommended)
    
    -unit:[inch|mm]                       sets the GBR output unit (default is inch)
    -arcres:[res_dbl_val]                 sets the arc resolution (default is 9.0)
    -arcsag:[sag_dbl_val]                 sets the chord error (default is 0.0)
    
    -netex                                must be used with -njb
    -njb[:[njb_fname]]                    creates the specified njb file name in the output directory
    -format:[fmt_dbl_val]                 sets the GBR output format (default is 2.6)
    -scale:[scale_dbl_val]                sets the scale (default is 1.0)
    -butting                              enables butting edge output instead of cutline
    -keep_tmpfiles                        keeps temporary files
    -exclude:[step1,step2,...]            excludes specified steps
    -excludel:[layer1,layer2,...]         excludes specified layers
    




    Version 2.16    2/5/2016

    Software Updates

    Fixed bug when reading ODB++ input with MM specified features.
    Added support for dielectric layers.




    Version 2.14 Linux    12/15/2015

    Software Updates

    Fixed an installation library issue and missing text file from the software release.
    Updated the ODB++ reader to the latest version.




    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.13    2/22/2015

    New option -g2k_scalexy

    Added option -g2k_scalexy:xval,yval to override .out_x_scale and .out_y_scale in the attrlist file.
    This must be used with the option -g2k_scale_mode.
    This option can be specified in the command line or can be specified in the G2K Settings tab under the scale mode options.




    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.11    12/19/2014

    Round Surface Mapping

    Fixed bug that creates a zero width dcode. The problem was in mapping round surfaces to round pads.




    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.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

  • 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.01    7/3/2012

    Bug fix for line using custom symbols

    Fixed the line draw issue caused by drawing a line using custom symbols with negative and positive pads. This is fixed by drawing the line using the custom symbol's pads alternately.

    Dynamic text issue

    Fixed the dynamic text that was not translated. This is caused by the translator expecting an attrlist file from a step which did not exist.




    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.99    June 13,2012

    Line Draws with Symbol

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




    Version 1.98    May 11,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.97    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.96    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.95    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.94    December 6,2011

    Symbol Error

    This version resolves issue #188 (Symbol Error) where a symbol is drawn as a moire with invalid parameters. This is caused by a bug in reading custom symbols that begin with a number.

    Gzip compressed features

    Gzip compressed features are now supported.

    Speed improvements

    Speed improvement (up to 20x) on ODB++ input with complicated surfaces.




    Version 1.93    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.92    August 11,2011

    issue #184 - 274x Error

    This version resolves issue #184 (274x Error) in which the children steps are translated in the wrong order. This is caused by a bug when combining children steps.




    Version 1.90    June 3,2011

    Text and tar issues

    This version resolves font shx conversion issues (updated ODBFNT2SHX.DLL) as well as untar issues.
    It also contains the updates from v1.89 (new ODB2GDS and ODB2OAS conversion capabilities in odb2gdx.dll and odb2gbr_cmdlne.exe).




    Version 1.88    February 8,2011

    Issue 180 Dynamic Text Orientation

    Fixed issue #180 (Dynamic Text Orientation) where some of the orientation codes in the DAT output file is incorrect. This is caused by a bug in calculating the orient code of mirrored texts.

    Issue 181 Error sample

    Fixed issue #181 (Error sample) where ACS_createODBOutputDynTxt fails with option1 and ACS_getODBLastErr returns "memory access error" or "null". This is caused by a bug in the library definition and in setting the error codes.

    New feature - ACS_convertODBAttr

    Created a new function ACS_convertODBAttr that converts the coordinates of a given ODB++ step/layer/attributes combination without GERBER convertion.




    Version 1.86    January 7,2011

    New function - Dynamic Text Orientation

    Added the functionality requested as issue #171 (Dynamic Text Orientation) where: the final orientation is written in the "Emitted Text/Attribute" section of the DAT and PLT output files.

    Issue 172 - Missing ADandMO in 274X

    Fixed issue #172 (Missing ADandMO in 274X) where: the 274x header is not in the GERBER output. This issue is caused by adding the 274x header information into the wrong GERBER output when the output directory is different in the calls to ACS_createODBOutputPlot, ACS_createODBOutputAttr and ACS_convertODBInput.

    Issue 173 - Plotstamp output in 274x

    Added the functionality requested as issue #173 (Plotstamp output in 274x) where: features that has the attribute ".orbotech_plot_stamp" is omitted from the GERBER output if "-plotout" option is specified on conversion or on the call to ACS_createODBOutputPlot function.

    Issue 174 - Surface coordinate

    Added the functionality requested as issue #174 (Surface coordinate) where: the surface feature's center coordinate is used in the ATR output file.

    Issue 175 - Arc coordinate

    Added the functionality requested as issue #175 (Arc coordinate) where: the arc feature's center coordinate is used in the ATR output file.

    Issue 176 - Line coordinate

    Added the functionality requested as issue #176 (Line coordinate) where: the line feature's start point coordinate is used in the ATR output file.

    Issue 178 - 274x header repetition

    Fixed issue #178 (274x header repetition) where: the GERBER output's header information is repeated several times. This is the same bug that caused issue #178.

    Issue 179 - Dynamic Text Polarity

    Added the functionality requested as issue #179 (Dynamic Text Polarity) where: the final polarity is written in the "Emitted Text/Attribute" section of the DAT and PLT output files.




    Version 1.85    Dec 21,2010

    New function

    Created a new function to create a DAT (dynamic text) file without creating a GBR file (option 1): ACS_createODBOutputDynTxt

    Issue 169 - Attribute Error

    Fixed issue #169 (Attribute Error) where: attributes without values are not output into the ATR file.

    Issue 170 - Missing ADandMO in 274X

    Fixed issue #170 (Attribute Error) where: a rectangle without an attribute is not output into the GERBER file when cvtnonzero is set to false.

    Issue 172 - Attribute Error

    Fixed issue #172 (Missing ADandMO in 274X) where: the 274 header is not in the GERBER output.




    Version 1.83    Dec 15,2010

    Non zero pad

    The option to exclude nonzero pad is implemented.




    Version 1.82    Dec 12,2010

    Two new functions to create PLT or ATR file

    Created two new functions to create a PLT or ATR file:
    ACS_createODBOutputPlot and ACS_createODBOutputAttr

    Added two new arguments to create a PLT or ATR file from the dialog or the function ACS_convertODBInput:
    -attrout:attrname,0|1 and -plotout

    The usage of the two new functions and the two new arguments can be found in the acs_odb.h header file provided in the package.




    Version 1.80    Sep 9,2010

    Pattern Shift issue 166

    This release resolves issue #166 (Pattern Shift) where ODB2GBR's Gerber output is shifted up and is intersecting with other data.




    Version 1.79    July 19,2010

    Dynamic Text Issue 164

    This release resolves issue #164 (Dynamic Text) where ODB2GBR's dynamic text $$WEEK-DAY is not output in the dynamic info file (DAT).




    Version 1.78    May 17,2010

    Drawing Pad

    This release resolves issue #159 (Pad NG) where ODB2GBR's output was missing a scratch data.




    Version 1.77    April 22,2010

    Drawing Pad

    This release resolves issue #157 (Pad NG) where ODB2GBR's output draws a line with round dcode 0.001inch instead of 0.000 width.




    Version 1.76    April 7,2010

    Read Error

    This release resolves issue #154 (Read Error) where ODB2GBR fails to open a ODB++ files containing directories with windows reserved names. This was fixed.

    Log Dynamic Text

    This release resolves issue #156 (Log Dynamic Text) where ODB2GBR outputs dynamic text into the GERBER output even with the "log dynamic text info" option checked. ODB2GBR will no longer output dynamic texts into the GERBER output if the "log dynamic text info" option is checked.




    Version 1.75    March 30,2010

    PCB Numbering

    Issue #153 was fixed.

    Program crash

    The crash was related to the new dynamic text feature for a special case of Genesis emulation. This was fixed.




    Version 1.74    March 27,2010

    Dynamic text support

    First release of the ODB++2GBR with Dynamic text support.




    Version 1.73    March 4,2010

    64 bit

    First release of the ODB++2GBR with 64 bit support.

    Option "-nolog"

    The option "-nolog" to disable logging is added. This option should be passed into the ACS_openODB function. In the GUI, it should be specified in the Input Settings' Arguments.

    DLL Change

    The DLL has been changed. OEM users should now use the odb2gdx.dll instead of the odb2gbr.dll that is provided in the package.

    Header changes

    The headers acs_odb.h and acs_odb_structs.h have been changed. for OEM, please use the latest headers included in the package when compiling your own program. Also, please make sure that you use the error code variables defined in the acs_odb_structs.h header file since the values change when a new error code is added.




    Version 1.72    January 7,2010

    Improved Interface to Netex-G

    This release includes better integration to Netex-G.




    Version 1.71    November 24, 2009

    Added Interface to Netex-G

    This release includes an interface to Netex-G. ODB++2GBR users will now be able to generate the Netex-G job file along with the Gerber data for the metal, drill and component layers. The job file will also include the net information.




    Version 1.70    September 29, 2009

    Software hangs up on Windows 2000 Advanced Server

    This release resolves issue #146 (Hungup) where ODB2GBR hangs when opening the ODB++ file 95827-00.tgz on a Windows 2000 Advanced Server platform.

    The issue is caused by spawning too many threads when decompressing .Z files. ODB2GBR hangs while waiting for all of the threads to finish.

    This issue was solved by decompressing .Z files sequentially instead of concurrently.




    Version 1.69    September 22, 2009

    AM Macro error

    This release resolves issue #145 (AM Error) where: The macro (AM) definition does not exist for a declared aperture (%ADD28Symbol_laser_nai_mark_a*%).
    AM Error can be found in ODB++ files that potentially produce large numbers of apertures (greater than 9999). In order to minimize the number of aperture definitions, ODB2GBR sorts and remaps all unique apertures in its internal database. As a result of this remapping process, the macro in question was incorrectly tagged as 'being used'. Since it was tagged, it was not discarded at cleanup of unused apertures.
    This macro appeared definition actually appeared and was used in the feature file for the layer in question. However, because it contained scratch data, it had to be exploded and therefore does not appear explicitly in the Gerber output.

    This issue was solved by tagging apertures as 'being used' as they are output.




    Version 1.68    September 1, 2009

    Fail to open file

    This release resolves the file opening issue reported by Samsung.




    Version 1.67    August 31, 2009

    Fail to open file

    This release resolves issue 142 from Hitachi where ODB2GBR failed to open a valid ODB++ tar file.
    The problem was related to the fact that originally the TAR format did not support long path names. The TAR specification now supports long path names with two different mechanisms. ODB2GBR was upgraded to support that as well.




    Version 1.66    June 21, 2009

    Dynamic texts issues from Samsung

    This release resolves two dynamic texts issues raised by Samsung:




    Version 1.65    June 18, 2009

    Data lost

    This release resolves issue #138 (Data lost) where some of the ODB++ data were lost in conversion from ODB to GERBER.
    This issue was caused by confusion of a step and a symbol with the same name.

    Date dynamic text issue

    This release resolves issue #139 (Data lost) where the date dynamic text was not converted to the real-time date during conversion.
    This issue was caused by ODB2GBR’s inability to recognize a dynamic text string. $$Date-mmddyyyy was not recognized when checking for dynamic text because of the lower case ‘mmddyyyy’.
    In general, all dynamic text recognition was case insensitive, however, this was a special case where the string following $$Date- was not handled properly.




    Version 1.64    June 18, 2009

    Coordinate Error

    This release resolves issue #135 (Coordinate Error) where the ODB2GBR's output surface has a different width than in valor.

    NOTE:

    To enable this precision use the argument -format:2.7
    To avoid overflow use -format:2.7 for Inch and -format:3.6 for MM as the maximum.




    Version 1.63    June 18, 2009

    SR Command Control

    This release adds the control to output the SR command even if BreakSR is yes.
    If this mode is selected, the other commands are not output (IR, MI etc.).

    USAGE:

    1. In the GUI:
    In the G2K Emulator Dialog set BreakSR to Yes and check the Step and Repeat checkbox.

    2. In the command line:
    Pass both arguments "-step_repeat" and "-g2k_break_sr:1"

    3. In the function ACS_convertODBInput():
    Pass both arguments "-step_repeat" and "-g2k_break_sr:1" into the list of additional arguments (argv)




    Version 1.62    June 2, 2009

    Without extension

    This release resolves issue #136 (Without extension) where the output gerber file was missing header information..




    Version 1.61    May 18, 2009

    New command line -format

    The command line argument -format: has been provided to control the Gerber output Format.
    The default has been 2.6 for Inch output and 3.5 for MM output.
    We suggest that 2.7 format for Inch and 3.6 format for MM are safest maximum to use without generating overflow values..




    Version 1.60    April 21, 2009

    SR Error

    This release resolves issues 132 and 133 (Step-Repeat Error) where incorrect SR information was generated into a Gerber output.




    Version 1.59    March 2, 2009

    Memory Error

    This release resolves issue #129 (Memory Error) in which some allocated memory was not being freed.

    View Gerber

    This release fixes the View Gerber option in ODB2GBR.




    Version 1.58    Febraury 20, 2009

    Memory Error

    This release resolves issue #129 (Memory Error) where some allocated memory was not being freed.

    Several new functions to free memory can be found in the header file acs_odb.h which is included in the package.
    Because of the new functions, the library (odb2gbr.lib) has been changed. This means that you have to recompile any program that uses odb2gbr.dll.
    To compile, please use the latest odb2gbr.lib and acs_odb.h which can be found in the "lib" directory of the ODB2GBR's installation directory




    Version 1.57    Febraury 11, 2009

    Rotation Error

    This release resolves issue #126 (rotation error) where the ODB2GBR output file differs from the GENESIS Gerber output file when anchor is non-zero and step-repeat is on.




    Version 1.56    Febraury 2, 2009

    AM Error - 2nd fix

    This release resolves issue #127 (AM error) where some of the ODB2GBR output file's macros are incorrect.




    Version 1.55    January 28, 2009

    AM Error

    This release resolves issue #127 (AM error) where some of the ODB2GBR output file's macros are incorrect.




    Version 1.54    January 27, 2009

    Rotation Error

    This version resolves issue #126 (rotation error) where the ODB2GBR output file differs from the GENESIS Gerber output file.
    To revert back to the ODB2GBR v1.51 output pass the argument "-cc_ir" to:
    - command line: odb2gbr_cmdlne.exe "-job:sample.tgz" ... -cc_ir
    - ODB2GBR dialog: in the advanced dialog's arguments text box
    - function: ACS_convertODBInput

    All the possible arguments are listed in the header file "acs_odb.h" which is included in the package under the "lib" directory.




    Version 1.53    January 24, 2009

    Too many lpd/lpc in output Gerber file

    This release resolves issue #125 which had to do with too many layers in the output Gerber file.




    Version 1.52    January 14, 2009

    Rotation error

    This release resolves issue #126 (rotation error) where: the IR value of the output GERBER file is incorrect.

    To revert back to the previous GERBER output (v1.51) pass the argument "-cc_ir" to:
    - command line: odb2gbr_cmdlne.exe "-job:sample.tgz" ... -cc_ir
    - ODB2GBR dialog: in the advanced dialog's arguments text box function: ACS_convertODBInput.

    All the possible arguments are listed in the header file "acs_odb.h" which is included in the package under the "lib" directory.




    Version 1.51    November 6, 2008

    Handles in ODB++2GBR

    This release minimizes the number of handles used by ODB2GBR.




    Version 1.50    November 3, 2008

    ODB2GBR GENESIS Emulation Ver 3 functionality

    The GUI now has an option to convert using g2k emulation v3 from the advanced dialog.
    The command line executable and the function ACS_convertODBInput now accepts g2k emulation v3 arguments.

    The allowed G2K v3 arguments are:
    -g2k_ver:3
    -g2k_order:0 | 1
    -g2k_break_sr:1 | 2
    -g2k_scale_mode:1 | 2 | 3
    -g2k_anchor:0 | 1 | 2 | 3
    -g2k_inch_anchor:anchor_dbl_val
    -g2k_mm_anchor:anchor_dbl_val
    -g2k_offset:0 | 1 | 2 | 3 | 4 | 5
    -g2k_inch_offset:offset_dbl_val
    -g2k_mm_offset:offset_dbl_val

    NOTE:
    The list of version 3 arguments can be found in the header file acs_odb.h which is included in the package.




    Version 1.49    October 22, 2008

    Chord error issues

    This release resolves error code -209 where: conversion fails when chord error is .00025




    Version 1.48    September 23, 2008

    ODB2GBR GENESIS Emulation Ver 2 functionality

    The GUI now has an option to convert using g2k emulation v2 from the advanced dialog.
    The command line executable and the function ACS_convertODBInput now accepts g2k emulation v2 arguments.

    The allowed G2K v2 arguments are:
    -g2k_ver:2
    -g2k_order:0 | 1
    -g2k_break_sr:1 | 2
    -g2k_scale_mode:2
    -g2k_anchor:0 | 1
    -g2k_offset:0 | 1 | 3

    NOTE:
    The list of version 2 arguments can be found in the header file acs_odb.h which is included in the package.




    Version 1.47    September 14, 2008

    Large Output File

    his release resolves issue #119 (large output file) where: the output Gerber file is too large due to the lack of SR commands.




    Version 1.46    September 10, 2008

    thermal mirror Error

    his release resolves issue #117 (thermal mirror error) where: rotation/mirroring is not applied correctly to a thermal.

    Dynamic text Error

    This release resolves issue #118 (dynamic text error) where: a dynamic text is not drawn in uppercase.




    Version 1.45    September 4, 2008

    Symbol Error

    This release resolves issue #116 (user defined symbol error) where: rotation/mirroring is not applied correctly to a user defined symbol.




    Version 1.42    August 7, 2008

    Shape Error

    This release resolves issue #112 (AM Error), where a macro name is defined multiple times as a result of rotated symbols generating a macro name that already exists.




    Version 1.41    June 12, 2008

    AM Error

    This release resolves issue #114 (Shape Error), where: A surface hole is not drawn correctly




    Version 1.40    June 10, 2008

    Pattern Error

    This release resolves issue #111 (Pattern error), where the SR steps are not drawn in the correct order.




    Version 1.39    May 29, 2008

    Shape Error

    This release resolves issue #110 (Shape error) where a rectangular line is drawn incorrectly.




    Version 1.38    May 26, 2008

    Shape Error

    This release resolves issue #110 (Shape error) where a rectangular line is drawn incorrectly.




    Version 1.37    May 16, 2008

    SR bug fix

    This release resolves issue #107 (Pattern weft) where: the SR steps are not drawn in the correct order and data are not being scratched.




    Version 1.36    May 6, 2008

    RectAngle PAD line error

    This release resolves issue #106 (RectAngle PAD line error) where: The line drawn with a rectangle in ODB2GBR does not match the GENESIS GERBER representation.




    Version 1.35    May 1, 2008

    Error code -206

    This release resolves issue #104 (error code -206) which is caused by running multiple instances of odb2gbr at the same time on the same file, same step but different layers.

    Running multiple instances of odb2gbr at the same time on the same file, same step and same layer is not allowed. This will create a corrupted output.




    Version 1.34    April 24, 2008

    Path Error

    This release resolves the Path Error where:

    An error occurs when the "ODB Input file path" is set to "IP address" or "Network Computer name".




    Version 1.33    April 22, 2008

    Dynamic Text Error

    This release resolves the Dynamic Text Error where:
    - Some of the Dynamic Texts are converted incorrectly..

    New API calls Added

    A function to get the out_x_scale and out_y_scale value of a given Step/Layer combination:
    int ACS_getODBOutScale(char * stepName, char * layerName, double * x, double * y);
    - This function gets the out_x_scale and out_y_scale value of the specified step/layer combination.
    - This function returns 0 if successful and 1 if failed
    - x will be set to layer's out_x_scale value
    - y will be set to layer's out_y_scale value

    4 functions to get the Top Step List and Most Likely Topmost Step

    int ACS_getODBTopStepListName(char *** topStepList, int * numTopStepList);
    - This function gets the list of the step names with no parents (top steps)
    - This function returns 0 if successful and 1 if failed
    - topStepList will be set to the list of the top step names
    - numTopStepList will be set to the number of top steps

    int ACS_getODBTopStepListIndex(int ** topStepList, int * numTopStepList);
    - This function gets the list of the step indices with no parents (top steps)
    - This function returns 0 if successful and 1 if failed
    - topStepList will be set to the list of the top step indices
    - numTopStepList will be set to the number of top steps

    char * ACS_getODBMostLikelyTopStepName();
    - This function returns the top step name or NULL if it failed

    int ACS_getODBMostLikelyTopStepIndex();
    - This function returns the top step index or -1 if it failed

    The index returned by ACS_getODBTopStepListIndex and ACS_getODBMostLikelyTopStepIndex is used for the Step List returned by the function ACS_getODBStepInfoList

    Example:

    struct ODB_StepInfo *stepList;
    int stepCount;
    int ret;
    int idx;
    ret = ACS_getODBStepInfoList(&stepList, &stepCount);
    if(!ret){
    idx = ACS_getODBMostLikelyTopStepIndex();
    if(idx != -1)
    printf("Most Likely Top Step: %s\n", stepList[idx].Name);
    }

    The fields of "struct ODB_StepInfo" can be found in the header file acs_odb_structs.h, which is included in the package.
    NOTE:
    - The declaration of these new functions can be found in the header file acs_odb.h which is included in the package.




    Version 1.32    April 21, 2008

    Flash Error and Lost Data Issue

    This release resolves the Flash Error and Lost Data Issue where:
    - A part of a symbol is not rotated correctly
    - A part of a symbol is lost/dropped




    Version 1.31    April 17, 2008

    Dynamic Text Error

    This release resolves the Dynamic Text Error where:
    - Some of the Dynamic Texts are not converted.




    Version 1.30    April 2, 2008

    Square Drawn Arcs error

    This release resolves the Square Drawn Arc Error where:
    - An arc is drawn with a square instead of with a round primitive..




    Version 1.29    March 31, 2008

    Scale Issue

    This release adds 4 output flavors to convert ODB with out_scale attributes:

    1. default: ignore all out_scale
    "out_scale" attribute : Ignored
    "out_x_scale" attribute : Ignored
    "out_y_scale" attribute : Ignored
    - %SF directive : Not used
    - The shape of feature with "out_scale" attribute : Not scaled
    - The position of feature with "out_scale" attribute : Not scaled
    
    2. sf: enforce global scaling by way of %SF
    "out_scale" attribute : Ignored
    "out_x_scale" attribute : Not Ignored
    "out_y_scale" attribute : Not Ignored
    - %SF directive : Used
    - The shape of feature with "out_scale" attribute : Not explicitly scaled
    - The position of feature with "out_scale" attribute : Not explicitly scaled
    
    3. scale: enforce global scaling by way of explicit scaling
    "out_scale" attribute : Ignored
    "out_x_scale" attribute : Not Ignored
    "out_y_scale" attribute : Not Ignored
    - %SF directive : Not used
    - The shape of feature with "out_scale" attribute : Not
    scaled - The position of feature with "out_scale" attribute : Explicitly scaled
    
    4. local: perform scaling with .out_scale control
    "out_scale" attribute : Not Ignored
    "out_x_scale" attribute : Not Ignored
    "out_y_scale" attribute : Not Ignored
    - %SF directive : Not used
    - The shape of feature with "out_scale" attribute : Not scaled
    - The position of feature with "out_scale" attribute : Not scaled
    




    Version 1.28    March 11, 2008

    Flash Error

    This release resolves the Flash Error where:
    - Some pads are converted incorrectly:
    Square
    Rectangular
    Half-Oval
    Round Thermal (Square)
    Round Thermal
    Square Thermal (Open Corners)
    Rectangle Thermal (Open Corners)
    Moire

    Version 1.26    February 22, 2008

    Scale Issue

    This release resolves the Scaling issue where:
    - Some GENESIS Gerber output does not match the ODB2GBR output because of out_x_scale and out_y_scale values..

    Version 1.25    January 8, 2008

    Missing/Dropped User Defined Symbol

    This release resolves the Dropped User-Defined Symbol Error where:
    - Recursive use of user defined symbols are not supported. It is now supported.

    Version 1.24    December 13, 2007

    Undefined Aperture

    Version 1.23    November 30, 2007

    File Open Error

    This release resolves the File Open Error where:
    - An ODB File was not successfully opened.

    Version 1.21    September 19, 2007

    Layer Count Issue, Line Error, Dynamic Text Error and File Open Error

    This release resolves the Layer Count Issue, Line Error, Dynamic Text Error and File Open Error where:
    - There is an excessive number of layers in the output.
    - The order of layer conversion is incorrect.
    - Some dynamic text are converted incorrectly.
    - An ODB File was not successfully opened.

    Version 1.19    September 10, 2007

    Layer Count Issue

    This release resolves the Layer Count Issue where:
    - Too many Gerber layers are created. It was improved to create less layers. The number of layers for the file test.tgz was reduced from 66 to 15.

    Open Error

    This release resolves the File Open Error where:
    - The program detects irregular files (files that are not in the ODB++ spec) and an error is returned. This had to do with .org files that are not defined in the ODB++ specifications. The file in question was a font file called standard.org.
    In the fix for the open error, this font file is treated as any other font files, namely...
    (1) Font files are read and if not recognized as a font file, the file is ignored (not converted into an SHX file).
    (2) Feature files are converted into GDX. There are text lines in the feature files that make use of SHX files. If the text lines make use of a non-existing SHX file, an error is returned.

    Polygon Data Issue

    This release resolves the Polygon Data Issue where:
    - The default polygon output is butting edge. The default polygon output is now cutline. New command line option -butting is now available. Use this option if you need a multiple polygon output instead of a single polygon (Issue 61).






    Version 1.18    August 16, 2007

    Polygon Data Issue

    This release resolves the Polygon Data Issue where:
    - The default polygon output is butting edge.
    The default polygon output is now the same as v1.16 (single polygon). To enable multiple polygon output, the optional argument for ACS_convertODBInput is "-butting".
    Please see the acs_odb.h header file included in the package for more information.






    Version 1.17    August 9, 2007

    Polygon Data Issue

    This release resolves the Polygon Data Issue where:
    - The only possible type of polygon conversion is cutline.
    Surface conversion has been modified to enable 2 types of polygon output. The default output is butting edge (2 or more polygons) and the alternative output is cutline (single polygon). Cutline output can be enabled by passing "-cutline" in the argument list of ACS_convertODBInput. Please see the acs_odb.h file included in the package for more information.

    Dynamic Text Error

    This release resolves the Dynamic Text Error where:
    - Some dynamic text are converted incorrectly.






    Version 1.12    July 24, 2007

    Text Errors

    This release resolves the Text Error where:
    - Some text are converted incorrectly.






    Version 1.11    July 18, 2007

    Text Position Error

    This release resolves the Text Position Error where:
    - Some text initial position does not match the text created by Genesis.






    Version 1.10    July 16, 2007

    Text Position Error

    This release resolves the Text Position Error where:
    - Some text initial position does not match the text created by Genesis.

    Pad Placement Error

    This release resolves the Pad placement Error where:
    - Some pad transformations are incorrect.






    Version 1.09    July 12, 2007

    Text Position Error

    This release resolves the Text Position Error where:
    - Some text initial position does not match the text created by Genesis.






    Version 1.08    July 9, 2007

    Text Position Error

    This release resolves the Text Position Error where:
    - Some text initial position does not match the text created by Genesis.






    Version 1.07    June 29, 2007

    File Open Error

    This release resolves the File Open Error where:
    - An ODB File was not successfully opened because of a SR memory allocation bug

    New API Calls Added

    three new API calls have been added to help a calling program determine the revision of the DLL

    char * ACS_getODBVersion();
    char * ACS_getODBRcs();
    char * ACS_getODBDate();
    

    See the acs_odb.h for details.






    Version 1.06    June19, 2007

    Text Position Error

    This release resolves the Text Position Error where:
    - Some text placement does not match the text created by Genesis.






    Version 1.05    June9, 2007

    Surface Error

    This release resolves the Surface Error where: - Some polygons are converted incorrectly.
    This issue was fixed by collecting groups of islands and holes. The current group of holes are subtracted from the previous group of islands.






    Version 1.04    June7, 2007

    DataOrigin Error

    This release resolves the Data Origin Error where:
    - Some Data placement are converted incorrectly.

    Surface Error

    This release resolves the Surface Error where:
    - Some polygons are missing holes.
    This issue was fixed by collecting all the islands and all the holes in the surface and subtracting all the holes from the islands all at once.

    SquareLine Error

    This release resolves the Square Line Error where:
    - Diagonal Square Lines are converted incorrectly.
    Please note that our previous output was how Gerber files interpret diagonal lines drawn with a square. To draw the same output as Valor, we turned the diagonal lines into polygon area fills (i.e. using G36,G37 Gerber G codes).






    Version 1.03    May 31, 2007

    Text Position Error

    This release resolves the Text Position Error where:
    - Some text placement does not match the text created by Genesis.

    Application Error

    This release resolves the Application Error where:
    - A real-time problem caused the program to access freed memory.






    Version 1.02    April 03, 2007

    Font Error

    This release resolves the Font Error where:
    - Some text are converted with an incorrect font.

    SR Error

    This release resolves the Step and Repeat Error where:
    - Some SR data are converted incorrectly.

    Gerber Outline Error

    This release resolves the Gerber Outline Error where:
    - The Gerber outline primitive draw is incorrect.
    The Gerber outline primitive output has been fixed to follow the convention. CAM350 should now load and draw the Gerber file as expected.






    Version Alpha 4    April 03, 2007

    Output Units

    Even though all ODB++ files are by definition created in units of inches, it is now possible to select RS274X utput in units of MM.

    Conversion Time Improved

    The conversion time has been improved; multithreading is supported and the user should specify a thread number = 2 to take advantage of multithreading.

    Bug Fix

    As per the issue #11 of 04/02/07; The bug that causes the program to report an error has been fixed.






    Version Alpha 1    March 08, 2007

    Alpha Release 1

    The alpha release is designed to enable our programmer customers to start coding their calling programs.

    Notes:


    Planned for Next Release (2 weeks)

    1. rotated D codes/symbols

    2. OBD text support

    3. macros, i.e. Valor defined symbols that do not have a direct analog in GERBER

    4. polarity changes

    5. improved error message support

    6. speed improvements






    Version 1.00    March 07, 2007

    Alpha Release 0

    The alpha release is designed to enable our programmer customers to start coding their calling programs. The alpha version does not support:






    Download

    Revision History

    Price