- GuiCommand: Name:Part RefineShape MenuLocation:Part → Create a copy → Refine Shape Workbenches:Part SeeAlso:Part SimpleCopy, Part TransformedCopy, Part ElementCopy, OpenSCAD RefineShapeFeature
The Part RefineShape produces a non-parametric copy with a refined shape, that is, with certain edges and faces cleaned up.
After certain boolean operations, like Part Fuse, some lines from the previous shapes may remain visible. This tool produces a copy of that boolean result, and cleans up those seams.
Alternatively, to produce other non-parametric copies use ** Simple Copy
**,
Transformed Copy, and
Element Copy

Original boolean result with 11 faces (left), and refined shape copy with 7 faces (right).
- Select an object that you wish to clean and copy.
- Go to the menu Part → Create a copy →
Refine shape.
- A cleaned, independent copy of the original object is created; the original object is hidden.
As of (v0.19) the result defaults to a parametric (linked) copy.
This behavior can be changed in the Parameter editor:
- Go to the subgroup:
BaseApp/Preferences/Mod/Part - Change
ParametricRefineof typeBooleantoFalseto get the old behavior (independent copy).
See other parameters in Fine-tuning.
- This function can be used as the last step in the modelling work to clean up shapes in a traditional constructive solid geometry workflow.
- This function may help to clean up the model before applying another feature, such as a Fillet.
- This clean up may stop 3D printers from printing unwanted edges once the solid model is exported to a mesh format.
- This function can also be used after converting a mesh to a shape (ShapeFromMesh) to clean up the residual edges on flat faces.
- The refinement algorithm only works on shells. Therefore it iterates over the shells of the input shape and then for each shell it creates a new shell with joined faces wherever possible. This means that if your input shape is only a face, wire, edge or vertex then the algorithm does nothing.
- Unlike the
OpenSCAD RefineShapeFeature command,
Part RefineShape won't update when the preceding shapes are changed.
The Python command for refining a shape is the following:
shape.removeSplitter()
documentation index > Part > Part RefineShape