mirror of
https://git.dev.opencascade.org/repos/occt.git
synced 2025-05-16 10:54:53 +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:
parent
0a9b38ef44
commit
696d81d000
@ -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
23
tests/bugs/heal/bug25823
Executable 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
|
Loading…
x
Reference in New Issue
Block a user