Glyph

Convert DXF to GDSII

DXF-to-GDSII conversion turns a CAD drawing into a hierarchical, integer-coordinate mask layout: polylines and flattened curves become GDS boundary polygons, BLOCK definitions become cells, and INSERT entities become SREF and AREF placements. The conversion below runs entirely inside your browser — the file is read, converted and written locally, and there is no server to upload it to.

How to convert DXF to GDSII

  1. Drop your .dxf file onto the converter on this page. Both the ASCII and the binary DXF flavour are read; the flavour is detected from the file's own bytes.
  2. Pick GDSII as the target format. The scale is taken from the file's own $INSUNITS header automatically — a unitless or unknown file falls back to 1 drawing unit = 1 µm. There is no unit override for DXF; if the result is not the size you expect, rescale the design in the editor. If your drawing is line art rather than filled regions, switch on close open contours — see below.
  3. Download the .gds file. Open it in the free Glyph editor if you want to inspect layers, fix hierarchy, or run a design-rule check before handing it to a mask shop.

What survives and what changes

Aspect What happens
Entities read LINE, LWPOLYLINE (including bulge arcs), POLYLINE/VERTEX, CIRCLE, ARC, ELLIPSE, SOLID/TRACE, 3DFACE, TEXT, MTEXT, SPLINE (NURBS), INSERT, DIMENSION (via its picture block), and HATCH boundary loops.
Curves GDSII has no arc primitive, so every arc, circle, ellipse and spline is flattened to a polyline within a chord-deviation budget that keeps vertex counts bounded.
Hierarchy A BLOCK becomes a GDS cell; an INSERT becomes an SREF, or an AREF when the insert is arrayed. The drawing's structure is preserved, not flattened.
Units Every drawing unit becomes $INSUNITS-derived world nanometres (millimetres → 1 000 000 nm). Unitless or unknown files default to 1 unit = 1 µm. Coordinates are integer nanometres.
Layers Named DXF layers become numbered GDS layers, allocated on first use. A layer whose name is a plain number claims that number, so a mask DXF with layers 1, 2, … keeps them.
Datatype Every imported shape lands on datatype 0 — DXF has no datatype concept, so the pair has to be re-assigned by hand if your process needs one.
Layer colours The layer table's colour is carried over. An entity-level colour override (group 62) routes that entity onto a colour-variant layer, so overridden and ByLayer entities do not silently merge.
Layer appearance Imported layers default to hollow (outline only), because CAD drawings are usually line art rather than filled mask regions.
Polyline width Constant width (group 43) and the per-vertex 40/41 pair are read onto the GDS path width, so a widened track imports as geometry that exposes. A varying width collapses to a single scalar.
HATCH Reduced to its boundary loops; the pattern's own line geometry is not reproduced. The even-odd rule gives island and outer semantics.
POINT Skipped — POINT entities are construction defpoints, not exposable geometry.
Open outlines LINE and ARC entities that only trace an outline enclose no area and import as zero-width paths. See the next section.
DXF flavours ASCII and binary DXF are both read, detected from the file's bytes. .dxb is a different, opcode-based format with no group codes and is declined by name rather than mis-parsed.

Why a converted DXF sometimes exposes nothing

This is the single most common surprise in DXF-to-mask conversion, and it is not a converter bug.

A mask writer exposes regions — closed polygons with area. A CAD drawing frequently describes the same outline as a chain of separate LINE, ARC and SPLINE entities that merely touch end to end, with a sub-micron gap here and there. Converted literally, each of those becomes a zero-width GDS path: a centreline, correct as geometry and completely non-exposing. The file opens cleanly, the picture looks right, and the mask comes out blank.

The close open contours option handles this. Touching segments are chained per (layer, datatype) pair — never across layers — with a default join tolerance of 100 nm, and a chain that still does not close is force-closed only when it encloses real area (default 10 µm²). Keying the decision on enclosed area rather than on gap size is what lets a sloppy gap in a genuine outline close while a leader line or a centreline, open by nature and enclosing nothing, stays open instead of becoming a slit of exposed resist.

Nothing is ever deleted: chains that stay open keep the paths they came from, so you can inspect them in the editor. The same option is available in the editor under Arrange → Close open contours….

Why DXF and GDSII both exist

DXF is a general CAD drawing-interchange format with named layers, native arcs and floating-point coordinates. GDSII is a mask-layout format with numbered (layer, datatype) pairs, no arc primitive, and integer database units chosen so coordinates never drift. Neither is a superset of the other, which is why this conversion re-models the drawing rather than re-encoding it.

For the full side-by-side — geometry model, precision, layering, hierarchy — see DXF vs GDSII. For the record structure the converter writes, see the GDSII file format reference, and for the vocabulary, the mask layout glossary.

Open it in the editor

A converted file is usually a starting point rather than a finished mask: layers need mapping onto your process, datatypes need assigning, and outlines need checking. Open in the free Glyph editor to do that — nothing to install, and your files never leave your browser. From there, see Layers and Cells & hierarchy.

Glyph is made by NANYTE. For where a finished layout goes next, read NANYTE's maskless lithography overview.

Updated 2026-07-29

Open Glyph — free, no install Your files never leave your computer.
Open Glyph →