+
+ if (!aNameToShMap.contains(aBoundName))
+ {
+ TopTools_IndexedMapOfShape IM;
+ IM.Add(aShape);
+ aNameToShMap[aBoundName] = IM;
+ }
+ else
+ aNameToShMap[aBoundName].Add(aShape);
+
+ }
+
+ foreach( QString K, aNameToShMap.keys() )
+ {
+ const TopTools_IndexedMapOfShape& IM = aNameToShMap.value(K);
+ TopTools_ListOfShape LSE;
+ for (int i = 1; i <= IM.Extent(); i++)
+ {
+ const TopoDS_Edge& E = TopoDS::Edge(IM(i));
+ if (E.IsNull())
+ continue;
+ LSE.Append(E);
+ }
+
+
+ TopoDS_Shape aShapeOut;
+ if (LSE.Extent() == 1)
+ {
+ aShapeOut = LSE.First();
+ }
+ else if (LSE.Extent() > 1)
+ {
+ BRepLib_MakeWire WM;
+ WM.Add(LSE);
+ if (WM.IsDone())
+ aShapeOut = WM.Wire();
+ else
+ continue;
+ }
+ else continue;