CIF GDSII GERBER to LIC by nikeborome

VIEWS: 50 PAGES: 126

									Conversion Software
   Version 8.65




                      3/21/2011




         1
1 Installation Guide for UNIX/Linux Systems          6

  1.1 Requirements                                   6

  1.2 Installation of the Conversion Software        6

    1.2.1 Linux/Solaris Systems                      6

    1.2.2 WIN32 Systems                             10

  1.3 Updating the Software                         11

  1.4 Setting up the ftp Server on Linux Systems    12

  1.5 SuSE 7.1                                      14

2 General Information                               15

3 Restrictions and Design Rules                     17

  3.1 Common Rules                                  18

  3.2 Data Format Specific Rules                    18

    3.2.1 DXF                                       19

    3.2.2 CIF                                       19

    3.2.3 GERBER                                    20

    3.2.4 GDSII                                     20

4 Usage of the Conversion Package                   20

5 Conversion Parameters                             26

  5.1 Main Source File                              26

  5.2 Source File Type                              26

  5.3 Name of Layer                                 26

  5.4 Magnification Factor                          26

  5.5 Rotation                                      27

  5.6 Translation in x                              27

  5.7 Translation in y                              27

  5.8 Mirroring in x                                27

  5.9 Mirroring in y                                28

                                                2
  5.10 Main Structure                   28

  5.11 Borders of Flat Field            28

  5.12 Stripe Width                     29

  5.13 Block Height                     29

  5.14 Pixel Size                       29

  5.15 Frame Size                       30

  5.16 Exposure Mode                    30

  5.17 Arc Resolution                   30

  5.18 DXF Units                        31

  5.19 Stretch Exposure                 31

  5.20 Additional Pixel                 31

  5.21 Automatic Stripes                33

  5.22 Assume Connected                 34

  5.23 Keep Temporary Files             34

  5.24 Additional Blocks                34

  5.25 Lic Directory                    35

  5.26 Expose Bidirectional             35

  5.27 Xor Mode                         35

  5.28 Calculate Exposed Area           36

  5.29 Licbuffer Size                   36

  5.30 Automatic Centering              36

  5.31 Spotsize Correction              37

  5.32 Scaling                          37

  5.33 Cluster Hosts                    38

  5.34 Left Optic Path                  38

  5.35 Scale Offset                     38

  5.36 Invert Spotsize Correction       39

6 Conversion of CIF Design Files        39

                                    3
7 Conversion of GDSII Design Files                                         40

8 Conversion of DXF Design Files                                           41

  8.1 General                                                              41

  8.2 The "dxf" Program                                                    45

9 Conversion of GERBER Data                                                48

  9.1 Description of gerber.cfg                                            49

  9.2 Description of Supported Gerber Commands                             54

     9.2.1 General Commands                                                54

     9.2.2 Drawing Commands                                                54

     9.2.3 Miscellaneous Commands                                          54

     9.2.4 Sequence Numbers                                                54

  9.3 Extended Gerber (RS-274x)                                            55

  9.4 General                                                              56

10 Conversion of HIMT Structure Data                                       56

11 Conversion of HPGL Data                                                 59

  11.1 How to convert HPGL designs                                         59

  11.2 HPGL Command Line Options                                           61

12 The struct2dxf Tool                                                     62

13 Checking lic files                                                      63

14 The HIMT Viewer                                                         64

  14.1 Installation                                                        64

  14.2 Usage                                                               65

     14.2.1 General                                                        65

     14.2.2 Short Instruction for Exposure Preview from the MENU           65

     14.2.3 Short Instruction for Exposure Preview from the Command Line   66

     14.2.4 General Usage                                                  66

     14.2.5 The Log Window                                                 68

     14.2.6 The Status Display                                             68

                                           4
    14.2.7 The Display Window                                  68

    14.2.8 File Menu                                           69

    14.2.9 The Edit Menu                                       70

    14.2.10 The Buttons                                        72

  14.3 Preview of Merged Layers                                73

15 Troubleshooting                                             74

16 The HIMT Structure Format                                   75

17 Stretched Exposures                                         79

  17.1 Step by step instruction                                79

18 The "atrans" program                                        80

  18.1 INSTALLATION                                            82

  18.2 The cksum Feature                                       85

  18.3 Deleting Designs on the OS/9 System                     85

19 Spot Size Correction                                        86

20 Conversion Cluster                                          89

  20.1 Requirements                                            90

  20.2 General Setup                                           90

  20.3 Installation of master PC                               92

  20.4 Installation of a cluster PC (Slave)                    95

  20.5 Setting up the cluster                                  98

  20.6 Performance                                            100

  20.7 Converting on the cluster                              102

  20.8 Hints/Caveats                                          103

21 Troubleshooting                                            104

22 Changes                                                    119

23 APPENDIX                                                   123

  23.1 DXF Output Filter Sample                               123

                                                  3/21/2011, BA/SD

                                              5
1 Installation Guide for UNIX/Linux Systems


1.1 Requirements


A SPARC/SOLARIS (Version 2.4 or higher) workstation, a PC running Linux (Kernel 2.0.0)
or a Windows NT workstation with at least 32MB of memory (128MB recommended) is
needed. The conversion software itself doesn't use much space (< 3MB), but for your
conversion you will need (depending on the complexity of your designs) from about 10MB
up to several Gigabytes of harddisk space. On a SPARC/SOLARIS system make sure you
have about 20MB of space available on your /usr partition if you want to use the MENU
graphical user interface (see Tk/Tcl installation below).



1.2 Installation of the Conversion Software


1.2.1 Linux/Solaris Systems

Since version 8.65 the install script install.sh should be used to install the software on your
system. This script automatically installs the correct bineries and libraries. It also gives you
some hints how to set up your system if there are any problems.



Installation guide:

STEP1: Create a new User, for example "convert" on your workstation. Refer to the
workstation manual for doing this.

Note: You usually need to have root rights to do this.



STEP2: Login as the new user and change to its home directory (e.g. /home/convert).



STEP3: Copy the file instxxxx.tgz to this directory (replace xxxx with the software version
number, e.g. inst813le.tgz. The letter "l" indicates LINUX software while "s" indicates Sparc
software, the "e" indicates the software is for systems with an EDDU.)



STEP4: Uncompress the file:



       gzip -d instxxxx.tgz
                                                6
STEP5: Untar the file and run installation script



       tar xvf instxxxx.tar

       install.sh



STEP6: Set a path to the newly created cmds directory (e.g. /home/convert/cmds) where the
conversion executables reside. Check in your SPARC/SOLARIS manual on how to do this.
On a SuSE Linux system append ":~/cmds" to the path setting in /etc/profile (remember to
log on and off afterwards). The "~" represents each users home directory.



STEP7: Remove the file instxxxx.tar if you want to save the disk space:



       rm instxxxx.tar




STEP8: If you want to use the graphical user interface 'MENU', make sure Tk/Tcl (Version
7.x) is installed on your system. Most Linux distributions come with that package; on
SPARC system it has to be installed. To test whether the TK/Tcl package is installed start the
MENU under Linux by entering



       menu



in your home directory or enter



       sh menu



on a SPARC. If the MENU doesn't start (error message: wish not found) install Tk/Tcl.




SuSE Linux:

                                               7
STEP1: Login as root.



STEP2: Insert the Linux CD.



STEP3: Start yast.



STEP4: Select "Choose/Install packages"



STEP5: Select "Change/Create configuration"



STEP6: Select "Tk/Tcl"



STEP7: Select all packages.



STEP8: Hit F10 twice for installation and follow the instructions.



SPARC/SOLARIS:

(You will need about 20MB of free space on /usr)



STEP1: Retrieve the following packages via ftp from the Internet:



tcl7.5.p1.SPARC.Solaris.2.5.pkg.tgz

tk4.1.SPARC.Solaris.2.5.pkg.tgz



(look at SUNSITE.UNC.EDU:\\pub\packages\solaris\Sparc):



STEP2: Login as root.

                                              8
STEP3: Copy the files to a temporary directory.

STEP4: Unpack both files:



       gzip -d tcl7.5.p1.SPARC.Solaris.2.5.pkg.tgz

       gzip -d tk4.1.SPARC.Solaris.2.5.pkg.tgz

       tar xvf tcl7.5.p1.SPARC.Solaris.2.5.pkg.tgz

       tar xvf tk4.1.SPARC.Solaris.2.5.pkg.tgz



STEP5: Install the packages with



       /sbin/pkgadd -d . tcl7.5

       /sbin/pkgadd -d . tk4.1



If pkgadd is not installed or some other problems occur, refer to your SOLARIS
documentation (Hint: You will get help with "man pkgadd")



STEP6: Create the following links:



       ln -s /usr/local/bin/wish4.1 /usr/bin/wish

       ln -s /usr/local/lib/libtcl7.5* /usr/lib

       ln -s /usr/local/lib/libtk4.1* /usr/lib



STEP7: Logout and login as convert user. Start the MENU (s.a.). If you get the following
error message



       wish: cannot open libX11.so.x.x



check the version of your currently installed Xlib:



                                                  9
       ls /usr/lib/libX11*



results in the following output:



       libX11.so.y.y



Then link



       ln -s ls /usr/lib/libX11.so.y.y /usr/lib/libX11.so.x.x




STEP8: Logout and login as convert user.




1.2.2 WIN32 Systems



STEP1: Create a directory for your conversion software, e.g. c:\convert. (All further
examples will assume that you chose this directory for your installation. If you chose a
different directory, change all path names to the corresponding directory name.) If you update
over a previous version, you can either create a new directory or install over the previous
version and go directly to step 2.



STEP2: Extract the archive containing the conversion software to the directory created in step
1. The archive filename will typically be like ins823w.zip, where 823 stands for version
number 8.23 and the w indicates that you have the WINDOWS version of the software. For
the extraction use an UNZIP utility like WinZip or a command prompt program like
pkunzip.exe. After the extraction, you will have several subdirectories in your convert
directory: (cmds, cif, gerber, ?).



STEP3: Set a path to the cmds directory, in our case c:\convert\cmds. To do this systemwide
under NT you must log in as administrator, otherwise the settings will only affect your
current account.      You find       this setting for the path in CONTROL
PANEL/SYSTEM/ENVIRONMENT.


                                               10
On a WIN9x System, please add the appropriate path to the path statement in the
autoexec.bat and reboot. To check whether this has worked, just type ,border' in a DOS-Box.
There should then be message like this



[c:\convert] border

  border <main structure> ................. use ?

       Version: 8

       Revision: 8



STEP4: The installation is now complete. Edit the convert.cfg in your convert directoy (e.g.
with NOTEPAD) to set all necessary parameters for the conversion. Then start the conversion
by opening a DOS-Box and typing



       xconvert



STEP5: If you want to use the MENU interface for setting the conversion parameters and
starting the conversion, you must install the Tk/Tcl Toolkit. You find it in a directory called
„tclwin‟ provided with your conversion software. Just start the program in this directory and
follow the installation instructions. To set up the MENU, create a shortcut of the file menu.tcl
in the convert directory to your desktop. Change the icon if you want. If you double-click on
this shortcut now, the convert MENU will start. If you start a conversion now (after setting
the proper parameters) a small status window will appear informing you about the status of
the conversion and you will find a minimized DOS-Box in your WINDOWS-Taskbar in
which the conversion is running. To stop a conversion, close the DOS-Box in the task bar and
the status window manually.




1.3 Updating the Software


Before updating, make sure you have the installation package of your currently running
software available in case the upgrade fails. Instead of upgrading you can also create a new
user for each software version, e.g. convert831, and do a full installation instead.



Updating of Conversion Software on Linux/Solaris Systems



                                                    11
STEP1: Login as the new user and change to its home directory (e.g. /home/convert).



STEP2: Copy the update file instxxxx.tgz to this directory.



STEP3: Uncompress the file:



     gzip -d instxxxx.tgz



STEP4: Untar the file and run the installation script



     tar xvf instxxxx.tar

     install.sh



Updating of Conversion Software on WIN32 Systems



STEP1: Copy the update file (ins8xxxw.zip) to your existing convert directory (c:\convert)



STEP2: To unpack on a WIN32 system you may use a command line orientated tool like
unzip or pkunzip:



       unzip -d insxxxw.zip

or

       pkunzip -d ins8xxxw.zip




1.4 Setting up the ftp Server on Linux Systems


Since SuSE Linux 6.4 we are experiencing problems with the data transfer to the OS/9
system. The reason for this seems to be the default ftpd server running on the Linux system.

                                               12
While we do not know about problems when transferring data between two Linux s ystems,
the communication with OS/9 systems sometimes is faulty.

There may be two kinds of problems:

    -Completely missing LIC files. This is generally only a machine time consumption
       problem. When you are using "atrans" to transfer the data the program will notice this
       and give an error message. This can be fixed by transferring the data again.

    -Corrupted LIC files. This is more serious as the whole exposure may fail. It is very time
       consuming to prevent these errors as the xcheck_lic software may take several hours
       to check a design.



To fix the problems, please run the following tests:



STEP1: Login as convert user to your conversion PC.

STEP2: Start an ftp session to this machine

         ftp localhost

STEP3: You will be prompted for a username then. The prompt may look like this:
     220 D2.himt.de FTP server (Version wu-2.4.2-academ[BET A-18](1) Fri Dec 11 19:58:25 /etc/localtime 1998) ready.


or like this:
         220 ba.himt.de FTP server (Version 6.4/OpenBSD/Linux-ftpd-0.16) ready.


In case you see the second prompt (with different numbers though), you should change the
ftp server on your Linux system:



STEP1: Login as root on your conversion PC.

STEP2: Try the following command

         wu.ftpd

If you get an error message like:

         bash: wu.ftpd: command not found

proceed with STEP3, else go to STEP4.



STEP3: Go to the conversion user home directory (in most cases /home/convert). Then
change to the subdirectory "wu.ftpd" and install the wu.ftpd server:

         rpm - i wuftpd.rpm
                                                               13
Note: You must log in as root in STEP1.



STEP4: Edit the file /etc/inetd.conf and look for this lines:
       #ftp    stream tcp    nowait root /usr/sbin/tcpd wu.ftpd -a

       #ftp    stream tcp    nowait root /usr/sbin/tcpd proftpd

       ftp    stream tcp    nowait root    /usr/sbin/tcpd in.ftpd


Change to:
       ftp    stream tcp    nowait root    /usr/sbin/tcpd wu.ftpd -a

       #ftp    stream tcp    nowait root /usr/sbin/tcpd proftpd

       #ftp    stream tcp    nowait root    /usr/sbin/tcpd in.ftpd


Restart the ftpserver with:

       /sbin/init.d/inetd reload

Go to STEP2 to make sure your installation was successful.

If you still encounter problems, read the chapter on “atrans” in this manual and use the
“cksum” option to enable the checksum feature. Please also contact HIMT immediately.




1.5 SuSE 7.1

In SuSE 7.1 there is a bug in connection with IP6v. If you try to open a telnet session to your
computer you will get the following error message:

telnetd: getnameinfo.

You have to update the packages nkitb and nkitserv, You can get the latest packages from

ftp://ftp.suse.com/pub/suse/i386/update/7.1/a1/nkitb.rpm
ftp://ftp.suse.com/pub/suse/i386/update/7.1/n1/nkitserv.rpm




                                                                     14
2 General Information


The purpose of this software package is to convert source files from GERBER, DXF, CIF,
GDSII, HPGL or HIMT Structure format into LIC format. The LIC format can (unlike the
other input data formats) be converted in real time into the final pixel data set. The advantage
of the LIC format compared to the final pixel data set is that its file size is much smaller due
to a highly optimized compression.



The complete conversion is divided into up to five separate tasks. A different program
performs each task. The main program "xconvert" controls the different tasks and takes care
of a correct communication between them. Each program stores statistical information in a
report file.

You can also run all programs manually. To obtain information about the meaning of the
required parameters just start the program without any parameters (Exception: xconvert -?).



xconvert:



This is the main program which has to create the correct environment, to read in the settings
in the configuration files (convert.cfg, dxf.cfg, merge.cfg, ?), to initialize the conversion tasks
and to handle the communication between the different tasks.

Finally xconvert generates a number of debug, configuration and information files required
by the OS/9 exposure software (convert.inf, convert.rpt, stripes.cfg, ?).



gerber/dxf/cif/gdsii/hpgl:



Depending on the source data type one of these programs is invoked with the corresponding
command line parameters. It converts the design data to an intermediate, CIF like format
(Structure format) which will be processed by the succeeding programs. After this step, you
can check the created Structure output with the HIMT viewer software (only under LINUX
OS). The Structure files are stored in the "t_struct" directory.




                                                15
           Dxf

           Gdsioi

           Cif

           Gerber

           Odb

           hpgl




           border
xconvert




           stripe




           xblock




           xconvbe




                     16
border:



This program determines the borders of the design data. It is only called if the borders in the
configuration file are set to automatic. The result is stored in the report file and also put
forward to the stripe program.



stripe:



This program performs the third step of the conversion and is called only once. The Structure
data is divided into stripes (depending on the machine configuration: pixel size and number
of pixels per stripe). Each stripe file co ntains the design data clipped against the rectangle
representing the stripe with an offset relative to the lower left corner of the stripe. The stripe
files are still in Structure format and are stored in the "stripes" directories.




xblock:



This programs performs the fourth step of the conversion and is called once per stripe file.
Each stripe data set is divided in the y direction into blocks of 4096 pixels height and its
structures are clipped against these blocks. The resulting polygons are then converted into
trapezoids and stored in SDF format (Structure Definition Format). Each SDF file contains
data for one stripe. The SDF files are stored in the "sdf" directories.



xconvbe:



This program is also called once per stripe. It reads in the SDF files, merges (CUTs, ORs or
XORs) all layers (if required) and compresses the result to the final LIC format. Also the spot
size correction is done here. This is the most time consuming step of the conversion.




3 Restrictions and Design Rules


This part of the document will describe the things you need to take care of in order to create a
design for the mask write conversion software. There are common rules, which apply to all

                                               17
kinds of data format, and rules, which are specific for a certain data format. In general, the
simpler you keep the way you make up your design, the better are the chances that you won't
encounter problems. Avoid getting to the limits of the data format definitions or to make use
of not commonly used functions! There is usually a more simple way to achieve the same
result without risking conversion problems. Though there is some design checking
implemented in the conversion software, this still means you will have to work over the
design again.



3.1 Common Rules
(A polyline without width, will be referred to as a polyline, while a polyline with width will
be referred to as a "polyline with width" in this document. Always be aware of the particular
differences between this kind of structures!)



   All Polylines should be closed. Some data formats allow automatic closing of polylines,
    but be aware of the possible ambiguities of not properly closed polylines especially, when
    there is only a little gap between start and end point of the polyline. Simply avoid any
    problems by closing them properly.

   All closed polylines will be completely filled out on the inside. If you put a frame around
    something, make sure it does not shadow all of the structures inside. This can only be
    avoided by using the XOR mode feature. See the instructions about the XOR mode
    below.

   If you want to create structures within structures, read the previous hint carefully.

   Polylines crossing the mselves will produce data errors.

   "Doubled" vertices in polylines (which means the same coordinates are used twice
    without any other point between them) will produce data errors.

   Single lines with no width will be ignored (best case) or will cause the conversion to fail.

   Polygons must have not more than 128000 vertices.

   Definition or reference depth can be at maximum 16.

   The number of definitions or references can be at maximum 8192.

   Text is not supported (except for DXF).

   Designs must not exceed the limits of 2000 mm from (0,0) in any axis.



3.2 Data Format Specific Rules


(note that these rules generally apply IN ADDITION to those above):
                                             18
3.2.1 DXF



   Use a 100% Autocad compatible editor. Try to load the file to Autocad itself and make
    sure, it can be loaded.

   Always properly join polylines, be especially cautious, when using arcs within a polyline.

   Only one font is provided with the dxf conversion package. Any font you select in the
    DXF-design will be replaced by this standard font.

   Only the following attributes assigned to a text are supported: ROTATION,
    MIRRORING, SCALING.

   Avoid putting structures to layer 0.

   Do not use special characters in the layer names.

   Try to design in the metric system! Use mm as the standard unit. (Some design programs
    will not accept inches!)

   Polylines with widths must not have a change in its widths (Tapered lines).

   Different scaling in x and y when inserting a block is not supported.

   External blocks are not supported.

   Avoid using BLOCK insertions. Try to make the design flat. Use the conversion software
    step and repeat function instead (keeps the DXF data file small!).

   Try to use only the following entities: CIRCLE, POLYLINE ( with or without width, but
    see the remark above), TEXT.

   Also read the chapter on converting DXF- files in the convert software documentation.



3.2.2 CIF



   Definition or reference depth can be at maximum 16.

   The number of definitions or references can be at maximum 4096.




                                              19
3.2.3 GERBER



   Always provide a complete set of information including at least the following: apertures
    used, digits of design data, base unit (inch or mm)

   Do not use incremental but absolute coordinates

   Avoid using circular interpolation along with polylines with width

   Avoid using apertures without dimensions (e.g. circle with diameter zero)

   Flashmodeb (D3) remains until another drawing mode is chosen (sometimes called
    modal)

   If you want to create area filled polygons use the polygon aperture (RS274) or G36/G37
    commands (RS274-X, RS274)

   Also read the chapter on converting GERBER-files in the convert software
    documentation



3.2.4 GDSII



   The inclusion of other gdsii files or text libraries will be ignored.

   Node statements in gdsii are ignored.

   Definition or reference depth can be at maximum 16.

3.2.5 Number of structures is limited to 8192 ODB

   All data behind surface objects will be erased

   Text and barcode features are not supported

   Attributes are ignored



4 Usage of the Conversion Package


STEP1: Login with user name 'convert' (and password if one is set).



STEP2: Copy your design file into the correct directory: CIF files into the subdirectory cif,
GDSII files into gdsii, GERBER files into gerber, ?
                                                20
STEP3: Load the configuration file with any editor, for example



               'vi convert.cfg'.



Example of a convert.cfg file:
main source file .............................. : pfm.cif

source file type (cif|dxf|gdsii|gerber) ....... : cif

name of layer to be converted ................. : CM

name of main structure (<name>|automatic) ..... : automatic

magnification factor .......................... : 1

rotation, ccw (0|90|180|270) .................. : 0

translation in x direction [nm] ............... : 0

translation in y direction [nm] ............... : 0

mirroring at x axis (yes|no) .................. : no

mirroring at y axis (yes|no) .................. : no

left border of flat field [nm] ................ : automatic

right border of flat field [nm] ............... : 2000000

lower border of flat field [nm] ............... : -20000000

upper border of flat field [nm] ............... : 8000000

exposure mode (inverted|noninverted) .......... : noninverted

frame size [nm] ............................... : 0

lic directory (lic|automatic|name) ............ : automatic

stripe width [pixel] ............... ........... : 1000

pixel size [nm] ............................... : 500

arcres [degree] ............................... : 6.0

dxf units to nm ............................... : 1000000

stretch exposure .............................. : 1

automatic stripes (on|off) .................... : on

assume connected [nm] ......................... : 10000

additional pixel [pixel] ...................... : 1

keep temporary files (on|off) ................. : on

                                            21
additional blocks (bottom) .................... : 1

stop conversion after (border|lic) ............ : lic

expose bidirectional (0|2|4) .................. : off

xor mode (on|off) ............................. : off

calculate exposed area (on|off) ............... : off

licbuffer size [KByte] ........................ : 0

automatic centering (on|off) .................. : off

automatic centering (on|off) .................. : off

spotsize correction x [nm] .................... : 3000

spotsize correction y [nm] .................... : 3000

scale factor x      .......................... : 1.0

scale factor y      .......................... : 1.0




                                            OR

use the graphical user interface MENU to set up the convert.cfg. Some actions (for example
setting up merge options) are much easier to perform with the MENU. All settings described
below can be EITHER done manually by editing the configuration files or by using the
MENU.



To start, enter



                  sh menu



on a SPARC and



                  menu



on a Linux system or double click on the MENU symbol on your desktop.




                                            22
The STANDARD options. Click on the ADVANCED button for the other settings:




                                        23
STEP4: Check or modify the configuration (the parameters are described in the next chapter)



STEP5: Save the updated configuration file in the editor or press the SAVE button in the
MENU.



STEP6: Start the conversion. If you don't use the MENU start it with the command 'xdoit' in
your home directory, otherwise press the start conversion button in the MENU.



STEP7: Watch the conversion progress in a second shell with the command 'tail - f
convert.rpt' or 'cat convert.rpt'. If you use the MENU, a status window will show the
conversion progress. After a successful conversion the target files can be found in the
specified directory.




                                            24
STEP8: Transfer the files to the dwlii system.

       Example:

        (transfer of LIC data in subdirectory lic into directory temp on the DWLII harddisk):



       'cd lic'                   or          'cd lic'

       'ftp dwl999'                           'ftp < transfer.cfg'

       'dwlii'                                <password>

       <password>

       'cd lic'

       'mkdir temp'                           this method will transfer

       'cd temp'                              the data into the directory

       'prompt'                               /h1/transfer

       'binary'

       'mput *.lic'

       'ascii'

       'mput convert.*'

       'mput *.cfg'

       'quit'

       'cd'



You can also use the automatic transfer software "atrans" for file transfer. Read the section in
this documentation about "atrans".



STEP9: Update the LIC data set with the system specific parameters and check the data for
empty stripes. This is done directly at the dwlii and not on the workstation with the help of
the WinDWL MENU (FILE/DISIGNS/OPTIMIZE). The OS-9 commands are as follows
(location of the design is the directory /h1/temp):

                  update /h1/temp

                  optl /h1/temp



                                                 25
5 Conversion Parameters


5.1 Main Source File
Enter filename. The source files have to be in the corresponding directories: CIF files in the
cif directory, gerber files in the gerber directory and so on. For conversion of GERBER files
see the extra documentation on gerber files. If you convert Structure files, this setting only
affects the behavior for the LIC directory setting.


                main source file .............................. : pfm.cif




5.2 Source File Type


Enter cif, dxf, gdsii, gerber, hpgl or structure.



                source file type (cif|dxf|gdsii|gerber) ....... : cif




5.3 Name of Layer


Enter layer name:

        -   in case of cif something like 'CU' or 'CM'



                name of layer to be converted ................. : CM




5.4 Magnification Factor


                                                    26
Enter a floating point value,

       - in case of wafers usually '1.0'

       - in case of masks or reticles '1.0', '5.0' or '10.0'

       - values like '0.123', '0.256789' are valid



               name of layer to be converted ................. : CM




5.5 Rotation


Enter a rotation angle in multiples of 90 degrees.



               rotation, ccw (0|90|180|270) .................. : 0




5.6 Translation in x


Enter a translation value in units of 1nm (x part).



               translation in x direction [nm] ............... : 0


5.7 Translation in y


Enter a translation value in units of 1nm (y part).



               translation in y direction [nm] ............... : 0




5.8 Mirroring in x


Enter yes for mirroring the design at the x axis.
                                                  27
               mirroring at x axis (yes|no) .................. : no




5.9 Mirroring in y


Enter yes for mirroring the design at the y axis.



               mirroring at y axis (yes|no) .................. : no




5.10 Main Structure


Enter structure name,

       - in case of CIF 'automatic' or a definition number



               name of main structure (<name>|automatic) ..... : automatic




5.11 Borders of Flat Field


Enter coordinates here (usually use automatic here unless you want match separate LIC data
sets to each other).



               left border of flat field [nm] ............ .... : -500000

               right border of flat field [nm] ............... : 500000

               lower border of flat field [nm] ............... : -409600

               upper border of flat field [nm] ............... : 409600




                                               28
5.12 Stripe Width


Enter the width in pixel units. This typically 800 pixels for MaskWrites or DWLs, or 1600
for a DWL66.



               stripe width [pixel] .......................... : 1000




5.13 Block Height


Enter the height in pixel units. This setting MUST be 4096 for MaskWrites or DWLs and
should be 16384 for a DWL66 (though it may vary there). Note: Since version 8.34 this
parameter can not be changed any more.



               block height [pixel] .......................... : 4096




5.14 Pixel Size


Enter the pixel size in 1nm units.



               pixel size [nm] ............................... : 200




                                             29
5.15 Frame Size


Here an optional frame in units of 1 nm can be specified, which may be necessary for
inverted exposures to avoid shortcuts.



               frame size [nm] ............................... : 0




5.16 Insert Text
This option allows you to insert up to five lines of text into your design. After setting this
parameter to “on” a new window will appear. You can enter your text and specify position
(nm) and letter size (1~1mm). Once you have saved a himt-text file you can reload it with the
load button.



5.17 Exposure Mode


Setting this switch to 'inverted' will result in a generation of additional structures, which last
to the end of the most right stripe and the most upper block; this is necessary to avoid wanted
exposures of dies in the neighborhood.


               exposure mode (inverted|noninverted) .......... : noninverted




5.18 Arc Resolution


Defines the angle between two points of a polyline an arc is divided into when converting
from DXF to LIC format. The unit is degrees (Range: 0.1 to 20 degrees). Note: the smaller
the angle, the better the approximation to an arc, but conversion time increases. A good value
is in the range of 4 to 9 degrees.



               arcres [degree] ............................... : 6.0




                                                30
5.19 DXF Units


Sets the number of nanometers for 1 unit in a dxf design.

       mm:      1000000

       inch: 25400000


               dxf units to nm ............................... : 1000000.0




5.20 Stretch Exposure


Sets the factor a design is stretched in y-direction. This is useful to avoid multiple exposures
(e.g. chrome plates). Valid values are 1, 2, 4, 8, 16,... Read the section about stretched
exposures for more information.




               stretch exposure .............................. : 8




5.21 Additional Pixel


Creates an overlap of neighboring stripes at the right end of each stripe. A small area at the
beginning of the next stripe is added to the end of the current stripe. During exposure this
small overlapping area is exposed twice and thus twice as much energy is put to structures in
this overlapping area. The step width of the overlap is pixel, so you can choose integer values
only. This option is normally disabled. Enable it only if you do not have sufficient energy at
the stripe connection and usage of a longer ramp would lead to a distorted linearity over the
scan.

Note: Do not enable this option unless you know exactly what you are doing as the latest
OS/9 "update" software automatically enables this feature for the exposure if you have set it
on during the conversion.


               additional pixel [pixel] ...................... : 1




                                               31
32
5.22 Automatic Stripes


This option is currently not supported!

When set to off, the stripe width is not constant but read from the file str.cfg . This file has to
be created manually. With the R and E (repeat and end) commands sequences can be easily
repeated. Your OS/9 exposure software must support this option to give correct results.



Example:




                400

                260

                R 2     /* repeat 2 times */

                210

                400

                800

                E       /* end of sequence to be repeated */

                200

                EOF     /*   + carriage return at end of this line! */




would create LIC- files with the following stripe widths (pixel):



                400, 260, 210, 400, 800, 210, 400, 800, 200




You have to make sure there are enough stripes in the str.cfg for the borders you have chosen.
Stripes exceeding the (chosen or automatically detected) right border will be converted, so
make sure you have the appropriate design width in your str.cfg


                automatic stripes (on|off) .................... : on




                                                33
5.23 Assume Connected


When converting DXF or HPGL designs there are sometimes polylines, which are not
properly closed. With this option you can set a threshold for the dxf program to automatically
warn you if there is a polyline with a distance from starting to ending point smaller than this
threshold (this often means that the line was not properly closed) and automatically close the
polyline. If the distance is bigger than this value, the polyline will be closed without any
warning. This option is also important to find polylines which cross themselves at start and
end, because it will only check for crossed lines if the d istance is smaller than this value (as
otherwise the polygon will be closed automatically, s.a.). Depending on the design you
should set this value to about 500 to 5000 nm. If the distance is bigger, the conversion
software will give you more warning messages. You can start with a low threshold to find the
perhaps not properly closed polylines and increase it then.




               assume connected [nm] ......................... : 1000




5.24 Keep Temporary Files


This prevents the program from deleting the intermediate format files generated during the
conversion (Structure, stripe and sdf files). This is usually not required and wastes a lot of
disk space (which can be freed by deleting the directories with the corresponding names:
t_struct, sdfxx/ and stripesxx/). Turn this option on only if you encounter problems during the
conversion and HEIDELBERG INSTRUMENTS asks you to do so.


               keep temporary files (on|off) ................. : on




5.25 Additional Blocks


This allows you to add an empty block to the beginning of eac h stripe. This is strongly
recommended to achieve best exposure results. Note: When exposing, consider that your
design starts with an empty block, which may take up to 8.2mm (40mm write head) in y-
direction!




               additional blocks (bottom) .................. .. : 1

                                               34
5.26 Lic Directory


Sets the directory where the LIC data are stored. You can manually set it to any directory you
want, using absolute paths (like "/mount1/licdir") or paths relative to the home directory (like
"licdir"). If set to automatic, the software will generate the directory name from the main
source file name by subtracting the extension from it (example01.dxf goes to directory
"example01"). If you convert from Structure format, set a main source file if you use the
automatic option.




               lic directory (lic|automatic|name) ............ : automatic




5.27 Expose Bidirectional


If your machine is capable of bi-directional exposures, use this setting to convert for bi-
directional exposures. The value specifies whether you want no (0), two-beam (2) or 4-beam
bi-directional exposure.


               expose bidirectional (0|2|4) .................. : 0




5.28 Xor Mode


Setting this feature will change the way structures in your design are combined. Usually, all
structures are ORed (which means added) to each other. If you enable this feature, structures
are XORed instead.

Be careful, if you have overlapping structures like the square in the top right corner of the
sample. Each time a structure covers an area the polarity will change from positive to
negative in this area.

Note: The order of appearance of the structures does not make a difference to the final result.




               xor mode (on|off) ............................. : off
                                               35
5.29 Calculate Exposed Area


Enabling this feature calculates the total area the converted structures cover. The result can be
found in the last lines of the convert.rpt file in the data directory.




               calculate exposed area (on|off) ............... : off




5.30 Licbuffer Size


If set to a nonzero value, the conversion software will use this parameter to check if any LIC
files exceed this size. These files will then be divided into several smaller files by the
"splitlic" program. This is used to avoid LIC buffer overflows on the OS/9 system. The split
LIC files will be renamed to aX.LIC, bX.lic, cX.lic, ? if X.lic was the original file name.
Make sure your atrans software is 1.08 or higher and your OS/9 update software is capable of
handling this option.

This feature is currently provided only for the Linux conversion software.




               licbuffer size [KByte] ........................ : 0




5.31 Automatic Centering


Enabling this option sets the (0,0) position of the LIC data set

the center of the design. This is useful if your design coordinates are not centered, but you
want to center your exposure.


               automatic centering (on|off) .................. : off




                                               36
5.32 Spotsize Correction


This two settings switch the spot size correction on and off. Read the separate documentation
about spot size correction.




               spotsize correction x [nm] .................... : 3000

               spotsize correction y [nm] .................... : 3000




5.33 Scaling


Enables you to apply independent scaling factors to the x- and the y-axis of your design. This
scaling is additional to the magnification factor you specified above and can be any floating
point number. If you use this feature, all circles will be transformed into polygons with an arc
resolution of the ACRES setting given above. Enabling this feature for very large designs or
designs with many circles and/or using a very small value for ARCRES will heavily increase
your conversion time.

The exposure offset will remain the same as for the not scaled design and is identical to the
offset you get if you use the "Determine Design Borders" feature of the MENU.



Note: Usage can even result in an abnormal conversion termination due to lack of memory or
harddisk space. Use this feature only if your machine hardware requires it (e.g. some
DWL66s).




               scale factor x ................................ : 1.0

               scale factor y ................................ : 1.0




                                               37
5.34 Cluster Hosts


Only available on the special PVM conversion software. Defines which machines will join
the cluster for the parallel conversion. Spelling identically to the entries in the /etc/hosts files
is required. See the section on Cluster Conversion for more details.




                cluster hosts ................................. : c1,c2,c3




5.35 Left Optic Path


Only required for machines with green and UV laser installed.

Do not select this option unless you are absolutely sure about what you are doing.




                left optic path (on|off) ...................... : off




5.36 Scale Offset


Only available for DWL 66. This allows you to decide whether the offset to the (0,0) position
of your design is scaled with the factors set in the "scale x" and "scale y" options. Set to "on"
if you scale your design in order to fit it to your size requirements. Set to "off" if your
machine requires a scaling in y.


                scale offset (on|off) ......................... : on




                                                 38
5.37 Invert Spotsize Correction


Normally the conversion software will automatically choose the sign of the spotsize
correction value. This option inverts this behavior, i.e. features will grow for noninverted
exposures and shrink for inverted exposures.




               invert spotsize correction (on|off) ........... : off




6 Conversion of CIF Design Files



Step by step instruction:



STEP1: Copy the CIF file to the cif subdirectory.



STEP2: Enter the name of the CIF file in the "main source file.." entry.



STEP3: Set "source file type ?" to cif. Enter the layer name in "name of layer to be converted
...". Set up the remaining conversion parameters.



STEP4: Start the conversion.




                                               39
7 Conversion of GDSII Design Files



Step by step instruction:



STEP1: Copy the GDSII file to the gdsii subdirectory.



STEP2: Set "source file type ?" to gdsii.

STEP3: Enter the name of the GDSII file in the "main source file.." entry or open a file dialog
window by choosing "Browse source file" in the "File" menu.



STEP4: If you want to merge different layer select "Create merge configuration" in the
GDSII menu else choose “Use standart gdsii”. If you use merge configuration the maximum
number of references for ech cell is limited to 1000.

STEP5:

Merge Configuration:

Select your top level cell. If you want to merge the layers click on the corresponding button
and choose a operation else select "convert all layers". The “step menu” is described in
"Conversion of dxf design files".




Standard Configuration:

Enter the top cell and the layers separated by commas.

STEP6: Start the conversion.


                                              40
8 Conversion of DXF Design Files




8.1 General


The general and machine specific settings for the conversion of AUTOCAD's DXF format to
LIC have to be made in the convert.cfg as for every conversion. In addition, to be compatible
with AUTOCAD's multi layer feature, you have to set up the dxf.c fg file to designate the
layers you want to convert. Also in „step and repeat‟, the merging of layers and rotating
and/or mirroring of individual layers is controlled by this file. Merging of layers allows you
to do logical operations on structures from different layers. Currently the operations CUT,
OR and XOR are supported:




Only the CUT operation is dependent on the order of operation (from left to right in the
subtitles). Of course multiple operations can be done:


                                             41
Note: In this case there are two ways to reach the desired result.



The behavior of the merging function is controlled by the dxf.cfg:



Sample dxf.cfg:




There can be several sections in this file each of which can contain calls to several of the
available layers in the DXF file. Each call command carries the information about where to
place the layer and whether mirroring or rotating is needed for this layer. For more
information about the syntax of the CALL command used here refer to the section on the
Structure format in this documentation.



                                               42
At the beginning of each section (except for the first, which is always [MAIN]) there is a
header line which describes whether the contained layers are CUT, ORed or XORed to the
result of the sum of all previous operations. XOR means each time a str ucture covers an area
the polarity will change from positive to negative in this area. The order of operation is from
top to bottom.



The sample configuration above would first OR the layers in [MAIN] (214DMK, 214) to
each other (which means they are simply added) and produce a new layer containing the
result (e.g. called SECTION1). The syntax of the lines (C DMK 3 0 0 2 0 0 1 0 0) is
described in the chapter "The HIMT Structure Format". In the next step the same (adding of
all layers in the section) would be done with all files in the following [CUT] section and
stored to layer SECTION2. Then SECTION2 would be cut out of SECTION1 and the result
stored again to SECTION1. Afterwards all layers in the following [OR] section would be
added to SECTION3. SECTION1 and SECTION3 would then be ORed to each other (added)
and the result would again be stored to SECTION1, and so on until all sections are processed.
The resulting, final SECTION1 layer will then be converted.



The easiest way though to set up the dxf.cfg is to use the graphical user interface program:



STEP1: Copy the DXF file to the dxf subdirectory. If your dxf software is older than 8.15 (to
find out simply type "dxf <ENTER>" in a shell) remove DOS linefeeds with dos2unix.



STEP2: Enter the name of the DXF file in the "main source file.." entry.



STEP3: Set "source file type ?" to DXF. Set up the remaining conversion parameters.



STEP4: Select DXF/Create New dxf.cfg. The DXF file is analyzed and after some seconds, a
window appears:




                                              43
STEP5: Set up the merging configuration. The top left column displays all layers found in the
DXF file plus layer "0" (which may also contain structures). To the right a radio button
matrix allows you to assign each layer to one column. To deselect a layer, click on the
"Clear ?" button at the very right of the row. Choose the merging operation between two
neighboring columns with the button below that column. All layers in each column are added
and then merging will proceed from left to right. The first column is always pos itive.



STEP6: If Step&Repeat has to be done to any or all layers, click the "Step ?" button for that
layer:




Note: Units of all entries for "Step Size" and "Translation" are
always nanometer


The "Save to all Layers" button applies these settings to all layers, "Load Default Values"
resets to default settings for the current layer. The order of operation is translate and step,
then rotate and finally mirror. Click "Save" and "Exit" to save and exit and return to the
previous window.



STEP6: Save and exit your settings. You can edit your dxf.cfg now by selecting DXF/Edit
dxf.cfg:




                                                44
Output of the sample setup above:




Read the documentation of the HIMT Structure format for the meaning of the command
lines.



STEP7: Start the conversion




8.2 The "dxf" Program


The command line parameters and the DXF error messages are explained below.



The syntax of the dxf program is the following:



       dxf <source file> <magnification> <arcres> <mode> <assm>



       <source file>          name of the DXF design file

        <magnification>       see "dxf units to nm" in Usage of the conversion package

       <arcres>               see "arcres" in Usage of the conversion package

       <mode>                 1: do full conversion from DXF to Structure format (requires

                                             45
                               existence of "structures" subdirectory)

                               0: only analyze the DXF file

       <assm>                  see "assume connected" in Usage of the conversion package



The error messages reported by the program will be explained by some examples:



       nonzero linewidth:              Polylines with nonzero line width are not supported.

                                       The line number in the dxf file of the first vertex and its
                                       coordinates are reported.




              *** dxf: polylines with linewidth are not supported!

              *** dxf: line#       13701          layer: U072MK

              *** dxf: starting coordinates of polygon:

              *** dxf: xstart:             73312402       ystart: 118250487




       crossing lines:               The program has found a polyline where the start and end
                                     lines seems to cross. This may also be caused by a
                                     doubled vertex at the end or start of the polyline. The test
                                     for crossing lines is only made, if the distance between
                                     start and end is smaller than the value for "assume
                                     connected", because otherwise the polyline will be
                                     automatically closed. The line number in the DXF file of
                                     the last vertex and the coordinates for the first and last
                                     vertex are reported. Also the program calculates a
                                     crossing point, which may not be correct!


              *** dxf: check for crossing lines at line# 386029       layer: U072SO

              *** dxf: starting coordinates of polygon:

              *** dxf: xstart:             33109999       ystart: 121184197

              *** dxf: ending coordinates of polygon:

              *** dxf: xend:     33109996         yend:   121184162

              *** dxf: approx. crossing coordinates:

              *** dxf: x:        33109999         y:      121184162




                                                 46
small distance:                    If the distance between start and end point of a polyline
                                   is smaller than the value for "assume connected" the
                                   program will give you a warning message because this
                                   might indicate a design error. The line number in the
                                   DXF file of the last vertex and the coordinates for the
                                   first and last vertex are reported.




       *** dxf: warning: start and end point of polygon are closer than

       *** dxf: the assume connected limit of 2000.00 nm

       *** dxf: distance:           35.13

       *** dxf: line#     386029    layer: U072SO

       *** dxf: starting coordinates of polygon:

       *** dxf: xstart:             33109999         ystart: 121184197

       *** dxf: ending coordinates of polygon:

       *** dxf: xend:     33109996          yend:    121184162




polyline type:                     Some polyline types are not supported, for example
                                   splines and 3-dimensional polylines.




       *** dxf: illegal polyline-type

       *** dxf: line#     386029    layer: U072SO

       *** dxf: starting coordinates of polygon:

       *** dxf: xstart:             33109999         ystart: 121184197




missing character:                 Some characters in text are not (yet) supported. They
                                   are replaced by white space.




       *** dxf: Warning: missing character: "

                                            47
               *** dxf: file: STANDARD.34

               *** dxf: error # 1

               *** dxf: line#     386029    layer: U072SO

               *** dxf: starting coordinates of text:

               *** dxf: xstart:             33109999         ystart: 121184197

               *** dxf: character will be blanked out




       illegal arc :                       Sometimes arcs within a polyline are not properly
                                           joined to the rest of the polyline. In this case the error
                                           message below will appear. Check your design, join the
                                           polyline and start the conversion again. You can not
                                           ignore this error.




               *** dxf: ARCs are not supported, structure will be ignored.

               *** dxf: check for not connected (joined) polyline

               *** dxf: file: STANDARD.34

               *** dxf: line#     386029    layer: U072SO

               *** dxf: starting coordinates of arc:

               *** dxf: xstart:             33109999         ystart: 121184197




9 Conversion of GERBER Data




This section describes the setup for the conversion of gerber files to LIC code and the
currently supported gerber commands .

In addition to the settings for the conversion of GDSII and CIF files made in the convert.cfg
(see: "CIF/DXF/GDSII/GERBER to LIC Conversion Software ") you need to edit the
gerber.cfg file in your home directory for the conversion of gerber design files.




                                                   48
9.1 Description of gerber.cfg


The gerber.cfg file contains all necessary information about the used apertures, the format of
the gerber design file and the gerber design files to be converted. An example might look like
this:
field # 001 ................... : layer1.gbr, n,   90,   0.000,     0.000

field # 002 ................... : layer2.gbr, x,   0,    10.000,   92.900

field # 003 ................... : layer3.gbr, y, 180, 100.000,     92.900




base unit (inch|mm) ........................... : mm

number of digits left of decimal point ........ : 3

number of digits right of decimal point ....... : 4




wheel # 0, aperture # 01 (D10) ................ : P

wheel # 0, aperture # 02 (D11) ................ : C,0.01

wheel # 0, aperture # 03 (D12) ................ : S,0.05

wheel # 0, aperture # 04 (D13) ................ : F,apt1.gbr




wheel # 1, aperture # 01 (D10) ................ : C,0.003

wheel # 1, aperture # 02 (D42) ................ : C,0.0004

wheel # 1, aperture # 03 (D79) ................ : C,0.00005




The field


field # 001 ................... : layer1.gbr, n,   90,   0.000,     0.000




parameter can be used to merge up to 999 gerber files into one exposure.



Each design can be independently mirrored,


       filename, axis [n,x,y], phi [0,90,180,270], x [mm], y [mm]




                                             49
rotated,



           filename, axis [n,x,y], phi [0,90,180,270], x [mm], y [mm]




or translated:


           filename, axis [n,x,y], phi [0,90,180,270], x [mm], y [mm]




           Examples:


           field # 002 ................... : layer2.gbr, n,   0,   10.000,   92.900




           would mean, that the design layer2.gbr would be converted with the following
           parameters:

                  - no mirroring

                  - 0 degrees rotation

                  - x-translation of 10 mm

                  - y-translation of 92.9 mm


           field # 002 ................... : layer3.gbr, y, 180, 100.000,    92.900




           would mean, that the design layer3.gbr would be converted with the following
           parameters:

                  - mirroring at the y-axis

                  - 180 degrees rotation

                  - x-translation of 100 mm

                  - y-translation of 92.9 mm



The next section describes the well known parameters for the interpretation of the numeric
data in the design file:



                                                 50
base unit (inch|mm) ........................... : mm

number of digits left of decimal point ........ : 3

number of digits right of decimal point ....... : 4




The last part is the aperture list. As you can see in the example, the change of wheels is
supported. Each wheel may contain up to 69 apertures (D10 to D79), which can be
individually set.



wheel # 1, aperture # 01 (D10) ................ : C,0.3

wheel # 1, aperture # 02 (D42) ................ : C,0.004

wheel # 1, aperture # 03 (D79) ................ : C,0.0005




Currently there are 4 kinds of apertures supported:




   Polyline:



       wheel # 0, aperture # 01 (D10) ......... ....... : P




       Description:   Drawing of a filled polygon pattern.




   Roundflash:



       wheel # 0, aperture # 02 (D11) ................ : C,0.001




       Description: Use a circular aperture for drawing. Using Roundflash with diameter
       zero is not supported. Use Poly aperture instead.

       Can be used for flash mode as well.



                                              51
   Square:




        wheel # 0, aperture # 03 (D12) ................ : S,0.05




               Description:   Use a square aperture for drawing. Can be used for flash mode
               as well.



   File:


        wheel # 0, aperture # 04 (D13) ................ : F,apt1.gbr




       Description:   Use the file "apt1.gbr", which has to placed in the "gerber" directory,
       as

                      a flash. "apt1.gbr" can be an arbitrary gerber file, but uses the settings
                      (units, digits and apertures) of the gerber.cfg file. Can be useful if yo u
                      want a flash of a more complex shape. The current tool position will be
                      the origin of the design defined in the "apt1.gbr" file.

                      Note: Can be used for flash mode only!




All of the above settings can also be made from the graphical user interface MENU.

(Select: Gerber/Create New gerber.cfg):



Configuration of arrays:




                                              52
Note: Units of "Step Size" and "Translation" are always mm. The Units
for apertures are defined by the "base units" entry (mm, inch).
Configuration of apertures:




                                  53
9.2 Description of Supported Gerber Commands


9.2.1 General Commands

G57D10MOUNT APERTURE WHEELXX

              Changes the selected wheel to wheel #XX. This changes all aperture
              definitions of the previously selected wheel to the selected wheel.

              Note: The default is wheel #01.

G54DXX        Selects aperture #XX from the definitions within the gerber.cfg file.

              Note: There is no default setting, you have to select an aperture!

G01           Linear interpolation mode

G02,G20,G21 Turns on circular interpolation with clockwise drawing direction.

G03,G30,G31 Turns on circular interpolation with counter clockwise drawing direction.

              Note: If the line type is not polyline, the chosen aperture must be circular and
              its diameter must be smaller than the diameter of the drawn arc.

G36/G37       Turn area fill on/off

G70/G71       Set units to inch/mm.

G75/G74       Turns on/off line 360 mode for circular interpolation.

9.2.2 G55, G04, G90 -> IgnoredDrawing Commands



D01           Set drawing mode ON.

D02           Set drawing mode OFF.

D03           Set flash mode ON.



9.2.3 Miscellaneous Commands



M02, M2       End of gerber file.



9.2.4 Sequence Numbers



                                             54
Sequence codes will be ignored.



9.3 Extended Gerber (RS-274x)


ADD                  Circle, square, rectangle and polygon apertures are supported



       Samples:

       %ADD10C,0.05*%               50 micron circle

       %ADD10C,0.0*%                outline polygon aperture (diameter is zero)

       %ADD10P,0.34X5X45*%          outline polygon aperture (parameters ignored)

       %ADD10R,0.05X0.04*%          rectangle (x-width: 50 micron, y-width: 40 micron)

       %ADD10R,0.05X0.05*%          square (width: 50 micron)




AM                   The AM parameter is used to define special apertures. Variable
                     primitive parameters and reverse exposure mode are currently not
                     supported.

                     Supported primitives:

                                    Circle

                                    Rectangle

                                    Outline

                                    Polygon

                                    Thermal



FS                   Format statement allows setting of digits. T, D and I options are not
                     supported, digits must be the same in x and y.

IC                   Only ASCII Input Code supported.

IP                   Only positive Image Polarity supported.


                                             55
IR                    Image Rotation with angles: 0°, 90°, 180°, 270°.

LP                    Layer Polarity of first layer must be clear

MI                    Mirroring at x/y-axis

MOMM/MOIN             Set units to mm/inch.

SF                    Scale factor in x/y-direction must be equal

SR                    Step & Repeat



9.4 General


Max number of Layers: 100

Max number of macros: 100

Apertures: D10-D9999




10 Conversion of odb++ data
A job in odb++ is represented by a directory tree. When you receive a odb++ job it is
normally compressed to a tar-zip archive (.tgz). With the conversion menu you can
decompress this data by using the “Unpack odb archive” entry in the odb menu. Sometimes
the directory tree contains compressed feature files (feature.Z) which are also automatically
decompressed. You just have to select the tgz file and press the ok button.

After this step you can choose the step and layers you want to convert by creating a new odb
configuration (odb menu).




                                              56
11 Conversion of HIMT Structure Data



Unlike all other formats Structure data skip the first conversion step and can be converted
directly to LIC. This reduces the conversion effort and possible error sources. As the format
is very simple some CAD systems (STELLA, IGI) have added this format to their IO filters.

Like DXF, Structure allows the merging of separate layers, but the layers have to be in
separate files instead of one DXF file containing multiple layers. Read the chapter about DXF
conversion to learn more about the merging functionality.



STEP1: Copy all layers to the structures subdirectory.



STEP2: Enter the name of one of the Structure files in the "main source file.." entry. This
does mainly affect the "lic directory ?" setting (when set to automatic). Set "source file type?"
to Structure. Set up the remaining conversion parameters.




STEP3: In the MENU select Structure/Create merge.cfg:


                                               57
The left box lists all layers in the structure subdirectory. Select layers for your conversion by
double clicking on them or selecting them and clicking the "Add Layer ->" button. Remove
them from selection by double clicking on them in the right window or selecting them and
clicking the "Remove Layer" button.



STEP4: Click the "Merge" button. Another window appears:




Now set up your layer configuration. The setup is the same as for DXF files. Read the chapter
about DXF conversion to learn about it.

Note: You have to do this step even in case only one layer is selected. If you skip it, you will
get wrong results.



12 STEP5: Save and exit both windows. You can check the
   merge.cfg you created with Structure/Edit merge.cfg. The
                                               58
    syntax is the same as for the dxf.cfg. Start your
    conversion.Conversion of HPGL Data



HPGL conversion offers a special feature to comply with some CAD station's output, the
auto-connection of lines. Due to round off effects simple auto-connection may not work, so a
snap algorithm has been added. As units in HPGL are usually large, round off effects may be
big and vary widely from design to design. The "assume connected ?" entry sets t he limit for
the snap algorithm. These conditions make it necessary to re-check the result of the first
conversion step (HPGL to Structure) more carefully than with other formats.

HPGL does not offer the merging functionality of DXF and Structure designs, but can, of
course make use of the XOR mode feature.



12.1 How to convert HPGL designs


STEP1: Copy your design to the hpgl subdirectory.



STEP2: Enter the name of the HPGL file in the "main source file.." entry. Set "source file
type?" to HPGL. Set up the remaining conversion parameters.




STEP3: Select HPGL/Step & Repeat. The following window allows you to set up the
Step&Repeat configuration:




Save and exit. You may check the merge.cfg to see whether everything is ok. See the
chapters about DXF and Structure conversion to learn more about the merge.cfg.




                                             59
Note: Units of all entries for "Step Size" and "Translation" are always nanometer, the order of
operation is translate and step, then rotate and finally mirror.

Note: If you skip this step, your setup will be incorrect, even though you changed the main
source file.." entry.



STEP4: Set the appropriate magnification for your HPGL design. The conversion software
assumes, that the HPGL unit is 0.025 mm.



STEP5: Determine the "assume connected ?" parameter for the snap algorithm. It is
connected to the magnification factor in STEP4 and the internal units of the CAD software
used for generating the HPGL file. If MAG is the magnification factor and UNIT is the
HPGL files unit (currently 0.025mm), the snap parameter SNAP is determined as follows:



       SNAP > UNIT * MAG



This is under the assumption, that the round off effect is smaller than UNIT in the HPGL file.
It may be much larger though.



STEP6: Convert the HPGL data to Structure format with Conversion/Convert to Structure or
Conversion/Determine Design Borders (the latter also displays the extensions of that layer).
Reconvert the structures with the struct2dxf, struct2gerber or struct2cif tool (see the chapter
in this documentation) and view the reconverted data with your viewer. Linux and SPARC
software users may also use the HIMT Viewer instead to directly view the structures. If the
output is correct, continue with STEP7, otherwise increase your snap value (double it) and
repeat STEP6. Also see the information about command line options and output below for an
easier access to the best setting.

Note: If your snap/assume connected parameter gets to large, it may start to connect
structures you don't want to be connected. If you still have problems in other positions of
your design, check there for double lines or other problems.

Note: For very large designs the auto-connection may take very long, though it is highly
optimized.



STEP7: Start the conversion.




                                              60
12.2 HPGL Command Line Options


Like all programs of the conversion software, the hpgl program can also be started from the
command line. The command line parameters are



           Syntax: hpgl <source> <target> <magnification> <arcres> <tolerance>

       Function: conversion of hpgl files

                   to structure files

       Version: 1 (WINDOWS)

       Revision: 3




<source>                      Source file name without path (must be in hpgl subdirectory)

<target>                      Structure output file name (will be put to structures subdirectory)

<magnification>               Magnification factor. This must include the assumption, that the HPGL
                              units are 0.025mm, i.e. if you set a magnification of 1 the unit size will
                              be set internally to 25000 (nanometers).

<arcres>                      Arc resolution setting. See "Usage of Conversion Package" for more
                              information

<tolerance>                   The snap/assume connected parameter



In case you encounter problems in STEP6 above, you may want to find better parameters. To
do this it is convenient to run hpgl from the command line and watch the output first.

When you run hpgl from the command line, the output will look like this:




                                                         61
   If you increase the tolerance for the snap algorithm by doubling it a few times and the
   number of structures does not decrease, you can be sure to have a good setting. If you
   increase the parameter too much, the snap algorithm will start to connect neighboring
   structures and the output will be wrong again. Therefore, check the output afterwards.

13 The struct2dxf Tool


This tool allows you to reconvert HIMT Structure data to DXF format data. This enables you
to preview your exposure.

The usage of this command line tool is very simple:



STEP1: Start the conversion and stop it after the border program. If you have the MENU
software (version 1.12 and above) you can set



       stop conversion after (border|lic) ..................... : border




   to border to automatically stop after the border program. You also have to set automatic
   borders.

                                             62
STEP2: Go to a shell or command prompt and change to your home directory.



STEP3: type



       struct2dxf main <target file name>



The target file name should have the extension .dxf. The reconverted file will be placed in the
dxf directory. Any existing file with the same name in the dxf directory will be overwritten.



STEP4: View the target file with any DXF viewer and check for errors.



Hint: On Windows systems, you can also create a batch file (e.g. reconvert.bat) containing
the following line and place a shortcut to it on your desktop:



       struct2dxf main reconvert.dxf



(It would, of course, overwrite the file reconvert.dxf each time you use it.)




14 Checking lic files
If you have finished your conversion you can check the resulting lic files. Select "Check lic
files" in the "Conversion" menu and select a directory. After the check process the result is
shown in a new window.

You can also start the check from the command line:

xcheck_lic "licdir"/?.lic

xcheck_lic checks only the structure of your lic files. If your conversion station works correct
there will be no error at all.




                                               63
15 The HIMT Viewer


The HIMT Viewer software allows you to preview your exposure. It uses a Tk/Tcl based X-
Windows interface to display Structure data. It also supplies basic CIF, DXF and GERBER
output and very few, simple measurement and editing functions.

It is available for Linux and Solaris only. A WIN32 version will be provided in the future, so
WIN32 users have to use the struct2dxf tool instead.



15.1 Installation
The Viewer is supplied with the conversion software only, so if you use the MENU and have
the Tk/Tcl package installed, no additional installation is required. See the convert software
installation chapter above for how to install Tk/Tcl.

The Viewer consists of two files: The file "hview" in the home directory and the file "views"
in the cmds subdirectory. "hview" is a Tcl script that initialises and starts the Viewer; "views"
contains the main binaries. To start the Viewer type "hview" ("sh hview" on Solaris systems)
from the home directory (it is always started from there). If you get an error message like



       views: can't load library libtclx.x.so



you have the wrong version of Tk/Tcl installed.

On Solaris systems this means you have not installed the package recommended in the
convert software installation chapter. Uninstall your current version and replace it with the
recommended one.

If you use a Linux system, do the following:



STEP1: Login as root.



STEP2: Change to the convert user home directory. Copy the file libsxx_yy.tgz from the
cmds/libs directory to "/":



       cp cmds/libs/libsxx_yy.tgz /



                                                64
(xx must be the x.x of the error message above!)



STEP3: Change to "/".



STEP4: Unzip the file with



       gzip -d libsxx_yy.tgz



STEP5: Untar it with



       tar xvf libsxx_yy.tar



STEP6: Delete the file libsxx_yy.tar. Restart your computer.




15.2 Usage
15.2.1 General

15.2.2 Short Instruction for Exposure Preview from the MENU

STEP1: Set up your convert.cfg with all conversion parameters.



STEP2: The viewer will show the whole design after startup. If you have set the conversion
borders manually the viewer can show you this part of your design after pressing “Load
config”.

STEP3: Select Conversion/Preview Structure. The MENU window will be minimised and
reappear after some seconds (this can take up to several minutes for large designs). Your
design data have been converted to Structure format (the data are stored in the t_struct
directory). The Viewer starts and loads the Structure data, whic h will be displayed after some
time.




                                              65
15.2.3 Short Instruction for Exposure Preview from the Command Line

If you set up the convert.cfg with an editor and start the conversion with "xdoit" or
"xconvert" do the following:



STEP1: Set up your convert.cfg with all conversion parameters.



STEP2: The viewer will show the whole design after startup. If you have set the conversion
borders manually the viewer can show you this part of your design after pressing “Load
config”.

STEP3: Set the "stop conversion ?" setting to border.



STEP4: Start the conversion. It will run for a short time and convert your design data to
Structure format (the data are stored in the t_struct directory).



STEP5: Start the Viewer from the command line in your home directory with



       hview t_struct/main

or

       sh hview t_struct/main



on SPARC/Solaris systems. The Viewer starts and loads the Structure data, which will be
displayed after the loading process.



Note: If you set the "stop conversion ?" setting to border and start the conversion, the input
format will be converted to Structure format. All Structure output is written to t_struct/ and
deleted at the start of the next conversion while your Structure conversion input data usually
reside in structures/ .

15.2.4 General Usage

The Viewer must be started from the home directory of the convert user. Start with



       hview

or
                                             66
       sh hview



on SPARC/Solaris systems. You can also give the path of the structure files (up to 5) to be
loaded as command line parameters:



       hview structures/LAYER1.str structures/LAYER2.str ?



Note: You can give a relative or absolute path to the Structure files. These files will then be
loaded immediately after the Viewer has started.

After the Viewer has started two windows are shown, the Display Window and the Control
Window. The Control Window contains two menus ("File" and "Edit"), several buttons, a
Log Window and a Status Display:




                                                                                    Display




 Menus            Buttons          Status             Log            Control




                                              67
15.2.5 The Log Window



At startup the Log Window shows the Viewers version and revision number. The current
status and all operations are logged here and you can always scroll up and down to go
through the history. It also displays hints for the operations, which you can start with one of
the buttons, so always look here to get help.



15.2.6 The Status Display



The Status Display gives you information about all currently loaded layers. If you want
information about an individual layer, go through the Log Window's status list for
information displayed after loading that layer.



XMIN, XMAX, YMIN, YMAX               Extents of all layers loaded in mm.

Polygons                             Total number of polygons loaded.

Vertices                             Total number of vertices (points) in all polygons.

Max Nr.                              Maximum number of vertices in one polygon.

Circles                              Total number of circles loaded.

Memory                               Amount of memory used (approximately).



15.2.7 The Display Window



The Display Window displays the data. Each Structure layer gets a different color depending
of the order in which they are loaded (black, red, blue, green, ?). The window can be resized,
but you have to initiate a redraw manually afterwards.




                                              68
15.2.8 File Menu




New                   Unloads all layers.



Add Layer             Adds a new layer to the currently loaded layers. The following dialog
                      box appears:




Enter the path of the Structure file you want to load and click on OK. Watch the Log
Window for the loading progress.

Note: Viewing of LIC data is not supported.



Load Layer            Same as Add Layer, but all currently loaded layers will be unloaded
                      before.

Unload Layer          Unload one layer. The Log Windows displays a list of all layers
                      loaded. Double click on the layer you wish to unload.



Save CIF/DXF          All layers in memory will be exported to one CIF/DXF file. The layers
                      are kept in separate layers in the CIF/DXF file. A dialog box appears
                      and asks you for the output file name. Enter the path of your output file
                      and click on OK. Watch the progress in the Log Window.




                                              69
Save GERBER            All layers are saved to individual layers. You are asked for a target
                       directory instead of a target file. Each layer is stored to a file in this
                       directory with the name of that layer and the extension .gbr . The only
                       aperture used is a D10 Polygon aperture.



Save STRUCTURE (normal)

                       Saves all layers to one Structure file. This is mainly used for merging
                       of several Structure files to one.



Save STRUCTURE (9.0)

                       Saves all layers using a more advanced but not (yet) conversion
                       compatible Structure format. Do not use this feature unless you know
                       exactly what you are doing.



Exit                   Exits the Viewer




Note:

       All saving operations overwrite existing files without prompting.

       All output data are flattened so the output data may be large.

       The output filters support only circles and polygons.

       With repeated saving, converting to structure and reloading you can separate or merge
        layers in any combination of design data types. Also you can convert from any of the
        supported conversion software input formats to CIF, DXF, GERBER and Structure.



15.2.9 The Edit Menu




List Layers                    Lists the names of layers loaded.

                                               70
Setup           Sets up parameters for the adding of a grid. See below for a more
                detailed explanation.




Stretch Layer   Scaling of layers. Enter the scaling factors in the dialog box. If the
                scaling factors are not the same for both axis and the factor for one axis
                is larger/smaller than 40/39.5 respectively 39.5/40 circles are converted
                to polygons. The ARCRES setting then sets the angle between two
                neighbouring vertices of the polygon. Otherwise, only the circle centre
                position is scaled and the radius is scaled by the average of the two
                scaling factors.

                Double click on the layer you wish to scale in the Log Window.



Add Grid        allows you to add a grid to a loaded layer. The Setup dialog window
                appears:



                Enter your pixel size, stripe width and block height. If you select Auto
                Grid, the grid will start at the lower left corner of the layer. Select User
                Grid and set up Grid Start X/Y for arbitrary start co-ordinates.

                Select the grid type in left column:

                    Grid: Adds a grid of stripes and blocks with the dimensions of
                     your stripe width, block height and pixel size settings.

                    Grid + Text: Adds the stripe and block number in the lower left
                     corner of each block.

                    Note: Using this feature may create huge data sets and possibly
                     use up to much memory (System crash possible). Only use for
                     small number of stripes/blocks.

                    2/4 - Beam: Adds a grid of horizontal lines according to a 2/4 scan
                     encoding. (Same warning as for Grid + Text applies here.)



                Click OK to save your settings. Double click on the layer you wish to
                add the grid to in the Log Window

                                        71
Add Frame             Lists the content of the "frames" subdirectory in a new window.
                      Double click on the frame you want to add. Frames have to be in
                      Structure format.




15.2.10 The Buttons




Redraw                Redraws the current view.

Load Config           Load exposure specific parameters (exposure mode,xor mode,
                      borders).

Alt                   Draw multiple layers in b/w



Fill                  Switches display of filled/outlined structures on/off. The button
                      changes its colour when filling is on.

                      Note: Polygons with to many points can not be filled. Watch the
                      messages in the Log window.

Mode                  Switch between inverted and noninverted mode

XY                    Turns the display of the cursor position in the lower left corner of the
                      Display Window on and off. The unit of the position is mm. Also
                      stripe and block number are displayed according to the current setup.
                      The button changes its colour when this mode is enabled. No other
                      operation is permitted until you have clicked with the middle button on
                      the Display Window.

                      To start measuring, click the left button on the start position and move
                      the cursor around. The total distance from the start position and the
                      distances in x and y are being displayed (in mm). Click the left or
                      middle button to return to co-ordinate display mode.



WZoom                 Zooms into a window. Click the left button on one corner of the
                      window you want to zoom in. Then pull the window with the mouse
                      and click the left button again. The display zooms in to that window.
                      Click the middle button to abort that operation.




                                             72
MZoom                   Zooms in to the position you click on with your left mouse button or
                        zooms out if you use the right button. After redrawing the cursor points
                        to the position you clicked on. Click the middle button to abort that
                        operation.



All                     Zooms to maximum extent of the design.



In/Out                  Zooms In/Out of the centre of the currently displayed area.



Left/Right/Up/Down Moves the displayed area left/right/up/down.



Image:                  Captures a screenshot and saves it as design(x).jpg



Note:

         Always watch the Log Window for hints and explanations.

         On systems with a 2-Button mouse the middle button is usually enabled by pressing
          both buttons simultaneously.

         Always end your operations before starting a new one. Usually the button of the
          operation you have not finished has a different colour.

         To end a operation always click the middle button on the Display Window, not on the
          Control Window.




15.3 Preview of Merged Layers
Some design formats are using polarities (positive, negative) for generating complex
structures (gerber RS-274X, odb). With layer orientated formats (dxf, gdsii) it is possible to
perform operations between different layers (cut, or, xor). In both cases the conversion
software generates a configuration file (merge.cfg, mg.cfg, dxf.cfg). For every polarity
change or layer operation a new section is created in this file. If you start the viewer all files
in one section are displayed with a color. There are 8 different colors for the sections. That
means the ninth section has the same color as the first section.

16 If you want to view odb or RS-274 data press the alt button in
   the viewer menu. This will switch the color between black and
   white for every new section. For merged layers with
                                                73
    alternating or-cut operations use also the ALT button. The
    result of other layer operations can not be
    displayed.Troubleshooting


In case you encounter conversion software related problems during or after conversion and
exposure, do the following:



- Re-check you complete configuration. In some cases typos can cause errors where you do
not expect them to do (wrong design name, missing ramps, ...). If you have already plotted,
check the machine configuration again carefully.



- Check your design again. Use the HIMT Viewer or the struct2dxf tool to see if the
conversion software has correctly converted your input data to the Structure format.



- Check the following conversion report files for error messages: convert.log, convert.rpt,
convert.inf. If the conversion has finished you will find those files in your LIC data directory,
otherwise they are in the home directory.



- Check your conversion station for free disk space.



- If the exposure fails: Check the number and size of the LIC files on your OS/9 system and
compare them to those on the conversion station



- Read the Troubleshooting section in this document.



If this does not solve your problems, collect the following information and files and send
them to HIMT (via mail, e- mail or fax):



- Detailed description of error occurring. If the design has already been exposed measure the
exact location of the error. If you know the stripe number, send that LIC file and 2-3
neighboring LIC files. If possible fax a sketch to HIMT.



- If the conversion fails collect these files from the home directory: convert.cfg, gerber.cfg,
dxf.cfg, merge.cfg, convert.inf, convert.rpt, convert.log
                                                74
- Otherwise collect these files from the LIC directory and in addition the file size.cfg.

                                       

- Version and type of the conversion package currently installed (version number, machine
type, EDDU or not). If a specific part of the software fails (e.g. the gerber program) get the
version of that program too (especially if you have received upgrades on single files). To do
that simply type the name of the program on the command line (exception: xconvert has to be
called with xconvert /? ).



- If you have use the MENU and you get an error message:




Hit the Stack Trace button. Copy the first 6 lines of the following error message and send it
with the other files.



- The design data file.



Compress ALL data files using a ZIP compression tool. Do not use any other tools like arj
ore lha. Do not send files larger than 10MB via e- mail.

Supported media are: 1.44MB Floppy disk (PC, minix and SPARC), 100MB IOMEGA ZIP
disk (PC formatted), 4mm DDS-2 tapes (Unix tar archives only), CD-ROM (ISO9660).




17 The HIMT Structure Format


This part of the document describes the internal HIMT Structure format. It is the uniform
interface for the conversion of design data to LIC data. Each design conversion program
(gerber, cif, gdsii, ...) writes its Structure format output to the ./t_struct directory.



                                               75
All output files are plain ASCII files with a <CR> at the end of each line. The directory
contains a main structure file, usually called "main"

       (option:



               name of main structure (<name>|automatic) ..... : main




        in the convert.cfg file).

It represents the top level of Structure files to be included. The Structure files themselves
consist of a number of ASCII text lines. Each line conta ins ONE command. The commands
start with a letter which specifies the command followed by the necessary numerical
parameters. The numerical parameters can have a maximum size of +/-2.14*10E9 (32 bit
signed INT) and the unit is always nanometer (nm).



Call command:



       C NAME [1 TX TY] [2 R1 R2] [3 M1 M2] [4 S1 S2]



       (brackets [] indicate optional parameters)



       includes the Structure file NAME in the further conversion. All included files
       have to be in the same directory.

       Valid parameters are:



       1 TX TY :       TX and TY define a translation of the called Structure file

                       towards the origin (0,0) in nm.



       2 R1 R2 :       Defines a rotation of 90, 180 or 270 degrees counterclockwise for the
                       called file.

                       Valid combinations for R1 and R2 are:



               R1      R2       rotation


                                              76
       0       1      90



       -1      0      180



       0       -1     270




3 M1 M2 :      Allows mirroring the design to the x- or y-axis:



       M1      M2     mirror to



       0       1      x-axis



       1       0      y-axis



Example:



C LAYER2 1 10000 0 2 -1 0 3 0 1




4 S1 S2:       Scales the called file. The ratio S1/S2 is the magnification factor.

               For maximum precision S1 and S2 must be large integers.



Example:



C LAYER2 4 100000 25000



calls the Structure file LAYER2 with a magnification factor of 4.

                                       77
Polygon command:



       P X0 Y0 X1 Y1 X2 Y2 ... X0 Y0



       Xi and Yi are the corresponding coordinates for each point of the polygon.
       There can be (at the moment) up to 65535 points in one polygon. The area within the
polygon will be exposed.



       Note: The last coordinate pair has to be the same as the first.



       Example:



       P 1000 2000 -1000 2000 -1000 -2000 1000 -2000 1000 2000



       would draw a rectangle with the "center" at (0,0) and the size of 1000 nm x
       2000 nm.




Circle command:



       X R XC YC



       R is the radius, XC and YC are the center coordinates. This line will draw a
       filled circle at (XC,YC) with the radius R.



       Example:



       X 2500 10000 20000

                                               78
       would draw a circle of 2500 nm radius at the coordinates (10000,20000).




Arc command:



This command is no longer supported.



18 Stretched Exposures


Stretched exposures enable you to increase the writing speed of exposures that you normally
cannot do in one pass and the exposure quality of the machine when using the 10, 20 or 40
mm lens for exposures on resist. The table movement speed during the exposure is reduced
and each scan will be exposed multiple times instead of only one time. By doing this, more
energy can be brought onto the substrate in one pass, and the edge roughness in y is reduced
as the scans are denser in y direction. The repeat ("stretch") factor for each scan must be a
power of 2, e.g. 2, 4, 8, 16, 32, ?, and this factor defines the energy multiplication effect.

There are two cases:

1. You don't have enough energy for a single pass exposure. You would have to do a multiple
pass exposure but you want to reduce the exposure time. If, for example, you would have to
do 6 "normal" exposures to reach sufficient energy, you would then use a stretch factor of 8
(smallest possible factor bigger than 6) and an energy level of approximately 75%
(8*0.75=6). The exposure time will of course still be increased due to the reduced table
movement speed, but the overall exposure time will be much shorter than 6 "normal"
exposures because you will (in our example) save the backward movement and table
positioning time 5 times for each stripe.



2. You want to improve the edge roughness in y. Choose e.g. a stretch factor of 2. Reduce the
energy on the machine to 50% (100% / 2) .




18.1 Step by step instruction


STEP1: Calculate the required stretch factor and energy setting for the machine.


                                              79
STEP2: Set the "stretch exposure ..." in the convert.cfg.



STEP3: Convert and expose as usual, but make test exposures to find the best energy setting
on the DWL.



Note: This feature will increase the size of you LIC data set.



Note: This feature is not available on a DWL66




19 The "atrans" program



                                               80
This describes the setup and usage of the OS/9 "atrans" (automatic transfer) program version
1.08 and above. If you have an older version of atrans, you MUST upgrade! Find out about
your currently installed version by typing



       atrans -?



on an OS/9 shell.

The program is designed to automatically transfer a complete set of conversion data from the
conversion station to the DWL OS/9 system. All information about the LIC data will be
stored in one subdirectory (the "design config" directory) of a designated directory
(/h1/designs) while the LIC files will be automatically spread across multiple partitions of
your system. This allows you to easily manage data sets bigger than 2GB. Each design is
associated with a set of directories of the same name, so speaking of a "design directory" of a
certain name, means also speaking of a design of the same name. The name of the design,
respectively the name of the directory the data will be stored in, is very important here as all
management functions depend on the uniqueness of the design name. For example if you
have already stored a design on /h1 in the subdirectory /pfm and you want to use atrans with
pfm as the LICdir name (see below), atrans will fail!

Atrans also checks whether the transfer was successful by comparing the actual file size on
the OS/9 harddisk to the original file size. Missing or differing files are being reported. This
check cannot detect more subtle transfer errors like swapped bytes for example.

Before you get started, you have to make sure that your system and your conversion software
are prepared for the usage of this software! On the OS/9 system you need an FPU or a
floating point math emulation module (see OS-9 Version 3.0 Release Notes, page 1-28). Your
conversion software should be version 8.32 or better (to find out about version of the
currently installed software, just type



        xconvert -version




at the command line of your conversion account). This version is able to store the LIC data in
any directory (not just "lic") you specify in the convert.cfg . If you don't have this feature you
have to use the move command of your conversion station to rename the "lic" directory to
another name, for example:



       mv lic name




Also remember: trying to transfer data from a directory with a name you have already used
and not having deleted the previously transferred data directories will cause the atrans
program to fail!

                                               81
19.1 INSTALLATION


(assuming you are user "dwlii" on the OS/9 system):



STEP1: On your OS/9 system you have to create the directory /h1/designs. Make sure there is
always an appropriate amount of disk space on the /h1 partition (you need about 1.5 MB for
each design).



       makdir /h1/designs



STEP2: Copy the file "atraxxx.tar" to the cmds directory in your home directory o n the OS/9
system (normally: /h0/user/dwlii/cmds).



STEP3: Untar the file with



       tar x atraxxx.tar



Two files (atrans and dellic) are extracted.



STEP4: Adjust the file attributes for atrans and dellic:



       attr -epe atrans

       attr -epe dellic



STEP5: Create a file called mach.cfg in your home directory (usually: /h0/user/dwlii)
containing parameters of the following syntax (parameters in brackets are optional):



       Partition=/hx           specify disk x as data partition

       Blocksize=yyyy          specify cluster size for disk x
                                               82
        ...                       repeat the two lines above depending on the number of
partitions

        Transfer=ftp              set transfer mode to ftp (nfs not yet supported)




Example:



        Partition=/h1

        Blocksize=8192

        Partition=/h3

        Blocksize=8192

        Partition=/h2

        Blocksize=16384

        Transfer=ftp




This would be the appropriate setting for a system with three data partitions /h1, /h2 and /h3
with a cluster size of 8192 and 16384 respectively. The partitions will be filled with LIC files
in the reverse order of appearance in the mach.cfg file, in this case /h2, /h3, /h1. Specify the
/h1 partition always as the first partition, because it contains some special files: All
configuration files (convert.cfg, expose.cfg, stripes.cfg, ...) are stored in /h1/designs/xxxx.
You must specify this directory in the Windows DWL Menu Software for example or change
to this directory if you want to use the expodie program. To determine the cluster size of a
partition use the OS/9 command



        free /hx




The output will look like this:




        "2nd Partition" created on: Feb 19, 1997

        Capacity: 3072000 sectors (512-byte sectors, 16-sector clusters)

        2981376 free sectors, largest block 2764656 sectors

        1526464512 of 1572864000 bytes (1455.75 of 1500.00 Mb) free on media (97%)

        1415503872 bytes (1349.92 Mb) in largest free block
                                                  83
Now you need the values for sector size and cluster size, in this case:



       (512-byte sectors, 32-sector clusters)




Multiply the two numbers and you get the cluster size, in this case 16384 ( = 32*512) which
is the value you need for the setting of Clustersize=xxxx. Once determined, you will never
have to change this setting unless you are re-partitioning your system!




STEP4: How to use "atrans" (and test the installation): Convert a design on your conversion
station, for example to the directory /pfm. Login on your OS/9 system. You can start the
atrans program with or without command line parameters. The command line has to look like
this:



       atrans [Hostname Licdir Login Password] [silent]




You will get this information also if you type:



       atrans -?




The meaning of the parameters is the same as explained for the mach.cfg above. If you start
atrans without any or an insufficient number of parameters, it will use all the default settings
found in the mach.cfg, which will appear in brackets when prompted for input. If you just hit
enter, these defaults will be used. In this case (using the mach.cfg described above) you
would only have to enter pfm when prompted for the Licdir or use the command line



       atrans data pfm convert convert




Atrans would then transfer the LIC files to your OS/9 system. If you change to
/h1/designs/pfm (the "design config" directory) you will find several files there. These are all
the .cfg files from your conversion directory, but the stripes.cfg (your original stripes.cfg is
saved to stripes.old) will contain full pathnames for all LIC files, telling you where your LICs
are actually stored. There are also some transfer log files: ftp.log, atrans.log and transfer.log.
In case you encounter problems try to take a look at these files or sent them to HIMT.

                                               84
Make sure you start only ONE atrans program at a time, otherwise the calculation of free
disk space will not work and both transfers will probably fail.



(Note: If you use the additional "silent" command line parameter, e.g.



       atrans data pfm convert convert silent




atrans will not ask you for further input and can run in the background.)

19.2 The cksum Feature
Version 3.0 added the feature of a checksum test to the atrans program. It is available for LIC
data sets created by conversion software version 8.61 or higher. If you encounter problems
during data transfer or exposure, you can enable this feature to make sure the files you expose
are identical with the files you created on the conversion station.

Enable it by adding “cksum” as the 5th parameter in the command line:
       atrans data pfm convert convert cksum




Note: You can not use this option together with the “silent” option.

This option will consume extra time after the transfer and will disable the standard size check
integrated. (The standard size check was not able to detect all possible file corruptions but
only those which changed the size of the files.) The typical time consumption is about 10
minutes for 500 MB. You still should be able to run “atrans” as a background process during
exposure.




19.3 Deleting Designs on the OS/9 System
If you want to delete a design from your system, DO NOT try to delete the files by yourself
(unless you absolutely sure about what you are doing)! Use the "dellic" utility instead. This
program reads out the file delete.cfg in your design config directory. If your design is called
pfm it would be located in the /h1/designs/pfm directory. Type



       dellic pfm




to delete all the LIC and configuration files belonging to this design. By doing this, all data
will be irreversibly deleted from your OS/9 system, so be careful with this command!

                                              85
Here is again a summary and example for a successful transfer of a set of data from the
directory "pfm" on your conversion station to the OS/9 system:

Atrans would generate the following directories (using the mach.cfg described above):



       /h1/designs/pfm          This directory contains all the information needed to expose or
                                delete the complete set of data, but none of the LIC files. It is
                                called the "design config" directory.



       /h2/pfm                  These directories contain the LIC files. Some of them may be

       /h3/pfm                  empty. See the stripes.cfg in the design config directory for an

       /h1/pfm                 exact location of your LIC files. If you want to delete a
                               complete design manually, make sure to delete all the (in this
                               case three) subdirectories with the name pfm. Otherwise you
                               will get problems when you try to transfer a design called pfm
                               the next time.



20 Spot Size Correction


From version 8.28 of the conversion package a spot size correction is provided to neutralize
the structure enlarging effects of an exposure on the DWL. This correction is working on the
pixelized data set separately in x- and y-axis.

The parameters are set in the convert.cfg:



spotsize correction x [nm] .................... : -2000

spotsize correction y [nm] .................... : -3000




Note the following:

                         The correction factor can be adjusted in steps of 0.5 pixels only, even
                          though you may enter arbitrary values (which will be fit to the next
                          smaller multiple of 1/2 pixel size). For example if your pixels size is
                          1000 nm and you set a correction factor of 2800 nm, the actually used
                          value will be 2500 nm, even though 3000 would be closer to the value
                          you entered.


                                                86
   The limit for the correction factor is five times the pixel size for the
    DWL.

   For noninverted exposures a negative correction factor is used, for
    inverted exposures a positive one. (The sign of the value given is
    automatically adjusted)

   The spot size correction will use up extra calculation time, which is
    proportional to the correction factor and depending on your data type.

   If you set the borders manually the extents of the converted pattern
    may vary from your desired borders. Also the size of the structures
    directly at the borders may be incorrect. This very probable if your
    borders are on the borders of a stripe and/or additional pixels are
    used. To avoid such problems don't use this feature if you want to
    convert e.g. the perform pattern for machine adjustment.

   Circles will still be circles after the correction.

   Features smaller than or about the size of the correction factor will be
    erased or give you unwanted results if your structures end in a very
    small or very large angle or are about the size of your correction
    factor:




                            87
Provided is a spot size correction test pattern, which you can find in your CIF directory:
spotsize.cif. To convert it, set the magnification to 1 and the "name of layer to be
converted ?" to CM. Set all other parameters according to your machine configuration.

Convert with different spot size correction values for x and y, which you should choose
around the correction factor you expect to be the right one (Usually about 2-3 times the pixel
size). Expose all test patterns, measure the linewidths in x and y and find the setting you like
best:




                                              88
21 Conversion Cluster




Version 8.40 introduces the feature of parallelizing the conversion on a cluster of Linux
machines using the PVM (Parallel Virtual Machine) software developed by the Oak Ridge
National Laboratory. See the documentation in the docs subdirectory for more information
(Files: pvm.ps and xpvm.ps).
                                           89
The following part of the manual describes how to set up a HIMT Conversion Cluster, a
parallel computing system of one master and N slave PCs (N < 8). It assumes that you have
knowledge in setting up and administrating Linux PC systems. This manual will not replace a
Linux installation manual and only describes the additional steps necessary to setup the
cluster.




21.1 Requirements


This manual is based on SuSE Linux 6.x (Full version) . Using any other distributio n is
at your own risk and may fail or cause unpredictable problems or errors! (SuSE:
www.suse.de or www.suse.com )



       - N-1 Cluster PCs. Configuration: PC with 128 MB RAM (or more depending on your
       data), hard disk > 9GB (SCSI or EIDE), keyboard, 100 Mps Fast Ethernet Adapter
       (Linux compatible, recommended: DEC Tulip chipset), VGA adapter, CD-ROM,
       floppy drive.

       - 1 Master PC. Configuration: As above, plus: CPU about 10-20% faster than cluster
       PC, at least 32 MB RAM more than cluster PCs (or more, depending on your data
       [VIEWER], recommended 256MB or more), hard disk(s) as large as possible(SCSI or
       EIDE), X-windows compatible graphic adapter, mouse, monitor. Optional: Second
       Ethernet adapter

       - 100 Mps Fast Ethernet Switching Hub with N connectors and 1 uplink connector to
       the LAN/DWL.

       - Optional: A monitor or keyboard/mouse switch that allows you to use one
       monitor/mouse/keyboard on several PCs

21.2 General Setup




                                            90
In a cluster of N conversion stations one master PC controls N-1 slaves (though technically
seen it is rather a SPMD parallel process, but this name convention makes it much easier).
The master is used to set up the conversion (using an X interface) and spawns conversion
tasks on each of the clients. It also collects (via NFS) the LIC data on a local hard disk. Each
machine in the cluster converts each Nth stripe of the lic data set and operates independently
from the other machines. The slowest machine in the cluster will determine t he conversion
speed as there is no load balancing implemented.

Network throughput (for storing the final lic data set on the master) and harddisk space on the
master are the main bottlenecks during the parallel conversion, so you should plan your
configuration according to your needs.

Though it is not absolutely necessary, you should always follow the naming, login and
directory names and numbering conventions suggested in this documentation. I also found it
useful to mark your machines, cables, connectors and especially the keyboards with labels
showing their names.



Suggested settings for hostnames and IPs:



Hostname       Description            IP (least sign. Byte)

m0             Master PC              10 (e.g. 192.168.0.10)

c1             Cluster PC#1           1 (e.g. 192.168.0.1)

c2             Cluster PC#2           2 (e.g. 192.168.0.2) ?



Setup:



                                              91
Set up all PCs as usual. If you share a monitor during the installation make sure they are not
too far apart for your own convenience. Connect one keyboard to each PC and label
everything carefully. After the installation you ca n remove the keyboards from the cluster
PCs. Only the master gets a mouse.

Connect all PCs to the Fast Ethernet switch and (if necessary) set up the switch for the IP
addresses you will be using (see above). Connect one port of the switch to your LAN. It is
absolutely necessary to use a switch because there will be heavy network traffic within your
cluster.

This installation manual assumes you are familiar with installing SuSE Linux as mentioned
above. It only gives you the additional details you need for your system configuration. If you
are an experienced Linux/Unix user you may want to vary certain configuration options (and
may have other solutions for certain items), but be aware that this is at your own risk and
such systems cannot get support from HIMT.




21.3 Installation of master PC


System Configuration Items (in order of appearance):

1. Do manual partitioning. The partition table should look like this:



   /dev/hda1 *        1       17      136521         82      Linux swap

   /dev/hda2         18       2014    16454646       5       Extended

   /dev/hda5         18       2014    15925676       83      Linux native



   i.e. a primary partition as swap space (size = memory size) and one extended partition
   with one logical drive using the rest of the disk space.

   (Remember: In many cases you will have to set the active partition manually after
   installing the lilo using e.g. the DOS fdisk program.)



2. Install the following packages: Choose the SuSE default system. Then add the following
    packages (If you are prompted because of unresolved dependencies select the AUTO
    option until all dependencies are resolved or refer to the installation manual):



   Series beo - packages pvm and xpvm

   Series xap - packages xosview and xnetload
                                           92
   Series xsrv - select the server for your graphics adapter



   Select all other packages you would like to use. To save disk space you can e.g. remove
   the Series aplx. Be careful when removing packages unless you know exactly what you
   are doing.



3. Select the "recommended and supported" kernel. If you need to compile a new kernel
    make sure

   NFS support

   IP-accounting

   are included.



4. Set the hostname according to the table of names above.



5. Enable the NFS server option in the SuSE network setup.



6. First create a user "convert" with password "convert", then a user "lic" with password "lic".
    The home directory of the user "lic" will be used to collect the LIC data, so you may
    consider installing a second (third, ?) hard disk for the "lic" ("lic2", ? ) user home
    directory. In this case adjust all items regarding these directories in the following
    installation steps.



7. Append ":~/cmds" to the PATH variable in /etc/profile. This is the path to the conversion
    executables.



8. Edit the /etc/hosts file and add the entries for all members of the cluster.



   Example:



   127.0.0.1           Localhost

   192.168.0.10        m0

   192.168.0.1         c1
                                                93
   192.168.0.2            c2

   192.168.0.3            c3

   ?.



9. Edit the /etc/hosts.equiv file and add the entries for all members of the cluster.



   Example:



   m0

   c1

   c2

   c3

   ?.



10. Set /home/lic to mode 0777. Create a link to it in "/":



   chmod 777 /home/lic

   ln -s /home/lic /lic



   This is where the lic data will be stored. If you have extra or multiple hard disks in your
   system for the lic data, add extra users, links, entries, ? for each of them in step 6.,10., 11
   and step 10. of the slave setup.



11. Export the directories /home/lic (rw) and /home/convert (ro) (file: /etc/exports).

   Example:



   /home/convert          c1(ro) c2(ro) c3(ro) ?

   /home/lic              c1(rw) c2(rw) c3(rw) ?



                                                   94
12. Set up the X-windows system. Use 8 bit color depth (256 colors).



13. Extract the HIMT conversion software package in the convert user home directory.



   tar xvzf packagename.tgz




21.4 Installation of a cluster PC (Slave)


System Configuration Items (in order of appearance):



1. Do manual partitioning. The partition table should look like this:



   /dev/hda1 *        1       17      136521          82     Linux swap

   /dev/hda2         18       1027    8112825         5      Extended

   /dev/hda5         18       1027    7976241         83     Linux native



   i.e. a primary partition as swap space (size = memory size) and one extended partition
   with one logical drive using the rest of the disk space.

   (Remember: In many cases you will have to set the active partition manually after
   installing the lilo using e.g. the DOS fdisk program.)



2. Install the following packages: Choose the SuSE default system. Then (to save disk space)
    you can (if you want) manually remove the following packages and series:



   Series aplx, series kde, series doc, series x, series xap, series xwm




                                               95
   Add the following packages (if you are prompted because of unresolved dependencies
   select the AUTO option until all dependencies are resolved or refer to the installation
   manual):



   Series beo - package pvm

   Series xap - packages xosview, xlock



   When you start the installation afterwards you may be prompted because of unresolved
   dependencies again. Choose the AUTO option until all dependencies are resolved.



3. Select the "recommended and supported" kernel. If you need to compile a new kernel
    make sure

      NFS support

      IP-accounting

   are included.



4. Set the hostname according to the table of names above.



5. Create a user "convert" with password "convert".



6. Append ":~/cmds" to the PATH variable in /etc/profile. This is the path to the conversion
    executables.



7. Edit the /etc/hosts file and add the entries for all members of the cluster.



   Example: s.a.



8. Edit the /etc/hosts.equiv file and add the entries for all members of the cluster.



   Example: s.a.


                                                96
9. Create the directories /m0 and /lic. Set /lic to mode 0777.



10. Edit the /etc/fstab file and add the following 2 entries for NFS directories on the master
    PC m0.



   m0:/home/lic         /lic   nfs     rw,wsize=8192,timeo=14,noac          0      0

   m0:/home/convert /m0        nfs     ro,rsize=8192,timeo=14,noac          0      0



   (See the NFS man pages for an explanation of the parameters.)



   The directory /lic will collect the LIC data from all machines of the cluster and is
   therefore rw. The /m0 directory provides the configuration files and executab les of the
   conversion and is ro.



   Note: This drives will not be available unless the master is running properly and therefore
   cause error messages and delay at boot time!



For the next steps login as user convert. It is necessary that the master has been set up (with
installation of conversion software) and is running and that the NFS drives have been
mounted properly (check with the "mount" command).



11. Check if /m0 contains the conversion software you installed on the master. (Make sure
    that you have NOT yet run a conversion on the master m0 [see installation of master PC]
    and that the PVM version of the HIMT conversion software is installed on the master. If
    you have done a conversion on the master already your cluster will not work! You will
    have to delete the convert user on the master and reinstall it!)

   Link everything to your local home directory:



   ln -s /m0/* .



   Note: /m0 is read-only and you cannot edit any of the files linked to your local directory!


                                               97
21.5 Setting up the cluster


1. Reboot the master and login as convert. Then, reboot the cluster machines. You will be
    able to do this by simply pressing CTRL-ALT-DELETE on each keyboard. This takes
    care of a clean shutdown and reboot of the cluster PCs without the need to connect a
    monitor to this PC. Use the command ping to find out if the cluster PCs have already
    rebooted.



2. Check the setup by executing rsh commands on each PC of the cluster:



   rsh m0 ls

   rsh c1 ls

   rsh c2 ls

   ?



   If this doesn't work check the hosts and hosts.equiv settings. Also make sure the network
   is working properly (ping, telnet, ?)



3. Start X-windows. It is recommended to use the fvwm2 window- manager (startx fvwm2).



4. Create subdirectories ~/pvm3 and ~/pvm3/xpvm. Copy (including subdirectories) the
    contents of /usr/X11R6/lib/xpvm to ~/pvm3/xpvm. Copy ~/images/linux.xbm to
    ~/pvm3/xpvm/src/xbm.



5. In your home directory edit/create the file .xpvm_hosts. Enter the name of ALL other
    machines in the cluster (don't add the master):



   c1

   c2

   c3

   ?
                                            98
   Note: This file is case sensitive. You will later on have to enter the names of the machines
   for the conversion software in exactly the same way as here.



6. Start the xpvm monitor tool with "xpvm &". You should see N boxes in the upper half of
    the window representing your machines. Refer to the xpvm documentation provided to
    learn more about xpvm.



7. NOW that everything is running you can add an optional second network adapter to the
    master PC. This allows you to enhance the throughput of the data transfer to the DWL
    machine during the conversion:




   PVM is sensitive to the network interface, so make sure you set up your second host
   adapter as "le1" for the connection to the LAN/DWL. You will also have to set a different
   subnet for the cluster internal network addresses then, e.g. 192.168.255. Make sure there
   is only ONE entry in the /etc/hosts file and that this entry belongs to the subnet of the
   cluster! The SuSE configuration program has the habit of re-adding the entry for the
   address of the second interface in the hosts file, so each time you run it you MUST
   change the /etc/hosts (The cluster won't work otherwise!).



                                             99
21.6 Performance


The following performance test was done using a 10 Mps hub, so performance may even be
better when using Fast Ethernet and/or a switch. To check the performance of the cluster the
following convert.cfg was used:


main source file .............................. : pfm.cif

source file type (cif|dxf|gdsii|gerber) ....... : cif

name of layer to be converted ................. : CM

name of main structure (<name>|automatic) ..... : automatic

magnification factor .......................... : 15

rotation, ccw (0|90|180|270) .................. : 0

translation in x direction [nm] ............... : 0

translation in y direction [nm] ............... : 0

mirroring at x axis (yes|no) .................. : no

mirroring at y axis (yes|no) .................. : no

left border of flat field [nm] ................ : automatic

right border of flat field [nm] ............... : automatic

lower border of flat field [nm] ............... : automatic

upper border of flat field [nm] ............... : automatic

exposure mode (inverted|noninverted) .......... : noninverted

frame size [nm] ............................... : 0

lic directory (lic|automatic|name) ............ : /lic

stripe width [pixel] .......................... : 800

pixel size [nm] ............................... : 200

arcres [degree] ............................... : 3.0

dxf units to nm ............................... : 1000000

stretch exposure .............................. : 16

assume connected [nm] ......................... : 0

additional pixel [pixel] ...................... : 1

keep temporary files (on|off) ................. : on

additional blocks (bottom) .................... : 0

stop conversion after (border|lic) ............ : lic

expose bidirectional (0|2|4) .................. : 0


                                             100
xor mode (on|off) ............................. : off

calculate exposed area (on|off) ............... : off

licbuffer size [KByte] ........................ : 0

automatic centering (on|off) .................. : off

spotsize correction x [nm] .................... : 1000

spotsize correction y [nm] .................... : 1000

scale factor x   ............................... : 1.0

scale factor y   ............................... : 1.0




This configuration is a typical case where the net throughput is high in relation to the
conversion time so the performance is rather at the lower limit and may be higher for other
conversions where the ratio of computing time to network storing time is better.




                 #hosts               Time Time*#hosts                                 %
                      1             2222.00                     2222               100.00
                      2             1215.00                     2430                91.44
                      3              810.00                     2430                91.44
                      4              608.00                     2432                91.37

                     lu te e rm n e
                    C s r P rfo a c

                      e tiveP rfo a ce[%
                     R la    e rm n     ]


   0 .0
  10 0

    0 0
   8 .0

    0 0
   6 .0

    0 0
   4 .0

    0 0
   2 .0

    .0
   0 0
             1            2           3             4




                                              101
21.7 Converting on the cluster


There are the following differences in the setup when converting on a cluster:

STEP1: The lic (-target) directory has to be chosen according to the configuration of your
cluster. Unlike "normal" conversions the lic data are not stored in a subdirectory of the
conversion account but to a subdirectory of another users NFS exported directory, typically:
/lic. So setting the lic directory entry to automatic will create a subdirectory with the name
extracted from the "main source file ?" entry in /lic. If you enter a directory of your choice, it
must be subdirectory of /lic (or if multiple harddisks are present of /lic2, /lic3, ?)

If you want to use atrans for the data transfer to the machine you have to use the logins and
passwords for the user(s) lic (, lic2, lic3, ?) instead of using the convert account.



STEP2: You have to determine which machines will join the cluster: Enter the slave's names
in the "cluster hosts ?" entry on the advanced page of the MENU. Make sure you use the
correct spelling (case sensitive!) and separate the machine names by a comma (","). Do not
enter the name of the master (the machine the MENU is running on) in this list.

Example:


               cluster hosts ................................. : c1,c2,c3




STEP3: (Re-)Start the cluster by clicking on the restart button in the bottom part of the
MENU. After a few seconds the XPVM monitoring interface will popup. In the top window
you should see N boxes representing the machines of your cluster. If some machines are
missing, check STEP2 again.



STEP4: Start the conversion as usual by clicking on the Start Conversion button. The bottom
window of XPVM will display green horizontal progress bars representing the machines of
your cluster. The MENU will also display a progress window with an entry for each of the
machines on the cluster. The updates on the conversion progress in this window may not be
very accurate but will at least give you an approximate idea of the status.



STEP5: After the conversion has finished a popup window will appear. You can now check
the cluster log in the XPVM. If you click the OK button the cluster will be restarted and the
cluster log files will be deleted.



Note: To learn more about XPVM read the documentation (xpvm.ps in the docs subdirectory
of your conversion account).

                                               102
21.8 Typical view of XPVM after successful conversion.Hints/Caveats


   The SuSE configuration program has the habit of re-adding the entry for the address of
    the second interface in the hosts file, so each time you run it you MUST change the
    /etc/hosts (The cluster won't work otherwise!).

                                           103
   Do not start the MENU as a background process ("menu &").

   The pvm software is case sensitive to the names of the cluster mac hines. Also make sure
    the cluster names are separated by a comma (",") in the "cluster hosts" entry of the
    conversion MENU.

   Make sure the "lic directory" entry is a subdirectory of the NFS exported directory (e.g.
    /lic/target).

   The conversion progress status window does not follow the conversion progress on all
    machines in the same way. This is due to log mechanism within the cluster and cannot be
    changed without loss of performance. It only gives you a rough estimation of the
    conversion progress

   The progress on the master seems to be much faster, especially in the beginning of the
    conversion. This happens if you do a "structure" conversion, as the structure files have to
    be copied to the cluster PCs.

   There is no load balancing available for the cluster conversion software. Thus the slowest
    machine in the cluster will limit the conversion speed.

   The MENU takes more time when being launched as it resets all possibly conversion
    related processes on the machines found in the "cluster hosts ?". If you use changing
    configurations of the cluster or more than one cluster, make sure you do not accidentally
    kill processes running on other clusters.

   If you have to reboot one of the cluster hosts do not start the MENU on the master or a
    conversion until the host has completed its boot process.

   In case you have to reboot the master please make sure that the exported NFS volumes
    are still available on all cluster hosts. If you are not sure or don't know how to check this,
    simply reboot all cluster hosts after the master has completed its boot process and wait
    until all cluster hosts have rebooted completely before you start the MENU or a
    conversion.

   Due to asymmetries in the design data and NFS access not all hosts will finish the
    conversion at the same time. Conversion times of the individual hosts may vary up to
    30% depending on the data.




22 Troubleshooting


1.When using non-automatic borders, some structures appear to the right and top of the
   borders set.

2. When using non-automatic borders and spot size correction the right and upper border
differs slightly from the set borders.


                                               104
3. The conversion stops with an "Output buffer exceeded error" in the xconvbe program.

4. What is different about the EDDU conversion software?

5. The converted LIC data are incomplete (e.g. some LIC files are missing or have missing
blocks).

6. The LIC data set is bigger than the biggest partition on my OS/9 system.

7. The exposure stops.

8. The conversion of vertical lines takes much longer than the conversion of horizontal lines.

9. The conversion takes very long.

10. The machine runs out of memory when I use separate scaling in x and y.

11. I get file transfer errors during ftp to the OS/9 system.

12. I get errors creating a dxf.cfg.

13. The exposed stripes are condensed or stretched in x, they do not fit at the connection.

14. I converted with a stripe width smaller than 800 pixel and get artifacts on my exposure.

15. I converted with a stripe width bigger than 800 pixel and have a white gap between the
stripes.

16. I get strange patterns in every second stripe.

17. A structure has a missing or misshapen edge or part.

18. During the conversion the machine runs out of disk space.

19. The error message "error opening structure file. Check if this LAYER/?" appears.

20. The exposed design looks strange. Overlapping structures are partially blanked out or
inverted.

21. I converted my design and transferred it to the machine. When I choose File/Designs in
the WINDOWS WinDWL software, the design directory appears to be empty.

22. My CIF/GERBER/HPGL/GDSII design contains structures with negative and positive
polarity, but I can not use the merging functionality for these formats. Also, the design does
NOT allow the use of the XOR mode setting as I have overlapping structures in certain areas.

23. I want to use the gerber, cif, hpgl, gdsii or dxf program from the command line to convert
a file to Structure format, but it doesn't work.

24. I cannot save my configuration files / I cannot delete a LIC data directory.

25. The Linux HIMT Viewer doesn't start due to Tk/Tcl library mismatch.

26. I want to use the DWL66 DXF gray scale feature with input formats other than DXF.


                                                105
27. How can I step and repeat on the OS/9 system / I want to expose with varying
stripewidths.




1. When using non-automatic borders, some structures appear to the right and top of the
borders set.



Clipping used to be done to the borders of stripes and blocks, so if you set the right or top
border into a stripe or a block, that stripe or block will always be filled to its right or upper
edge. In version 8.34 or higher this problem is partially solved, as then polygons are clipped
correctly, but circles crossing the set borders partially will be drawn completely.

Solution: Change your design so you can use automatic borders or convert your design to
Structure or DXF format and create a frame that will CUT out unwanted structures. To
convert to DXF, first convert to Structure format, then you can use the HIMT viewer to save
as DXF.



2. When using non-automatic borders and spot size correction the right and upper border
differs slightly from the set borders.



Using non-automatic borders and spot size correction may result in inaccurate right or upper
borders. The variation may be up to 2 pixel. Also the above said applies.

Solution: See 1.



3. The conversion stops with an "Output buffer exceeded error" in the xconvbe program.



The data to be converted can not be compressed into LIC due to very high data density.

Solution:

a.Change to a smaller writehead / pixel size.

b.Reduce the stripe width.

c.Check your design.
                                                106
d.Upgrade your machine with an EDDU (Enhanced Data Decompression Unit). If you
   already have an EDDU, check whether your software supports it (Type xconvbe in the
   home directory of your conversion account. The line displayed containing the VERSION
   says EDDU if your software is EDDU compatible.).




                                         107
4. What is different about the EDDU conversion software?



Machines with an EDDU (Enhanced Data Decompression Unit) are capable of exposing
more dense patterns than machines with the (older) SL30 hardware. To make full use of this
feature, the conversion to LIC format uses larger buffers and requires a special version
(usually indicated by the letter "e" in the software package name). The LIC data created by
both versions are basically the same, but the ones created with the EDDU software may fail
to expose on a SL30 machine if the pattern is very dense due to the larger buffers required.
On the other side, you can always use data created by the normal version on a machine with
EDDU but this doesn't use the full data decompression capacity of the machine.



5. The converted LIC data are incomplete (e.g. some LIC files are missing or have missing
blocks).



Check the disk space on the conversion machine (with the "df -k" command on UNIX
systems). If your disk is nearly full, errors may occur during conversion.

Note: Temporary files may use up more space DURING the conversion than the final data
set.

Solution: Watch the disk space during conversion. If you run out of space, clean some
designs or add a bigger harddisk to your system. (See 18. also).



6. The LIC data set is bigger than the biggest partition on my OS/9 system.



Use the atrans software described in the conversion manual. It is capable of splitting LIC data
onto different partitions so that the limitation is the total amount of disk space on your OS/9
system rather than the partition size.



7. The exposure stops.



There may be several reasons for this related to the LIC data. One reason may be the size of
your LIC data files. Check the LIC buffer size on your OS/9 system with



       mdir -etd




                                             108
If one or more LIC files are bigger than this either increase your LIC buffer size or use the
splitlic software to reduce the maximum LIC size (only available for Linux). You can
automatically use the splitlic by setting the LIC buffer size to nonzero before the conversion
(Linux only and 8.29 or above required). Also solutions 3a to 3c apply.

Another reason may be the choking of the SL30 data decompression unit on the OS/9 system.
Start "pginfo" on your OS/9 system and check the "cmd" status (look for a line starting with
PG-Base and check the column under "cmd"). If one value is set to 400, this indicates that a
decompression error occurred. This may happen only on machines without EDDU if your
data are very dense and/or contain dense vertical lines. The solutions given under 3 apply
here.

Also the LIC data may be corrupted during the transfer. Retransfer the LIC data from the
OS/9 system to your conversion station and compare them (Unix: "cmp" command). If you
don't use the atrans, check whether you transferred the LIC data in binary mode.



8. The conversion of vertical lines takes much longer than the conversion of horizontal lines.



Solution: Arrange the lines in order from the right or the left border of your design. This
saves the sorting in the xconvbe scan adding function.



9. The conversion takes very long.



There may be many reasons for this, and in some case you just can`t avoid it. But for other
cases, simple changes can reduce the conversion time.

a. Avoid polygons with many points. Rather design them as or split them to several small
    ones.

b. Check the ARCRES setting. Very small values increase conversion time as arcs are
    converted to polygons with many points. Usually 4-6 degrees are sufficient (make test
    exposures!). Also check, whether your software saves circles as one or more arcs (DXF,
    GERBER). When designing, rather use circles for round corners than arcs (see image).




                                             109
c. Rotate vertical lines and convert as horizontal lines. Also look at 8.

d. Try step and repeating on the machine instead of doing it in the design.

e. If you use separate scaling in x and y, all circles are converted to polygons and b. applies.

f. If you use the merging of layers, make sure you add all layers in one column before doing




   operations on them (see images below).



(The left picture gives the identical result but much faster conversion.)



Solution: Adding memory doesn't improve conversion speed unless you notice that your
system is swapping all the time. Versions from 8.28 on have some huge performance
improvements, so try upgrading. HIMT also offers conversion clusters (i.e. several
conversion stations linked together to one very fast computer) for better performance.




10. The machine runs out of memory when I use separate scaling in x and y.



When using separate scaling in x and y all circles are converted to polygons and thus may
amount to an enormous number of vertices. Version 8.38 removes this problem.




11. I get file transfer errors during ftp to the OS/9 system.



A more convenient way to transfer your LIC data to the machine is using atrans and it also
checks whether the file size on the OS/9 system is identical with the original size (which will
detect most transfer errors). See also 6.



                                                110
12. I get errors creating a dxf.cfg.



Check if you have made a dos2unix on your DXF file. Also check if your layer name
contains special characters (use only capital letters from A-Z). The Layer number must be
less than 16.



13. The exposed stripes are condensed or stretched in x, they do not fit at the connection.



There may be several reasons:

a. Check whether you converted for the right write head and the Windows Menu is set to the
    right setting.

b. Check the ramp entry in the exposure map in your Windows Menu software. The entry
    must be EXACTLY like this (replace xxx with your ramp):

    OS9: ramp xxx

    If you e.g. type Os9 or 0S9 instead, the ramp will not be loaded and the default ramp (if
    any was loaded at all previously) will be used instead. This ramp may be much too short
    or too long, so the stripes will not match. Also check, whether you selected ramp exists
    (look in /h0/user/dwlii/deflp/linearity).

c. Check if the wedge is in the right position for green or blue.

d. See 15.

e. Check the number format setting in your WINDOWS (95/98/NT) setup of the USER PC.
    A possible reason is the installation of software on the user PC that has changed the
    systems country settings without asking the user. The number format setting must be
    "English" in the System Control Panel.



14. I converted with a stripe width smaller than 800 pixel and get artifacts on my exposure.



Older (before 2.1) OS/9 update versions were not able to adjust the PVS and PVE in the OS/9
die.parm. This resulted in unwanted structures in x behind the real data.

Solution: Update your update software or adjust PVS and PVE manually.




                                               111
15. I converted with a stripe width bigger than 800 pixel and have a white gap between the
stripes.



See 14.



16. I get strange patterns in every second stripe.



Check if you have converted for bi-directional exposures and your machine doesn't support
this feature.



17. A structure has a missing or misshapen edge or part.



Check in your design for crossing lines or double points in this polygon. A design error like
this may cause bigger parts of the structure up to the next stripe bo rder to be missing.




18. During the conversion the machine runs out of disk space.



If your design gets very big, your harddisk may run out of space. Temporary files may use up
more space DURING the conversion than the final LIC data set.




                                               112
Solution:

   Check if you have set the "keep temporary files" option to off. This frees disk space used
    for temporary files immediately.

   Try to split your design into several smaller parts. Convert each of them separately and
    transfer them to the OS/9 system. If you can store all of them on your OS/9 system
    together, create one job file and enter all parts in the LIC directory entry on your
    WinDWL software (separated by ;). If your OS/9 system is not capable of holding all
    parts on its disks, transfer them separately. Create a job file for each part and do
    consecutive exposures WITHOUT changing the systems coordinate system between the
    exposures (e.g. hitting the SET(0,0) button in the control panel).




19. The error message "error opening structure file. Check if this LAYER/?" appears.



Possible reasons:

   Your design file calls a structure that does not exist. Check your design for the layer
    which the error message reports to be missing. Check if your dxf.cfg or merge.cfg is set
    up properly.

   You have changed the "main source file ?" setting, but not the "name of layer ?" and
    "name of main structure ?" setting for CIF or GDSII.

   You have changed the "main source file ?" setting, but not created a new dxf.cfg or
    merge.cfg for DXF, Structure or HPGL conversion.




20. The exposed design looks strange. Overlapping structures are partially blanked out or
inverted.



Check the "xor mode ?" setting. You may have had this option switched on without noticing
it for some time, as in some cases this switch does not affect the conversion result at all (no
overlapping structures).



21. I converted my design and transferred it to the machine. When I choose File/Designs in
the WINDOWS WinDWL software, the design directory appears to be empty.




                                             113
If you transferred your data manually, check whether you transferred the convert.inf from the
data directory. It contains the design name in the first line which is used to display the design
directories content. If you use atrans, upgrade to the latest version.

Note: The convert.inf is NOT required for a proper exposure!



22. My CIF/GERBER/HPGL/GDSII design contains structures with negative and positive
polarity, but I can not use the merging functionality for these formats. Also, the design does
NOT allow the use of the XOR mode setting as I have overlapping structures in certain areas
(or want to use the DWL66 gray scale feature).




Solution:

a.Change your design so you can use the XOR mode feature. This should be possible in most
   cases.

b.Make use of the Structure merging feature. Convert your data to HIMT Structure format
   first and then convert from Structure to LIC. You need the HIMT Viewer software (only
   available for Linux and SPARC) or knowledge of the Structure format CALL mechanism
   to do this.




Step by step instruction:



STEP1: Set up the conversion for one of the layers to be merged. For GERBER 274x or
HPGL you would have to split the data with positive and negative polarity into separate files
first. For CIF or GDSII select the layer in the "source file type ?" and "name of main structure
?" settings. Convert this layer to Structure format with Conversion/Convert to Structure or
Conversion/Determine Design Borders (the latter also displays the extensions of that layer).
The Structure data are stored in the t_struct subdirectory.



STEP2: Load the top structure (t_struct/main) into the HIMT Viewer. The layer converted in
STEP1 will be displayed. Save it (File/Save STRUCTURE) to a file in the structure
subdirectory, e.g. ./structure/LAYER1 . If you cannot use the Viewer, you have to copy all
layers from the t_struct directory to the structures directory, and determine which files
contain which data by yourself (Problem: mostly layer names will be duplicated and thus
overwritten when copying them).

Note: With the latest version of the conversion menu you can also set up the conversion
parameters and then choose Conversion/Preview Structure which will spawn the Viewer and
automatically load the layer.
                                              114
STEP3: Repeat STEP1 and STEP2 for all your layers, but with different file names in
STEP2. You now have all layers in the structure directory.



STEP4:

a.Convert as if converting Structure files and use the integrated merge feature.

b.Start the Viewer and load all the layers created in STEP2 and STEP3 with the File/Add
    Layer command into the Viewer. Each layer will be displayed with a different color. Save
    all layers loaded to one DXF file using the File/Save DXF command. This DXF file then
    contains all layers currently and can be processed with all available merging/gray scale
    features.




23. I want to use the gerber, cif, hpgl, gdsii or dxf program from the command line to convert
a file to Structure format, but it doesn't work.



Make sure the subdirectory t_struct exists. Also make sure all parameters are valid, especially
the magnification factor.



24. I cannot save my configuration files / I cannot delete a LIC data directory.



On Unix systems file modes can deny you access to certain files. If you have copied files or
started conversion as a different user than the convert user (e.g. root), you may not be able to
access these files as convert user. Read the manual on file attributes or ask the system
administrator.



25. The Linux HIMT Viewer doesn't start due to Tk/Tcl library mismatch.



The Tk/Tcl libraries on your system don't match the versions the HIMT Viewer was linked
against (This libraries cannot be linked statically!). To fix this, the necessary libraries come
with the software package from version 8.36 on. To install, do the following:



STEP1: Login as convert. Change to the subdirectory cmds/libs. Make an "ls" to get the
contents of this directory, it should be something like "libs76_42.tgz". Write down the full

                                              115
path of the file (e.g.: /home/convert/cmds/libs/lib76_42.tgz) and logout. You need the
filename in STEP3.



STEP2: Login as root.



STEP3: Change to the / directory and unpack the file from STEP1.



          cd /

          tar xvzf /home/convert/cmds/libs/lib76_42.tgz



STEP4: Logout and reboot the machine.



26. I want to use the DWL66 DXF gray scale feature with input formats other than DXF.



See 22.



27. How can I step and repeat on the OS/9 system / I want to expose with varying
stripewidths.



Even though the conversion software offers the feature of converting with variable
stripewidths, there is no OS9 support for variable stripe width currently.

If you want to avoid stripe connections in a critical pattern but you cannot find a stripewidth
that fits in your pattern, you can try to do the following:



STEP1: Extract your critical pattern from the rest of the design (e.g. frame, text, ...). Convert
and expose the rest of the design (frame) separately.



STEP2: Convert a single piece of your critical design so that it fits in a suiting stripewidth.
Then you have to expose it over the previously exposed frame doing a step and repeat on the
machine.




                                              116
STEP3: There a two ways of doing a step and repeat on the machine:



       1.Use the Windows DWL Software to step and repeat your pattern. This gets very

       inconvenient if you have a large number of repeats. In that case use option number
       two.



       2. The second way to step and repeat on the machine is to modify the stripes.cfg. First

       convert your pattern as you would do in case 1. Transfer it to the OS/9 system and do
       an update and optl on it. The optl program creates two new stripe configuration files:
       stripes.cfg.opt and stripes.cfg.irf.



       If your pattern contains e.g. 2 (non-empty) stripes, your stripes.cfg.opt would look
       like this:



       0.lic

       1.lic



       and the stripes.cfg.irf like this:



       0

       1



       Each entry in one of these files tells the exposure software the name of the LIC file to
       expose resp. where to expose it! To determine the position where a stripe is exposed
       you have to multiply the entry in the stripes.cfg.irf corresponding to the LIC file with
       the value of the parameter SDist in the die.parm!

       If you for example set SDist to 10 (=10nm) you can place your LIC data in a 10 nm
       grid, positioning them wherever you want by the entry in the stripes.cfg.irf



       Example for stripes.cfg.opt:



       0.lic
                                             117
1.lic

0.lic

1.lic

...



stripes.cfg.irf:



0

800

2000

2800

4000

4800

...



This would place your stripes (at SDist=1000) at these positions (in um):



0

800000

2000000

2800000

4000000

4800000

...



Note: You don‟t have to adjust the NStripes parameter in the die.parm!



               STEP4: Expose over the previously exposed frame.

                                     118
23 Changes
VER    DATE       WHAT

8.29   17.07.98   - independent scaling in x and y

                  - modstruct introduced

                  - additional block and automatic centering bug fixed




8.30   21.07.98   - spot size correction memory leak bug fixed



8.31   29.07.98   - GDSII AREF bug fixed

                  - DXF font size increased

                  - spot size bug fixed (missing scans at top of first and/or
                  last block of stripe under certain circumstances)



8.32   10.08.98   - xblock performance improved for big polygons

                  - spot size correction bug fixed (additional horizontal
                  lines at block limits if used with CUT or XOR mode)

                  - spot size correction: added hint for problems with non-
                  automatic borders and spot size correction (see Spot
                  Size Correction above)

                  - spot size correction: sign of correction factor is
                  automatically adjusted for inverted and non-inverted
                  exposures

8.33   11.08.98   - bug in 8.32 fixed



8.34   02.09.98   - cutting within stripes and blocks

                  - dxf ignores DOS linefeeds (CR/LF)

                  - gray scale conversion for DWL66

                  - Troubleshooting section added to documentation



8.35   16.09.98   - spot size correction for DWL66 conversion
                          119
8.36   17.09.98   - XOR mode circle bug fixed

                  - Tk/Tcl libraries added (cmds/libs)



8.37   11.11.98   - CIF: multiple C commands outside DS/DF

                  - MENU: minor bugs fixed

                  - inverted additional blocks bug fixed



8.38   04.12.98   - clipping speed improved (stripe, xblock)

                  - scaling moved from modstruct to stripe

                  - improved checking of hard disk overflow

                  - MENU: performance improved



8.40   13.04.99   - xor bug fixed

                  - GDSII bug fixed

                  - batch capability added to MENU

                  - PVM support

                  - left path function added




8.42   09.06.99   - bidirectional and stretch bug fixed

                  - GERBER bug fixed

                  - MENU bugs fixed

                  - scaling offset bug fixed

                  - DWL66 grayscale bug fixed



8.44   24.07.99   - xor bug fixed

                  - zero extension Viewer bug fixed

                          120
                  - plate selection added for DWL600

                  - scaling offset behavior changed



8.45   14.09.99   - arbitrary rotation angles added

                  - increased range for spotsize correction



8.46   07.10.99   - ACAD 14 support (first release)

                  - convert circles to ellipses when using different scaling
                  in x and y



8.47   07.10.99   - ellipse bug removed

                  - smaller extensions to DXF and GERBER




8.50   20.12.99   - ellipse bug removed

                  - GDSII path treatment improved




8.51   21.12.99   - DXF R14 speed improved

                  - xconvert command length bug fixed



8.52   10.01.00   - Y2K convert.rpt compatible



8.53   20.01.00   - single beam bidirectional mode added

                  - smaller menu bugs fixed



8.54   11.04.00   - remove additional empty pixel at end of line due to

                  spotsize correction

                  - several bugs fixed
                          121
                - inverted spotsize correction added

                - scaling behavior for DWL 66 improved

                - menu adjusted for tcl 8.0

8.60 29.01.01   - several bugs fixed

                - extended gerber added

                - gdsii merging supported

                - lic check added

                 & file browser added to MENU



8.61 14.02.01   - gdsii compiler bug fixed

                - atrans “cksum” feature added

                - wu.ftpd installation added to manual



8.62 10.05.01   - added standard menu to gdsii configuration

                - left optic bugs fixed

                - xcheck_lic option added to menu

                - rotation of arrays with arbitrary angles in dxf and gdsii

                - rotation of text with arbitrary angles in dxf

8.63 13.08.01   - included warning messages

                - improved trapezoid algorithm

                - insertion of text

                - changed cut-algorithm

                - included exposure parameters in viewer



8.64 16.10.01   - improved linewidth accuracy of CUT operations

                - removed positioning bug for “opt level 4”




                        122
16.01.2002                                               - odb format supported

                                                         - layer information for dxf and gdsii error messages

                                                         - up to 5 lines of text per design

                                                         - improved merge preview




24 APPENDIX




24.1 DXF Output Filter Sample



/* DXF defines */

#define           DXF_HEADER                 " 0\nSECTION\n 2\nENTITIES\n"

#define           DXF_EOF                    " 0\nENDSEC\n 0\nEOF\n"

#define           DXF_POLYGON                " 0\nPOLYLINE\n 66\n   1\n 8\n%s\n 10\n0.0\n 20\n0.0\n"

#define           DXF_VERTEX                 " 0\nVERTEX\n 8\n%s\n 10\n%0.6f\n 20\n%0.6f\n"

#define           DXF_SEQUEND                " 0\nSEQEND\n 8\n%s\n"

#define           DXF_CIRCLE                 " 0\nCIRCLE\n 8\n%s\n 10\n%0.6f\n 20\n%0.6f\n 40\n%0.6f\n"




fprintf(fp, DXF_HEADER);

while (c->layer) {

element = c->layer->felement;       /* set to first */

  w hile(element) {            /* for all elements */

   if(element->type == POLYGON) {

          fprintf(fp, DXF_POLYGON, c->layer->name);

          for (i=0; i< element->nr; i++) {

              fprintf(fp, DXF_VERTEX, c->layer->name, (double)((element->x[i])), (double)((element->y[i])));

          }

          /* repeat first */


                                                                 123
               fprintf(fp, DXF_VERTEX, c->layer->name, (double)((element->x[0])), (double)((element->y[0])));

               fprintf(fp, DXF_SEQUEND, c->layer->name);

         }

         if(element->type == CIRCLE) {

               fprintf(fp, DXF_CIRCLE, c->layer->name, (double)((element->x[1])), (double)((element->x[2])), (double)((element-
>x[0])));

         }

         element = element->next;

     }

     c->layer = (LAYER *)c->layer->next;

 }

fprintf(fp, DXF_EOF);

fclose(fp);




A typical DXF file looks like this:




 0

SECTION

 2

ENTITIES

 0

CIRCLE

 8

LAYER1

10

0.000000

20

0.000000

40

0.010000

 0

POLYLINE

66

     1

 8

                                                                 124
LAYER2

10

0.0

20

0.0

 0

VERTEX

 8

LAYER2

10

0.020000

20

0.000000




?




 0

VERTEX

 8

LAYER2

10

0.020000

20

0.010000

 0

SEQEND

 8

LAYER2

 0

ENDSEC

 0

EOF




           125
This file is a circle on LAYER1 with radius 0,01 mm and center at (0,0), and a polygon on
LAYER2.




                                            126

								
To top