This page contains the summary of odb2gbr release dates, versions and changes/fixes made for that release.
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.
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.
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 modulesUpdated split274x and boolean component modules.
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 symbolsThe 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++ attributesOdb2gdx64.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 islandsChord 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.
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.
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.dllThe 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.
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.
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 dpackUpdated Boolean Components
The Boolean libraries used by ODB2GBR have been updated to the most recent version.
Updated the Gerber validation module.
New Linux release to match the Windows version.
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 supportAdded support for type name Cross_type and ODB++ Symbol name cross.
Report of unsupported symbol namesWhen 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 dpackUpdated Boolean Components
The Boolean libraries used by ODB2GBR have been updated to the most recent version.
Updated the Gerber validation module.
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 UpdatesFixed ODB2GDX library to include component layers in ODBTREE functions.
Updated ODB feature file converter (ODB2GDX ENGINE)
The Boolean libraries used by ODB2GBR have been updated to the most recent version.
Updated the Gerber validation module.
Optimized ODB++ file existence check for speed (Windows only). This generated a speed up of about two to five times.
Updated the Gerber preprocessor.
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.
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..
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.
This version has an improved end caps at the ends of the round path when command line option -sqrln2pth is used.
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 filesFixed an issue with handling space characters around '=' characters.
This version has an improved end caps at the ends of the round path when command line option -sqrln2pth is used.
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.
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.
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 AttributesThis 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.
Added support for UTF and ISO/IEC 8859-1 characters set for both file and folder names.
Updated Boolean ComponentsThe Boolean libraries used by ODB2GBR have been updated to the most recent version.
Updated the Gerber validation module.
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.
The Boolean libraries used by ODB2GBR have been updated to the most recent version.
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 degreesThis 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).
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 regionsThis 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 drawsNon-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 EngineNew boolean engine with improved speed.
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_TYPEAdaptive correction was applied to ensure that this symbol could be fully inscribed in a ROUNDTHERMALSQUAREED_TYPE having the same parameters.
Updated Boolean EngineNew boolean engine with improved speed.
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 EnhancementODBSCAN 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.
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.
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.
The underlying Boolean library used by this program has been updated to use the most recent version.
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.
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 ArcVery 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 ModulesBoolean library modules used by ODB2GBR have been updated to sync with the latest version of Artwork's Boolean.
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 SupportAdded 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 SpecifierAdded Unit specifier for chord error: -arcsag:<val>[<uspc>]
The optional unit specifier, <uspc>, can be one of the following :
This applies only for the command line argument.
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 UpdatedThe Boolean library used in odb2gbr has been updated to Artwork's most recent version.
Gerber Validation UpdatedThe module that performs Gerber validation has been updated to the most recent version.
Added limited support for multi stroke ODB++ fonts.
Enhanced round end arc draws with width.
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.
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 PackagePROVIDED 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
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
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.
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.
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.
Added arguments to effect changes to the following dynamic text: $$WW, $$YY, and $$YYYY
Boolean and Gerber validation components have been updated.
This version was compiled with VS2015. VS2008 is discontinued.
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.
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'.
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.
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.
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 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.
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).
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
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.
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.
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.
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.
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.
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.
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.
Circularization during post processing is now multi-threaded. See this page for details.
Split274x UpdateFixed how the command line and GUI passes arguments to post processing (split274x).
Function RenamedRenamed the GUI's "Surface Settings" tab to "Post Processing" to better reflect its function.
Granular Control of split274x Post ProcessorFine 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 to split274x.
Added post processing (split274x) reports to the log file.
Added Timing to Log FileAdded loading and conversion timing information in the log file.
Postprocessing TriggerPost processing of the RS274X will be triggered if circularization, transformation, max points or other post processing arguments are specified.
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.
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.
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.
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.
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.
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).
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 (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.
Fixed the synchronization error that was causing a crash on Windows XP when the optional argument "-nocopyin" was used.
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.
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.
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.
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.
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.
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.
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
Fixed bug when reading ODB++ input with MM specified features.
Added support for dielectric layers.
Fixed an installation library issue and missing text file from the software release.
Updated the ODB++ reader to the latest version.
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.
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.
Fixed a bug where the output is incorrect using the option g2k_scale_mode when top step has no data.
Fixed bug that creates a zero width dcode. The problem was in mapping round surfaces to round pads.
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
Here are the fixes done with this version:
Misc Bug fixes
Here are the fixes done with this version:
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 issueFixed the dynamic text that was not translated. This is caused by the translator expecting an attrlist file from a step which did not exist.
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 issueFixed 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 IssueFixed 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 SymbolsAdded support of rotated standard symbols.
Fixed bug in reading ODB++ with GZ files.
New -nocopyin optionAdded 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 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 featuresGzip compressed features are now supported.
Speed improvementsSpeed improvement (up to 20x) on ODB++ input with complicated surfaces.
This version resolves a few issues reported by different clients.
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.
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).
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 sampleFixed 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_convertODBAttrCreated a new function ACS_convertODBAttr that converts the coordinates of a given ODB++ step/layer/attributes combination without GERBER convertion.
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 274XFixed 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 274xAdded 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 coordinateAdded 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 coordinateAdded 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 coordinateAdded 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 repetitionFixed 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 PolarityAdded 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.
Created a new function to create a DAT (dynamic text) file without creating a GBR file (option 1): ACS_createODBOutputDynTxt
Issue 169 - Attribute ErrorFixed issue #169 (Attribute Error) where: attributes without values are not output into the ATR file.
Issue 170 - Missing ADandMO in 274XFixed 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 ErrorFixed issue #172 (Missing ADandMO in 274X) where: the 274 header is not in the GERBER output.
The option to exclude nonzero pad is implemented.
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.
This release resolves issue #166 (Pattern Shift) where ODB2GBR's Gerber output is shifted up and is intersecting with other data.
This release resolves issue #164 (Dynamic Text) where ODB2GBR's dynamic text $$WEEK-DAY is not output in the dynamic info file (DAT).
This release resolves issue #159 (Pad NG) where ODB2GBR's output was missing a scratch data.
This release resolves issue #157 (Pad NG) where ODB2GBR's output draws a line with round dcode 0.001inch instead of 0.000 width.
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 TextThis 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.
Issue #153 was fixed.
Program crashThe crash was related to the new dynamic text feature for a special case of Genesis emulation. This was fixed.
First release of the ODB++2GBR with Dynamic text support.
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 ChangeThe DLL has been changed. OEM users should now use the odb2gdx.dll instead of the odb2gbr.dll that is provided in the package.
Header changesThe 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.
This release includes better integration 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.
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.
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.
This release resolves the file opening issue reported by Samsung.
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.
This release resolves two dynamic texts issues raised by Samsung:
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.
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.
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.
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)
This release resolves issue #136 (Without extension) where the output gerber file was missing header information..
The command line argument -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..
This release resolves issues 132 and 133 (Step-Repeat Error) where incorrect SR information was generated into a Gerber output.
This release resolves issue #129 (Memory Error) in which some allocated memory was not being freed.
View GerberThis release fixes the View Gerber option in ODB2GBR.
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
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.
This release resolves issue #127 (AM error) where some of the ODB2GBR output file's macros are incorrect.
This release resolves issue #127 (AM error) where some of the ODB2GBR output file's macros are incorrect.
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.
This release resolves issue #125 which had to do with too many layers in the output Gerber file.
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.
This release minimizes the number of handles used by ODB2GBR.
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.
This release resolves error code -209 where: conversion fails when chord error is .00025
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.
his release resolves issue #119 (large output file) where: the output Gerber file is too large due to the lack of SR commands.
his release resolves issue #117 (thermal mirror error) where: rotation/mirroring is not applied correctly to a thermal.
Dynamic text ErrorThis release resolves issue #118 (dynamic text error) where: a dynamic text is not drawn in uppercase.
This release resolves issue #116 (user defined symbol error) where: rotation/mirroring is not applied correctly to a user defined symbol.
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.
This release resolves issue #114 (Shape Error), where: A surface hole is not drawn correctly
This release resolves issue #111 (Pattern error), where the SR steps are not drawn in the correct order.
This release resolves issue #110 (Shape error) where a rectangular line is drawn incorrectly.
This release resolves issue #110 (Shape error) where a rectangular line is drawn incorrectly.
This release resolves issue #107 (Pattern weft) where: the SR steps are not drawn in the correct order and data are not being scratched.
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.
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.
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".
This release resolves the Dynamic Text Error where:
- Some of the Dynamic Texts are converted incorrectly..
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
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.
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
This release resolves the Dynamic Text Error where:
- Some of the Dynamic Texts are not converted.
This release resolves the Square Drawn Arc Error where:
- An arc is drawn with a square instead of with a round primitive..
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
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
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..
This release resolves the Dropped User-Defined Symbol Error where:
- Recursive use of user defined symbols are not supported. It is now supported.
This release resolves the File Open Error where:
- An ODB File was not successfully opened.
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.
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.
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.
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).
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.
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.
This release resolves the Dynamic Text Error where:
- Some dynamic text are converted incorrectly.
This release resolves the Text Error where:
- Some text are converted incorrectly.
This release resolves the Text Position Error where:
- Some text initial position does not match the text created by Genesis.
This release resolves the Text Position Error where:
- Some text initial position does not match the text created by Genesis.
This release resolves the Pad placement Error where:
- Some pad transformations are incorrect.
This release resolves the Text Position Error where:
- Some text initial position does not match the text created by Genesis.
This release resolves the Text Position Error where:
- Some text initial position does not match the text created by Genesis.
This release resolves the File Open Error where:
- An ODB File was not successfully opened because of a SR memory allocation bug
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.
This release resolves the Text Position Error where:
- Some text placement does not match the text created by Genesis.
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.
This release resolves the Data Origin Error where:
- Some Data placement are converted incorrectly.
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.
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).
This release resolves the Text Position Error where:
- Some text placement does not match the text created by Genesis.
This release resolves the Application Error where:
- A real-time problem caused the program to access freed memory.
This release resolves the Font Error where:
- Some text are converted with an incorrect font.
This release resolves the Step and Repeat Error where:
- Some SR data are converted incorrectly.
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.
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 ImprovedThe conversion time has been improved; multithreading is supported and the user should specify a thread number = 2 to take advantage of multithreading.
Bug FixAs per the issue #11 of 04/02/07; The bug that causes the program to report an error has been fixed.
The alpha release is designed to enable our programmer customers to start coding their calling programs.
Notes:
Planned for Next Release (2 weeks)
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 |