Free online DXF to STL converter
DXF to STL — you choose the thickness
Drop a flat drawing, type a thickness in millimetres, and download a printable solid. The thickness is the one thing a drawing does not contain, so it is asked for rather than invented — and the holes are worked out by how the contours nest rather than by which direction their polylines happen to run, which is why a plate with bores comes out as a plate with bores instead of a solid brick. Nothing is uploaded.
- 100% free
- No signup
- Thickness is yours
- Holes stay holes
- Nothing uploaded
How to convert DXF to STL
Three steps, and the second one is a decision only you can make.
Drop the .dxf
An .svg works here too. Blocks are expanded, curves flattened, and the panel reports how many contours actually close — the number that decides whether this conversion is possible at all, because a path with no inside cannot become material.
Type the thickness
In millimetres, and it is the only thing on this page a converter has to invent. A drawing does not contain a thickness; converters that pick one silently are how a bracket arrives as foil. Change the number and the model is rebuilt immediately, so the volume in the panel tells you whether you guessed right.
Download the STL
Binary STL, with the outline extruded and every enclosed contour cut out as a hole. Closed top and bottom faces, closed walls — a solid a slicer will accept without repair.
Technical specifications
| Reads | .dxf and .svg — closed contours only |
|---|---|
| Writes | .stl — binary, millimetres, watertight |
| Thickness | You type it; nothing in a drawing states one |
| Holes | Decided by nesting depth, not by polyline direction |
| Nesting | Any depth — a washer inside a plate inside a frame |
| Skipped | Open paths, which have no inside to fill |
| Direction | Straight extrusion along Z; no draft, sweep or loft |
| File size | No fixed limit — past 100 MB you are told what it will cost this tab, then it opens |
Frequently asked questions
How does it know which contours are holes?
By containment, not by winding direction. A DXF's polylines run whichever way the drawing program felt like, and half of them disagree inside a single file, so trusting direction produces a part with its holes filled and its outline inverted. Instead the nesting is counted: a contour inside an even number of others is material, inside an odd number it is a hole. That is what makes a washer inside a plate inside a frame come out right rather than as three overlapping slabs.
My drawing produced nothing. Why?
Almost always because nothing in it closes. A rectangle drawn as four separate LINE entities looks exactly like a closed rectangle on screen and is four unrelated segments to a computer — there is no inside, so there is nothing to fill or extrude. The fix is in the drawing program: join the segments into a polyline, or use its close-path command. The panel counts closed contours before you convert, so you can see this rather than deduce it from an empty download.
What thickness should I use?
Whatever the part is. That sounds glib, but the point is that nothing in the file can answer it and no converter should pretend otherwise — the drawing is a profile, and a profile plus a thickness is a part. The volume shown in the panel is the useful check: if it reads a hundred times more or less than you expect, the drawing is not in the units you thought, and extruding it will not fix that.
Can it extrude along a curve, or taper the walls?
No. This is a straight extrusion along Z: flat top, flat bottom, vertical walls. Draft angles, sweeps and lofts are modelling operations, not conversions, and doing them here would mean guessing at intent that the drawing does not record. If you need a tapered or swept part, the honest route is a CAD package — import the DXF as a sketch and model from it.
Is the result watertight?
Yes, by construction. The top and bottom faces are triangulated from the same contours, and the walls are built by walking those contours — so every wall edge has a matching cap edge and the shell closes. Where the input geometry is degenerate, the extrusion drops the offending contour rather than emitting a mesh with a hole in it.
Is my file uploaded?
No. The drawing is parsed, the contours nested, the mesh triangulated and the STL written here in the tab. Nothing crosses the network in either direction.
A drawing is a profile, and a profile is not a part
The gap between a DXF and an STL is not a file format problem. It is a dimension. A drawing describes a shape on a plane; a printer needs a closed surface in space. Getting from one to the other means adding information that is genuinely not in the file, and there are exactly two pieces of it: how thick the part is, and which of the enclosed regions are material rather than absence.
The first is a question, and this page asks it. The second is inference, and it is where converters quietly differ. The obvious approach is to read the winding direction of each polyline — clockwise means hole, counter-clockwise means outline — and it fails constantly, because a DXF records whatever direction the drawing program used and nothing requires that to be consistent. Half the contours in a real file disagree with the other half. Parts come out with their holes filled, or with the outline inverted into a frame.
Counting containment instead is both simpler and correct: a contour inside an odd number of others is a hole, whatever direction it runs. That handles the cases that break the naive version — a bolt hole inside a plate, a plate inside a frame, a washer with a bore sitting in the middle of a slot — without special cases for any of them.
What this cannot do is model. There is no draft angle, no sweep along a path, no loft between two profiles; those need intent the drawing does not record. If the drawing is what you have and a real part is what you need, importing it into a CAD package as a sketch is the honest route. If you want to look at the drawing first, the DXF viewer shows how many contours close, and STL to DXF goes the other way, slicing a model back into a cuttable outline.
Where the conversion happens
Every number on this page is worked out by JavaScript running in the tab you are reading it in. The model you open is read straight off your own disk — it is never uploaded, logged or kept, which is also why these tools carry on working after you disconnect from the network.
The specific note here: extruding a drawing is real geometric work — triangulating polygons with holes, building walls, welding the shell — and it is exactly the kind of work sites push to a server. All of it runs in this tab, which is why the thickness box updates the model as fast as you can type in it.