This page contains the summary of odb2gds release dates, versions and changes/fixes made for that release.
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.
Updated the Boolean libraries used by ODB2GDS to the latest versions.
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.
New boolean engine with a fix to dropped polygon issue when prescale is turned on (which is the default).
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.
Boolean and Gerber validation components have been updated.
This version was compiled with VS2015. VS2008 is discontinued.
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'.
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.
When the odb2gds Advanced dialog's help button is selected, a Browser window will open up with the ODB2GDS Setting Web Page
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.
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.
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
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.
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).
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
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.
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.
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.
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.
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.
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
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..
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.
Fixed an issue where the output text's origin does not match VUV when the font used has different sized characters.
This version fixes an issue where special characters ' 'space or '-'dash are not converted properly.
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.
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.
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.
Modified library default output arcres/arcsag as 45.0 and 0.0005mm respectively.
Updated libraries and modules (acsbool, gdscomp, gds2oasfrac).
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.
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.
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).
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.
Makes use of xcopy on Windows (if available) to speed up the copying of an input directory.
Updated gdsx2gbr to fix discarded flash bug in an ODB++ file with a lot of layers.
Updated acsbool library.
Fixed the issue with using extended fonts directly in the features file.
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.
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.
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.
Fixed the synchronization error that was causing a crash on Windows XP when the optional argument "-nocopyin" was used.
This version ignores invalid lines when reading the netlist or toollistBug Fix - trying to render an empty string
Fixed the issue where conversion crashes as the result of trying to render an empty stringSample Code
Added sample code to exercise the library to this release.
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.
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.
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.
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.
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.
Fixed a bug where the output is incorrect using the option g2k_scale_mode when top step has no data.
Fixed bug in reading softkey arguments with spaces embedded.
Added -acsk option in the softkey support.
Improved timing report in the log file.
Updated gds2oasfrac and bool.
Added softkey support.
Fixed a bug that causes some files with a large number of vertex count to crash during translation.
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
Added Max Points field in the command lineMissing Holes
Fixed an issue where the frame data has missing holes.
Added Max Points field in the GUIMisc Updates
Here are the fixes done with this version:
Here are the fixes done with this version:
Here are the fixes done with this version:
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.
Added support of line draws using symbols other than round or square.
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.
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.
Fixed the week number issue where the output week number differs from VUV.Rotated Standard Symbols
Added support of rotated standard symbols.
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.
This version has a few improvements.
This version resolves a few issues reported by different clients.
First Windows release. The keys needed for these packages are ODB2GDS 521 and BOOLMT 2700.
The keys needed for these packages are ODB2GDS 521 and BOOLMT 2700.