ASM 3500 web page logo

ASM 3500 Revision History

This document summarizes enhancements and fixes to the ASM 3500 DXF to GDSII Bidirectional translation program. Please consult this page on a regular basis to determine what changes have been made to our programs.

v6.83 Windows and Linux     (1-17-2017)

View Option Removed from Linux GUI

DXF view options removed from GUI (LINUX only, both directions) - xgdsvu was removed from the LINUX product image - this makes it consistent with Windows versions.

Font Support Enhanced

SHX UNIFONT support was improved - the SHX font interpreter had an issue with pen states in conjunction with pops, pushes and shape calls. This was fixed.

Polygon Repair Enhanced

Twisted polygon repair was enhanced/improved. This addressed an issue where a vertex that should have been retained was incorrectly removed.

Max Points Control in Linux GUI

The max points control in the xdxf2gds UI now allows up to 8191. Previously the maximum allowed value that could be entered was 4096.
The GDS viewer is now remembered in the LINUX UIs.

GUI Launch Scripts Modified

Under LINUX the user interfaces are launched from scripts. These were modified so that the default library path is remembered before launching any GDS viewer. Also, libXm and libXpm were added to package for local reference.

v6.81a Linux     (8-12-2015)

Circularize Option in xgds2dxf GUI

Added Circularize option in xgds2dxf GUI.

v6.82     (4-7-2015)

DXF Grid Resolution fix

This version fixes a problem in dxf2gds when using a grid of 10,000 um for DXF and 1,000 um for GDS. This combination caused an overflow problem that resulted in erroneous reporting of bad figures.

v6.81     (3-31-2015)

Flexlm Floating licensing fix

This release fixes a client problem when running the software in floating mode.
The error message was FLEXlm Error (-1) - Cannot find license file.

In Floating mode we expected that the ARTWORK_LICENSE_FILE variable would point to a machine or a list of machines and their respective port numbers. It did not expect that the variable would point to a disk file.

The current policy has been amended. In Floating mode, if the ARTWORK_LICENSE_FILE variable should point to a disk file, the contents of the disk file should contain the line "USE_SERVER" if that file is to be used in the context of a floating licensing policy.

In the case of Node locked licensing, strings will need to appear in a disk file with name "flexlm.lic" that resides in the same folder as the calling binary file (executable, shared object).

v6.79 Windows    (1-15-2015)

Layer Assignment Problem

Ver 6.79 in DXF2GDS addresses an issue where when data that exceeded the vertex count for the MAX_POINTS keyword the roles of layer and datatype were reversed.

New gds2dxf Linux command line option -ze

The new gds2dxf -ze command line option will add header information to the DXF file which will force AutoCAD to open the file in Zoom Extents mode.

v6.78a Windows    (1-6-2015)

Spline Problem

A SPLINE issue was fixed where the knot values were read in with insufficient precision. Knot values all became zero in the problematic DXF file. The knot values were treated as coordinate information by the reader when in fact they should have been read in at the maximum possible precision as they are used for parameterizing a contour. This issue has now been fixed. The package is now v6.78a. Two engines d2g.exe and d2g64.exe now have version v6.79.

v6.78 Windows    (12-19-2014)

Spline on ACAD2007LT

SPLINE data from AutoCAD R12, R2004, R2010, R2013 and R2007 LITE now all behave properly for certain customer file. A problem was identified in the R2007 LITE output where linking appeared to be broken. This was the result of the first point in the R2007 LITE DXF SPLINE data being dropped. This issue has now been fixed.

v6.77 Windows    (12-10-2014)

Problem Fix

SPLINE related keywords are preserved when running from the GUIs (Windows ONLY).
GDS2DXF intermittent crash was fixed - it was related to bad memory access for PATH data (problem in Windows ONLY).

v6.76 Windows    (12-4-2014)

Better Spline Conversion

The Windows version includes better support for splines.
When GDSII data is constructed from DXF SPLINE data the user is able to control smoothness via the SPLINE_RULE and SPLINE_TOL keywords in the config file (by default GDS.CFG). Where SPLINES describe idealized curves, the representation in GDSII is necessarily approximated by segmenting the idealized curve (as ARCs and CIRCLEs are).

For SPLINE_RULE equal to 0 or 1 (they are treated in the same manner) SPLINE_TOL has no meaning. The total number of approximating segments will be 9 times the number of knot values.

For SPLINE_RULE equal to 2 a second parameter, the value to SPLINE_TOL or ARCSAG (if SPLINE_TOL is zero or has not been specified) will be used to control smoothness. If both SPLINE_TOL and ARCSAG are not specified or are zero then the behavior reverts to that of SPLINE_RULE equal to 0, otherwise the smoothness of the contour between knot values will be on the order of the tolerance value, i.e. the length of each approximating segment will be close to the tolerance value. Because spline data represent nonlinear parametric curves not all approximating GDSII segment lengths will be the same length.

SPLINE_RULE equal to 3 is similar to SPLINE_RULE 2, however as the curve is generated it is attempted to conform to a rule analogous to how ARCs and CIRCLEs are segmented. Specifically the chord error between the idealized curve and the approximating segments will not exceed the value associated with SPLINE_TOL. If the value for SPLINE_TOL is greater than 3 times the value of ARCSAG or it is zero, then the tolerance will be set to 3 times the value of ARCSAG. If both the value of SPLINE_TOL is zero and the value of ARCSAG is zero then SPLINE_RULE equal to 0 is used.

Example GDS.CFG


rule_number: 0 - 3

spline_tolerance (user units)

v6.75 Linux    (10-23-2014)

Windows update

The Windows version includes now all the features added in 6.73 to the Linux version.

Circularize improvements

The GDS2DXF has improved "circularization" over the previous version.

DUP File Error - Permission Problems

This version addresses permissions problem (DUP file error issue).
It does require the user to have have at least one of the following environment variables point to some writable folder:

Log Report

In the DXF -> GDS direction some progress reporting has been added when the qualification of non-robust POLYLINES with width are converted to OUTLINE data is expected to take a long time (i.e. high vertex count).

New Installer

Windows version makes use of our latest installer technology.

v6.73a Linux    (09-08-2014)

GDSII data type support in both directions

Data-type discrimination been implemented via the the config file. Use of the LAYER keyword is the same as before with the exception that the GDSII layer field now can hold either a GDSII LAYER number or a GDSII LAYER:DATATYPE pair. Example:

0 0
THIRD 5 -8
OTHER 10:1 1

The precedence is such that LAYER:DATATYPE pairs will be mapped before LAYER entries that do not carry a DATATYPE component. DATATYPE is understood to also mean TEXTTYPE, NODETYPE, as well as BOXTYPE.

The third field in the config file has always been used to map DXF layer colors. Now a negative layer color can be used to designate an “invisible” DXF target layer.

Text justification support in both directions

After a complete round trip GDS2DXF2GDS all labels in GDS now have the same origin, height, and justification (all 9 combinations that are supported in GDS like “centerCenter”, “lowerLeft”, etc.)

This is now the default behavior.

The old behavior can be restored via the config file. A new keyword PRESERVE_JUST was added to control this behavior.


In the examples above the first use of PRESERVE_JUST disables this new enhancement request while the second turns it on (as usual ON and OFF can be used for YES and NO). One exception to the new behavior is that when source data comes from DXF and the TEXT has been aligned or fitted, the local sense of PRESERVE_JUST is NO, i.e. TEXT can not be both fitted or aligned and expected to be in kind to GDS TEXT presentation.

AutoCAD invisible layer color when going from GDS2DXF

User can define an invisible color for the specific DXF layers when converting from GDSII to DXF.

DXF Revision in the header

GDS2DXF adds $ACADVER == AC1009 to the header – to document the DXF version. User can also define other things in the header following the example below. This has been implemented and applies when the new config file keyword ADD_PREAMBLE is TRUE

DXF generated by Artwork gds2dxf version 6.73a
Input file: /abc/test.gds
User: Anthony

Example DXF Output file.

DXF generated by Artwork gds2dxf version 6.73a
Input file: /abc/test.gds
User: Anthony

v6.69 Windows    (11-21-2012)

Large circle dropped during conversion

This version of DXF2GDS no longer drops with no warning CIRCLE data that it thinks will cause an integer overflow when converting from DXF to GDSII.

v6.68a Solaris and Linux    (06-14-2012)

PATH environment

Version 6.68a is the same release as v6.68 with the exception that xgds2dxf and gds2dxf carry version numbers 6.69 and a 14 June 2012 time stamp. The two of them now support PATH environment variable up to 10240 characters in length.

v6.68 Windows    (04-18-2012)

dxf2gds Windows 64 bit version

A 64 bit DXF2GDS engine (d2g64.exe) is introduced with this release. The 64 bit engine, supporting DLLs and key file(s) are copied into a sub folder named x64 during installation.

If DXF2GDS is launched from the shell, i.e. the 32 bit DXF2GDS GUI, the shell auto detects whether or not the current platform is 64 bit capable. If so it will use d2g64.exe in the x64 folder for translation. There is no control to defeat this auto detection. The 32 bit engine d2g.exe will only be used on a 32 bit version of MS Windows.

The 64 bit engine d2g64.exe is just as command line friendly as its 32 bit counter part. The usage is the same, except the full path to this binary should be supplied, normally

This release introduces a new install that includes the installation of VC Redistributables.

v6.65 Windows    (07-07-2010)

Config file in Read Only mode

Added an option in the dxf2gds direction to read the config file in Read only mode. User can save settings to a new name if needed.

Arc Resolution Setting

In previous versions, when a user selected an Arc Resolution below 1 degree, the information was saved to the config file, but the GUI ignored it and reset it to 9 degrees upon starting a new session of the translator. It did so on purpose to avoid creating very large GDSII files.

v6.64     (03-20-2010)

Pline issue

The DXF engine had a bug handling pline with width that goes back on itself. The section dropped with no warnings.
The method for repairing of POLYLINEs that fold back on themselves has been improved. No additional reporting to the log file has been added.

v6.63     (01-20-2010)

Tapered pline

The DXF engine had a bug handling tapered plines. This has been fixed.

v6.62     (11-30-2009)

Illegal bow tie polygon dropped

ASM3500 dropped an illegal polygon drawn as a bow tie. This has been fixed.

gds2dxf max layer color number

gds2dxf GUI didn't support layer color number greater than 15. This has been fixed.

Rotated extruded block translated incorrectly

ASM3500 converted incorrectly a block which was extruded along the Z axis and rotated. This has been fixed.

Issue with small arcs

The issue was related to the presence of very short poly arcs. Problem reported by Dynatron and is now fixed.

v6.60a     (09-14-2009)

New release for Windows

This version is for all platforms and includes all the updates defined in 6.60.

v6.60     (09-09-2009)

Identical Cell Names

GDSII cells may have the same name but different case. DXF doesn't support that and AutoCAD crashes with duplicate block definition.
This issue has been fixed.

Color map from GDSII to DXF

Control for the highest DXF indexed colors 7, 15, 255 (GDS2DXF).


GDS2DXF now supports GDS PATHTYPE 4 (variable square-ended extensions), i.e. PATHs with BGNEXTN and ENDEXTN.

Control for BLOCK name length

GDS2DXF now has control on the maxmimum number of characters in the DXF block name. Some versions of AutoCAD only supports up to 32 characters while GDSII supports more.

v6.58     (07-24-2009)

Issue with small arcs

The issue was related to the presence of very short arcs, which when converted to GERBER in CIRCULAR mode became 360 arcs (the starting and ending points collapsing to the same point). This problem wasnot a problem when not in CIRCULAR mode, so now every DXF ARC is first checked as if it were not in CIRCULAR mode. If the number of points to create the corresponding segmented ARC is less than 2, the ARC is discarded.

v6.57a     (06-24-2009)

Improved Linker

Improved linker as a result of Physware complaint that some very poorly constructed data (mulitple lines and arcs showing up at the same point) did not link the way they liked.

v6.55a     (06-02-2009)

Angular tolerance

This version tighten up the angular tolerance from 0.001 radians to 0.0001 radians in evaluating polyline bulges. It is used to discriminate between nearly linear "polyarc" segments and "polyarc" segments with some measurable curvature.

v6.55     (05-09-2009)

De-embedding bug

This version fixes the problem reported by Bill Martin, which was the result of striping for butting output and a polygon vertex touched a striping boundary which subsequently was dropped. This has been fixed in the Deemb.Dll.

v6.52     (09-25-2008)

Folded polygon repair

A 0 width closed pline which is touching and twisting on itself was created incorrectly, generating a folded polygon.

v6.51     (06-25-2008)

New De-Embedding Output

A new output option for the de-embedding was added. The new output option is in the configuration menu and the drop down option is: Using Datatype. This output option uses the GDSII datatype to inidicate a boundary's "position" in the polarity hierarchy. Any boundary with datatype 0 has no parents - datatype 1 has 1 parent, datatype 2 has two parents and so on.

This option can be invoked from the command line as -emblevel

Added for client Physware.

v6.48     (1-2-2008)

Error reporting.

This version reports and if possible fixes "folded" polygons. If the polygon can not be repaired it is placed on the "error layer" as before.
This version was tested against the latest bug reports from ARC T098, T103, T104,T105,T106,T107, and T109.

Object folded on itself in first vertex.

The DXF engine didn't report as an error a polygon that had a 0.01 micron segment folded on itself within a close pline. The problem was reported by Advance Reproduction and was fixed (T104).

Long cell names.

The DXF in question crashed due to long cell names. The problem was reported by Advance Reproduction and was fixed (T103).

Mirrored array.

The DXF in question had a problem with a mirrored array. The problem was reported by Advance Reproduction and was fixed (T106).

v6.46     (9-27-2007)

Object folded on itself

The DXF engine didn't report as an error a polygon that had a small first segment folded on itself within a close pline. The problem was reported by Advance Reproduction and was fixed

v6.45a All Platforms    (9-11-2007)

Object folded on itself

The DXF engine didn't report as an error a polygon that had a 0.01 micron segment folded on itself within a close pline. The problem was reported by Advance Reproduction and was fixed

v6.42 All Platforms    (5-15-2007)

Ellipse problem.

The DXF engine didn't support ellipse entities in some cases. Problem reported by CTS Corp and was fixed.

Validation of 0 width closed plines.

A re-entrant polygon (0 width closed pline) which was constructed incorrectly, didn't flag an error in the DXF2GDS conversion. Now it will report an error when the validation option is on.

Path to Outline.

A path with width wasn't converted correctly to a closed outline. Problem reported by Advanced Reproduction and was fixed.

v6.40 All Platforms    (1-11-2007)

Added support for USB keyes on Windows.

ASM3500 can now support USB keyes on Windows.

ASM3500 Supports Flex 11.3.

All versions are FLEXLM v11.3 compliant.

ASM3500 Linux Supports Fedora.

The LINUX version works on all the "usual platforms", including Fedora.

2GB file size support.

DXF2GDS is now LARGEFILE compliant, i.e. DXF files greater than 2GB are supported.

Layer name with spaces supported.

DXF2GDS now support layer names with spaces.

v6.38 Windows    (8-2-2006)

Max vertex in De-embedding mode.

A problem was detected in De-embedding mode where the max vertex setting was ignore. Problem was fixed.

v6.37 Windows    (3-21-2006)

Shallow Pline Arc problem.

A problem was detected in the De-embedding module when a polygon had too many points in the "no-cutline" mode. Problem was fixed.

v6.35 Windows    (1-12-2006)

De-Embedding bug fix.

A problem was detected with plines that have a bulge of less than 0.00505 (arcs with large radius and minimum angle change). The "fix" involved relaxing the checking of very shallow POLYLINE arcs. Before POLYLINE arcs with bulge values of less than 0.00505 were converted to straight line segments. This value was changed to 0.00101.

v6.30 All Platforms    (6-22-2005)

Scaling problem.

A problem was detected when a block was inserted with scale that is close to an integer. For example, blocks that was inserted with scale 1.001 , got translated to GDSII with scale of 1.000

File name problem

A problem was detected when the file name had "-k" in it. This has been fixed.

v6.28 All Platforms    (3-25-2005)

Fix for a path with duplicate vertices at a bend.

A problem was detected when translating a GDSII path that had duplicate vertices (i.e. two vertex points on the same coordinate) at a point in the path where it was changing direction. The resulting path outline was incorrect. The routine to find duplicate vertices has been updated to find and correct such a condition. [reported by Optimal Technologies]

v6.27b All Platforms    (2-15-2005)

Fixes to De-Embedding feature

Two fixes were made to the new feature added. One has to do with the output top cell name selected and one with files that have more than one main block.

v6.27 All Platforms    (1-28-2005)

Artwork Adds Polygon De-Embedding to ASM 3500

DXF2GDS De-Embedding

v6.25 All Platforms    (11-21-2004)

Circle Snap

Previous versions of GDS2DXF may create circle radius of 24.999 microns. This new version has new parameter you can define in the config file:
GDS2DXF will snap the radius of the circle to the nearest 0.01 GDSII user unit.

Mirrored Array Issues

Previous versions of ASM3500 didn't handle correctly certain conditions of mirrored arrays. This has been fixed.

v6.24 on Windows    (09-29-2004)

360 degree Arc

This version fixes a problem in the DXF to GDSII direction. A pline arc with 360 degrees (looks like a circle) was not processed correctly. This is now fixed.

v6.22 on Linux    (09-27-2004)

New GUI for Linux version

The Linux version comes with a GUI just like the Solaris and HPUX. Before, it was command line only.

v6.21 on Solaris    (07-15-2004)

Crash at Text menu

Program crashed with signal 11 when opening the text menu in the Configuration. It has been fixed.

v6.12 on Linux, Solaris and HPUX    (11-14-2003)

New Releases for all UNIX platforms with Flexlm Support

Updated all UNIX releases to the latest Windows release.
New Linux version is now available! All 4 platforms now support Flexlm license manager.

v6.10a on Windows    (11-11-2003)

Installation Fix for Harware Key

The installation for 6.10 terminated unexpectedly if the user selected hardware key (Sentinel) Licensing. This has been fixed.

v6.10 on Windows    (06-26-2003)


v6.04 on UNIX and Version 6.02 for Windows    (07-12-2002)


v6.00     (10-12-2001)



v5.62     (03-17-2000)

v5.60     (01-14-2000)

v5.56     (01-06-1999)


v5.55 (08-07-1998)



v5.51     (05-28-1998)



v5.50     (05-20-1998)

v5.46     (04-30-1998)


v5.44     (10-15-1997)



v5.43     (09-15-1997)



v5.42     (09-02-1997)



v5.39     (08-01-1997)


v5.38 (7-01-1997)



v5.37     (02-10-1997)



v5.36     (12-23-1996)

v5.34 (12-09-1996)



3500 Index Price Windows
Artwork Home

417 Ingalls St. Unit C, Santa Cruz, CA 95060 831.426.6163  email: