1
0
mirror of https://git.dev.opencascade.org/repos/occt.git synced 2025-05-21 10:55:33 +03:00

0025823: Self Intersecting wire translated from STEP file

The number of points to divide the edge curve on a segments to compute a
boundary box does not provide a good tolerance. So a resultant boundary
box has an incorrect bounds. As a result the intersection near to a
tangent of curve does not detected.

Test case for issue CR25823
This commit is contained in:
akz 2015-02-19 15:14:11 +03:00 committed by bugmaster
parent 0a9b38ef44
commit 696d81d000
2 changed files with 25 additions and 1 deletions

View File

@ -1287,7 +1287,8 @@ Standard_Boolean ShapeFix_ComposeShell::SplitByLine (ShapeFix_WireSegment &wire,
// get bounding box of pcurve
ShapeAnalysis_Curve sac;
Bnd_Box2d box;
sac.FillBndBox ( c2d, f, l, 11, Standard_True, box );
const Standard_Integer aNbPoints = 41;
sac.FillBndBox ( c2d, f, l, aNbPoints, Standard_True, box );
Standard_Real umin, vmin, umax, vmax;
box.Get ( umin, vmin, umax, vmax );

23
tests/bugs/heal/bug25823 Executable file
View File

@ -0,0 +1,23 @@
puts "================"
puts "OCC25823"
puts "================"
puts ""
#######################################################################################
# Self Intersecting wire translated from STEP file
#######################################################################################
set BugNumber OCC25823
set aFile [locate_data_file bug25823_280612.stp]
stepread $aFile a *
set aLog [checkshape a_1]
if {$aLog == "This shape seems to be valid" } {
puts "OK ${BugNumber}"
} else {
puts "Faulty ${BugNumber}"
}
smallview
fit
set only_screen_axo 1