diff --git a/src/Gui/Selection.cpp b/src/Gui/Selection.cpp index 6df5f3e2f..de389b215 100644 --- a/src/Gui/Selection.cpp +++ b/src/Gui/Selection.cpp @@ -352,7 +352,7 @@ bool SelectionSingleton::hasSelection(const char* doc) const // typeId = App::DocumentObject::getClassTypeId(); // return getSelectionEx(pDocName,typeId); //} -std::vector SelectionSingleton::getSelectionEx(const char* pDocName,Base::Type typeId) const +std::vector SelectionSingleton::getSelectionEx(const char* pDocName, Base::Type typeId) const { std::vector temp; @@ -373,26 +373,31 @@ std::vector SelectionSingleton::getSelectionEx(const char* pDoc for (std::list<_SelObj>::const_iterator It = _SelList.begin();It != _SelList.end();++It) { if (It->pDoc == pcDoc) { // right type? - if(It->pObject->getTypeId().isDerivedFrom(typeId)){ + if (It->pObject->getTypeId().isDerivedFrom(typeId)){ // if the object has already an entry if (SortMap.find(It->pObject) != SortMap.end()){ // only add sub-element - SortMap[It->pObject].SubNames.push_back(It->SubName); - SortMap[It->pObject].SelPoses.push_back(Base::Vector3d(It->x,It->y,It->z)); + if (!It->SubName.empty()) { + SortMap[It->pObject].SubNames.push_back(It->SubName); + SortMap[It->pObject].SelPoses.push_back(Base::Vector3d(It->x,It->y,It->z)); + } } - else{ + else { // create a new entry SelectionObject tempSelObj; tempSelObj.DocName = It->DocName; tempSelObj.FeatName = It->FeatName; - tempSelObj.SubNames.push_back(It->SubName); tempSelObj.TypeName = It->TypeName.c_str(); - tempSelObj.SelPoses.push_back(Base::Vector3d(It->x,It->y,It->z)); + if (!It->SubName.empty()) { + tempSelObj.SubNames.push_back(It->SubName); + tempSelObj.SelPoses.push_back(Base::Vector3d(It->x,It->y,It->z)); + } SortMap.insert(std::pair(It->pObject,tempSelObj)); } } } } + for (std::map::const_iterator It = SortMap.begin();It != SortMap.end();++It) temp.push_back(It->second); diff --git a/src/Mod/Sketcher/App/SketchObjectPyImp.cpp b/src/Mod/Sketcher/App/SketchObjectPyImp.cpp index c02684585..1d0b5129f 100644 --- a/src/Mod/Sketcher/App/SketchObjectPyImp.cpp +++ b/src/Mod/Sketcher/App/SketchObjectPyImp.cpp @@ -284,10 +284,11 @@ PyObject* SketchObjectPy::fillet(PyObject *args) PyErr_SetString(PyExc_ValueError, str.str().c_str()); return 0; } - // Point, radius + Py_Return; } - PyErr_Clear(); + PyErr_Clear(); + // Point, radius if (PyArg_ParseTuple(args, "iid|i", &geoId1, &posId1, &radius, &trim)) { if (this->getSketchObjectPtr()->fillet(geoId1, (Sketcher::PointPos) posId1, radius, trim?true:false)) { std::stringstream str; @@ -295,8 +296,13 @@ PyObject* SketchObjectPy::fillet(PyObject *args) PyErr_SetString(PyExc_ValueError, str.str().c_str()); return 0; } + Py_Return; } - Py_Return; + + PyErr_SetString(PyExc_TypeError, "fillet() method accepts:\n" + "-- int,int,Vector,Vector,float,[int]\n" + "-- int,int,float,[int]\n"); + return 0; } PyObject* SketchObjectPy::trim(PyObject *args)