mirror of
https://git.dev.opencascade.org/repos/occt.git
synced 2025-09-18 14:27:39 +03:00
0025701: Problem with the symmetry of fillet on two perpendicular cylinders
Test case for issue CR25701
This commit is contained in:
@@ -684,6 +684,24 @@ Standard_Boolean ChFi3d_Builder::StoreData(Handle(ChFiDS_SurfData)& Data,
|
||||
if (length2 > Precision::Confusion())
|
||||
GeomLib::ExtendSurfByLength(Surf,length2,1,Standard_False,Standard_True);
|
||||
|
||||
//Correction of surface on extremities
|
||||
if (length1 <= Precision::Confusion())
|
||||
{
|
||||
gp_Pnt P11, P21;
|
||||
P11 = lin->StartPointOnFirst().Value();
|
||||
P21 = lin->StartPointOnSecond().Value();
|
||||
Surf->SetPole(1, 1, P11);
|
||||
Surf->SetPole(Surf->NbUPoles(), 1, P21);
|
||||
}
|
||||
if (length2 <= Precision::Confusion())
|
||||
{
|
||||
gp_Pnt P12, P22;
|
||||
P12 = lin->EndPointOnFirst().Value();
|
||||
P22 = lin->EndPointOnSecond().Value();
|
||||
Surf->SetPole(1, Surf->NbVPoles(), P12);
|
||||
Surf->SetPole(Surf->NbUPoles(), Surf->NbVPoles(), P22);
|
||||
}
|
||||
|
||||
Data->ChangeSurf(DStr.AddSurface(TopOpeBRepDS_Surface(Surf,tolget3d)));
|
||||
|
||||
#ifdef DRAW
|
||||
@@ -1475,7 +1493,7 @@ Standard_Boolean ChFi3d_Builder::ComputeData
|
||||
Standard_Real TolGuide=tolguide, TolEsp = tolesp;
|
||||
Standard_Integer nbptmin = 4;
|
||||
|
||||
BRepBlend_Walking TheWalk(S1,S2,I1,I2);
|
||||
BRepBlend_Walking TheWalk(S1,S2,I1,I2,HGuide);
|
||||
|
||||
//Start of removal, 2D path controls
|
||||
//that qui s'accomodent mal des surfaces a parametrages non homogenes
|
||||
@@ -1573,7 +1591,7 @@ Standard_Boolean ChFi3d_Builder::ComputeData
|
||||
if (5*TolGuide > MS) TolGuide = MS/5;
|
||||
if (5*TolEsp > MS) TolEsp = MS/5;
|
||||
}
|
||||
TheWalk.Perform(Func,FInv,HGuide,NewFirst,Target,MS,TolGuide,
|
||||
TheWalk.Perform(Func,FInv,NewFirst,Target,MS,TolGuide,
|
||||
ParSol,TolEsp,Fleche,Appro);
|
||||
if (!TheWalk.IsDone()) {
|
||||
#ifdef OCCT_DEBUG
|
||||
@@ -2068,7 +2086,7 @@ Standard_Boolean ChFi3d_Builder::SimulData
|
||||
const Standard_Boolean RecOnS1,
|
||||
const Standard_Boolean RecOnS2)
|
||||
{
|
||||
BRepBlend_Walking TheWalk(S1,S2,I1,I2);
|
||||
BRepBlend_Walking TheWalk(S1,S2,I1,I2,HGuide);
|
||||
TheWalk.Check2d(Standard_False);
|
||||
|
||||
Standard_Real MS = MaxStep;
|
||||
@@ -2113,7 +2131,7 @@ Standard_Boolean ChFi3d_Builder::SimulData
|
||||
if (5*TolEsp > MS) TolEsp = MS/5;
|
||||
}
|
||||
|
||||
TheWalk.Perform(Func,FInv,HGuide,NewFirst,Target,MS,TolGuide,
|
||||
TheWalk.Perform(Func,FInv,NewFirst,Target,MS,TolGuide,
|
||||
ParSol,TolEsp,Fleche,Appro);
|
||||
|
||||
if (!TheWalk.IsDone()) {
|
||||
|
Reference in New Issue
Block a user