diff --git a/src/Mod/Draft/draftgeoutils/offsets.py b/src/Mod/Draft/draftgeoutils/offsets.py index 94df93fc63..cd99a513bd 100644 --- a/src/Mod/Draft/draftgeoutils/offsets.py +++ b/src/Mod/Draft/draftgeoutils/offsets.py @@ -441,15 +441,12 @@ def offsetWire(wire, dvec, bind=False, occ=False, # TODO arc always in counter-clockwise directinon # ... ( not necessarily 'reversed') if curOrientation == "Reversed": - # need to test against Part.Circle, not Part.ArcOfCircle if not isinstance(curredge.Curve, Part.Circle): - # if not arc/circle, assume straight line, reverse it + # assume straight line, reverse it nedge = Part.Edge(nedge.Vertexes[1], nedge.Vertexes[0]) + elif nedge.isClosed(): + pass else: - # if arc/circle - # Part.ArcOfCircle(edge.Curve, - # edge.FirstParameter, edge.LastParameter, - # edge.Curve.Axis.z > 0) midParameter = nedge.FirstParameter + (nedge.LastParameter - nedge.FirstParameter)/2 midOfArc = nedge.valueAt(midParameter) nedge = Part.ArcOfCircle(nedge.Vertexes[1].Point, @@ -485,16 +482,12 @@ def offsetWire(wire, dvec, bind=False, occ=False, elif curAlign == 'Center': nedge = offset(curredge, delta, trim=True) if curOrientation == "Reversed": - # need to test against Part.Circle, not Part.ArcOfCircle if not isinstance(curredge.Curve, Part.Circle): - # if not arc/circle, assume straight line, reverse it + # assume straight line, reverse it nedge = Part.Edge(nedge.Vertexes[1], nedge.Vertexes[0]) + elif nedge.isClosed(): + pass else: - # if arc/circle - # Part.ArcOfCircle(edge.Curve, - # edge.FirstParameter, - # edge.LastParameter, - # edge.Curve.Axis.z > 0) midParameter = nedge.FirstParameter + (nedge.LastParameter - nedge.FirstParameter)/2 midOfArc = nedge.valueAt(midParameter) nedge = Part.ArcOfCircle(nedge.Vertexes[1].Point,