diff --git a/src/Mod/Draft/Draft.py b/src/Mod/Draft/Draft.py index b6652aa46eba..f3028d28c2a8 100644 --- a/src/Mod/Draft/Draft.py +++ b/src/Mod/Draft/Draft.py @@ -4369,7 +4369,8 @@ def execute(self, obj): svg = "" shapes = [] others = [] - for o in obj.Source.Group: + objs = getGroupContents([obj.Source]) + for o in objs: if o.ViewObject.isVisible(): svg += getSVG(o,obj.Scale,obj.LineWidth,obj.FontSize.Value,obj.FillStyle,obj.Direction,ls,lc) else: diff --git a/src/Mod/Draft/DraftGeomUtils.py b/src/Mod/Draft/DraftGeomUtils.py index ae7683db3d37..9429e8f7ca75 100755 --- a/src/Mod/Draft/DraftGeomUtils.py +++ b/src/Mod/Draft/DraftGeomUtils.py @@ -670,10 +670,11 @@ def sortEdges(edges): edict = dict() nedges = [] for e in edges: - if e.Length != 0: - sdict.setdefault( e.Vertexes[0].hashCode(), [] ).append(e) - edict.setdefault( e.Vertexes[-1].hashCode(),[] ).append(e) - nedges.append(e) + if hasattr(e,"Length"): + if e.Length != 0: + sdict.setdefault( e.Vertexes[0].hashCode(), [] ).append(e) + edict.setdefault( e.Vertexes[-1].hashCode(),[] ).append(e) + nedges.append(e) if not nedges: print "DraftGeomUtils.sortEdges: zero-length edges" return edges @@ -824,6 +825,8 @@ def lookfor(aVertex, inEdges): def invert(edge): '''invert(edge): returns an inverted copy of this edge''' + if len(edge.Vertexes) == 1: + return edge if geomType(edge) == "Line": return Part.Line(edge.Vertexes[-1].Point,edge.Vertexes[0].Point).toShape() elif geomType(edge) == "Circle":