Archived issue #0025983
Fusion of sweep and its mirror invalid
Description
The sweep is fused together with a mirror of itself. The result has a BRepCheck_BadOrientationOfSubshape.
Steps to reproduce
restore Attachment 2 (BREP) BSpline
wire Knurling-0-spine BSpline
mksweep Knurling-0-spine
setsweep -FR
polyline DWire 0 0 0 1 -0.9999999999999998 0 1.0000000000000002 0.9999999999999998 0 0 0 0
trotate DWire 0 0 0 1 0 0 134.99999999999693
ttranslate DWire 9 0 0
addsweep DWire
buildsweep Knurling -C -S
copy Knurling Clone
tmirror Clone 0 0 0 1 0 0
bfuse result Knurling Clone
donly result
checkshape result
# faulty BRepCheck_BadOrientationOfSubshape
wire Knurling-0-spine BSpline
mksweep Knurling-0-spine
setsweep -FR
polyline DWire 0 0 0 1 -0.9999999999999998 0 1.0000000000000002 0.9999999999999998 0 0 0 0
trotate DWire 0 0 0 1 0 0 134.99999999999693
ttranslate DWire 9 0 0
addsweep DWire
buildsweep Knurling -C -S
copy Knurling Clone
tmirror Clone 0 0 0 1 0 0
bfuse result Knurling Clone
donly result
checkshape result
# faulty BRepCheck_BadOrientationOfSubshape
Public activity
2 archived notes
Participants are labeled by their role within this record.
Problem described in issue is reproduced on current state of OCCT.
The problem here appears because the intersection curves of two of the faces of the input shapes are not complete:
So, the obvious workaround here is to use Fuzzy Booleans (to fill the gaps between curves):
explode Knurling f explode Clone f bopcurves Knurling_2 Clone_2 -2d # 4 curves found (see the image)
So, the obvious workaround here is to use Fuzzy Booleans (to fill the gaps between curves):
bfuzzyvalue 1.e-3 bfuse r Knurling Clone checkshape r # OK, complete