Skip to content

Reverse Shapes

In one sentence: Create a copy of a shape with all face normals flipped, fixing inside-out solids and inverted mesh imports.


Overview

Workbench: Part
Menu: Part → Reverse Shapes
Shortcut: none

Creates a copy of the selected shape with all face normals reversed. The geometry is identical — vertex positions and edge lengths are unchanged — but the "outside" and "inside" of every face are swapped.


Intuition

Face normals define which side of a face is the "outside". Correct normals point outward from a solid's enclosed volume. Some imported shapes — particularly from mesh conversion or certain STEP/IGES exporters — have normals pointing inward, making the solid appear inside-out.

Symptoms of inverted normals: - The shape renders black or very dark in the 3D view (normals point away from the camera) - Boolean Cut or Fuse produces the inverse of what you expect - Check Geometry reports reversed orientation

Reverse Shapes flips every normal without changing the geometry, correcting these issues.


When to use it

  • A converted mesh shape (from Shape from Mesh) renders with a dark/black appearance.
  • A Boolean operation produces an empty result or the inverse of what is expected.
  • Check Geometry reports "reversed" orientation on faces.
  • A STEP or IGES import looks correct in shaded view but Boolean operations behave unexpectedly.

When NOT to use it

  • Don't use it as a general-purpose copy tool — use Simple Copy for that. Reverse Shapes is specifically for fixing normal orientation.
  • Don't use it on a correctly-oriented solid — reversing normals on a correct solid will break it (it will then be inside-out).

Step-by-step

  1. Identify a shape with inverted normals (dark rendering, unexpected Boolean results, or Check Geometry error).
  2. Select the shape in the model tree.
  3. Choose Part → Reverse Shapes.
  4. A new Part::Feature appears with all normals flipped.
  5. Verify the rendering looks correct and re-run the Boolean operation.

Parameters

This tool has no task panel. All normals are reversed automatically.


Common mistakes and pitfalls

Reversing a correctly-oriented solid makes it inside-out

Only use Reverse Shapes on shapes that are confirmed to have inverted normals. Applying it to a correctly-oriented solid produces the same symptoms you were trying to fix.

The result is static

Reverse Shapes creates a non-parametric copy. If the original shape changes, the reversed copy is not updated.

Check normals before running Boolean operations

If a Boolean Cut produces nothing, check the normals of both input shapes before investigating other causes. Inverted normals are the most common cause of unexpected Boolean results in mesh-converted geometry.


Python API

import FreeCAD as App
import Part

doc = App.newDocument()

# Create a shape (illustrative — in practice this would be a mesh-converted shape)
original = doc.addObject("Part::Box", "Original")
original.Length = 10; original.Width = 10; original.Height = 10
doc.recompute()

# Reverse all face normals
reversed_shape = original.Shape.reversed()
feat = doc.addObject("Part::Feature", "Reversed")
feat.Shape = reversed_shape
doc.recompute()

# Normals are now pointing inward — only useful for fixing an already-inverted shape
print(f"Shape type: {feat.Shape.ShapeType}")

See also