From 2d798883c7d80e7592cd8f689d10910aeada1c61 Mon Sep 17 00:00:00 2001 From: Markus Lampert Date: Sun, 3 Feb 2019 11:55:31 -0800 Subject: [PATCH] Fixed py3 change of return type of --- .../PathScripts/PathDressupHoldingTags.py | 35 ++++++++++++++----- 1 file changed, 27 insertions(+), 8 deletions(-) diff --git a/src/Mod/Path/PathScripts/PathDressupHoldingTags.py b/src/Mod/Path/PathScripts/PathDressupHoldingTags.py index 9129cd523e..9f2ef27496 100644 --- a/src/Mod/Path/PathScripts/PathDressupHoldingTags.py +++ b/src/Mod/Path/PathScripts/PathDressupHoldingTags.py @@ -31,6 +31,7 @@ import PathScripts.PathUtil as PathUtil import PathScripts.PathUtils as PathUtils import copy import math +import sys import traceback from PathScripts.PathDressupTagPreferences import HoldingTagPreferences @@ -176,12 +177,12 @@ class Tag: def filterIntersections(self, pts, face): if type(face.Surface) == Part.Cone or type(face.Surface) == Part.Cylinder or type(face.Surface) == Part.Toroid: PathLog.track("it's a cone/cylinder, checking z") - return filter(lambda pt: pt.z >= self.bottom() and pt.z <= self.top(), pts) + return list(filter(lambda pt: pt.z >= self.bottom() and pt.z <= self.top(), pts)) if type(face.Surface) == Part.Plane: PathLog.track("it's a plane, checking R") c = face.Edges[0].Curve if (type(c) == Part.Circle): - return filter(lambda pt: (pt - c.Center).Length <= c.Radius or PathGeom.isRoughly((pt - c.Center).Length, c.Radius), pts) + return list(filter(lambda pt: (pt - c.Center).Length <= c.Radius or PathGeom.isRoughly((pt - c.Center).Length, c.Radius), pts)) print("==== we got a %s" % face.Surface) def isPointOnEdge(self, pt, edge): @@ -325,14 +326,14 @@ class MapWireToTag: if not self.entryEdges: print("fill entryEdges ...") self.realEntry = sorted(self.edgePoints, key=lambda p: (p - self.entry).Length)[0] - self.entryEdges = filter(lambda e: PathGeom.edgeConnectsTo(e, self.realEntry), edges) + self.entryEdges = list(filter(lambda e: PathGeom.edgeConnectsTo(e, self.realEntry), edges)) edges.append(Part.Edge(Part.LineSegment(self.entry, self.realEntry))) else: self.realEntry = None if not self.exitEdges: print("fill exitEdges ...") self.realExit = sorted(self.edgePoints, key=lambda p: (p - self.exit).Length)[0] - self.exitEdges = filter(lambda e: PathGeom.edgeConnectsTo(e, self.realExit), edges) + self.exitEdges = list(filter(lambda e: PathGeom.edgeConnectsTo(e, self.realExit), edges)) edges.append(Part.Edge(Part.LineSegment(self.realExit, self.exit))) else: self.realExit = None @@ -448,7 +449,10 @@ class MapWireToTag: wire.add(edge) shell = wire.extrude(FreeCAD.Vector(0, 0, self.tag.height + 1)) - return shell.removeShape(filter(lambda f: PathGeom.isRoughly(f.Area, 0), shell.Faces)) + nullFaces = list(filter(lambda f: PathGeom.isRoughly(f.Area, 0), shell.Faces)) + if nullFaces: + return shell.removeShape(nullFaces) + return shell def commandsForEdges(self): global failures @@ -474,7 +478,10 @@ class MapWireToTag: return commands except Exception as e: PathLog.error("Exception during processing tag @(%.2f, %.2f) (%s) - disabling the tag" % (self.tag.x, self.tag.y, e.args[0])) - #traceback.print_exc(e) + #if sys.version_info.major < 3: + # traceback.print_exc(e) + #else: + # traceback.print_exc() self.tag.enabled = False commands = [] for e in self.edges: @@ -545,7 +552,11 @@ class PathData: wire = Part.Wire(bottom) if wire.isClosed(): return wire - except: + except Exception as e: + #if sys.version_info.major < 3: + # traceback.print_exc(e) + #else: + # traceback.print_exc() return None def supportsTagGeneration(self): @@ -825,7 +836,7 @@ class ObjectTagDressup: return Path.Path(commands) def problems(self): - return filter(lambda m: m.haveProblem, self.mappers) + return list(filter(lambda m: m.haveProblem, self.mappers)) def createTagsPositionDisabled(self, obj, positionsIn, disabledIn): rawTags = [] @@ -903,6 +914,10 @@ class ObjectTagDressup: self.processTags(obj) except Exception as e: PathLog.error("processing tags failed clearing all tags ... '%s'" % (e.args[0])) + #if sys.version_info.major < 3: + # traceback.print_exc(e) + #else: + # traceback.print_exc() obj.Path = obj.Base.Path # update disabled in case there are some additional ones @@ -941,6 +956,10 @@ class ObjectTagDressup: pathData = PathData(obj) except ValueError: PathLog.error(translate("Path_DressupTag", "Cannot insert holding tags for this path - please select a Profile path")+"\n") + #if sys.version_info.major < 3: + # traceback.print_exc(e) + #else: + # traceback.print_exc() return None self.toolRadius = PathDressup.toolController(obj.Base).Tool.Diameter / 2