diff --git a/src/Gui/SelectionFilter.cpp b/src/Gui/SelectionFilter.cpp index 0679a1588..69a314bf6 100644 --- a/src/Gui/SelectionFilter.cpp +++ b/src/Gui/SelectionFilter.cpp @@ -192,6 +192,8 @@ bool SelectionFilter::match(void) int subCount=0; for (std::vector::const_iterator it2=temp.begin();it2!=temp.end();++it2) { const std::vector& subNames = it2->getSubNames(); + if (subNames.empty()) + return false; for (std::vector::const_iterator it3=subNames.begin();it3!=subNames.end();++it3) { if (it3->find((*it)->SubName) != 0) return false; diff --git a/src/Mod/Sketcher/Gui/Command.cpp b/src/Mod/Sketcher/Gui/Command.cpp index 3965b890d..77feb72f2 100644 --- a/src/Mod/Sketcher/Gui/Command.cpp +++ b/src/Mod/Sketcher/Gui/Command.cpp @@ -83,7 +83,14 @@ void CmdSketcherNewSketch::activated(int iMsg) Part::Feature *part = static_cast(FaceFilter.Result[0][0].getObject()); Base::Placement ObjectPos = part->Placement.getValue(); const std::vector &sub = FaceFilter.Result[0][0].getSubNames(); - if (sub.size() > 1){ + if (sub.empty()) { + // No assert for wrong user input! + QMessageBox::warning(Gui::getMainWindow(), + qApp->translate(className(),"No sub-elements selected"), + qApp->translate(className(),"You have to select a single face as support for a sketch!")); + return; + } + else if (sub.size() > 1) { // No assert for wrong user input! QMessageBox::warning(Gui::getMainWindow(), QObject::tr("Several sub-elements selected"), QObject::tr("You have to select a single face as support for a sketch!"));