DiscussionsIssue archiveOCCT:Modeling Algorithms

Archived issue #0022821

Crash with BRepFilletAPI_MakeFillet

CommunityOCCT:Modeling Algorithmsverified71 public notes

Search issues

Description

Post from the Forum - http://www.opencascade.org/org/forum/thread_22269/.
"Hi guys! I have a simple cube and would like to make a fillet on one of the edges. Here's the code I'm using

     BRepFilletAPI_MakeFillet mkFillet(body, ChFi3d_Rational);

     TopExp_Explorer aEdgeExplorer;
     aEdgeExplorer.Init(body, TopAbs_EDGE, 0);
     while (aEdgeExplorer.More())
     {
          TopoDS_Edge aEdge = TopoDS::Edge(aEdgeExplorer.Current());

          mkFillet.Add(0.01, aEdge);
          break;
     }
     mkFillet.Build();
     currentShape = mkFillet.Shape();

As soon as the last line is executed, the program crashes. Any idea why? Many thanks in advance!"

Steps to reproduce

Not required

Additional information

1) Debug mode ==> crash
Log:
Dump of SweepApproximation
Error 3d = 2.57852368687218e-016
Error 2d = 6.32113758966443e-017 ,
2.26763809674508e-016
1 Segment(s) of degree 1
only one point of path MS/100 is attempted
and the controls are extended.
If it drags without control, quit.
EXCEPTION Stripe compute [revision removed] : Standard_Failure: CallPerformSurf : Path failed!

COMPUTE: temps total 0.015625s dont :
- Init + ExtentAnalyse 0s
- PerformSetOfSurf 0.015625s
- PerformFilletOnVertex 0s
- FilDS 0s
- Reconstruction 0s
- SetRegul 0s
=================================
2) Release mode ==>
Empty result.

Public activity

71 archived notes

Participants are labeled by their role within this record.

01Commenter 1
The problem is reproducible on 6.5.2 too.
02Commenter 2
Reproduced on Git master branch as of 01.03.2013
03Commenter 3
Reproduced on current master (6.8.0.beta)
04Commenter 1
Branch [archived branch] has been created by Participant.

[revision removed]


Detailed log of new commits:

Author: mkv
Date: Fri Jul 14 14:48:27 2017 +0300

    Test for 0022821: Crash with BRepFilletAPI_MakeFillet
05Commenter 5
Problem described in issue is reproduced on current state of OCCT.
06Commenter 1
Branch [archived branch] has been updated forcibly by Participant.

[revision removed]
07Commenter 1
Branch [archived branch] has been updated forcibly by Participant.

[revision removed]
08Commenter 1
Branch [archived branch] has been updated forcibly by Participant.

[revision removed]
09Commenter 1
Branch [archived branch] has been updated forcibly by Participant.

[revision removed]
10Commenter 1
Branch [archived branch] has been updated forcibly by Participant.

[revision removed]
11Commenter 1
Branch [archived branch] has been updated forcibly by Participant.

[revision removed]
12Commenter 1
Branch [archived branch] has been created by Participant.

[revision removed]


Detailed log of new commits:

Author: ddzama
Date: Wed Oct 19 04:57:48 2022 +0300

    blend complex A6: scale 0.1 [ok]
13Commenter 1
Branch [archived branch] has been updated forcibly by Participant.

[revision removed]
14Commenter 1
Branch [archived branch] has been created by Participant.

[revision removed]


Detailed log of new commits:

Author: ddzama
Date: Thu Oct 20 11:45:04 2022 +0300

    Revert "ALL tol_3d -> tol_esp"
    
    This reverts [revision removed].

Author: ddzama
Date: Thu Oct 20 11:31:56 2022 +0300

    ALL tol_3d -> tol_esp

Author: ddzama
Date: Wed Oct 19 16:24:52 2022 +0300

    tol_esp <--- tolesp ---> tol_3d

Author: ddzama
Date: Thu Oct 13 00:52:29 2022 +0300

    [ ok ? ]
    
    if testgrid is ok and jenkins-8 is ok, this patch may considered
    as BETA
15Commenter 1
Branch [archived branch] has been created by Participant.

[revision removed]


Detailed log of new commits:

Author: ddzama
Date: Fri Oct 21 16:28:13 2022 +0300

    0022821: fix misusage of tolesp (renamed to tol_esp) parameter.
    
    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).

Author: ddzama
Date: Fri Oct 21 16:28:30 2022 +0300

    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.
16Commenter 16
For integration branch CR22821e
17Commenter 2
Commenter 2 - please, review branch CR22821e
18Commenter 2
19Commenter 19
1. New tolerance T3d and TApp3d used in method BRepFilletAPI_MakeFillet::SetParams(...) and similar methods of other classes have very close sense. In my opinion, it is necessary investigate possibility using only one 3d tolerance in fillet algorithm.

2. Calculation of tolesp in method ChFiDS_Spine::Load() seems to be unnecessarily complicated.
In my opinion, it is not necessary to get such "nice" values like 1.e-5, 1.e-6 ...
It is quite enough to use simple expression 1.e-4*(umax - umin)

3. Method ChFi3d_FilBuilder::PerformFirstSection(...), line 1191 in file ChFi3d_FilBuilder.cxx
Standard_Real TolGuide = HGuide->Resolution(tol_esp);
Method Resolution(...) takes 3d tolerance as input and returns estimation of 2d tolerance for curve parameter. Now tol_esp is 2d tolerance, so it is necessary to use suitable 3d tolerance instead.
Now in
return TheWalk.PerformFirstSection(Func,Par,SolDep,
                       tol_esp,TolGuide,Pos1,Pos2);
we have two 2d tolerances: tol_esp and TolGuide. I seems to me, that instead of tol_esp suitable 3d tolerance (tol_3d?) must be used.

4.In file ChFi3d_FilBuilder_C3.cxx, line 553:
Standard_Real TolGuide = cornerspine->Resolution(tol_esp);
tol_3d probably should be used instead tol_esp

Common remark: it is necessary to follow Coding standards, recommended for OCCT development.
20Commenter 1
Branch [archived branch] has been updated by Participant.

[revision removed]


Detailed log of new commits:

Author: ddzama
Date: Wed Oct 26 13:44:25 2022 +0300

    0022821: Commenter 2 review: use tolapp3d instead tolesp in Blend_Walking::PerformFirstSection

Author: ddzama
Date: Wed Oct 26 13:23:44 2022 +0300

    0022821: Commenter 2 review: use tolapp3d rather then tolesp in ChFiDS_ElSpine::Resolution context

Author: ddzama
Date: Wed Oct 26 12:45:31 2022 +0300

    0022821: Commenter 2 review: new tolesp is equal to 1.0e-4 * (umax - umin)

Author: ddzama
Date: Tue Oct 25 11:04:50 2022 +0300

    0022921: Commenter 2 review: get rid of tol_3d

Author: ddzama
Date: Tue Oct 25 10:04:14 2022 +0300

    Revert "NO"
    
    This reverts [revision removed].

Author: ddzama
Date: Tue Oct 25 10:04:07 2022 +0300

    NO
21Commenter 1
Branch [archived branch] has been updated forcibly by Participant.

[revision removed]
22Commenter 1
Branch [archived branch] has been created by Participant.

[revision removed]


Detailed log of new commits:

Author: ddzama
Date: Tue Nov 8 14:17:12 2022 +0300

    [tolesp -> 1.0e-4] in Blend_Walking_3.gxx Blend_Walking::Recadre

Author: ddzama
Date: Tue Nov 8 14:08:09 2022 +0300

    [VERIFIED] {tolesp -> 1.0e-4} in Blend_CSWalking_4.gxx (Blend_CSWalking::InternalPerform)

Author: ddzama
Date: Tue Nov 8 14:06:27 2022 +0300

    [VERIFIED] {tolesp -> 1.0e-4} int Blend_CSWalking_1.gxx (Blend_CSWalking::Perform)

Author: ddzama
Date: Tue Nov 8 14:04:24 2022 +0300

    [VERIFIED] {tolesp -> 1.0e-4} in BRepBlend_SurfRstLineBuilder.cxx

Author: ddzama
Date: Tue Nov 8 14:02:54 2022 +0300

    [NEUTRAL] rename GetTolerance -> Get_Tolerance in several places for verification

Author: ddzama
Date: Mon Nov 7 16:10:17 2022 +0300

    [VERIFIED] Get rid of excessive and not valid call of Get_Tolerance method.

Author: ddzama
Date: Mon Nov 7 13:11:08 2022 +0300

    [VERIFIED] tolesp -> 1.0e-4 in some Get_Tolerance

Author: ddzama
Date: Mon Nov 7 11:58:49 2022 +0300

    GetTolerance -> Get_Tolerance

Author: ddzama
Date: Mon Nov 7 10:39:43 2022 +0300

    Revert "0022821: ~ tolesp -> tolapp3d Blend_Walking::PerformFirstSection"
    
    This reverts [revision removed].

Author: ddzama
Date: Tue Oct 25 11:04:50 2022 +0300

    0022921: ACCEPTED! get rid of tol_3d
    
    Commenter 2 review

Author: ddzama
Date: Wed Oct 26 13:23:44 2022 +0300

    0022821: ACCEPTED! tolesp -> tolapp3d in ChFiDS_ElSpine::Resolution
    
    Commenter 2 review

Author: ddzama
Date: Wed Oct 26 12:45:31 2022 +0300

    0022821: tolesp = 5.0e-5 * (umax - umin)
    
    Commenter 2 review

Author: ddzama
Date: Wed Oct 26 13:44:25 2022 +0300

    0022821: ~ tolesp -> tolapp3d Blend_Walking::PerformFirstSection
    
    Commenter 2 review
23Commenter 1
Branch [archived branch] has been updated by Participant.

[revision removed]


Detailed log of new commits:

Author: ddzama
Date: Wed Nov 9 11:45:48 2022 +0300

    [VERIFIED ONLY(!) on one test] toles -> 1.0e-4 in Get_Tolerance method

Author: ddzama
Date: Wed Nov 9 11:00:18 2022 +0300

    [NEUTRAL] Rename GetTolerance -> Get_Tolerance in some classes.
24Commenter 1
Branch [archived branch] has been updated by Participant.

[revision removed]


Detailed log of new commits:

Author: ddzama
Date: Thu Nov 10 09:36:19 2022 +0300

    tolesp -> tolgui

Author: ddzama
Date: Thu Nov 10 09:29:12 2022 +0300

    [DELETE!] tolgui -> tolggui

Author: ddzama
Date: Thu Nov 10 07:59:16 2022 +0300

    IsEqual | tolesp -> 1.0e-4

Author: ddzama
Date: Wed Nov 9 23:18:14 2022 +0300

    IsEqual | tolesp -> 1.0e-4

Author: ddzama
Date: Wed Nov 9 22:39:38 2022 +0300

    IsSolution | tolesp -> 1.0e-4

Author: ddzama
Date: Wed Nov 9 22:37:28 2022 +0300

    IsSolution | tolesp -> 1.0e-4

Author: ddzama
Date: Wed Nov 9 22:30:42 2022 +0300

    IsSolution | tolesp -> 1.0e-4

Author: ddzama
Date: Thu Nov 10 08:18:42 2022 +0300

    TheExtremity::SetValue | tolesp -> 1.0e-4

Author: ddzama
Date: Wed Nov 9 23:19:13 2022 +0300

    TheExtremity::SetValue | tolesp -> 1.0e-4

Author: ddzama
Date: Wed Nov 9 23:17:55 2022 +0300

    TheExtremity::SetValue | tolesp -> 1.0e-4

Author: ddzama
Date: Wed Nov 9 23:15:33 2022 +0300

    TheExtremity::SetValue | tolesp -> 1.0e-4

Author: ddzama
Date: Wed Nov 9 22:30:04 2022 +0300

    TheExtremity::SetValue | tolesp -> 1.0e-4

Author: ddzama
Date: Wed Nov 9 16:53:46 2022 +0300

    TheExtremity::SetValue | tolesp -> 1.0e-4

Author: ddzama
Date: Wed Nov 9 16:44:57 2022 +0300

    [VERIFIED (!)] TheExtremity | tolesp -> 1.0e-4

Author: ddzama
Date: Wed Nov 9 16:38:38 2022 +0300

    [DELETE!] Tolerance -> Toolerance

Author: ddzama
Date: Wed Nov 9 16:23:02 2022 +0300

    [NEUTRAL] rename tolesp -> toleesp for distinguish [temporary]
25Commenter 1
Branch [archived branch] has been updated by Participant.

[revision removed]


Detailed log of new commits:

Author: ddzama
Date: Thu Nov 10 11:33:08 2022 +0300

    replace tolesp with tolwalk3d in Blend_Walking class

Author: ddzama
Date: Thu Nov 10 10:39:51 2022 +0300

    tolu & tolv computes using 1.0e-4 rather than tolesp

Author: ddzama
Date: Thu Nov 10 10:38:02 2022 +0300

    prevNorme compares with 1.0e-4^2 rather than with tolesp^2

Author: ddzama
Date: Thu Nov 10 10:32:16 2022 +0300

    Norme compares with 1.0e-4^2 rather than with tolesp^2

Author: ddzama
Date: Thu Nov 10 10:30:12 2022 +0300

    tolsolu set to 1.0e-4 (rather than tolesp)
26Commenter 1
Branch [archived branch] has been created by Participant.

[revision removed]


Detailed log of new commits:

Author: ddzama
Date: Thu Nov 10 13:24:47 2022 +0300

     <*> walk

Author: ddzama
Date: Thu Nov 10 13:25:30 2022 +0300

     - kill me

Author: ddzama
Date: Thu Nov 10 13:20:29 2022 +0300

    not blend_walk

Author: ddzama
Date: Mon Nov 7 16:10:17 2022 +0300

    [VERIFIED] Get rid of excessive and not valid call of Get_Tolerance method.

Author: ddzama
Date: Tue Nov 8 14:04:24 2022 +0300

    [VERIFIED] {tolesp -> 1.0e-4} in BRepBlend_SurfRstLineBuilder.cxx

Author: ddzama
Date: Tue Nov 8 14:06:27 2022 +0300

    [VERIFIED] {tolesp -> 1.0e-4} int Blend_CSWalking_1.gxx (Blend_CSWalking::Perform)

Author: ddzama
Date: Tue Nov 8 14:08:09 2022 +0300

    [VERIFIED] {tolesp -> 1.0e-4} in Blend_CSWalking_4.gxx (Blend_CSWalking::InternalPerform)

Author: ddzama
Date: Wed Nov 9 11:45:48 2022 +0300

    [VERIFIED ONLY(!) on one test] toles -> 1.0e-4 in Get_Tolerance method

Author: ddzama
Date: Wed Nov 9 16:38:38 2022 +0300

    [DELETE!] Tolerance -> Toolerance

Author: ddzama
Date: Mon Nov 7 11:58:49 2022 +0300

    GetTolerance -> Get_Tolerance
27Commenter 1
Branch [archived branch] has been created by Participant.

[revision removed]


Detailed log of new commits:

Author: ddzama
Date: Tue Nov 8 14:06:27 2022 +0300

    WIP update Blend_CSWalking

Author: ddzama
Date: Wed Nov 9 16:38:38 2022 +0300

    [DELETE!] Tolerance -> Toolerance

Author: ddzama
Date: Thu Nov 10 13:24:47 2022 +0300

     <*> walk

Author: ddzama
Date: Thu Nov 10 13:25:30 2022 +0300

     - kill me

Author: ddzama
Date: Fri Nov 11 09:55:03 2022 +0300

    update class BRepBlend_SurfRstLineBuilder

Author: ddzama
Date: Fri Nov 11 10:01:10 2022 +0300

    WIP update BRepBlend_RstRstLineBuilder
28Commenter 1
Branch [archived branch] has been updated forcibly by Participant.

[revision removed]
29Commenter 1
Branch [archived branch] has been updated forcibly by Participant.

[revision removed]
30Commenter 1
Branch [archived branch] has been updated forcibly by Participant.

[revision removed]
31Commenter 1
Branch [archived branch] has been updated forcibly by Participant.

[revision removed]
32Commenter 1
Branch [archived branch] has been created by Participant.

[revision removed]


Detailed log of new commits:

Author: ddzama
Date: Fri Nov 11 13:44:19 2022 +0300

    fixup BRepBlend_Walking

Author: ddzama
Date: Fri Nov 11 13:42:38 2022 +0300

    fixup BRepBlend_SurfRstLineBuilder

Author: ddzama
Date: Fri Nov 11 10:01:10 2022 +0300

     <*> BRepBlend_RstRstLineBuilder
33Commenter 1
Branch [archived branch] has been updated forcibly by Participant.

[revision removed]
34Commenter 1
Branch [archived branch] has been updated forcibly by Participant.

[revision removed]
35Commenter 1
Branch [archived branch] has been updated forcibly by Participant.

[revision removed]
36Commenter 1
Branch [archived branch] has been created by Participant.

[revision removed]


Detailed log of new commits:

Author: ddzama
Date: Mon Nov 14 09:30:34 2022 +0300

     <*> BRepBlend_RstRstLineBuilder

Author: ddzama
Date: Thu Nov 10 13:24:47 2022 +0300

     <*> walk

Author: ddzama
Date: Fri Nov 11 10:47:28 2022 +0300

     <*> BRepBlend_SurfRstLineBuilder
37Commenter 1
Branch [archived branch] has been updated forcibly by Participant.

[revision removed]
38Commenter 1
Branch [archived branch] has been created by Participant.

[revision removed]


Detailed log of new commits:

Author: ddzama
Date: Thu Nov 10 13:24:47 2022 +0300

     <*> walk

Author: ddzama
Date: Fri Nov 11 10:47:28 2022 +0300

     <*> BRepBlend_SurfRstLineBuilder

Author: ddzama
Date: Mon Nov 14 09:30:34 2022 +0300

     <*> BRepBlend_RstRstLineBuilder

Author: ddzama
Date: Mon Nov 14 11:18:37 2022 +0300

     fixup <*> walk

Author: ddzama
Date: Mon Nov 14 11:21:20 2022 +0300

     fixup <*> BRepBlend_RstRstLineBuilder

Author: ddzama
Date: Tue Nov 8 14:06:27 2022 +0300

     <*> Blend_CSWalking
39Commenter 1
Branch [archived branch] has been updated by Participant.

[revision removed]


Detailed log of new commits:

Author: ddzama
Date: Mon Nov 14 16:33:37 2022 +0300

    tolcswalk3d -> tolpoint3d

Author: ddzama
Date: Mon Nov 14 16:28:25 2022 +0300

    tolrst3d -> tolpoint3d

Author: ddzama
Date: Mon Nov 14 16:06:23 2022 +0300

    tolline3d -> tolpoint3d

Author: ddzama
Date: Mon Nov 14 15:55:34 2022 +0300

    tolwalk3d -> tolpoint3d

Author: ddzama
Date: Mon Nov 14 15:53:08 2022 +0300

    tolggui -> tolgui

Author: ddzama
Date: Mon Nov 14 15:30:47 2022 +0300

    Get_Tolerance -> GetTolerance
40Commenter 1
Branch [archived branch] has been created by Participant.

[revision removed]


Detailed log of new commits:

Author: ddzama
Date: Mon Nov 7 11:58:49 2022 +0300

    0022821: member `tolesp` replaced by `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` - `tolpoint3d` is employed in contexts where tolerance of point in 3d space is excepted.
41Commenter 1
Branch [archived branch] has been created by Participant.

[revision removed]


Detailed log of new commits:

Author: ddzama
Date: Fri Oct 21 16:28:30 2022 +0300

    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 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` - `tolpoint3d` is employed in contexts where tolerance of point in 3d space is excepted.
42Commenter 1
Branch [archived branch] has been created by Participant.

[revision removed]


Detailed log of new commits:

Author: ddzama
Date: Fri Oct 21 16:28:30 2022 +0300

    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 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` - `tolpoint3d` is employed in contexts where tolerance of point in 3d space is excepted.
43Commenter 43
branch for integration

CR22821_all
44Commenter 2
Commenter 2 - FYI
Now, i waiting for testing results on jenkins-8 and re-testing results on my remote machine (re-testing after rebase on actual origin/master)
for integration - CR22821_all
45Commenter 2
Commenter 2, please do not taking into account tol_esp variable name - it will be replaced in last moment after review.
I assign such variable name for being unique in source code - to make distinguish with other distributed in overall source code variable name tolesp.
46Commenter 2
47Commenter 1
Branch [archived branch] has been updated by Participant.

[revision removed]


Detailed log of new commits:

Author: ddzama
Date: Tue Nov 15 10:42:08 2022 +0300

    0022821: fixup
    
    - replace tolesp with tolpoint3d in BBPP function argument
    - use tolapp3d instead tolesp in BonVoisin function
    - replace tolesp with tolapp3d in IsSolution
48Commenter 48
Combine all commits in one with correct final comments.
49Commenter 1
Branch [archived branch] has been created by Participant.

[revision removed]


Detailed log of new commits:

Author: ddzama
Date: Fri Oct 21 16:28:30 2022 +0300

    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 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` - `tolpoint3d` is employed in contexts where tolerance of point in 3d space is excepted.
     - Replace tolesp with tolpoint3d in BBPP function argument.
     - Use tolapp3d instead tolesp in BonVoisin function,
50Commenter 2
Commenter 2 - did converting into unique commit.

See branch - CR22821_all_2
51Commenter 51
branch with unique commit:
CR22821_all_2 - for integration
52Commenter 52
1. Standard_Boolean BRepBlend_RstRstLineBuilder::CheckInside(...)
Why
  math_Vector tolerance(1, 2);
  Func.GetTolerance(tolerance, tolesp);
is removed?
According to logic of this fix it is rather be something like that:
  math_Vector tolerance(1, 2);
  Func.GetTolerance(tolerance, tolpoint3d);
Method Func.GetTolerance(...) calculates tolerance depending on 2d resolution of curves for tolpoint3d, so on can be difference for different curves.
But now it is replaced by constant tolerance tolgui.
2. Method BRepBlend_SurfRstLineBuilder::CheckInside(...)
2.1 The same remarks as 1 about replacing tolerance(3) by tolgui.
2.2 SituOnS = domain1->Classify(p2d,tolpoint3d,0); - method Classify(...) must use 2d tolerance.
53Commenter 2
Commenter 2 - about your first remark in function

Standard_Boolean BRepBlend_RstRstLineBuilder::CheckInside

tolgui is not a constant. This value equals tol_esp, which now depends on t parameter range of guide curve and therefore linked with parametric space of face surface.
But maybe you right and it is worth to use the function GetTolerance to employ specific tolerance for v parameter. I will investigate it.

P.S.
Possible places, in which tolgui could be asigned is as tol_esp are:
src/ChFi3d/ChFi3d_Builder_2.cxx:620
src/ChFi3d/ChFi3d_Builder_2.cxx:666
src/ChFi3d/ChFi3d_Builder_2.cxx:2119
src/ChFi3d/ChFi3d_Builder_2.cxx:2150
src/ChFi3d/ChFi3d_Builder_2.cxx:2178

In all of them tol_esp is forwarded for tolgui assignment in deep of call stack.
54Commenter 1
Branch [archived branch] has been updated by Participant.

[revision removed]


Detailed log of new commits:

Author: ddzama
Date: Mon Nov 21 11:00:23 2022 +0300

    fix by Commenter 2 review (II)

Author: ddzama
Date: Mon Nov 21 10:02:40 2022 +0300

    fix by Commenter 2 review
55Commenter 2
Commenter 2, please see fixes after your last remark in last two commits.
56Commenter 56
Branch CR22821_all_2 seems to be valid
57Commenter 1
Branch [archived branch] has been updated forcibly by Participant.

[revision removed]
58Commenter 1
Branch [archived branch] has been deleted by Participant.

[revision removed]
59Commenter 1
Branch [archived branch] has been deleted by Participant.

[revision removed]
60Commenter 1
Branch [archived branch] has been deleted by Participant.

[revision removed]
61Commenter 1
Branch [archived branch] has been deleted by Participant.

[revision removed]
62Commenter 1
Branch [archived branch] has been deleted by Participant.

[revision removed]
63Commenter 1
Branch [archived branch] has been deleted by Participant.

[revision removed]
64Commenter 1
Branch [archived branch] has been deleted by Participant.

[revision removed]
65Commenter 1
Branch [archived branch] has been deleted by Participant.

[revision removed]
66Commenter 1
Branch [archived branch] has been deleted by Participant.

[revision removed]
67Commenter 1
Branch [archived branch] has been deleted by Participant.

[revision removed]
68Commenter 1
Branch [archived branch] has been deleted by Participant.

[revision removed]
69Commenter 1
Branch [archived branch] has been deleted by Participant.

[revision removed]
70Commenter 1
Branch [archived branch] has been deleted by Participant.

[revision removed]
71Commenter 1
Branch [archived branch] has been deleted by Participant.

[revision removed]

Related records