diff --git a/src/Mod/PartDesign/App/FeatureLoft.cpp b/src/Mod/PartDesign/App/FeatureLoft.cpp index baffc52b51..c2208a0999 100644 --- a/src/Mod/PartDesign/App/FeatureLoft.cpp +++ b/src/Mod/PartDesign/App/FeatureLoft.cpp @@ -72,7 +72,11 @@ Loft::getSectionShape(const char *name, size_t expected_size) { std::vector shapes; - if (subs.empty() || std::find(subs.begin(), subs.end(), std::string()) != subs.end()) { + // Be smart. If part of a sketch is selected, use the entire sketch unless it is a single vertex - + // backward compatibility (#16630) + auto subName = subs.empty() ? "" : subs.front(); + auto useEntireSketch = obj->isDerivedFrom(Part::Part2DObject::getClassTypeId()) && subName.find("Vertex") != 0; + if (subs.empty() || std::find(subs.begin(), subs.end(), std::string()) != subs.end() || useEntireSketch ) { shapes.push_back(Part::Feature::getTopoShape(obj)); if (shapes.back().isNull()) FC_THROWM(Part::NullShapeException, "Failed to get shape of "