diff --git a/src/ChFi3d/ChFi3d_Builder_C1.cxx b/src/ChFi3d/ChFi3d_Builder_C1.cxx index 1996ca9d19..da727d1a35 100644 --- a/src/ChFi3d/ChFi3d_Builder_C1.cxx +++ b/src/ChFi3d/ChFi3d_Builder_C1.cxx @@ -1645,6 +1645,13 @@ void ChFi3d_Builder::PerformIntersectionAtEnd(const Standard_Integer Index) } if (compoint1 && compoint2) { SeqFil.Remove(num); + num = ChFi3d_IndexOfSurfData(Vtx,stripe,sens); + if (isfirst) { + num1=num+1; + } + else { + num1=num-1; + } reg1=Standard_False; reg2=Standard_False; } } diff --git a/tests/bugs/modalg_8/bug32929 b/tests/bugs/modalg_8/bug32929 new file mode 100644 index 0000000000..cb82a99889 --- /dev/null +++ b/tests/bugs/modalg_8/bug32929 @@ -0,0 +1,44 @@ +puts "============" +puts "OCC32929: Modeling Algorithms - Crash in PerformIntersectionAtEnd after deletion of surfdata (fillet)" +puts "============" +puts "" + +# Load & prepare data. +restore [locate_data_file bug32929.brep] b +explode b E + +# Make screenshot before filleting. +smallview +donly b b_8 +fit +xwd $imagedir/${test_image}_1.png + +# Make fillet. +blend result b 1 b_8 + +# Make screenshot after filleting. +donly result +fit +xwd $imagedir/${test_image}_2.png + +# Check mass. +checkprops result -s 13435.4 + +# Check validity of result. +checkshape result + +# Check content. +set nbshapes_expected " +Number of shapes in shape + VERTEX : 25 + EDGE : 40 + WIRE : 17 + FACE : 17 + SHELL : 1 + SOLID : 1 + COMPSOLID : 0 + COMPOUND : 1 + SHAPE : 102 +" + +checknbshapes result -ref ${nbshapes_expected} -t -m "Result of ChFi3d_ChBuilder algorithm"