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
- Drop your
.dxffile 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. - Pick GDSII as the target format. The scale is taken from the file's own
$INSUNITSheader 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. - Download the
.gdsfile. 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.