SFGEN64 Revision History

This page summarizes changes, fixes and enhancements to the SFGEN64 program.

V2.48 Windows 1/12/2018

Software Updates

Fixed floating license issue when there is only one license available.
Fixed issue when output folder is in a different disk than the working folder.
Updated modules and boolean.
Modified quad options in GUI, and added a second parameter to optional argument "-quad_array".
Added a new product number (430) that enables quad. The old SFGEN (GDS) license (428) will no longer work with quad.
This release does not check for or install FLEXID key drivers.

V2.43 (Windows/Linux) 9/15/2017

Software Updates

Fixed Advanced Dialog menu since it appeared squeezed in some Linux platforms.
This version is able to catch crashes of intermediate engines and pops up a failure message. Updated the log file with clearer failure message.
Added sample code in the Windows release with a lib and header file.
Removed all the 32bit engines in the Linux release.
Fixed a bug related to span length where data was dropped.
Fixed a bug exposed with the introduction of "-minlen" in SFGEN v2.42 Windows. There were small negative structures that were handled incorrectly.

V2.42 (Windows) 7/25/2017

Software Updates

This version fixed correction issue where it fails when the coordinates are delimited by spaces instead of commas.

Modified the optional argument "-minlen:num" to specify the minimum dimension of a structure. The default value is 100um. This fixes the flat output issue where the structures are very small..

V2.41 (Linux/Windows) 6/15/2017

Sizing Update

This version removed the restriction when using Manhattan sizing.

V2.40 (Linux/Windows) 6/15/2017

Sizing Update

This version includes new -manh and -fivept options for sizing. The feature was added in both commmand line mode and in the GUI.

V2.38 (Linux/Windows) 5/30/2017

Software Fix

This version fixes the issue where large amounts of data was lost.
This was the result of the presence of "non-conventional" AREFs where the role of the non-achor lattice points was switched.

V2.37 (Linux/Windows) 5/26/2017

Software Enhancements

This version includes optimization for counting structure instantiations.
This version supports GDS files containing structure names up to 1024 characters in length.

V2.36 (Linux/Windows) 5/18/2017

Software Enhancements

This version fixes Edge Placement Errors.
Ignore Cell/Pass Through Mode is disabled when not Preserving Hierarchy.
QISBOOL can now perform multi-threaded sizing.

V2.29 (Linux/Windows) 12/06/2016

GUI - Enhancement

Updated the main window to resize step or layer list sections of the dialog.

Bug Fix - Crash due to License Fail

Fixed a bug that caused a program crash when licensing fails. This was the result of a buffer overflow.

Command Line Syntax Check

Invalid command line arguments are now reported

Error Status Fixed

A state problem when reporting errors was fixed. Previously, a successful run might be flagged as having had an error in the presence of a previous error.

V2.28 (Linux/Windows) 11/18/2016

Arc Detection/Rebuilding in GDSCompact Mode

Added new functionality and a command line argument to implement it. Arc like boundaries can be detected and then can be rebuilt (primarily to use less vertices) in the output GDSII file. This can reduce the number of quads and slivers produced in the output.

The argument to trigger this routine is:


where the first value is the chord error tolerance used to detect arcs and the second value (normally larger than the first value) is to rebuild them.

The GUI has been updated to include this new control.

Quad Size Limits

Maximum quad size for GDSCompact flow can now have different values for X and Y.

Orphan cells in output deleted

The compaction routines in GDSCompact flow would replace original cells in the hierarchy with more efficient merged ones. However previous versions were leaving the original cell definitions in the file even through they were no longer referenced. Those cell definitions are now deleted if not referenced.

V2.27 (Linux) 11/03/2016

Clipping of Quadrilaterals to User Set Max

In the GDSCompact flow, the maximum length/width of a quadrilateral can be set by the user - any quads that would be larger than this value (either in X or in Y) are broken into smaller quads that do not exceed the max.

Preserve Hierarchy Tree (GDSCompact)

A new check box, Preserve Tree (command line argument -nhmode3) has been added to the Settings Dialog under the GDSCompact flow. The hierarchy of the input file is preserved; polygons within each structure definition are unionized and can be (optionally) convexed and output as quadrilaterals.

If this check box is not selected, GDSCompact may modify the file hierarchy such that arrays and structure trees may be restructured according to the rules dictated by "Span Length" and "Vertex Count." (-nhmode2 on the command line).

Bug Fix in Quadrilateral Output

A bug was fixed in the GDSCompact mode which resulted in "quadrilaterals" with more than 4 sides.

Bug Fix in Convex Output

A bug was fixed in the GDSCompact flow in which convex data was misplaced outside the source polygon as a result of an optimization.

Selection of Input File Structure

The main dialog box now allows a user to select any input file structure (STEP from the ODB++ terminology) by use of a directory style navigator. Prior to this the GUI only allowed users to select from top level structures. The command line syntax which specified the structure name directly did not have this limitation.

If the top structure is not selected and GDSCompact mode has preserve Tree checked, then GDSFILT is used to extract the data at the front end. (This is pretty much invisible to the user and does not require any new licensing.)

V2.26 10/25/2016

New Data Flow - GDSCompact

A new data flow for LCDs has been implemented labeled GDSCompact. It does not produce a semi-flat file. It unionizes data on a cell by cell basis and can also convert the resulting boundaries into quads (the breaking of large quads that exceed the user specified maximum size has not been implemented in 2.26.

The command line arguments needed to use the GDSCompact flow are:

-gdscmponly      turns on GDSCOMPACT flow

-convex           output polygons are to be fully convex

-quad[:quadlen]   output quadrilateral only optionally with maximum dimension quadlen (in um)

Annotation and Distortion correction are not available with the GDSCompact Flow.

The Advanced Dialog Box has been rebuilt to accommodate the new GDSCompact flow:

it does not yet support a check box for deactivation of hierarchical compaction so that must be entered manually.

Batch File

a .bat file is created in the working directory as an aid for scripting *if* the "Keep Temp" check box is set in the Advanced Settings Dialog. This is a useful aid for those who wish to run SFGEN from a batch or script file.

Hierarchical Compaction De-Activation

Hierarchical compaction can be deactivated (it is on by default) by passing "gdscomp -nhmode3" into the LCD Args text field in the Advanced Settings Dialog as shown above. In this case the hierarchy in the output is identical to that of the input, but all "flat" data in the structure definitions are unionized. If convex or quadrilateral output is requested (Convex and/or Quad check boxes are set) then this "flattened" polygon stream is handled accordingly. In the next revision of the GUI a suitable control for "-nhmode3" will be implemented.

GDSCompact License Requirement

GDSCOMPACT can be invoked directly from the command line without the SFGEN front end but will require a license for the GDSCOMPACT product ID 2699; in the normal flow GDSCOMPACT is invoked with Artwork's internal softkey licensing by SFGEN.

V2.24 09/20/2016

Progress Dialog

Modified progress dialog to better reflect progress. Does not reset for each additional layer processed. Now starts during opening of the file.

-silent fix

Fixed "-silent" option which is used to prevent messaging dialogs from popping open. Prior to this version this argument was not being recognized on the command line.

Relative Path Fix

When run from a batch/script relative paths were not correctly supported. This has been fixed.

Additional Log Information

Modified the log file to include more information about ODB conversion.

View Output - Fixed

Fixed view output function. Previously there was an issue in calling the GDSII viewer. Note that if multiple ODB layers were selected for processing, each ODB layer produces its own GDSII file, and only the file generated by the first layer is passed to the viewer.

V2.23 08/19/2016

GUI Interface Change

The user interface which was previously MFC based, is now Qt based.

Port to Linux

SFGEN has been ported to Linux (RHEL5 and later).

V2.22 07/15/2016

Software Updates

Fixed the speed issue for a client where structures that are similar have too many different instances. This can be controlled by specifying a jitter (1 is default) in the GUI or command line with the optional argument -jitter:value

Fixed bug issue where a scratch data is missing.

Added an option to disable step-repeat optimization in the GUI and command line with the optional argument "-nosropt". This should be used if child steps overlap each other.

V2.21 06/29/2016

Software Updates

Fixed bug issue where no data is output if the GDSII input datatype is non-zero.

V2.20 06/24/2016

Software Updates

Fixed bug issue where data is dropped. This is caused by layer polarity bug.
Added the step and layer information when specifying the output file name (for ODB++ input only).

V2.19 06/21/2016

Bad Syntax ODB++ File

Updated SFGEN to handle ODB++ input files with bad syntax. Customer file contained an empty line with attribute 0 which caused the program to crash.

V2.18 06/15/2016

Sized Polygon Fix

Fixed an error that occurred when a sized down polygon with scratch becomes completely filled (reference: ATP-13-Single-Cell.GDS). This was caused by a bug when the data is rotated; some vertices overlapped which resulted in the program filling the polygon when sized.

Misaligned Data Fix

Fixed a bug where a section of data was output mis-aligned. This was caused by a bug in choosing the structures when there is a rotation.

Fixed Failure to Convert

Previous versions could not convert customer file. The cause was an illegally named symbol - the name string had a colon ":" in it which is a forbidden character. This has been addressed by detecting and dropping symbols with the colon and continuing to convert the balance of the data. WARNING - dropping such symbols may result in output not matched to the input data. It is not clear why a file with this type of symbol name would be generated - likely an error by the software that produced the ODB++ file.

Dropped Pads Fixed

Fixed a bug where pads are dropped. This was caused by a bug that occurred when handling insertion of more than 8190 pads of the same symbol. This is fixed by organizing the insertion array into groups when the insertion count exceeds 8190.

Speed Enhancements

Conversion time to GDSII when correction is applied is reduced. reference: Sample_PXL.gds.

V2.17 03/01/2016

Product License ID Updated

Updated Product ID: 427 (ODB++ input), 428 (GDSII input)

Bug Fix

Fixed duplicate polygons issue of adjacent cells.

V2.16 11/11/2015

Product Fixes

Speed improvements.
New licensing.

V2.15 10/11/2015

Product Fixes

Speed improvements.
New key routine.

V2.14 9/21/2015

Product Fixes

Fixed polarity issues.
Improved frame arc resolution.
Fixed logging issues.

V2.13 6/30/2015

Product Fixes

Fixed rotated/mirrored child step issue.
Fixed long path fonts issue.
Updated boolean module.

V2.12 6/16/2015

Product Fixes

The latest SFGEN will fixed odbfnt2shx module to handle wide characters.
It also includes an updated sffcorrection and acsbool.

V2.11 3/20/2015

New Product Number

The latest SFGEN will require new key codes corresponding to product IDs 527 for ODB and 528 for GDS (LCD).

Speed Improvements

Speed up in new hierarchy calculation.

V2.10 1/29/2015

Program fix

Program crash on a customer file. The problem was related to the presence of a circular sliver in a surface. This has been corrected.

V2.09 12/4/2014

Speed Improvements

Improved speed and addresses LGE's throughput issues

V2.08 11/14/2014


  • Much improved speed.
  • Fixed bugs in serialization.
  • Fixed dropping data issue (Advantools Tianjin).

  • V2.07 07/29/2014

    Precision Issue fix

    Precision issue in the hole detection within a surface caused the program to create the wrong output.

    V2.05 04/29/2014

    New feature and bug fix

    Random sizing for offset both or xyboth is implemented.

    Fixed rip library that causes a crash when ripping very narrow data.

    V2.04 04/7/2014

    Speed Improvement

    Speedup in creation and comparison of instances have been implemented.

    V2.03 03/17/2014

    Crash during conversion

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

    V2.02 03/14/2014

    Crash during conversion

    There are no more crashes during translation of customer file.

    V1.06 06/25/2013

    Modified Text Merge

    Enhancements to Text Merge

    Update Correction Algorithms

    Updated the correction algorithms to sync up with the ones implemented in RTCR.

    V1.05a 06/15/2013

    Text Merge Added

    Added support for text merge. (The strings and placements are defined in SFGEN but the actual text is not rendered until the file is processed by the RTCR.

    Fixed Scale and Rotation Resolution

    Fixed a bug in the input argument parser that did not allow for very fine adjustment of scale factor and rotation angle.

    V1.04 05/21/2013

    Initial Release

    This is the initial release of SFGEN64. The annotation (text merge) function is not implemented.

    Download User Manual Price Revision History

    ARTWORK CONVERSION SOFTWARE, INC.                  Company Profile
    417 Ingalls St.,     Santa Cruz, CA 95060         Tel (831) 426-6163     Fax 426-2824               email: info@artwork.com