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
This commit is contained in:
Roy-043
2024-07-29 17:49:16 +02:00
committed by GitHub
parent a5505a1b1c
commit 0338ae3fad

View File

@@ -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,