1
0
mirror of https://git.dev.opencascade.org/repos/occt.git synced 2025-08-09 13:22:24 +03:00

0022927: Regression with OCCT652 on Windows. DRAWEXE crashes during offsetcomshape.

Check was added to avoid a crash if result is not reachable.
Modified test case
This commit is contained in:
vro
2012-11-15 15:19:42 +04:00
parent f2fd3809c5
commit 80e49d4396
2 changed files with 16 additions and 7 deletions

View File

@@ -3607,8 +3607,13 @@ void BRepOffset_Tool::ExtentFace (const TopoDS_Face& F,
const TopoDS_Edge& E = TopoDS::Edge(exp2.Current()); const TopoDS_Edge& E = TopoDS::Edge(exp2.Current());
if (ConstShapes.IsBound(E)) ToBuild.UnBind(E); if (ConstShapes.IsBound(E)) ToBuild.UnBind(E);
if (ToBuild.IsBound(E)) { if (ToBuild.IsBound(E)) {
EnLargeFace(TopoDS::Face(ToBuild(E)),StopFace,Standard_False); EnLargeFace(TopoDS::Face(ToBuild(E)),StopFace,Standard_False);
BRepOffset_Tool::Inter3D (EF,StopFace,LInt1,LInt2,Side,E,Standard_True); BRepOffset_Tool::Inter3D (EF,StopFace,LInt1,LInt2,Side,E,Standard_True);
// No intersection, it may happen for example for a chosen (non-offseted) planar face and
// its neighbour offseted cylindrical face, if the offset is directed so that
// the radius of the cylinder becomes smaller.
if (LInt1.IsEmpty())
continue;
if (LInt1.Extent() > 1) { if (LInt1.Extent() > 1) {
// l intersection est en plusieurs edges (franchissement de couture) // l intersection est en plusieurs edges (franchissement de couture)
SelectEdge (F,EF,E,LInt1); SelectEdge (F,EF,E,LInt1);

14
tests/offset/compshape/A4 Normal file → Executable file
View File

@@ -4,14 +4,18 @@
## Comment : From CV tests serie page 60 ## Comment : From CV tests serie page 60
## ====================================== ## ======================================
puts "*" #puts "*"
puts "TODO OCC22740 ALL: An exception was caught" #puts "TODO OCC22740 ALL: An exception was caught"
puts "TODO OCC22740 ALL: \\*\\* Exception \\*\\*" #puts "TODO OCC22740 ALL: \\*\\* Exception \\*\\*"
puts "TODO OCC22740 ALL: Error : The offset can not be build" #puts "TODO OCC22740 ALL: Error : The offset can not be build"
puts "TODO OCC23524 ALL: Error : The offset is not valid"
restore [locate_data_file CCV_2_d1_gsw.rle] s restore [locate_data_file CCV_2_d1_gsw.rle] s
explode s F explode s F
catch {offsetcompshape result s -2 s_17} catch {offsetcompshape result s -2 s_17}
#real volume of result shape is unknow yet #real volume of result shape is unknow yet
set volume 0
set volume 534256