1
0
mirror of https://git.dev.opencascade.org/repos/occt.git synced 2025-08-19 13:40:49 +03:00

0025592: Bad result of Fillet operation

Comments have been added.

Test case for issue CR25592
This commit is contained in:
jgv
2014-12-25 16:47:08 +03:00
committed by bugmaster
parent b7d2387022
commit 73d0a668b3
8 changed files with 179 additions and 10 deletions

View File

@@ -1862,10 +1862,13 @@ void ChFi3d_Builder::PerformSetOfSurfOnElSpine
Standard_Real wl = Guide.LastParameter();
Standard_Real locfleche = (wl - wf) * fleche;
Standard_Real wfsav = wf, wlsav = wl;
//Now the ElSpine is artificially extended to help rsnld.
Standard_Real prab = 0.01;
Guide.FirstParameter(wf-prab*(wl-wf));
Guide.LastParameter (wl+prab*(wl-wf));
if (!Guide.IsPeriodic())
{
//Now the ElSpine is artificially extended to help rsnld.
Standard_Real prab = 0.01;
Guide.FirstParameter(wf-prab*(wl-wf));
Guide.LastParameter (wl+prab*(wl-wf));
}
Handle(ChFiDS_Spine)& Spine = Stripe->ChangeSpine();
Standard_Integer ii, nbed = Spine->NbEdges();
Standard_Real lastedlastp = Spine->LastParameter(nbed);
@@ -1920,7 +1923,9 @@ void ChFi3d_Builder::PerformSetOfSurfOnElSpine
Last = wf;
if(Guide.IsPeriodic()) {
Last = First - Guide.Period();
Guide.SaveFirstParameter();
Guide.FirstParameter(Last);
Guide.SaveLastParameter();
Guide.LastParameter (First * 1.1);//Extension to help rsnld.
}
}

View File

@@ -1573,7 +1573,7 @@ Standard_Boolean ChFi3d_Builder::ComputeData
if (5*TolGuide > MS) TolGuide = MS/5;
if (5*TolEsp > MS) TolEsp = MS/5;
}
TheWalk.Perform(Func,FInv,NewFirst,Target,MS,TolGuide,
TheWalk.Perform(Func,FInv,HGuide,NewFirst,Target,MS,TolGuide,
ParSol,TolEsp,Fleche,Appro);
if (!TheWalk.IsDone()) {
#ifdef OCCT_DEBUG
@@ -2113,7 +2113,7 @@ Standard_Boolean ChFi3d_Builder::SimulData
if (5*TolEsp > MS) TolEsp = MS/5;
}
TheWalk.Perform(Func,FInv,NewFirst,Target,MS,TolGuide,
TheWalk.Perform(Func,FInv,HGuide,NewFirst,Target,MS,TolGuide,
ParSol,TolEsp,Fleche,Appro);
if (!TheWalk.IsDone()) {