GDSFILT Engine - Command Line Syntax

Artwork's GDSFILT program consists of two main parts: The user interface (gdsfilt.exe) and the actual computation engine (gdsfilte.exe) and its supporting DLLs.


To use the gdsfilt engine from another application you need to know how to call the engine directly. We show a simple example below.

Command Line Arguments

Windows and Linux take the same arguments with the exception that Linux paths use the forward slash (/) and Windows paths use the back slash (\). Further, the windows command line requires an additional argument -unixcmdline (after the input file, output file and input structure arguments for legacy reasons.

gdsfilte.exe input_file output_file input_file_structure [options]


gdsfilte.exe                   full path to the engine.

input_file                     full path (unless located in current directory) to
                               the input GDSII file.

output_file                    full path to the output file (if only a file name
                               is supplied it will be written to current directory)

input_file_structure           the name of the input file structure you wish to process.
                               If you use = then the program will determine the top
                               structure automatically, choosing the top level structure
                               with the most references below it.  

options are:

   -q                           Quiet mode. Does not send messages to the console

   -pause                       do not pause at banner.

   -prune                       trim off all empty trees. This deletes any structure
                                definitions and references to them if they don't 
                                contain data.

   -explode                     flatten (explode) the structure hierarchy in the output.

   -prefs                       preserve all structure references.
   -log:/tmp/test.log           Save a log file in the specified directory and file name

Layer and Datatype Filtering Parameters

   -iM,N,...                    Include only layers M,N,... on output.

   -xM,N,...                    Exclude only layers M,N,... on output.

   -IM,N,...                    Include only datatypes M,N,... on output.

   -XM,N,...                    Exclude only datatypes M,N,... on output.

   -lyrM:N,...                  Remap layer range M to N.

   -dtpM:N,...                  Remap datatype range M to N.

   -mapM%N:m%n,...              Remap layer:datatype(s) M:N to m:n. This requires
                                special syntax on Windows/DOS because the the
                                command interpreter would treat the % as a variable.
                                So you would need -mapM%%N:m%%n, ... to escape
                                the percent sign to the command interpreter.

Large File Settings

   -maxref:M                    drop REFs after M sref or arefs.

   -max:M                       expect at least M structures. (2048) default.

   Filtering Entities by their Characteristics.

   -min:W                       discard paths and text with width less than W.

   -tmag:M                      discard text with magnitude greater than M.

   -short:X                     remove path and boundary segments shorter than X.

   -textonly                    output TEXT only. (this option forces an explode)
    +text                       don't drop TEXT in the output (forces an explode)  

   die clean options (requires a separate license)

   -maxext:X                    remove geometries with extents more than X.
                                (forces an explode) 
   -minext:X                    remove geometries with extents less than X.
                                (forces an explode) 
   -h2w:X                       remove geometries with height to width ratios more than X. 
                                (forces an explode)

   -w2h:X                       remove geometries with width to height ratios more than X. 
                                (forces an explode)

   -aratio:X                    remove geometries with area coverage less than X. 
                                (forces an explode)

   -maxvert:X                   remove geometries with more than X vertices. 
                                (forces an explode)

Combining/Merging Files

   -merge f1 f2 ... fn             merge files f1, f2 ... fn with <inputfile>. (exclusive)

   -add f1 f2 ... fn               add files f1, f2 ... fn with <inputfile>. (exclusive)

   -blend f1 f2 ... fn             blend files f1, f2 ... fn with <inputfile>. (exclusive)

   -combine newtop s1 ... sn       insert structure topstr, s1 ... sn into newtop.
                                   (blend not allowed)

   -offset X0,Y0 X1,Y1 ... Xn,Yn   insert structure topstr, s1 ... sn using the offsets. 
                                   (available together w. combine only)

   File Conditioning Parameters

   -strict[!]                   filter stream data to adhere better to strict GDSII.

   -names                       repair all dubious structure names. (exclusive)

   -lc                          change all strings to lower case. (implies -names)

   -uc                          change all strings to upper case. (implies -names)

   -unfold                      "fix" dubious paths that self intersect.

Filtering Using an external List of Structures

   -rename fn                   use file fn to do name translations.

   -remove fn                   remove structures listed in file fn. Regular Expressions are supported.

   -only fn                     file fn holds list of the 'only' 
                                structures to be output.

Special Parameters for NETEX only.

   -tech fn                     read the tech file fn.
   -netcfg fn                   read the netex config file fn.
   -netinfo fn                  use file fn for net names.
   -netdebug                    run in netdebug mode.
   -flag_multi_netnm            flag and do not rename nets with multiple names.
   -merge_nets                  do not merge named nets.
   -add_net_text                insert net names into named nets.
   -printnetinfo:L              use level L as net text logging.
   -netxplode f topstr          generate netinfo file from f and its topstr
   -netalias fn                 create netId structure alias file fn.
   -phase[A|B]                  run in netex phase A or B modes.

Statistical Parameters

   -fpchk[:N]                   generate floating point (FP) statistics (N is OR of 1,2,4
                                corresponding to HEADER, REF, TEXT info).

   -memstats[:mm]               Output memory usage & run time info
                                [every mm minutes, default = 15]