diff --git a/src/Mod/Part/App/FeaturePartBoolean.cpp b/src/Mod/Part/App/FeaturePartBoolean.cpp index 4079b94826..6253649f5a 100644 --- a/src/Mod/Part/App/FeaturePartBoolean.cpp +++ b/src/Mod/Part/App/FeaturePartBoolean.cpp @@ -89,7 +89,15 @@ App::DocumentObjectExecReturn *Boolean::execute(void) std::unique_ptr mkBool(makeOperation(BaseShape, ToolShape)); if (!mkBool->IsDone()) { - return new App::DocumentObjectExecReturn("Boolean operation failed"); + std::stringstream error; + error << "Boolean operation failed"; + if (BaseShape.ShapeType() != TopAbs_SOLID) { + error << std::endl << base->Label.getValue() << " is not a solid"; + } + if (ToolShape.ShapeType() != TopAbs_SOLID) { + error << std::endl << tool->Label.getValue() << " is not a solid"; + } + return new App::DocumentObjectExecReturn(error.str()); } TopoDS_Shape resShape = mkBool->Shape(); if (resShape.IsNull()) {