FreeCAD: Preparing Models for 3D Printing
Reading through the FreeCAD wiki manual on preparing Part Design models for 3D print export — mesh generation, geometry checks, and STL workflow.
Worked through the Preparing models for 3D printing chapter of the FreeCAD manual. This covers the handoff between the parametric Part Design model and the mesh format a slicer actually consumes.
The Core Workflow
A FreeCAD Part Design body is boundary representation (B-Rep) geometry — mathematically exact surfaces and edges. A 3D printer needs a closed polygon mesh. The export step triangulates the B-Rep into an STL, and the quality of that triangulation determines how well the print matches the model.
Steps from the manual:
- Check geometry — use Part → Check Geometry to confirm the solid is valid (no open shells, no self-intersections). A bad solid produces a bad mesh.
- Convert to mesh — switch to the Mesh Design workbench and use Meshes → Create Mesh from Shape. Two key parameters: Surface deviation (max distance from mesh face to true surface, controls how flat curved surfaces look) and Angular deviation (max angle between adjacent faces, controls how smoothly curves are approximated).
- Inspect the mesh — Meshes → Analyze → Evaluate and Repair checks for holes, non-manifold edges, and degenerate faces. All must be zero before export.
- Export as STL — File → Export with the mesh object selected.
Deviation Parameters
The two deviation values trade file size and print time against geometric accuracy:
- Surface deviation set to
0.1 mmis a reasonable starting point for FDM. Tighter (e.g.0.01 mm) gives a smoother mesh but dramatically increases triangle count on curved surfaces. - Angular deviation of
5°is the manual’s suggested default. Lowering it smooths curves at the cost of more faces.
For functional mechanical parts that will be sanded or post-processed, loose deviations are fine. For aesthetic parts or flexible hinges, tighter values matter.
What Stuck
The mesh repair step is not optional polish — it is a structural requirement. A slicer that receives a non-manifold mesh will either fail or silently produce broken toolpaths. Validating before export, not after a failed print, is the right habit to build.