AccountTry Pro free

How to check an STL file before printing: the pre-print checklist

Most failed prints that get blamed on the printer were already failed in the file; seven checks that take five minutes catch nearly all of them.

Updated 27 October 2026 · 8 min read

Why check the file at all

A slicer will happily slice a broken mesh. Holes get filled by guesswork, inverted faces produce missing layers or solid blobs, a part that is 25.4× too small slices to nothing, and a 0.3 mm wall simply disappears because it is thinner than one extrusion line. None of these show up as errors in the slicer preview unless you look for them. The checks below go in the order that saves the most time: if the mesh is not closed, there is no point measuring wall thickness yet.

For most files the whole list takes a few minutes. The print advisor runs the mesh, scale, thickness and bed-fit checks together and reports what it finds; the sections below explain what each result means and how to fix it by hand.

1. Is the mesh watertight?

A printable mesh is a closed surface: every edge is shared by exactly two triangles. Any edge with one triangle is a hole; any edge with three or more is a non-manifold junction. Slicers fill holes by extending the nearest surfaces, which works for a missing triangle and fails badly for a missing face.

How to check: the STL viewer reports manifold status and counts open edges. In PrusaSlicer, a warning triangle icon appears next to the object name with the number of open edges and errors; hover over it. In Cura, broken areas are shown with a grey and yellow pattern in the layer view, and the X-ray view highlights problems in red. In Bambu Studio, the object list shows a warning icon and Fix model in the right-click menu. Meshmixer's Analysis > Inspector draws a coloured pin on every defect.

How to fix: a few open edges from a sloppy export close cleanly with any repair tool. The STL repair tool closes holes, removes duplicate and degenerate triangles and unifies normals in one pass. PrusaSlicer's Fix through Netfabb (Windows only) and Bambu Studio's Fix model do the same. If the "hole" is a whole missing face, repair tools fill it with a flat patch, which is only right if the face was meant to be flat. The non-manifold STL guide covers the harder cases.

2. Are the normals consistent?

Every triangle has an outward side. Mesh tools that use the normals to decide inside from outside get confused by a mesh where some triangles point inward: slicers may print the part hollow, fill it solid, or drop whole regions. CAD exports are almost always consistent; meshes from Blender, sculpting tools and scans frequently are not.

How to check: in the STL viewer, enable backface or normal colouring; inverted triangles show in a different colour. In Blender, Viewport Overlays > Face Orientation shows blue for outward, red for inward. In Cura, inverted faces show as see-through or red in the X-ray view.

How to fix: Blender, Edit Mode, select all, Mesh > Normals > Recalculate Outside (Shift+N). Repair tools do this automatically. A mesh that is not closed cannot have its normals fixed reliably, which is why this check follows the first one.

3. Is the scale right?

STL has no units. A part modelled in inches and exported without conversion arrives 25.4× too small; a part from a metre-based tool arrives 1000× too small; a scan sometimes arrives in centimetres. The slicer often does not complain, and a 2 mm bracket slices to a few layers of nothing.

How to check: read the bounding box in the viewer or slicer and compare it to one dimension you know. A phone stand should be around 70 to 120 mm wide; a 28 mm miniature should be 28 to 35 mm tall; an M3 hole should be 3.2 to 3.4 mm. If you have no reference, look for features that must be a specific size: screw holes, bearing seats, battery compartments.

How to fix: the scale tool resizes by a factor (25.4, 10, 1000) or to a target dimension; every slicer can also scale on import. For inch files, scale 2540 % in the slicer, not 2500. The STL units guide lists the common factors.

4. Are the walls thick enough?

Each printing process has a minimum feature size below which geometry is dropped or prints as a fragile mess.

ProcessMinimum wall (supported)Minimum wall (free-standing)Minimum feature / pin
FDM, 0.4 mm nozzle0.8 mm (two lines)1.2 mm1.0 mm
FDM, 0.6 mm nozzle1.2 mm1.6 mm1.5 mm
Resin (MSLA)0.4 mm0.8 mm0.3 mm
SLS nylon (PA12)0.7 mm1.0 mm0.8 mm
MJF0.6 mm1.0 mm0.5 mm

FDM has a second trap: walls between one and two line widths. A 0.6 mm wall with a 0.4 mm nozzle is wider than one line and narrower than two, so the slicer either leaves a gap or prints a single line, depending on settings (PrusaSlicer's Thin walls, Cura's Print Thin Walls, Bambu's Detect thin wall). Design walls as multiples of the line width: 0.8, 1.2, 1.6 mm.

How to check: the print advisor colours regions below a thickness you set. In the slicer, slice and scroll through the layer preview; missing walls are obvious as gaps between the outer and inner perimeter or as areas where nothing is drawn. Meshmixer's Analysis > Thickness does the same on the mesh.

How to fix: thicken in CAD, or scale the whole part up. Mesh-level thickening (Blender Solidify, Meshmixer Offset) works on shells but not on solid regions.

5. Overhangs and orientation

FDM prints unsupported overhangs up to about 45° from vertical with little visible degradation, 50 to 60° with some sag, and nothing beyond that without supports. Bridges span 20 to 40 mm cleanly if both ends are anchored. Resin printers print steep overhangs better but every island (a region that starts in mid-air on a given layer) must be supported or it detaches.

How to check: every slicer colours overhangs in the preview: PrusaSlicer shades them in blue when Paint-on supports is active or in the overhang threshold view, Cura shows them red, Bambu Studio uses its overhang colouring in the preview. Rotate the model and watch the coloured area shrink. The best orientation often puts the largest flat face down and the most detailed surface up or facing outward.

How to fix: orientation first, then splitting (a model cut in half along a flat plane often needs no supports at all; the STL splitter does this), then supports as the last resort. For resin, tilt the part 15 to 30° so each layer has a small cross-section and supports land on the underside rather than on visible detail.

6. Does it fit the bed?

Compare the bounding box to the usable volume, not the nominal one. A 220 × 220 mm bed usually gives 210 × 210 after skirt and purge line; a 256 × 256 Bambu X1 bed loses the front 10 mm to the purge wiper in some profiles. Height limits are stricter than they look because the part grows if you rotate it for overhangs.

PrinterBuild volume (mm)
Bambu Lab A1 mini180 × 180 × 180
Prusa MK4 / MK4S250 × 210 × 220
Bambu Lab P1S / X1C256 × 256 × 256
Creality Ender-3 V3220 × 220 × 250
Elegoo Saturn 4 Ultra218 × 123 × 220
Anycubic Photon Mono M7223 × 126 × 230

How to fix: scale down if size is not critical; otherwise split with the STL splitter and join the pieces with glue, dowels or printed keys. The split large STL guide covers joints and alignment.

7. Triangle count and file size

Too few triangles and curves print faceted; too many and the slicer crawls. For FDM, 50,000 to 500,000 triangles covers nearly everything. Resin miniatures benefit from 1 to 2 million. Above 5 million most slicers slow noticeably and some crash; Cura in particular struggles above 2 to 3 million on 8 GB machines.

How to check: the viewer reports triangle count. File size is a proxy: 50 bytes per triangle for binary STL, so 100 MB is 2 million triangles. ASCII STL is five times bigger for the same mesh.

How to fix: the reduce tool decimates while preserving shape; a scan at 3 million triangles typically reduces to 300,000 with no visible change on a print. Faceted exports need to be re-exported from CAD at a finer tolerance; adding triangles after the fact does not recover the curvature.

Two more things worth a glance

Multiple shells. A file that contains several disconnected parts prints them all; a file that contains an internal copy of the same shell (a common export bug from Fusion 360 with hidden bodies) prints double perimeters. The viewer's shell count should match what you expect.

Position. A part exported far from the origin can arrive off the bed. Slicers centre on import, so this rarely matters, but it explains a model that appears to be missing.

FAQ

What does watertight mean for an STL?

Every edge is shared by exactly two triangles, so the surface has no holes and encloses a volume. Slicers need this to decide what is inside the part.

How thin can a wall be for 3D printing?

With a 0.4 mm FDM nozzle, 0.8 mm is the practical minimum and 1.2 mm is safer for free-standing walls. Resin prints manage 0.4 to 0.5 mm. Keep FDM walls at multiples of the line width.

Why does my STL import tiny?

The file was exported in inches or metres and the slicer read it as millimetres. Scale by 25.4 or 1000 and compare a known dimension.

Can the slicer fix a broken STL automatically?

Partly. PrusaSlicer, Bambu Studio and Cura close small holes and flip inconsistent normals. Large missing regions, self-intersections and thin walls need a repair tool or a return to CAD.

How many triangles is too many?

Above about 2 million most slicers slow down and above 5 million some fail. Decimate scans and sculpts to a few hundred thousand triangles; the printer cannot reproduce finer detail anyway.