Drawing Design Rules for DXF to MIC

DXF2MIC converts AutoCAD DXF files to the Micronic's MIC file format used for driving their family of large area laser writers. The two databases are not organized alike. Therefore, not every entity in AutoCAD has a corresponding element in MIC.

Since the MIC database is used to describe photomask data, it depends on closed areas that are either filled (dark) or empty (clear). AutoCAD is primarly a line oriented drawing tool so it is important for the user to create valid boundaries.

Drawing Rule Topics
Drawing Environment
Recommended drawing settings: grid, snap units, coordinates ...
Drawing Boundaries Recommended procedures for drawing boundaries.
Closed Plines with Width Why you shouldn't close a polyline with width.
Re-entrant Boundary Describes a re-entrant polygon, why to use one, and how to do it correctly.
Drawing Islands and Isolated Areas Several approaches to drawing islands: re-entrant polygons, paint and scratch...
Text Proper use of text and fonts ...
Using Blocks and Inserts Rules and behavior of blocks and inserts
Circles/Arcs Circles and Arcs - will they be fractured? Why? How to control the resolution.
Creating the DXF File Correct DXF OUT - binary, entities, number of places....

Setting up the AutoCAD Drawing Environment

Since your intention is create a mask that accurately matches what you draw, you should set up your AutoCAD as closely as possible to the mask making machine's internal database.

Grid All mask making machines use a gridded internal database; AutoCAD uses a double precision database that is not really grid based. You should set AutoCAD's grid equal to (or to some multiple) of the machine's grid. If the machine has a 5 um grid then this should also be your AutoCAD grid.
Snap to Grid Turn grid snap ON if at all possible. This will insure that each point entered in AutoCAD can is exactly mapped to the machine's grid.
Units AutoCAD is dimensionless. AutoCAD's UNITS command affects only the display and does not set drawing units. We recommend that you work in units of microns - i.e. a line 10 long should represent 10 um.
UCS/Vpoint Set UCS (User Coordinate System) to WORLD; do not modify the vpoint. AutoCAD modifies the coordinates of entities entered while a different UCS is in effect. The translator may not map these to machine coordinates correctly.
Layer Names The translator supports translation of up to 255 layers (plus layer 0). Layer names can have up to 32 characters in them.

Data Origin
You should select one of two locations for your mask origin:

   [a] locate 0,0 at the lower left extents of your data

   [b] locate 0,0 at the center of your data.

Avoid drawing your mask so that it is far away from the origin [c] - this could cause problems later on for the person using your design. Also do not put any data at all outside of the normal extents of your mask. If you must have data outside of the mask area, such as a title border, make sure it is on a separate layer and purge that layer prior to running a translation to DXF.

Drawing Boundaries

The MIC data base is built using primarily filled boundaries. A boundary is an area enclosed by a group of lines and arcs. The boundary must be "simple" i.e. you must be able to move from any point in the interior to any other point without crossing the boundary.

Closed Boundary A closed boundary consists of a series of straight segments (or arcs) forming a closed area. The first and last vertex must be the same. The inside of the boundary will be solid on the photomask unless this boundary is marked as a "clear" or "empty" boundary.
Max Number of Vertices A boundary may have no less than 3 vertices and no more than 4096 vertices. This 4096 limit may be raised in future versions.
No Self Intersection A boundary may not overlap on itself nor self-intersect. However it may touch itself. A boundary that touches itself is called a re-entrant boundary.
Overlap Independent boundaries may overlap. The overlapping area will be "dark".

Drawing Boundaries in AutoCAD

There are many different ways to draw a closed boundary in AutoCAD.

Zero Width Closed Polyline (zwcp) The most reliable way to draw boundaries is to use AutoCAD's zero width polyline and to use the Close command to create the final closing segment.

Polylines with Width For circuit traces the best entity to use is the polyline with width. The width may vary from vertex to vertex; however note that AutoCAD's mitering and the translator's mitering might not behave exactly in the same fashion.

Closed Pline with Width

A closed polyline with width will result in either a self intersecting boundary or path [a]. Many times a user will want to draw a frame around an area using a wide polyline. Do this with two separate polylines.
Solids The AutoCAD solid entity may be used as long as you do not accidentally draw a bow-tie solid. However the AutoCAD solid command is very limited (only three or four vertices).
Lines and Arcs Lines and arcs may be used to form closed boundaries, but the designer must take great care to make sure that the endpoints snap together and that there are no hidden lines under lines. An Autolisp program called BBPRO is available from Artwork that will interactively convert lines and arcs into zero width closed polylines.

It is also possible to accidentally draw self-intersecting boundaries when using lines and arcs since the linking routine may come to a point where the correct path to follow is ambiguous.

Re-entrant Boundary

  While a boundary may not self intersect, it may "touch" itself. This is called a re-entrant polygon. Re-entrant boundaries should only be drawn using zero width closed polylines. Using lines and arcs is ambiguous and will generally not result in the desired boundary.

Drawing Islands and Isolated Areas

Islands are clear field areas surrounded by a dark field on the mask. They cannot be drawn in the same manner as you would for controlling a plotter or cutting machine.

In the drawing to the right, the designer drew one boundary inside of another [a].
Instead of getting the mask he desired [b], he got the black mask shown in [c].

This is because GDSII fills each boundary solid independent of its relationship to other boundaries. There is no such thing as an empty boundary in GDSII.

There are a couple of ways to work around this:

Two mating boundaries

You can use two separate boundaries that butt up against each other to form the frame. Only use a closed polyline - if you use lines, most likely they will be linked incorrectly to form a self intersecting boundary.

These actually touch but are shown separated for clarity.

Re-entrant Boundary

Another method to realize an island is to go into the interior of your polygon and out again via the same path. This is called a re-entrant boundary. This is best done using a closed zero width polyline.


ASM 3500 supports text but cannot pass the actual font information. Therefore, you should not rely on fancy or special text fonts.

Supported Text Functions:

  • Rotation
  • Mirroring
  • Height
  • Upper Case Numbers and Characters and period, comma, dash, space and slash 1234567890 ABCDEFGHIJKLMNOPQRSTUVWXYZ .,- _ /

Unsupported Text Functions

  • Obliquing
  • Vertical
  • Dynamic (i.e. fitted or where width factor not equal to 1)
  • Special Characters
  • Special Fonts


Just because ASM 3500 supports text and text is a valid entity in GDSII, it does not mean that all target systems will correctly read text. Some GDSII postprocessors do not support text. Check with the mask vendor.

If you know that your target does not support text, the dxf2gds translator offers a special option called PG Text. This option converts your strings of text into GDSII boundaries automatically so you don't have to do it.

AutoCAD txt.shx

PG font generated by ASM 3500

Using Blocks and Inserts

Blocks are very useful for repetitive data - you can nest blocks inside of blocks to minimize your drawings size.



Insert blocks at scale=1 if possible. Although GDSII and dxf2gds support blocks inserted with scale, many GDSII postprocessors such as those used to create MEBEs files do not support structures inserted at other than scale 1. Never insert a block with x scale different from y scale. GDSII does not support this.

Insertion Layer

Insert all blocks on layer 0. While this is not mandatory you should note that unlike DXF, GDSII does not mark on which layer structures are inserted.


Do not insert blocks with rotation unless absolutely necessary. Many CAD systems that import GDSII only support rotations of 90, 180 and 270 degrees - some don't support rotation at all.

Block Names

It is good practice to use only upper case characters and numerals for block names. Many CAD systems that import GDSII have difficulty with lower case block names - some reset the names to upper case and some fail on importation. GDSII allows up to 32 characters maximum per name.

Block Attributes

Block attributes are not passed to GDSII.


AutoCAD's MINSERT command (multiple insertion of blocks) is translated to a GDSII AREF (array reference). This is a very useful command for inserting large arrays of cells and it keeps both the DXF and GDSII database small. We suggest that if you use this command that you:

  1. Never rotate the MINSERT
  2. Always make the row and column distance positive values


Although the translator and GDSII database support both rotation and negative step sizes we have found that many other GDSII based programs do not implement these transformations consistently. You may spend many hours chasing down weird effects at the other end.


Avoid using circles and arcs if possible. Although the dxf2gds translator can convert circles and arcs into GSDII data, it is not a perfect translation because GDSII does not include an arc or circle entity. The translator will approximate your arc or circle with a series of short segments. You have some control over this approximation. If you have many circles of the same diameter you may want to convert your circle(s) into a block. This will reduce the size of the GDSII file.

The GDS.CFG keywords arcres and arcsag control how arcs and circles are fractured.

ARCRES (Arc Resolution)

Arcres is a value in degrees that determines how many segments are generated per curve. Typical values range from 2 degrees up to 15 degrees.


Arcsag is the maximum error between the ideal arc and the segmented arc. This value always occurs at the center of each chord as shown in the illustration. dxf2gds will then calculate the number of segments required to produce the desired maximum error. A zero value of arcsag causes the translator to ignore the setting.

Combining Arcsag and Arc Res

The two parameters can be used together - the one that results in the more precision will take effect.

Creating the DXF File

This step may seem simple but we often see many customer errors in simply creating the DXF file from AutoCAD.

Purge the Database

ASM 3500 translates all entities and blocks in your DXF file whether or not the layer is on, off or frozen. To minimize translation time, and to reduce the ultimate GDSII file size you should clean and purge your drawing prior to running the DXFOUT command.
  1. Erase all data on layers you do not wish to translate to GDSII.
  2. Save your drawing. Open the drawing and use the Purge All command to eliminate unused layers, blocks and fonts.
  3. Repeat the preceding step over and over until no more items can be purged.
An alternative approach to purging is to use AutoCAD's WBLOCK command to create a new file containing only the entities you wish to translate to GDSII.

DXFOUT Command

  • Always DXFOUT the entire file. Never select DXFOUT "entities" as the header is not included. Without the header dxf2gds will not run correctly.
  • Do not DXFOUT binary data (DXB) - the translator cannot read this format.
  • Make sure the number of significant places is enough. The default of 6 places is normally fine. However there are exceptions where 6 places may not be enough.


A typical error is creating an AutoCAD drawing in units of inches with very small dimensions - say on the order of 0.000001 inch. If you accept the standard 6 places accuracy when creating the DXF file you may have errors in your GDSII data - due to the fact that AutoCAD stores the data internally to about 14 places but is only writing out 6 places to the DXF file.

417 Ingalls St. Unit C, Santa Cruz, CA 95060 831.426.6163 email:  info@artwork.com