From 0338ae3fad03da0ebe4749a25a626fa48274cb69 Mon Sep 17 00:00:00 2001 From: Roy-043 <70520633+Roy-043@users.noreply.github.com> Date: Mon, 29 Jul 2024 17:49:16 +0200 Subject: [PATCH] BIM: Fix index out of range error for circular wall (#15526) * BIM: Fix index out of range error for circular wall Fixes #15523. * Reduce comments --- src/Mod/Draft/draftgeoutils/offsets.py | 19 ++++++------------- 1 file changed, 6 insertions(+), 13 deletions(-) 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,