]> OCCT Git - occt.git/commit
0022821: Crash with BRepFilletAPI_MakeFillet
authorddzama <ddzama@opencascade.com>
Fri, 21 Oct 2022 13:28:30 +0000 (16:28 +0300)
committersmoskvin <smoskvin@opencascade.com>
Sun, 4 Dec 2022 10:41:29 +0000 (13:41 +0300)
commit03275c0be165da7abe8e0044d79c10a0038a8340
tree6f205ddf3bc7971fd4a7249909c138d92529a3cb
parent2f33e34038e1d6fdb373d362917af7a170e9425b
0022821: Crash with BRepFilletAPI_MakeFillet

test bugs modalg_7 bug22821 failed on fillet shape with 5-th edge.
Experimentally has been found that reducing of parameter
ChFi3d_Builder::tolesp for this task solves the issue.

So, as soluton it is proposed to link parameter toleps with parameter range of
spine curve. So, production coefficient has been set to pass all tests and
2 teset was extended: tests/blend/complex/A6, tests/bugs/modalg_7/bug22821

first has been extended to test different scaling factors,
second has been extended to make fillet on all edges from 12.

Additionally:
 - fixed misusage of tolesp in contexts where tolerance of point in 3d is excepted;
     In some context usage of tol_esp is irrelevant, because its essentiality - tolerance of the parameter on the 3d curve.
     So, in such context it has been replaced with new parameter tol3d (with fix value 1.0e-4).
     Get rid of tolapp3d duplication constant - tol_3d
 - tolesp = 5.0e-5 * (umax - umin)
 - tolesp replaced by tolpoint2d/tolpoint3d in several classes.
     Blend_Walking
     BRepBlend_SurfRstLineBuilder
     BRepBlend_RstRstLineBuilder
     Blend_CSWalking
     Instead `tolesp` - `tolgui` is employed in contexts where tolerance of guide curve parameter is excepted.
     Instead `tolesp` - `tolpoint2d` or `tolpoint3d` is employed in contexts where tolerance of point in 2d or 3d space is excepted.
 - Replace tolesp with tolpoint2d/tolpoint3d in BBPP function argument.
 - Use tolapp3d instead tolesp in BonVoisin function,
40 files changed:
src/BRepBlend/BRepBlend_CSWalking.hxx
src/BRepBlend/BRepBlend_RstRstLineBuilder.cxx
src/BRepBlend/BRepBlend_RstRstLineBuilder.hxx
src/BRepBlend/BRepBlend_SurfRstLineBuilder.cxx
src/BRepBlend/BRepBlend_SurfRstLineBuilder.hxx
src/BRepBlend/BRepBlend_Walking.hxx
src/BRepFilletAPI/BRepFilletAPI_MakeFillet.cxx
src/BRepTest/BRepTest_FeatureCommands.cxx
src/BRepTest/BRepTest_FilletCommands.cxx
src/Blend/Blend_CSWalking_1.gxx
src/Blend/Blend_CSWalking_2.gxx
src/Blend/Blend_CSWalking_3.gxx
src/Blend/Blend_CSWalking_4.gxx
src/Blend/Blend_Walking_1.gxx
src/Blend/Blend_Walking_2.gxx
src/Blend/Blend_Walking_3.gxx
src/Blend/Blend_Walking_4.gxx
src/ChFi3d/ChFi3d_Builder.cxx
src/ChFi3d/ChFi3d_Builder.hxx
src/ChFi3d/ChFi3d_Builder_1.cxx
src/ChFi3d/ChFi3d_Builder_2.cxx
src/ChFi3d/ChFi3d_Builder_6.cxx
src/ChFi3d/ChFi3d_Builder_C1.cxx
src/ChFi3d/ChFi3d_Builder_C2.cxx
src/ChFi3d/ChFi3d_Builder_CnCrn.cxx
src/ChFi3d/ChFi3d_Builder_SpKP.cxx
src/ChFi3d/ChFi3d_ChBuilder.cxx
src/ChFi3d/ChFi3d_ChBuilder_C3.cxx
src/ChFi3d/ChFi3d_FilBuilder.cxx
src/ChFi3d/ChFi3d_FilBuilder_C2.cxx
src/ChFi3d/ChFi3d_FilBuilder_C3.cxx
src/ChFiDS/ChFiDS_Spine.cxx
src/ChFiDS/ChFiDS_Spine.hxx
src/ChFiDS/ChFiDS_Spine.lxx
src/FilletSurf/FilletSurf_InternalBuilder.cxx
src/QABugs/QABugs_11.cxx
src/QABugs/QABugs_17.cxx
src/ViewerTest/ViewerTest_FilletCommands.cxx
tests/blend/complex/A6
tests/bugs/modalg_7/bug22821